Создание карты: двери и лифты
В этой статье:
-
– Создание муверов.
– Триггеры и Event > Tag система.
– Свойства муверов.
– Примеры различных муверов.
Муверы это объекты которые могут передвигатся непосредственно в игровом процессе. В KF это двери, лифты, машины, скейтборды и прочее. Создаются они с помощью статиков и имеют схожие свойства, но также есть ряд дополнительных возможностей.
Создание
Начнем с самого простого. Выберем в Static Mesh браузере меш (дверь например) для будущего мувера. Можно также сделать его с помощью Solid брашей, конвертировав их в статик.
Теперь следует нажать ПКМ на кнопку Add Mover Brush , выберем обычный Mover. Он появится внутри браша-билдера, так что их Pivotы будут совпадать.
На 2D экранах мувер имеет розовые контуры. Созданная дверь имеет закрытое положение, переместим её в нужное место и настроим размер с помощью DrawScale3D.
Закрытая дверь имеет ключ 0, начальное положение. Что бы дверь могла открыватся требуется утановить положение 1, в котором она будет открыта. Для этого следует щелкнуть по двери ПКМ и выбрать Mover > Key 1, после чего передвинуть/повернуть её в положение, в котором она будет открыта.
Если все сделано правильно, то щелкнув по двери снова и выбрав Mover > Key 0, она вернется в начальное положение. Информация о движении выглядит в виде разницы координат, поэтому передвигая дверь в начальном положении, с ней передвинется и её закрытый вариант. Если мы испытаем такую дверь в игре, то она будет открываться при непосредственном контакте с игроком и закрываться спустя определенное время.
Тип активации
Настроить тип активации муверов можно в свойствах во вкладке Object, здесь основным параметром является InitialState.
Из них актуальные:
ConstantLoop – Объект движется постоянно и не требует активации.
TriggerToggle – Мувер меняет положение, только если был активирован Eventoм (используется по умолчанию для всех дверей в Killing Floor).
TriggerOpenTimed – Мувер “открывается” Eventoм, по прошествии определенного времени возвращается в исходное положение.
BumpOpenTimed – Мувер “открывается” при контакте с ним, “закрывается” по прошествии определенного времени (используется по умолчанию для Mover).
StandOpenTimed – Мувер активируется, если на него станут, “закрывается” по прошествии определенного времени.
Триггеры
Триггеры – это активаторы, работают они по простой системе Event > Tag (событие > метка). Это по сути “кнопки” которые могут создавать событие (Event), активирующее что – либо с определенной меткой (Tag). Иными словами это устройство для запуска, и не только муверов. У триггеров и муверов в свойствах есть вкладка Events. В свойствах триггера в поле Event пишется название события (можно придумать любое), а в свойствах мувера в поле Tag – метка. Например:
Триггеры можно найти в Actor Class браузере, во вкладке Triggers. Для дверей подойдут 2 типа триггеров. Это KFUseTrigger (есть также KFElevatorTrigger для лифтов) во вкладке UseTrigger и KFProxyTrigger во вкладке Trigger.
KFUseTrigger используется для стандартных дверей в KF (KFDoorMover), у которых тип активации TriggerToggle. С помощью него двери открываются и закрываются по нажатии кнопки использовать. Выглядит такой триггер как птичья голова и помещается в центр дверей, где будет индикатор заварки. Рассмотрим свойства такого триггера.
Как видно из свойств, за сварку отвечает именно триггер, также двери могут быть закрыты на ключ. Основными параметрами здесь являются:
MaxWeldStrength – Количество очков сварки необходимых для заварки двери на 100%.
ReFireDelay – Задержка в секундах до повторной активации триггера.
Message (во вкладке Use Trigger) – Сообщение на экране, когда игрок находится возле триггера и может его активировать. Если ввести “Press USE key”, то будет выдаваться стандартное сообщение, которое также будет переведено на русский язык при русской локализации.
KFProxyTrigger активируется при каком – либо взаимодействии с ним, имеет больше типов активации но не годится для завариваемых дверей. Свойства:
bInitiallyActive – активен ли триггер изначально.
bTriggerOnceOnly – если True, то триггер может быть активирован только один раз.
ClassProximityType – взаимодействие с определенным классом при TT_ClassProximity.
DamageThereshold – урон необходимый для активации (только если активируется выстрелом)
Message – сообщение в углу экрана при взаимодействии игрока с триггером.
RepeatTriggerTime – время через которое действие триггера повторяется, не актуально для данного триггера.
ReTriggerDelay – задержка в секундах от активации до возможности повторной активации.
TriggerType – тип активации триггера, существуют несколько типов:
TT_PlayerProximity (активация при контакте с игроком);
TT_PawnProximity (активация при контакте с игроками, зомби и ботами);
TT_ClassProximity (активация при контакте с определенным классом, указанном в ClassProximityType);
TT_AnyProximity (активация при контакте с любым материальным объектом);
TT_Shoot (активация выстрелом, триггер при этом становится осязаемым для пуль);
TT_HumanPlayerProximity & TT_LivePlayerProximity (активация при контакте с игроком-человеком и живым игроком, что собственно одно и то же).
Свойства муверов
Муверы имеют довольно гибкие настройки, кроме того, они могут функционировать как триггеры создавая события. Рассмотрим основные свойства характерные для всех муверов. Вкладка Mover:
bDamageTriggered – если True, то триггер (который содержит событие для данного мувера) будет активироваться выстрелом/ударом по муверу.
bTriggerOnceOnly – при True мувер может быть активирован только один раз.
BumpEvent – мувер может создать Event (подобно триггеру) при соприкосновении с ним.
BumpType – тип прикосновения, на который отреагирует мувер (Player – игрок; Pawn – игрок или AI; Any – любой объект)
DamageThereshold – минимальный урон, который необходимо нанести муверу чтобы активировать триггер, при bDamageTriggered = True.
DelayTime – задержка перед началом движения.
EncroachDammage – урон наносимый мувером при столкновении с чем-то, игроку наносится урон вдвое меньше указанного.
KeyNum – текущее положение, также переключается в выпадающем меню. В отличии от выпадающего меню, с помощью этого параметра можно установить больше 8 положений.
MoveEncroachType – реакция мувера на столкновение с игроком или зомби. Имеет 4 типа:
ME_Stop_WhenEncroach (движение останавливается);
ME_Return_WhenEncroach (мувер возвращается в предыдущее положение);
ME_Crush_WhenEncroach (мувер в буквальном смысле убивает препятствие);
ME_ Ignore_WhenEncroach (мувер продолжает движение).
MoverGlideType – тип ускорения. GlideByTime: мувер постепенно ускоряется; MoveByTime: скорость движения постоянная.
MoveTime – время за которое мувер проходит расстояние от одного ключа к другому.
NumKeys – количество ключей-положений. По умолчанию 2, но может быть установлено множество. Каждый отрезок пути проходится за MoveTime.
PlayerBumpEvent – аналогично BumpEvent создает Event, но только при контакте исключительно с игроком.
StayOpenTime – время, которое дверь остается открытой при типе активации OpenTimed.
Вкладки MoverEvents и MoverSounds:
Во вкладке MoverEvents можно задать события которые будут активированы на различных стадиях движения мувера. Во вкладке MoverSounds соответственно задаются сопровождающее движение звуки. Двери в KF создаются как KFDoorMover, они могут быть заварены и в них могут ломится зомби, для таких муверов есть дополнительные свойства.
bBlockDamagingOfWeld – если True, то сварка будет неразрушима и дверь можно будет открыть только при помощи сварочного аппарата.
bDisallowWeld – при True дверь нельзя будет заваривать.
bElevOuterDoorTop/Bottom – являются ли двери верхними/нижними дверьми лифта.
bKeyLocked – закрыта ли дверь на ключ.
bSmallArmsDamage – при True двери можно будет нанести урон не только гранатами.
bStartSealed – будет ли дверь заваренной в начале каждой волны.
bZombiesIgnore – будут ли зомби игнорировать эту дверь, если она заварена.
StartSealedWeldPrc – на сколько процентов будет заварена дверь при bStartSealed.
ZombieDamageReductionFactor – Получение урона от зомби. Чем больше значение, тем быстрее зомби её сломают. Также здесь задаются звуки разрушения двери.
Примеры муверов
С первого взгляда все выглядит очень сложно, но это не так. Ниже приведены описания присутствующих на карте муверов.
Обычная завариваемая дверь
Тип мувера: KFDoorMover
Тип триггера: KFUseTrigger
Все значения стандартные, двери задано 2 ключа-положения (0 и 1). Для данной двери за основу был взят Static Mesh двери из KF-Offices и были заданны те же самые звуки открытия и закрытия. Event триггера и Tag двери = Door1. В свойствах триггера MaxWeldStrength установлен на 200.
Дверь торговца
Тип мувера: KFTraderDoor
Тип триггера: нет (активируется с помощью ShopVolume)
Муверы данного типа не могут быть разбиты, заварены или взорваны. Они открываются и закрываются так же как и все муверы, в KF их зачастую используют в магазинах. Случайно выбранная зона магазина (Shop Volume) на карте по уничтожению волны создает Event подобно триггеру, по прошествии времени закупки Event создается повторно, закрывая дверь.
Подъемник – платформа
Тип мувера: Mover
Тип активации мувера: StandOpenTimed (активируется, когда на него наступают)
Лифты можно делать как и двери, которые открываются вертикально, но в таком случае ими смогут пользоваться только игроки, с чем связано много багов. Лифты – платформы являются простейшими работоспособными лифтами и часто использовались в UT2004. От обычного мувера такой лифт отличается только наличием специальных точек – выходов(LiftExit) и точки – центра(LiftCenter), они находятся в Actor Class браузере во вкладке NavigationPoint. LiftCenter помещается, как несложно догадатся в “центр” лифта – мувера, находящегося в позиции 0 и двигается вместе с ним, на этой точке AI будут стоять во время перемещения лифта. В свойствах LiftCenter, в одноименной вкладке указывается Tag лифта. Точки LiftExit – это условные выходы, через которые боты будут проходить после окончания движения мувера. В их свойствах задается Tag лифта и SuggestedKeyFrame (при каком ключе – положении будет активен этот выход)
Вот собственно и все. Муверы – тема довольно интересная и при наличии фантазии можно создать уникальные вещи. Учитывая что игра разнообразием таковых не балует, ваша необычная идея обязательно запомнится игрокам.
Прочтите также:
Метки: killing floor, moovers, двери, лифты, создание карты
22 дек 2011 в 22:43
спасибо уважаемый
21 янв 2014 в 17:46
Я не могу скачать
08 апр 2015 в 17:46
А как закрыть дверь на ключ в Killing Floor? То есть чтоб дверь в начале игры была закрыта и чтоб её открыть нужно найти ключ который сами же и спрятал я
08 апр 2015 в 17:53
в статье указано свойство триггера
TT_ClassProximity (активация при контакте с определенным классом, указанном в ClassProximityType);
оно может быть использовано для замка с ключом.
Допустим делаешь какое-то кастом оружие (ключ), прячешь его на карте и прописываешь его pickup class в свойство триггера. Игрок находит оружие, несет к двери, выбрасывает около нее и дверь открывается
09 апр 2015 в 1:20
Понял спс, А вот тут ещё одна проблема у меня чего русская SDK То есть в самих свойствах «Ложь, Истина» это » False, True» Но когда русская не могу сменить Ложь(False) на Истину(True) Была одно время англ сейчас везде англ вот только в свойствах какое оно не было но русское, как это справить?
09 апр 2015 в 1:30
в ini файлах где-то rus на int надо исправить
09 апр 2015 в 10:01
Можно по подробнее пожалуйста, буду благодарен
09 апр 2015 в 10:21
Все спасибо разобрался!
09 апр 2015 в 12:14
Вот ещё одна проблема с ключом, я вот допустим прячу ключ в любом месте там где мне нужно, жму на Build All пишет KeyKard No inventory spot for this pickup так же и с оружие и патронами, это можно исправить, буду благодарен!