3D Skybox Приветствую, дамы и господа. Сегодня в нашей программе первым и единственным номером числится выступление под названием "3D Skybox”. Итак, встречайте.
3D Skybox. Что за зверь и с чем едят. На протяжении всей Half-Life 2 практически из любой открытой местности
на картах была видна башня комбайнов – она же Цитадель. Выглядела она
грозно, сурово и, что не говори, красиво:
Можно было предположить, что она прорисована вместе с небом, но это не
так. Это был отдельный объект, внедряемый в карту точечным
энтити-объектом prop_dynamic_override.
Будешь много знать – скоро… Итак, давайте ознакомимся с 3D Skybox поближе. Для начала, приведу
обязательные энтити, без которых нельзя получить полноценный и корректно
работающий 3D Skybox: 1. Prop_dynamic_override. Именно с этого я и начинал – точечная энтити, используется для внедрения моделей. 2. Sky_camera. Точечная энтити, используется для отображения видимой ей области на карту с игроком. 3. Light_environment. Точечная энтити, помещается в sky-коробку вместе с объектами prop_dynamic_override и sky_camera. 4. Собственно небо (набор из шести брашей, создающих полую область внутри).
Ловкость рук и никакого мошенничества. Переходим к практике. Я не буду просить Вас создавать пространства,
браши и т.п. – это все вы потом сделаете сами. Лучше объясню все на
примере своей карты. Открывайте в редакторе файл 3dskybox_alyxmdl_final.vmf. Вылетайте за пределы неба, чтобы вы увидели примерно следующее:
А вот так это выглядит "в разрезе”:
Перед Вами две полых коробки, со всех сторон окрашенные текстурой tools/toolsskybox.
В одной из них находится игровая зона, ну то есть карта, какую Вы
обычно делаете, и окружаете sky-брашами, а вот в другой – три
вышеперечисленных объекта, главные для нас на данный момент. Переходим к
описанию параметров объектов. Prop_dynamic_override. Основной параметр – поле "World Model”.
Выбираем здесь название модели, затем кликаем на кнопку Apply и модель
будет отображаться в 3D-окне редактора. Остальные параметры оставьте как
есть. Sky_camera. Нужные нам параметры: 1. Поле "3D Skybox Scale” – соотношение размера отображаемой
модели по сравнению с размером оригинала. По умолчанию равно 16. Чем
выше параметр, тем модель меньше и наоборот. 2. Поле "Fog Enable” – запрос об использовании тумана. По
умолчанию "No”. Если выбрать "Yes”, то в игре при отдалении от модели
она будет затуманиваться, а при приближении становиться более четкой и
не размытой. Остальные параметры используются для изменения отображения тумана – их оставляем без изменений. Light_environment. Естественное освещение карты, обычное "солнышко”.
Видишь там, за горизонтом… Главное в расположении объектов prop_dynamic_override и sky_camera
это то, что они должны находиться на одной прямой. Вообще, конечно
можно перемещать их вверх и вниз, в зависимости от желания получить
определенный эффект на своей карте, но для начала все таки
придерживаться этого правила, пока хорошо не освоите манипуляции,
принцип работы и отображения. На примерах вместо Цитадели у меня Аликс, уж очень я ее люблю. На этом скрине объект sky_camera находится неподалеку от prop_dynamic_override, что сказывается на отображении модели в зоне игрока:
А вот здесь sky_camera отодвинута подальше – видите, куда теперь улетела моя Аликс? Приблизительно такие же будут эффекты, если sky_camera оставить на месте а перемещать только prop_dynamic_override.
А напоследок я скажу. Так, теперь небольшие примечания. 1. "Fog Enable -> Yes” у объекта sky_camera будет работать, только если видеокарта поддерживает шейдеры. 2. Параметры объекта light_environment в коробке с prop_dynamic_override и sky_camera лучше поставить такие же, как и на области с игроком. 3. Область с 3D Skybox'ом лучше делать такого же размера, как и
область с игроком. При этом также будет удобно на время скопировать в
нее точное местоположение объекта info_player_start, чтобы было легче определить правильное расположение используемой Вами модели по отношению к игроку.
Ну, вот и все. Желаю удачи в освоении 3D Skybox'а в частности и картостроения в целом. Удачи и экономьте полигоны!
Скачать пример. Автор: Terran D86 |