Sky camera

Материал из CSM Wiki
Перейти к навигации Перейти к поиску

Оригинал 3D Skybox, Sky_camera


Описание

Объект sky_camera используется для указания позиции расположения карты внутри 3D-Skybox. Центр игрового мира карты (точка "0 0 0") сопоставляется с точкой расположения объекта sky_camera, что позволяет отображать 3D-Skybox относительно игрока, находящегося в игровом пространстве карты.


3D-Skybox - это дополнительная зона, создаваемая автором карты вне игрового пространства этой карты. Игроки не должны попадать в эту зону, потому что всё что находится в ней будет отображаться на заднем плане в игровом пространстве карты. Как правило, эту дополнительную зону создают уменьшенной в 16 раз, что при отображении её на заднем плане карты создаёт впечатление визуального расширения карты.


Если бы игрок мог попасть в 3D-Skybox или стрелять в него, то все остальные игроки видели бы это на заднем плане карты увеличенным в 16 раз. Следы от пуль казались бы в 16 раз больше, и сам игрок казался бы огромным монстром. Чтобы такого не допустить, авторы карт помещают 3D-Skybox в недоступную часть игрового мира карты, например: значительно ниже чем самая последняя точка игрового пространства карты. Уменьшенные размеры позволяют автору карт легко и быстро создавать задний план для игрового пространства карты, а так же применять некоторые визуальные эффекты, для добавления на карту облаков, тумана и прочих погодных явлений.

Так как 3D-Skybox используется в качестве не основного, а не дополнительного визуального окружения, то всё что находится внутри него должно быть максимально оптимизировано для получения наибольшей производительности при отображении. Например, внутри 3D-Skybox могут быть успешно применены объекты prop_detail или прочие низко-полигональные объекты не имеющие модели столкновений, а так же приветствуется использование текстур небольшого размера, чтобы не создавать лишней нагрузки на видеокарту.

Особенности использования

  • Этот объект НЕ обновляется в каждом раунде. Это означает что любые изменения объекта будут наследоваться в последующих раундах.. Удаление объекта в одном из раундов удаляет объект на все последующие раунды.
  • Объект должен быть установлен там, где будет использоваться.
  • На карте достаточно одного такого объекта. Нельзя устанавливать два и более таких объектов.


  • Объект не может быть удалён с карты во время игры, потому что это приводит к ошибке игры и завершению игры крахом!
  • Объект может добавлять на карту туман точно так же, как это делает объект env_fog_controller. Этот туман применяется только для 3D-Skybox, а туман объекта env_fog_controller применяется только к игровому пространству карты.

Ошибки

Не обнаружены.

Заметки

Добавление на карту 3D-Skybox’а может значительно улучшить внешний вид карты.


Параметры

  • Pitch Yaw Roll (Y Z X) – направление в котором цвет тумана равен "Primary Fog Color"; используется только при включенном свойстве "Use Angles for Fog Dir";
  • 3D Skybox Scale – масштаб 3D-Skybox по отношению к реальным размерам мира;
  • Fog Enable - включить туман (Да/Нет);
  • Fog Blend – включить смешанные цвета для тумана (Нет/Да); если включено, то будет использоваться свойство "Secondary Fog Color";
  • Use Angles for Fog Dir – использовать свойство "Pitch Yaw Roll" в качестве направления в котором цвет тумана равен "Primary Fog Color" (Нет/Да); если отключено, то в качестве направления тумана используется свойство "Fog Dir";
  • Fog Dir – направление в котором цвет тумана равен "Primary Fog Color"; не используется, если включено свойство "Use Angles for Fog Dir";
  • Primary Fog Color – первый цвет тумана;
  • Secondary Fog Color – второй цвет тумана; не используется, если не включено свойство "Fog Blend";
  • Fog Start – расстояние от камеры игрока, на котором начинает видеться туман;
  • Fog End – расстояние от камеры игрока, на котором туман имеет максимальную интенсивность.

Карта

csssdk_sky_camera.vmf

Используются объекты

  • sky_camera
  • info_overlay
  • prop_static
  • env_steam
  • DISPLACEMENT

Описание карты

На карте создано две зоны. Внутри первой появляются игроки, а внутри второй создан задний план карты в уменьшенном виде. То что видит камера sky_camera то будут видеть и игроки на карте, только увеличенным в 16 раз. Добраться до второй зоны игрок не может. Кстати, вторую зону можно теперь называть 3D-Skybox. Запихнуть в 3D-Skybox можно всё что угодно, но нужно учесть, что большое количество объектов в 3D-Skybox может сильно снизить производительность карты, так как эти объекты скорей всего будут отображаться всё время. Именно по этой причине 3D-Skybox стараются создавать максимально оптимизированным и без лишних "наворотов". Есть некоторые объекты и типы объектов, которые камера sky_camera не отображает должным образом. Например, попытка запихнуть на внутрь 3D-Skybox объект func_smokevolume приведёт к тому, что вместо клубов дыма скорей всего будет отображаться эмо-сетка.

Как можно легко заметить, использование объекта sky_camera позволяет создавать карты абсолютно любого размера. Если учесть, что в ширину, в длину и в высоту игровое пространство карты не должно быть больше 32768 юнитов, то при использовании объекта sky_camera возможно визуально увеличить это расстояние в несколько десятков или сотен раз.

На этой карте-примере автор счёл возможным облагородить 3D-Skybox всяческими объектами и эффектами, потому что сухая квадратная карта игрового пространства не очень то радует глаз.

Обратите внимание, что положение камеры sky_camera точно определяет то, как будет отображен 3D-Skybox. Если вы попробуете передвинуть объект sky_camera немного в сторону, то в игре это будет выглядеть так, как будто бы игрок бегает в другом месте. Поэкспериментируйте с позицией объекта sky_camera и это позволит вам проще понять принцип работы этого объекта.

Вы всегда можете слетать в 3D-Skybox используя консольную команду "noclip" (возможно, перед использованием этой команды потребуется выполнить консольную команду "sv_cheats 1"). Эта команда позволяет игроку пролетать сквозь стены и быть невосприимчивым к повреждениям. Не лишним будет заметить, что полетать по карте вы можете и на любых других картах. Рекомендуется посмотреть как сделаны 3D-Skybox’ы на так же и на стандартных картах, таких как: de_dust, de_dust2, de_nuke и прочих других. Наиболее интересный 3D-Skybox на карте de_dust2, потому что внутри него находится часть геометрии карты, специально вынесенной отдельно в целях оптимизации.

Возможно, у вас может возникнуть вопрос: "каким образом можно перенести часть карты из игрового пространства карты внутрь 3D-Skybox так, чтобы при отображении в игре он находился на своём месте". Для этого нужно сохранять отношение размеров и внутри игрового пространства относительно объекта sky_camera. Чтобы этого добиться сначала создают карту целиком - без использования 3D-Skybox и объекта sky_camera, а когда карта будет готова полностью выбирают некоторые её части, масштабируют их, делая их в несколько раз меньше, и передвигают вместе с объектом sky_camera в какое-нибудь место в мировом пространстве карты. Этот метод хорошо описан на русском языке вот здесь.

Смотрите также