Объект 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 или прочие низко-полигональные объекты не имеющие модели столкновений, а так же приветствуется использование текстур небольшого размера, чтобы не создавать лишней нагрузки на видеокарту.
Не обнаружены.
Добавление на карту 3D-Skybox’а может значительно улучшить внешний вид карты.
csssdk_sky_camera.vmf
На карте создано две зоны. Внутри первой появляются игроки, а внутри второй создан задний план карты в уменьшенном виде. То что видит камера 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 в какое-нибудь место в мировом пространстве карты.