Маппинг и SDK

Создание карт для Killing Floor: Полный гайд по SDK

Хотите создать собственную карту для Killing Floor? Игра использует Unreal Editor 2.5 (на базе технологии Unreal Tournament 2004). Этот гайд проведёт вас от нуля до полностью играбельной карты.

Панель KF Editor с иконками браузеров Панель инструментов KF Editor с иконками браузеров ресурсов.

Часть 1: Установка и Настройка

Установка SDK

  1. Откройте Библиотеку Steam.
  2. В выпадающем меню (где написано "Игры") выберите Инструменты (Tools).
  3. Найдите Killing Floor SDK и установите его (~2ГБ).
  4. Запустите из Steam или из KillingFloor/System/UnrealEd.exe.

Первый запуск

При первом открытии Unreal Editor вы увидите:

  • 4 вьюпорта: Сверху, Спереди, Сбоку (ортографические) и 3D Перспектива.
  • Панели инструментов: Слева (брашы, CSG операции) и сверху (файл, билд, плей).
  • Окна браузеров: Доступны через меню View (Текстуры, Актёры, Статические меши).

Совет по производительности

Если редактор тормозит, зайдите в View -> Preferences и уменьшите "Grid Size" до 16 или 8. Большая сетка может лагать на старых машинах.


Часть 2: Управление камерой

Управление камерой в Unreal Editor 2.5 непривычное для современных пользователей. Практикуйтесь в 3D вьюпорте:

ДействиеУправление
Вперёд/Назад + ПоворотЛКМ + Драг
Осмотр (Свободное вращение)ПКМ + Драг
Стрейф (Вверх/Вниз/Влево/Вправо)Обе кнопки + Драг
ЗумКолёсико мыши
Телепорт камеры к объектуКлавиша Home

Совет: Используйте ортографические виды (Top, Front, Side) для точного размещения, а 3D вид — для проверки внешнего вида.


Часть 3: Понимание субтрактивной геометрии (BSP)

Unreal Engine 2 использует Субтрактивный BSP (Binary Space Partitioning). Это принципиально отличается от современных движков вроде Unity или UE5.

Концепция

  • Мир начинается как бесконечный твёрдый блок (пустота).
  • Вы вычитаете (вырезаете) пустое пространство, чтобы создать комнаты.
  • Затем можете добавлять твёрдую геометрию обратно внутри вычтенного пространства (колонны, платформы).

Красный Builder Brush

Красный проволочный каркас, который вы видите — это "Builder Brush" — ваша формочка для печенья.

  • Он не существует в игре. Это просто шаблон.
  • Вы используете его для определения форм, затем применяете CSG операции (Subtract, Add).

Часть 4: Создание первой комнаты

Шаг 1: Установите размер Builder Brush

  1. На левой панели найдите иконку Куба.
  2. ПКМ по ней, чтобы открыть свойства.
  3. Установите Height, Width, Breadth на 1024 каждый (комната 1024x1024x1024).
  4. Нажмите Build.

Шаг 2: Вычтите комнату

  1. Разместите красный Builder Brush там, где хотите комнату (используйте ортографические виды).
  2. На левой панели нажмите кнопку "Subtract" (куб с дыркой/минусом).
  3. Появится сине-фиолетовый каркас — это ваше вычтенное пространство (комната).

Шаг 3: Проверка

Нажмите F8 для перестройки геометрии или Build -> Build Geometry. Затем проверьте 3D вьюпорт — вы должны увидеть пустой куб.


Часть 5: Добавление текстур

Серая комната скучна. Добавим текстуры.

Открытие браузера текстур

  1. Перейдите в View -> Texture Browser (или нажмите иконку текстуры на панели).
  2. Нажмите File -> Open в браузере.
  3. Перейдите в KillingFloor/Textures/ и откройте файл .utx (например, KF_Generic_textures.utx).

Применение текстур

  1. В браузере текстур кликните на текстуру для выбора.
  2. В 3D вьюпорте кликните на поверхность (стена, пол, потолок) вашей комнаты.
  3. Текстура применена.

Настройка текстур (Выравнивание)

Если текстура выглядит растянутой или смещённой:

  1. Выберите поверхность (кликните на неё в 3D виде).
  2. Откройте Surface Properties (нажмите F5 или ПКМ -> Surface Properties).
  3. Настройте Pan (смещение), Scale (размер) и Rotation.
  4. Используйте "Align to Floor" или "Align to Wall" для быстрой настройки.

Часть 6: Освещение

Освещение на KF-Waterworks Пример освещения на карте KF-Waterworks.

Карта без света — кромешная тьма.

Добавление базового света

  1. В 3D вьюпорте ПКМ на поверхность (внутри комнаты).
  2. Выберите Add Light Here.
  3. Появится иконка лампочки. Отодвиньте её от стен (свет слишком близко к поверхностям создаёт артефакты).

Настройка свойств света

  1. Дабл-клик на актёре света, чтобы открыть свойства.
  2. В LightColor установите LightBrightness (интенсивность) и LightHue/LightSaturation (цвет).
  3. В Lighting установите LightRadius (как далеко распространяется свет).

Перестройка освещения

Нажмите F8 или Build -> Build Lighting. Это рассчитывает тени и карты освещения. Делайте это каждый раз после добавления/перемещения света.

Советы по освещению

  • Используйте несколько источников. Один свет в центре выглядит плоско. Размещайте свет в углах.
  • Варьируйте цвета. Тёплый оранжевый для факелов, холодный синий для лунного света.
  • Тени важны. Высокий контраст создаёт атмосферу.

Часть 7: Точки спавна игроков (PlayerStart)

Игрокам нужно где-то появляться.

Добавление PlayerStarts

  1. ПКМ на полу.
  2. Выберите Add PlayerStart Here.
  3. Появится иконка джойстика. Здесь будет появляться игрок.
  4. Добавьте 6 PlayerStarts для полной команды (KF поддерживает до 6 игроков).

Советы по размещению

  • Расставляйте их на расстоянии, чтобы игроки не спавнились друг на друге.
  • Размещайте в безопасной зоне (не в центре ZombieVolume).
  • Направьте их лицом к действию (поверните актёра).

Часть 8: Навигация (PathNodes)

Сеть путей на карте Killing Floor Сеть путей ИИ, отображённая на карте Killing Floor.

Зедам (и ботам) нужна навигационная сетка для передвижения. В UE2 это делается с помощью PathNodes.

Добавление PathNodes

  1. Откройте Actor Class Browser (View -> Actor Class Browser или иконка шахматной пешки).
  2. Перейдите: Actor -> NavigationPoint -> PathNode.
  3. ПКМ на полу в 3D вьюпорте -> Add PathNode Here.
  4. Размещайте PathNodes каждые 256-512 юнитов по всей карте, как хлебные крошки.

Построение путей

После размещения PathNodes:

  1. Нажмите F8 или Build -> Build Paths.
  2. Редактор нарисует розовые/голубые линии, соединяющие ноды. Это маршруты навигации ИИ.

Отладка путей

Если линии красные — путь заблокирован (что-то мешает). Если линий нет — ноды слишком далеко друг от друга.


Часть 9: Спавн зомби (ZombieVolumes)

Зеды появляются из ZombieVolumes — невидимых боксов, которые вы размещаете на карте.

Создание ZombieVolume

  1. Создайте Builder Brush размером с зону спавна (например, 512x512x256).
  2. Разместите его там, где хотите спавн зедов (задняя комната, вентиляция, вне видимости).
  3. На левой панели нажмите Add Volume (или ПКМ по кнопке Subtract).
  4. В диалоге выберите ZombieVolume из списка.
  5. Нажмите OK. Появится фиолетовый объём.

Свойства ZombieVolume

Дабл-клик на объёме для открытия свойств:

  • bEnabled: Должны ли здесь спавниться зеды? (True по умолчанию)
  • MaxZombies: Максимум зедов, которые могут спавниться здесь одновременно.

Совет: Размещайте ZombieVolumes вне поля зрения игроков. Спавн зедов на глазах выглядит плохо.


Часть 10: Торговец (Магазин)

Игрокам нужен Торговец для покупки оружия между волнами.

Добавление Торговца

  1. Откройте Actor Class Browser.
  2. Перейдите: Actor -> KFTraderActivator (или поиск "Trader").
  3. ПКМ на полу -> Add KFTraderActivator Here.
  4. Разместите связанный ShopVolume вокруг зоны торговца.

Пути к Торговцу

Зеды НЕ должны заходить в зону Торговца во время торговли. Это контролируется ShopVolume — блокирующим объёмом.

  1. Создайте Builder Brush вокруг Торговца.
  2. Добавьте его как ShopVolume.
  3. Настройте его свойства для блокировки зедов во время Trader Time.

Часть 11: Тестирование карты

Быстрый тест (PIE - Play In Editor)

  1. Нажмите иконку Джойстика на верхней панели (или Alt+P в некоторых версиях).
  2. Вы появитесь на карте. Походите, проверьте на ошибки.
  3. Нажмите Escape для выхода.

Полный тест (Скомпилированная карта)

  1. Сохраните карту: File -> Save As -> KF-YourMapName.rom (должно начинаться с KF-).
  2. Сохраните в KillingFloor/Maps/.
  3. Перейдите в Build -> Build All для компиляции геометрии, освещения и путей.
  4. Запустите Killing Floor, начните Solo, выберите вашу карту.

Часть 12: Частые ошибки и решения

ОшибкаПричинаРешение
Карта полностью чёрнаяНет света или освещение не перестроеноДобавьте свет, нажмите F8
Зеды не спавнятсяНет ZombieVolumes или пути сломаныДобавьте ZombieVolumes, перестройте пути
Игрок проваливается сквозь полДыра в BSP (плохая геометрия)Проверьте на пересекающиеся брашы, перестройте
Ошибка "Ran out of BSP"Слишком много брашейУпростите геометрию, используйте Static Meshes
Текстуры отсутствуютПакет текстур не загруженДобавьте .utx в MyLevel или укажите в свойствах карты

Часть 13: Продвинутые темы (Краткий обзор)

Static Meshes

Для сложных объектов (мебель, машины) используйте Static Meshes вместо BSP. Они эффективнее.

  1. Откройте Static Mesh Browser.
  2. Загрузите пакет (например, KF_Generic_SM.usx).
  3. ПКМ во вьюпорте -> Add Static Mesh.

Двери (Movers)

Двери — это актёры Mover. У них есть ключевые кадры (открыто/закрыто) и триггерные события.

Скриптовые события

Для карт Objective Mode нужны KFStoryGameInfo и скриптовые триггеры. Это продвинутый уровень и требует знания UnrealScript.

Скайбоксы

Карты на открытом воздухе используют актёры SkyZoneInfo для рендера неба. Добавьте маленькую комнату скайбокса с SkyZoneInfo, затем используйте текстуру FakeSkyBox на потолках.

Броня и предметы на карте

Ответ BAHO из темы «Разбросать броники по карте. Как?» (форум killingfloor.ru): во вкладке Actor Classes найдите KFPickupFactory_Item, выделите его левой кнопкой, затем в нужном месте карты кликните правой и выберите Add KFPickupFactory_Item. В его свойствах укажите, что должно появляться в этом месте и с какой вероятностью. На вопрос, как сделать коробку патронов, которую может взять каждый игрок, w.a.l ответил, что это равносильно бесконечным патронам, и предложил ставить респаун 1 секунду или меньше; BAHO считал, что по-настоящему это делается только мутатором.

Режим карты (DefaultGameType)

Карта, рассчитанная только на режим задач (Objective Mode), по совету CreeP из темы «Изменение режима» переводится в обычный режим так: откройте её в KF SDK и в LevelProperties, в блоке LevelInfo, поменяйте DefaultGameType на свой геймтайп; для стандартного впишите KFMod.KFGameType. w.a.l советовал также переименовать префикс KFO- в KF-. Учтите: после этого карта запускает обычные волны, а элементы режима задач со стандартным геймтайпом, по словам CreeP, работать не будут.

Дополнения

  • Размер объекта. Совет K-2 из темы карты Military Parking: в свойствах объекта, во вкладке Display, есть параметр DrawScale — им меняется размер.
  • Перенос объектов из другой карты. Способ K-2 из той же темы: ПКМ -> Edit -> Copy, откройте свою карту, ПКМ на какой-нибудь поверхности -> Edit -> Paste -> Here, дальше расставьте как нужно. Если вставленный объект не находится, попробуйте вставлять на разных поверхностях.
  • Порты из UT. В теме карты Tombs of RA K-2 открыл порт в редакторе, и ему не хватило пакетов BarrensArchitecture, BarrensArchitecture-Scion и UCGeneric; после копирования их из UT потянулась цепочка других (AbaddonArchitecture\Architecture-epic\terrain, AW-Alleria, BarrensTerrain, CubeMaps и т.д.). Его совет: перед публикацией удалите из KF все паки текстур из UT и проверьте, что карта работает.
  • Подвисание в начале волны. По наблюдению K-2 из темы «Лаги при смене волны»: на картах, где не добавлено ни одной точки случайного спавна патронов или оружия (или хотя бы патронов), игра может подвисать на несколько секунд в начале игры и при смене волны, когда эти предметы появляются: она пытается их найти и сканирует карту повторно. Встречается не везде, но такие карты он видел. Если же подвисает на всех стандартных картах, причина в другом.
  • Зона для зрителей, которую игнорируют мобы. В теме «Тренировочный лагерь [задумка]» для карты, где игроки за стеклянным забором только наблюдают за боем, Flame советовал ставить bIsPlayer в контроллере игрока на false: иначе зомби будут пытаться к нему лезть, а при false будут считать его своим (по его словам, в игровом процессе могут быть некоторые проблемы). Автор карты FearStarter предложил другой путь: не прокладывать за полем пути из pathnode'ов, тогда мобы пойдут только к игрокам на поле, а если там никого нет, подойдут к ближайшему к забору патноду. В теме оба способа не проверялись. Похожие арены с прозрачными стенами есть на Funmap.

Ресурсы

Этот гайд охватывает основы. Мастерство в создании карт приходит с практикой — начните с простого, итерируйте и учитесь на официальных картах, открывая их в редакторе.