PainkilleR

Фан-клуб

ОПРОС

Оцените этот сайт

menuleft3
menuleft4
PainkillerClub.Ru » Контент для разработчика » Создание уровня для одиночной игры. Часть 2

Создание уровня для одиночной игры. Часть 2

Итак, давайте продолжим создание нашего полноценного уровня.

Я добавил немного патронов и два слаба (убедитесь, что в настройках слабов в поле "Closed" стоит "False") во вторую зону, рекомендую сделать также.


Кстати, вы же помните, что в оригинальных уровнях размещены секреты? Так почему бы и не добавить сюда один такой? Зона секрета называется "SecretArea.CBox" и находится она в папке "Gameplay". Масштабируется и размещается этот темплейт точно так же, как и AmbushForPlayer, только настраивать ничего не надо - как только игрок окажется внутри этой зоны, 
так сразу же один секрет будет засчитан. Но ведь в зоне с секретом также и должно что-то быть, не так ли? Так давайте разместим ещё и священный предмет! Священные предметы находятся в папке "Treasures" под названиями: Host1.CItem, Host2.CItem (это золотые кресты), Cup1.CItem и Cup2.CItem (это золотые кубки). Заметьте, что когда священный предмет появится, он сразу же как обычный физический объект упадёт на землю, поэтому будте аккуратны при размещении. Вот так я расположил этот секрет:


Также нужно разместить конец уровня, как и на всех других нормальных уровнях. Этот темплейт называется "EndOfLevel.CItem", а находится он в папке "Gameplay". Настраивается и ведёт он себя также, как и чекпоинт, поэтому при размещении не забудьте в поле "Frozen" поставить на "True" в настройках этого темплейта. Разместите его примерно как здесь:


Заодно поставьте AmbushForPlayer:


И четыре спаунера, настроив каждый на появление Sado солдатов с одним автоматом.


И настраиваем AmbushForPlayer:


Из новых команд тут только есть "OpenAllSlabs" - эта команда открывает все слабы на уровне.

Всё, с геймплеем покончено. Можете сохранять карту и проверять её.

Теперь осталось лишь настроить глобальные настройки уровня. В "Game Objects" в выпадающем списке "_CLevel" нажмите два раза на "FirstLevel". Вы перейдёте к настройкам самого уровня.

Acoustics - Звуки издаваемые при ходьбе
Ambient - Эмбиентовое освещение. Просто цвет освещения.
BloomFX - Здесь можно настроить эффект "Bloom'а". Я обычно ставлю "LuminanceThreshold" на 0.5, а "Multiplier" на 2.
Но рекомендую поиграться немного с этими параметрами и настроить это под себя.
DetailMap - Детеил текстура для всего уровня (детаил текстура - это текстура всяких царапин, трешин и помятостей, которая накладывается на почти все поверхности для наибольшей реалистичности)
DirLight - Направление и цвет "солнца", от настроек этого параметра зависит освещение и направление теней от персонажей. 
FarClipDist - Радиус обрезания видимости, нужно для оптимизации. Если уровень большой и у вас он тормозит - то рекомендую понизить это значение.
Fog - Здесь настраивается туман
Map - Геометрия уровня
Music - Здесь указывается музыка
NormalMap - Путь к текстурам нормалей, необходимо для воды (а для остального и не работает)
Overbright - Рекомендую ставить этот параметр на "True" чтобы настройки блума также повлияли и на геометрию уровня.
Scale - Масштабирование карты. Рекомендуется масштабировать в 3D моделлере во избежание глюков и неадеквата.
SkyDome - Настройки неба
Water - Настройки для всех поверхностей воды

Давайте настроим небо. Поскольку с нуля настраивать его очень долго, то на этот раз давайте просто скопируем его из "Заброшенной фабрики" к нам в уровень. Найдите файл "FirstLevel.CLevel" у себя в папке с игрой (Например, D:\Painkiller\Data\Levels\FirstLevel\FirstLevel.CLevel) и скопируйте туда следующее:

o.SkyDome.Map = "c3l2_factorysky.mpk"
o.SkyDome.Layer1.Tex1 = "c3l2_factorysky"
o.SkyDome.Layer1.Tex_Mask = "_black"
o.SkyDome.Layer1.Tex_LMap = "_gray"
o.SkyDome.Layer1.Tex2 = "_red"
o.SkyDome.Layer3.Tex2PanUSpeed = 0.01
o.SkyDome.Layer3.Tex1 = "_alpha_zero"
o.SkyDome.Layer3.Tex_Mask = "c3l2_factoryskybulbmasker"
o.SkyDome.Layer3.Tex2TileV = 3
o.SkyDome.Layer3.Tex_LMap = "_gray"
o.SkyDome.Layer3.Tex2PanVSpeed = 0.002
o.SkyDome.Layer3.Tex2 = "c3l2_factoryskyclouds2"
o.SkyDome.Layer3.Tex2TileU = 3
o.SkyDome.LowQuality.Map = "skylow.mpk"
o.SkyDome.LowQuality.Tex = "lowquality\\c3l2_factoryskygf2"
o.SkyDome.LowQuality.Angle = 90
o.SkyDome.LowQuality.Height = -2
o.SkyDome.Layer2.Tex1 = "_alpha_zero"
o.SkyDome.Layer2.Tex_Mask = "_bulb_masker"
o.SkyDome.Layer2.Tex_LMap = "_gray"
o.SkyDome.Layer2.Tex2 = "c3l2_factoryskytop"

Также скопируйте туда настройки освещения и тумана. И музыку.

o.Ambient = Color:New(90,96,116,0)
o.Fog.End = 1001
o.Fog.Start = 350
o.Fog.Mode = 2
o.Fog.Color = Color:New(163,111,92,0)
o.DirLight.Color = Color:New(214,140,73,0)
o.DirLight.Dir = Vector:New(-0.22,-0.68,0.73)
o.Music.Battle[1] = "c3l2_factory_fight"
o.Music.Ambient[1] = "C3L2_Factory_Music_01"

Вот так всё это должно выглядеть в итоге: 


Теперь осталось последнее - начальные характеристики и условие для получения Карты Таро.

Всё это находится в папке с уровнем под названием "вашуровень.lua". Просто создайте там такой файл и скопируйте следующее: 

function FirstLevel:OnPlay(first)
    if first then
        --Player.EnabledWeapons = {"PainKiller","Shotgun",nil,nil}
        Player.Ammo = 
        {
            Shotgun  = 0,
            MiniGun  = 0,
            Grenades = 0,
            Stakes   = 0,
            IceBullets = 0,
            Shurikens    = 0,
            Electro      = 0, 
Rifle = 0,
FlameThrower = 0,
            Bolt         = 0,
            HeaterBomb   = 0,
        }
        Player.Health = 100
    end    

end
--==============================


Под строкой и в начале обычно находится скрипт для получения карты, тут уже нужны навыки скриптования, которых у меня нет. Но ничего не мешает вам скопировать стандартные условия со стандартных уровней к себе в уровень.

Вот теперь ваш уровень полностью готов. На этом с созданием уровня покончено.

Если у вас что-то не получается, то вы можете взглянуть на готовую по этому уроку карту, которую можно скачать по этой ссылке.

[signature]
--------------------
{signature}
[/signature]
[fast]Цитировать[/fast] Жалоба
#0
Мастера
  • публикаций
  • комментариев
Всё очень подробно. :) Небольшое уточнение: команда OpenAllSlabs открывает все двери и уничтожает все AmbushForPlayer (если таковые где-то остались). Команда OpenAllSlabsOnly только открывает двери и больше ничего не делает. :)
--------------------
Модификации: Painkiller: Supernatural и Portal: Supernatural
Цитировать Жалоба
#1
Посетители
  • публикации
  • комментария
Ух ты, не знал, спасибо :) Потом исправлю
Цитировать Жалоба
#2
Модераторы
  • публикаций
  • комментариев
Очень интересно было читать :) Приятно написано так сказать...
Вот у меня всегда был один вопрос:в чём разница между действиями OnTouch и ToLaunch?
ToLaunch вроде как моментально производит действие,или что-то другое....
Цитировать Жалоба
#3
Посетители
  • публикации
  • комментария
ToLaunch это та же самая команда что и Launch, но мне проще сразу писать в окне OnTouch т.к. в ToLaunch невозможно использовать команды WaitForCorpses и прочие. Хотя, впрочем, можно через ToLaunch запустить спаунеры, а через OnTouch прописать WaitForCorpses и прочее... В общем - тут уже сами выбирайте, как кому угодно ;)
Цитировать Жалоба
#4
Посетители +
  • публикаций
  • комментариев
Очень класная статья я в васторге :)
Цитировать Жалоба
#5
Посетители +
  • публикаций
  • комментариев
А как поиграть на этом уровне????
Цитировать Жалоба
#6
Посетители +
  • публикаций
  • комментариев
Всё, разобрался. Но почему-то при старте уровня у меня 999 НР!!!!!!
Цитировать Жалоба
#7

Добавить комментарий

Автору будет очень приятно узнать обратную связь о своей новости.

Мы в ВК

***
Фан группа по игре
Большая группа по игре
Первая группа по игре
menuright2
menuright3
menuright4
Сайт работает под управлением DataLife Engine.
© PainkillerClub.ru 2011-2023 | © Design by Мария Андрюшечкина.