Создание неба (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 - Моддинг

Статистика

4362 просмотра, 4 голоса

12 комментариев

Гость
Гость 28 Августа 11
у меня текстуры открываться не хотят,что делать?
UnShame
UnShame 13 Июня 11
посмотри как на других картах делается
и всегда когда что то не получается, смотри как сделанно на других картах
UnShame
UnShame 13 Июня 11
криво сделал прост
XCanG
XCanG 13 Июня 11
да я понял, просто сначала тут смотрел, а потом в той статье, сдесь ничего не вышло а там вышло то, что на скрине, с другой стороны получилось так-же интересно, скайбокс самого игрока
UnShame
UnShame 13 Июня 11
http//rusut.ru/publ/unreal_editor/ue2/rasiel39s_building_a_skybox_tutorial/28-1-0-44
UnShame
UnShame 13 Июня 11
facepalm это статья для редактора ут99 facepalm
XCanG
XCanG 13 Июня 11
кое с чем я разобрался, я просто unlit fake backdrop не поставил, но вот теперь баг такой (фото)
UnShame
UnShame 13 Июня 11
XCanG, ты хоть бы посмотрел статьи тут по уеду тукейному
Rasiel
Rasiel 13 Июня 11
бля. просто сделай куб любого размера, поставь на него текстуры и в свойствах поверхности fake backdrop
XCanG
XCanG 13 Июня 11
хмм попробовал кое-что, что совпадает сделать в УЕ УТ2004, но запудрился на моменте пемещения куба256 (вроде как 3 по счёту) в куб512 (первоначальный), в итоге всё, что дальше неполучилось...