Создание неба (SkyBox)

Создание неба в UnrealED

Вступление
Вы наверняка хотели бы создать уровни, содержащие большие открытые пространства. Ну или небольшие. Ну или совсем маленькие. Неважно. Главное - то, что в каждом таком уровне у Вас должно быть небо вверху. Вот о процессе создания неба и будет повествоваться в этой статье.
SkyBox
Небо в Unreal устроено следующим образом: у Вас есть собственно уровень, с открытыми пространствами, и небольшой отдельный кусочек(SkyBox), в котором где-то есть объект SkyZoneInfo, который играет роль "камеры". Внутри этого кусочка Вы делаете Ваше небо, горы, планеты, солнце и т.д. В Вашем уровне есть несколько поверхностей с установленным атрибутом "Fake backdrop". Сквозь эти поверхности Вы можете видеть изображение, передаваемое камерой (т.е. объектом SkyZoneInfo). Эти поверхности - как бы мониторы, передающие изображение неба. Таким образом, для создания неба нам нужно 2 компонента - SkyBox и несколько поверхностей-"мониторов".
Небо
Мда, в теории это выглядит сложно, однако давайте сделаем наш первый SkyBox и Вы сразу разберетесь, что к чему. Для начала сделайте квадратную комнату 512x512x512. Загрузите файл GenEarth.utx с текстурами травы, земли, камней и т.д. и назначьте одну из текстур полу Вашей комнаты. Теперь выделите все остальные плоскости комнаты, нажмите на одной из них правую кнопку мыши и выберите "Surface Properties (x selected)...". В закладке Effects отметьте флажок Fake Backdrop. Теперь эти поверхности в игре не будут видны, а сквозь них мы будем видеть небо. Но чтобы его увидеть, его надо сначала создать. Сделайте комнату 512x1024x1024 где-нибудь в Вашем уровне. Теперь загрузите файл SkyBox.utx с текстурами неба, гор и т.д. Измените размер куба на 256x256x256, выберите из файла SkyBox.utx текстуру земли (GRD) и добавьте этот куб прямо в центр Вашей комнаты:

Это будет поверхность земли. Теперь мы на эту поверхность добавим горы. Посмотрите на такие текстуры из packag'а SkyBox, как LND1, LND2, LND3 и т.д. Они выглядят как горы, но только на черном фоне. Чтобы черный фон стал прозрачным, для этих текстур надо установить атрибут Masked, который заменяет все черные пиксели в текстуре на прозрачные. Для этого мы используем специальную заготовку "Masked wall". Нажмите правой кнопкой мыши на кнопку Build a sheet и вызовите окно Sheet properties. В поле Orientation поставьте X-Wall, и установите размеры U=256 V=128. Теперь подвиньте поверхность на край нашей поверхности земли:

Нажмите на кнопку Add Special Brush. В поле Predefined выберите Masked Wall, а в поле Visibility выберите 2-sided. Теперь в браузере текстур выберите текстуру LND2_1 и нажмите кнопку Add Special. Поверхность появится в 3D окне:

Теперь поверните поверхность по часовой стрелке на следующий край:

Справа выберите текстуру LND2_2 и добавьте эту поверхность точно также как и предыдущую. Затем переместите поверхность на следующую позицию, измените текстуру на LND2_3 и добавьте поверхность. И, наконец, проделайте то же самое для последней позиции. Итак, Вы сделали горы. Теперь можно приступать собственно к созданию неба. Небо у нас будет состоять из двух поверхностей над горами: одна поверхность - непрозрачное статичное изображение облаков. Вторая - прозрачное изображение плывущих облаков. Вызовите окно sheet properties, установите Orientation в Floor/Ceiling и размеры 1024x1024. Поместите эту поверхность на две клетки выше гор. Выберите справа текстуру SkytstAX и нажмите кнопку Add Special Brush. Из списка predefined выберите Regular brush, в поле Visibility выберите 2-sided и добавьте поверхность. Теперь мы добавим плывущие облака. Переместите поверхность на 1 клетку вниз, выберите текстуру NCld, нажмите Add Special Brush и поставьте такие же параметры, как и для предыдущей поверхности, только на этот раз отметьте флажок Transparent. Как Вы видите, в 3D окне появились облака. Чтобы сделать их плывущими, выберите поверхность с облаками, вызовите окно Surface properties и в закладке Effects установите флажок U-Pan или V-Pan. Теперь перейдем к освещению. Выберите поверхности гор и земли, вызовите для них окно Surface properties и установите флажок Unlit - для гор цветное освещение не очень нужно. Ну а теперь, освещайте Ваше небо как душа пожелает - добавляйте источники света, меняйте их цвет, яркость и т.д., пока не создадите нормальное освещение. В итоге у Вас должно получиться что-то вроде этого:

Ну и еще Вы наверное захотите добавить солнце или планету. Это делается очень легко, просто добавляется обыкновенная поверхность с изображением планеты. Измените размер поверхности на 64x64, поместите ее на небо, в любое место, и разверните в сторону центра. Теперь выберите текстуру планеты (напр. Rpl), нажмите Add Special Brush и используйте те же параметры что и для прозрачных облаков. Скорее всего, размер текстуры Вашей планеты больше чем 64x64(например, размер Rpl - 128x128). В этом случае выберите поверхность с планетой, вызовите окно Surface properties, и в поле Scale->Simple scaling установите необходимый масштаб. Например, для текстуры Rpl надо установить значение 0,5. Ну и, наконец, самое главное - добавьте объект Info.ZoneInfo.SkyZoneInfo прямо в центр Вашего SkyBox'a:

Все, теперь Ваше небо готово. Можете это проверить, нажав Ctrl+P. Как Вы видите, небо видно сквозь все поверхности с установленным атрибутом Fake backdrop. Создается видимость того, что весь уровень поместили в ту маленькую комнатку, в SkyBox, точно на место где находится объект SkyZoneInfo. Теперь, надеюсь, всем понятно устройство неба в Unreal.
Заключение
И в заключение я хочу дать несколько советов по созданию неба:
Скорость плывущих облаков можно менять. Откройте окно параметров SkyZoneInfo и изменяйте параметры ZoneLight->TexUPanSpeed, TexVPanSpeed. Рекомендую ставить эти значения где-то в 0.3-0.5 для хорошей скорости;
Никогда не используйте динамических источников света в SkyBox'e - это будет очень сильно тормозить;
При осмотре оригинальных уровней Unreal, Вы можете заметить, что там 2 SkyBox'а. На самом деле SkyBox в уровне может быть только один. Просто в оригинальных уровнях один используется для низких разрешений, другой - для высоких;
Автор
Hruka

Информация

Источник: перейти

Добавил: Felix (Другие статьи пользователя)

Дата добавления: 26 Мая 11, 00:54

Категории: Unreal Tournament 99 - Моддинг

Статистика

, 4

Гость
Гость 28 Августа 11
у меня текстуры открываться не хотят,что делать?
XCanG
XCanG 13 Июня 11
да я понял, просто сначала тут смотрел, а потом в той статье, сдесь ничего не вышло а там вышло то, что на скрине, с другой стороны получилось так-же интересно, скайбокс самого игрока
XCanG
XCanG 13 Июня 11
кое с чем я разобрался, я просто unlit fake backdrop не поставил, но вот теперь баг такой (фото)
Rasiel
Rasiel 13 Июня 11
бля. просто сделай куб любого размера, поставь на него текстуры и в свойствах поверхности fake backdrop
XCanG
XCanG 13 Июня 11
хмм попробовал кое-что, что совпадает сделать в УЕ УТ2004, но запудрился на моменте пемещения куба256 (вроде как 3 по счёту) в куб512 (первоначальный), в итоге всё, что дальше неполучилось...