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

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

Рейтинг



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


Урок 2. Первая карта в VolatileRadiant

Урок 2. Первая карта в VolatileRadiant

В этом уроке мы создадим простейшую карту – комнату с точкой старта игрока и источником света. Однако эта, казалось бы, простая операция может показаться очень сложной тому, кто не освоил управление в редакторе VolatileRadiant. Остановимся на нем подробнее.
В стандартном четырехоконном виде есть окно 3D-просмотра и три окна проекций. Основная работа по рисованию уровня происходит именно в окнах проекций, а именно – в активном окне, заголовок которого подсвечен зеленым цветом (если вы выбрали цветовую схему VHE). Для того, чтобы сделать окно активным, кликните по нему мышкой. Навигация в окне проекций осуществляется путем перемещения камеры (нажмите правую кнопку мыши и передвигайте ее; если вы нажмете правую кнопку мыши и тут же отпустите, то появится контекстное меню, речь о котором пойдет позже) и масштабирования (используйте колесо мыши). Приближение осуществляется к той точке, которая находится под курсором мыши, поэтому возможно перемещение путем отдаления и последующего приближения камеры. Если вы ранее использовали VHE, такое масштабирование покажется вам интуитивно понятным.

Следует подробнее рассмотреть систему координат и расположение осей координат. Научившись легко ориентироваться в них, для вас не составит труда задавать, например, ось вращения дверей. В самом деле, вокруг какой оси должна вращаться свежесозданная дверь? Обратите внимание на названия окон проекций: XY Top, YZ Side, XZ Front. Первая координатная ось – это ось абсцисс проекции, вторая – ось ординат. Иными словами, в окне проекции XY Top горизонтальная ось X, вертикальная Y, а ось Z направлена перпендикулярно плоскости проекции. Следовательно, если мы создали некую конструкцию, которая должна вращаться в плоскости данной проекции, ось ее вращения – та самая перпендикулярная ось, буквенного обозначения которой нет в названии окна. Обычная дверь вращается в горизонтальной плоскости проекции XY, следовательно, ее ось вращения – это ось Z (обычно оси Z соответствует 0 – значение по умолчанию, оси Y – 1, оси X – 2; это упоминается в комментариях к актору, ось вращения которого надо задать).

Навигация в окне 3D-просмотра несколько сложнее. Убедитесь, что включен режим 3D Look. Теперь, двигая мышь с нажатой левой кнопкой, вы сможете поворачивать камеру вправо/влево и вверх/вниз. Двигая мышь с нажатой правой кнопкой, вы сможете перемещать камеру вправо/влево и вверх/вниз. А двигая мышь с обеими нажатыми кнопками, вы будете двигать камеру вправо/влево и вперед/назад. Такое управление камерой знакомо пользователям VHE, остальным понадобится некоторое время, чтобы привыкнуть.
А вот интересная возможность, которая отсутствует в VHE – быстрое перемещение камеры между этажами многоэтажной карты. Редактор автоматически определяет этажи и нужным образом позиционирует камеру относительно пола. Для перемещения камеры на один этаж вверх нажмите PageUp (или выберите пункт меню View > Up Floor). Для перемещения камеры на один этаж вниз нажмите PageDown (View > Down Floor). Для того, чтобы заставить камеру смотреть строго параллельно полу, нажмите End (View > Center).
Освоившись с навигацией в окнах редактора, можно приступить к созданию простой комнаты. Обратите внимание на масштаб: высота игрока составляет 72 игровых юнита, стандартная высота стены жилого помещения – 128 юнитов. Один юнит соответствует 1 дюйму (2.54 см), отсюда следует, что высота игрока 1 м 83 см, а стен – 3 м 25 см. Но не стоит забивать себе голову переводом единиц – гораздо лучше привыкнуть проектировать уровни сразу в юнитах.
Основу любого уровня в VolatileRadiant составляют браши, т.е. прямоугольные блоки (которые, впрочем, потом можно сделать произвольной формы). Уровень должен быть полностью ограничен брашами от внешней пустоты. Браши также помогают разделять уровень на блоки для расчета видимости (это очень важно!) и участвуют в определении столкновений.

Помимо брашей, движок Volatile3D поддерживает и другие элементы геометрии, такие, как статичные модели, кривые поверхности Безье (патчи), накладные поверхности (оверлеи). Все они не участвуют в разбиении уровня на зоны видимости – это исключительная функция брашей. Что касается определения столкновений, то в нем принимают участие еще и патчи. Модели и оверлеи «проходимы» для игрока и выстрелов, и для того, чтобы это исправить, требуются специальные приемы, которые мы рассмотрим в дальнейшем.

Рисовать браши можно в окне проекции. Выберите нужную текстуру в менеджере текстур, выберите нужное окно проекции, нажмите в нем левую кнопку мыши и тяните красный пунктирный контур, пока браш не примет желаемый размер (если вы включили «Paint Sizing Info» в настройках, то рядом с ним будут точные численные значения размера). В отличие от VHE, браш создается сразу же. Если он вас устраивает, нажмите Esc или Enter, чтобы снять выделение и посмотреть, как он выглядит на самом деле, без красной подсветки. Если же не устраивает – нажмите BackSpace, чтобы удалить его. Обратите внимание – браш подгоняется к текущему шагу сетки. Это поведение можно отключить из меню Grid > Snap to Grid, однако делать этого не рекомендуется, т.к. это легко может привести к появлению нестыковок (щелей) между брашами, «дырке», выходяшей в пустоту и, как следствие, невозможности полностью скомпилировать карту. Гораздо удобнее быстро изменять размер сетки. Это делается в меню Grid, нажатием цифровых клавиш от 1 до 7 либо клавишами [ (уменьшить размер сетки) и ] (увеличить размер сетки). Текущий размер сетки можно увидеть в статусной строке (см. рис.).



Теперь вы умеете создавать новые браши в редакторе. Редактировать существующие ничуть не сложнее – для этого их нужно выделить (можно в 3D-окне), кликнув по ним левой кнопкой мыши с нажатой клавишей Shift, после чего их можно перемещать, масштабировать и вращать. Перемещение браша (или группы брашей) осуществляется перетаскиванием мышью с нажатой левой кнопкой. Нажать надо внутри одного из перетаскиваемых брашей! Если вы нажмете мышь снаружи, то будете растягивать или сжимать, т.е. масштабировать, браш по одному или двум направлениям. Если вы выбрали опцию «ALT + multi-drag» в настройках, то для масштабирования группы брашей понадобится нажать ALT. Если вы хотите масштабировать браш целиком, во всех направлениях сразу, нажмите кнопку Free Scaling на панели инструментов. Рамка браша станет зеленой, и вы сможете изменять его размер, перемещая мышь с нажатой левой кнопкой (в этом случае место нажатия значения не имеет). Аналогично и с вращением – нажмите кнопку Free Rotation, чтобы рамка стала сиреневой, и поворачивайте браши на нужный угол. В случае включенного режима «ALT + multi-drag» не забывайте нажимать ALT при масштабировании и вращении группы брашей. Существует также способ быстро повернуть браш на 45, 90, 180 или 270 градусов – для этого используйте пункт Rotation контекстного меню, вызываемого нажатием правой кнопки мыши (см. рис.).



Перейдем к созданию простейшей карты. Выберите подходящую текстуру и создайте браш размером 272х272х144 юнитов.



Нажмите кнопку Hollow на панели инструментов. Эта операция сделает браш полым внутри с толщиной стен 8 юнитов (поэтому мы использовали такие «странные» размеры как 272 и 144). У нас получилась комната с внутренними размерами 256х256х128 юнитов. Попробуйте «залететь» камерой внутрь комнаты и убедиться, что она стала полой.



Теперь нам нужно разместить на карте пару акторов – точку старта игрока и источник света. Акторы – это объекты-актёры, которые «оживляют» уровень: платформы, двери, источники света и персонажи (NPC). Есть и служебные акторы, такие как точки старта игрока, ключевые точки путей, различные спецэффекты. Если вы ранее создавали карты в VHE, вам знакомо понятие акторов – только там они назывались энтити (entity). Как и в случае энтити, акторы бывают двух видов – point и solid. Акторы первого типа (точечные) – самодостаточные сущности, их достаточно просто поставить на карту и настроить их параметры. Акторы второго типа (брашевые; правильнее сказать – содержащие геометрию уровня, т.е. браши, патчи и оверлеи, но это слишком длинное определение) создаются на основе геометрических конструкций, созданных в редакторе. Для их создания сначала следует выделить группу брашей (и/или патчей, оверлеев), а потом уже преобразовать в актор.
Точка старта игрока – это точечный актор. Нажмите правую кнопку мыши в том месте, где вы хотите ее разместить. Появится контекстное меню окна проекции. Названия акторов располагаются в нижней части меню и для удобства дизайнера уровней сгруппированы по категориям – подменю. Актор, обозначающий точку старта игрока, называется PlayerStart и располагается в подменю Navigation. Выберите его, и точка старта появится на уровне (см. рис.).



Возможно, вам понадобиться передвинуть ее (убедитесь, что она не «застревает» в полу – иначе в игре в полу застрянет сам игрок) или изменить угол – стартовое направление взгляда игрока. Угол акторов меняется с помощью кнопок в нижней части окна Actors – они задают различные углы (см. рис.), причем расположение кнопок соответстует направлению в горизонтальной плоскости, т.е. вращение вокруг оси Z. Средняя кнопка >< позволяет задать произвольную ориентацию, копируя текущие углы камеры. То есть вы можете разместить камеру в верхней части актора PlayerStart (примерно на уровне головы), «посмотреть» камерой в нужную сторону и нажать кнопку >< - после старта уровня игрок будет смотреть именно в этом направлении.



Добавим на карту источник света. Движок Volatile3D работает как со статическими источниками света, так и с динамическими. Освещение от статических источников света (StaticLight) рассчитывается на этапе компиляции. Такие источники света не дают динамических теней и эффектов рельефного текстурирования (бамп-маппинга, параллакс-маппинга). Представление об уровне графики с использованием только статического освещения можно получить, выбрав «Статическое освещение» в настройках графики игры. Согласитесь, не очень впечатляет, хотя демонстрирует довольно высокий FPS. Сами статические источники света могут понадобиться для небольшой подсветки, где отсутствие бампа и динамических теней будет практически незаметно. Основным же типом освещения является полностью динамическое попиксельное освещение, реализуемое с помощью актора DynamicLight. Есть еще третий тип источника света, динамический направленный (DynamicSpotLight), но мы рассмотрим его в другом уроке. Добавьте на карту объект DynamicLight из подменю Lights так же, как вы ранее добавили актор PlayerStart, и переместите его поближе к потолку (так как лампы обычно располагаются на потолке; сами лампы мы научимся добавлять в последующих уроках).
Из параметров динамического источника света нас в первую очередь интересуют цвет и радиус действия. С цветом всё просто – кликните по выделенному источнику света в окне проекции и нажмите клавишу K, после чего выберите нужный цвет, например, желтый – (255,255,128) (см. рис.).
С радиусом немного сложнее. В первую очередь необходимо запомнить, что чем меньше брашей, патчей, акторов и т.д. попадает в область освещения, тем быстрее движок будет рисовать уровень. Поэтому если какой-либо сложный объект попадает в область, очерченную красной пунктирной окружностью (она показывает область действия источника света) самым краешком, для него будет рассчитываться тень, и ко всем полигонам будет применяться шейдер освещения при отрисовке, хотя результатом работы этого шейдера будет почти черный цвет. В этом случае эффективным приемом оптимизации будет перемещение объекта за радиус источника света или уменьшение этого радиуса. Подробно приемы оптимизации уровня будут рассмотрены в другом уроке, пока же мы будем уменьшать радиус источника света только для того, чтобы убавить его яркость. Для изменения радиуса кликните левой кнопкой мыши за пределами окружности в окне проекции XY Top или XZ Front и перемещайте мышь, изменяя радиус окружности. Если вы кликните мышью внутри окружности, то сможете перемещать источник света (см. рис.).
У источника динамического света есть и другие параметры, но сейчас мы на них останавливаться не будем.





Теперь на карте есть точка старта игрока и источник света, сама карта не содержит «дырок», соединяющих комнату с окружающим пространством – словом, всё готово для того, чтобы опробовать ее в игре. Сохраните ее в папку «base/maps» под каким-нибудь именем, например, «firstlevel.map» и запускайте компиляцию. Для предварительного просмотра карты достаточно выбрать пункт Bsp > Normal Compile, однако если вы хотите распространять вашу карту, следует выполнить полную, финальную компиляцию (Bsp > Full Compile или Bsp > Full Extra Compile; подробнее о режимах компиляции я расскажу в другом уроке). Если вы сделали всё без ошибок, компиляция пройдет успешно и запустится игра с вашей картой (помните галочку «Run game after compile process»?). Скомпилированная карта находится в той же директории maps и имеет расширение vm (Volatile Map). Можете побегать по комнате, посмотреть на параллакс-маппинг, собственную тень и подумать – что бы еще такого добавить на карту, чтобы бегать по ней стало интереснее?



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

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

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

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



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


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

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

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

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

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

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