Сюда кидаем уроки по созданию карт для Unreal Tournament 2004
Муверы (Movers) или Как Сделать Лифт
Мы с вами начнём с создания простейшего мувера – подъёмника, который мы с вами видели на карте BR-Colossus. Итак. Первым делом, убедитесь что вы запустили редактор и прочли статью для начинающих. Затем давайте построим две большие комнаты, соединённые тремя коридорами. Два из них давайте поместим на полу, третий – под потолком. Не забудьте про лампочки! Я также разместил оружие и здоровье в проходах, чтобы они имели хоть какой-то смысл=) Получиться должно что-то вроде этого:
Размещение
Теперь, когда с полигоном покончено, можно приступить непосредственно к размещению лифта. Муверы размещаются очень просто. Достаточно нажать на кнопку Add Mover Brush, что расположена под кнопками типа Add, Subtract, Intercect, Deintersect. Выглядит она как синяя плитка со стрелками в разные стороны Но подождите на неё нажимать, ведь сначала надо выбрать внешний вид лифта! Для этого давайте воспользуемся окном Static Mesh Browser:
Здесь, в пакадже (Package, не знал как перевести) ShiptechHardware, находим модель STlift01 CS. Это и есть тот самый подъёмник с BR-Colossus! Выделяем его название и спокойно нажимаем Add Mover Brush.Подъёмник появится в центре вашей активной кисти (Active Brush). Если вам не нравится положение подъёмника или угол его поворота, поместите подъёмник куда надо (например, на полу перед верхним проходом). Мувер помещён! Однако сейчас он ещё не будет никуда ехать, сколько на него не наступай. Тут я должен немного рассказать о механизме работы муверов. Движение мувера проходит по точкам, называемым ключами (Keys). Нулевой ключ, также называемый базовым (base), является его начальной позицией. Конечной позицией является ключ, прописанный в свойствах объекта, но об этом позже. Управлять ключами до смешного просто. Анимация
Нажав правой кнопкой мыши на наш лифт, в появившемся меню выберите подменю Mover. Перед вами откроется подменю, содержащее 8 ключей, включая базовый:
Теперь выберите пункт Key 1 и смело двигайте мувер в его конечную позицию (под потолком). Вот и всё! Вы создали мувер! Обратите внимание, что если вы переключите мувер обратно в Key 0, выбрав соответствующий пункт подменю, он вернётся в исходное положение. Следует помнить, что в игре мувер появится не в положении нулевого ключа, а в том положении, в котором он находился во время построения карты (Rebuild Level). Поэтому рекомендую вам всё же вернуть его на базовый ключ. Давайте создадим по тому же принципу ещё три подъёмника, дабы два подъёмника поднимали нас вверх с разных сторон прохода, а другие два опускали вниз. Если вы раньше никогда не имели дела со статическими моделями (Static Mesh), вы можете испугаться, ведь как только вы снимете выделение, мувер станет чёрным. Не беспокойтесь - перестройка освещения исправит это, если конечно вы не забыли расставить лампочки :): . Отлично. Теперь давайте займёмся дверями. Двери бывают двух типов: отъезжающие и крутящиеся. И все они создаются посредством муверов - просто одни из них в конечном кадре отодвигают, а другие поворачивают=). Начнём с отодвигаемой двери. Для этого выберем ей модель или создадим свою. Я для этого примера нарисовал дверь в 3DSMax`е. После этого достаточно поставить дверь в проём, затем выбрать второй ключ, переместить её в стену, пол или потолок – это уж по вкусу, и вернуть в исходное положение, выбрав базовый ключ. Вращающаяся дверь делается так же просто. Достаточно вместо задвигания повернуть её. Разместим такие двери по обеим сторонам проходов. Не забудьте поместить лампочки внутрь коридоров, ведь из-за поставленных дверей там теперь будет темно. В итоге у меня получилось вот что:
Вот и всё! Теперь вы умеете создавать простые муверы, вроде дверей или подъёмников. Можете разместить точки старта и протестировать карту. Основные свойства
Напоследок, давайте пройдёмся по основным свойствам мувера: http://xgm.ru/pics/article/625_6.png bTriggerOnceOnly - если значение установлено в true, мувер сработает только один раз, и после этого никогда уже не придет в действие;
BumpType - указывает причины активации мувера (если это конечно не triggermover):
BT_PlayerBump - мувер активируется при прикосновении игрока (например, если вы наступите на лифт); BT_PawnBump - активация наступает при помощи так называемых pawns - подразумевает под собой живые существа, ракеты, ящики, прочие декорации; BT_AnyBump - объединяет два верхних свойства - активация происходит за счет игроков и при помощи pawns;
KeyNum - номер кадра-ключа, в котором на данный момент находится мувер, также является номером кадра-ключа, отвечающим за исходное положение мувера при запуске карты;
MoverEncroachType - определяет поведение мувера в случае блокировки его игроком/актером: ME_StopWhenEncroach - мувер просто замрет, когда дотронется до игрока. Он почти никогда больше не придет опять в движение, даже если Вы дотронетесь до него. Оживить его можно только особо хитрым путём, который здесь обсуждаться не будет (для этого понадобилась бы ещё одна статья). ME_ReturnWhenEncroach - мувер при блокировке вернется в последнее крайнее положение (если лифт спускался - он поднимется опять); ME_CrushWhenEncroach - мувер просто убьет игрока; ME_IgnoreWhenEncroach - в данном случае мувер просто будет двигаться через Вас, как будто никто ему не мешает;
MoverGlideType MV_MoveByTime - мувер будет двигаться с постоянной скоростью; MV_GlideByTime - мувер будет использовать ускорение в начале движения (позитивное ускорение) и в конце (негативное ускорение); MoveTime – время в секундах, за которое мувер переместится из одной ключевой позиции в другую.
NumKeys - количество ключей, которыми будет пользоваться данный мувер. Эта опция позволяет, например, заставить платфому посетить несколько мест. По достижении финальной позиции мувер начнёт движение назад. Если, например, у нас есть точки 1, 2 и 3, то мувер, доехав до точки три, вернётся к точке два, и только потом на исходную поизцию.
StayOpenTime – Время в секундах, в течение которого мувер будет находиться в конечной точке. Автор статьи: HGL
Эта статья научит вас делать "кикеры", те вещи, которые, когда на них становишся, отбрасывают тебя куда-либо.Кикерами называют те вещи, которые, когда на них становишся, отбрасывают тебя куда-либо. В этой статье я научу вас их делать. Для начала создадим сам кикер. Он находится в Actor Class Browser>NavigationPoint>JumpPad. Поместите его у себя на карте. Далее создайте место, куда он будет "кикать" (kick в переводе с английского означает "пинок, удар"). Самое лучшее - это создать в этом месте PathNode. Далее посмотрите его полное имя. Откройте свойства PathNode. Там в разделе Object в пункте Name написано PathNode# (У меня PathNode0) Запомните его имя!
Далее откройте свойства кикера (UTJumpPad), и в разделе NavigationPoint>DorcetPaths>[0] Введите имя вашего PathNode. Сделайте Buld All. Выберите ваш кикер. От него к PathNode будет проведена розовая линия. Проверьте карту. Работает, но нет звука.
Вернемся к свойствам кикера. Звук задается в разделе JumpPad>JumpSound. Откройте Sound Browser и выбирете звук. Чаще всего используют звук wm_BootJmp, из раздела wm_sounds. Выберите звук и в JumpSound Нажмите Use. Все, кикер готов.
Подходящий статик меш можно найти в паке Xgame_rc (выбирайте на поле, где указан какой пак открыт (Нажав Open вы не найдете такой пак)) Автор статьи: COBRA
Добавлено (24.10.2009, 23:21) --------------------------------------------- Tutorial по созданию карт для режима Onslaught
Прежде, чем вы перейдёте к созданию карты, имейтё в виду, что для радара, чтобы работать должным образом карта должна быть основана вокруг главной точки редактора (позиция 0,0,0). Если вы уже начали строить вашу карту, вы можете удерживая нажатыми Ctrl-Alt-Shift и левую кнопку мыши, перетаскивать и перемещать свою карту, чтобы сосредоточить её вокруг середины. Убедитесь, что у вас нет любых actors или скрытых групп прежде, чем вы сделаете это. Кроме того, у названия карты должен быть префикс ONS(напр., ONS-MapName.ut2)
Размещение Power Cores и Power Nodes.
Power Cores - Как большинство игровых целей объектов, Power Cores скрыты в Actor Browser под NavigationPoint > > JumpDest > > JumpSpot > > GameObjective. Они находятся там под DestroyableObjective > > ONSPowerCore > > ONSPowerCoreRed и ONSPowerCoreBlue. Так как я предпочитаю красный, давайте выберем его и добавим к нашему уровню.
Теперь откроем его свойства и посмотрим.
Как вы можете видеть, большинство свойств производят изменение звуков комментариев и звуков, которые Power Core издаёт, и есть настройки, чтобы изменить свечение, которое Power Core использует, когда это разрушается. Некоторые из свойств типа ConstructionTime только относятся к контрольным точкам Power Core, так что они не будут иметь никакого эффекта на Power Core. В принципе, вы можете просто добавить его, и не изменять никакие свойства.
Power Nodes - находятся под ONSPowerCore > > ONSPowerNode > > ONSPowerNodeNeutral.
Если мы посмотрим на свойства Power Node, мы увидим, что они - почти такие же как Power Core.
Вообще, вы не обязаны изменять что-нибудь. Прежде, чем мы продолжим, вы должны также разместить Player Starts около каждого узла и Power Core. Это делаеться правым щелчком мыши в viewport, и выбором Add PlayerStart Here. Вы должны разместить достаточно много, чтобы уберечь игроков от случайного появления в одной точке, когда игра начнётся. Игрок появляется у самого близкого к нему Power Node или Power Core.
Создание Default Link Setup
Теперь у нас есть красный и синий Power Core и все Power Nodes на местах, но если мы войдём в игру, ни один из Power Cores или Power Nodes не обнаружится! Это происходит, потому что мы должны создать default link setup. Это делается в игре. Запустите вашу карту и нажмите кнопку Escape, чтобы вызвалось меню. Щелкните на вкладке Map, и вы увидите, что экран установки контрольных точек незаполнен, если не считать вашу позицию.
Нажмите кнопку Link Designer, чтобы вызвалось меню установки связей.
Это и есть место, где мы создадим нашу установку контрольных точек. Сначала щёлкните по кнопке Clear Links. Потом щелкните на контрольной точке или реакторе, и затем щелкните на другой контрольной точке или реакторе, чтобы создать связь между ними. Выполнение этого снова нарушит связь, если вы сделаете ошибку. Помните что, контрольные точки без связей не будут показываться в игре, и этого узлы, которые только связаны с Power Core одной команды, никогда не могут быть захвачены другой командой. Как только мы закончим установку связей, нажимаем кнопку Export To UnrealEd и выходим из игры.
Вернувшись к нашей карте, щелкните правой кнопкой мыши где-нибудь и выберите Edit >> Paste >> Here, чтобы вставить ONSPowerLinkOfficialSetup Actor в вашу карту. Этот actor содержит default link setup, которую вы создали, и которую нельзя отредактировать. Если вы захотите изменить её позже, просто удалите и вернитесь в игру, чтобы создать новую. Вы можете также создать больше чем одну установку, но убедитесь, что дали им различное имя в Link Designer прежде, чем вы экспортируете их. Одна из них должна всегда называться Default.
Добавление Транспортных средств, Телепортов и Точек с оружием
Транспортные средства - наиболее важное новое дополнение к UT2004, транспортные средства - важная часть карт Onslaught, хотя вы можете сделать карту без них, если захотите. Транспортные средства находятся в SVehicleFactory >> ONSVehicleFactory, а защитные turrets находятся в Pawn >> Vehicle >> ONSWeaponPawn >> ONSStationaryWeaponPawn >> ONSManualGunPawn. Транспортные средства автоматически связывают себя с самыми близкими Power Node или Power Core, машины связанные с Power Core появляются немедленно.
Имеется только один пункт, в котором мы относительно заинтересованы, bReverseBlueTeamDirection. Он означает должна ли машина повернуться в другую сторону при появлении, если синяя команда владеет ею, например Scorpion в центральной точке в Torlan. Если оставлено False транспортное средство будет всегда появляться направленным туда, куда вы установите в UnrealEd. Имеются другие свойства, которые могут быть изменены, но они не будут иметь никакого эффекта в игре, если вы не знаете, как ими пользоваться.
Телепортирующие точки(ONSTeleportPad) - они позволяют вам телепортироваться в другое местоположение, если вы управляете этой точкой, это подобно центральной контрольной точке в Torlan. Они автоматически связывают с самым близким powernode, так что вы не должны делать что - нибудь, кроме как разместить их. Имейте в виду, что вы будете нуждаться в playerstarts вокруг точки, чтобы было возможно телепортироваться к ней.
Точки с оружием - Они находятся под Pickup >> WeaponLocker.
Нажмите Add рядом с Weapons, помещает новое оружие в точку с оружием, и затем WeaponClass (тип оружия) и ExtraAmmo - патроны, которые даются любому, кто подходит к точке. Вы можете добавлять столько оружия, сколько вы захотите. Кстати - хорошая идея положить один Link Gun в каждую точку, так как это единственные оружие, которое может лечить контрольные точки и транспортные средства.
Транспортные средства
Наземные транспортные средства - ботам, чтобы ездить на машинах по карте, нужны специальные pathnodes. Для наземных транспортных средств наподобии Goliath или Scorpion, вы должны использовать NavigationPoint >> PathNode >> RoadPathNode actors. Это работает так же, как обычные pathnodes, но указывает ботам, как водить транспортные средства по вашей карте. Они будут также использоваться ботами, которые не в транспортных средствах. После того, как вы расставите все pathnodes не забудьте нажать кнопку Build Paths, Build Changed Pathes (удобнее всего) или Build All. Если вы нажмёте правой кнопкой мышки в верху 3D viewport и выберите View >> Show Paths, вы сможете увидеть вашу сеть дорожек после того, как вы их поставили. Белые paths должны присутствовать всегда, так как боты неспособны вести большие транспортные средства типа Leviathan вдоль зеленых или синих paths.
Летающие Транспортные средства - Для Raptor, вы должны будете добавить NavigationPoint >> PathNode >> FlyingPathNode actors. Эти специальные PathNodes только формируют дорожки между друг другом и дорожками на земле, если их границы накладываются на них, хотя в большинстве случаев это будет автоматически регулироваться. Нажмите правой кнопкой в вершине любого viewport и выберите Actors >> Radii View to see the collision of actors you have selected, которых вы выбрали, и вы можете наблюдать, как изменяются границы, когда вы перемещаете pathnodes. Эти дорожки будут всегда оранжевыми, если ForcedPaths не используется, чтобы соединить их.
Заключительная часть
Наладка радарного диапазона и добавление радарного изображения карты - если ваша карта невероятно большая или, наоборот, маленькая, вы можете заметить, что с радарной картой случаются сверхестественные вещи, типа Power Cores или Power Nodes у границ пустого экрана. С другой стороны, могут быть слишком близко друг к другу, если карта маленькая. Кроме того, может не соответствовать размер изображения. Чтобы получить правильный размер, вы должны будете отрегулировать диапазон в Level Properties. Нажмите View >> Level Properties и откройте вкладку RadarMap.
В большинстве случаев, оставляя bUseTerrainForRadarRange как True будет работать, но иногда, если вы идете слишком близко к краю ландшафта или владеети Power Nodes и т.д. близко от края ландшафта, это не будет считаться правильным. В этих случаях, установив bUseTerrainForRadarRange к False и вручную регулируя CustomRadarRange сделает изображение полностью соответствующим. Имеется также параметр bShowRadarMap, чтобы выключить радарную карту вообще.
Выбрать изображение для радарной карты используя, импортированную 256 на 256 текстуру (предпочтительно в package под названием mylevel) и ввести это в настройках RadarMapImage.
Цвет Пыли - Scorpion, поднимающий коричневую пыль на снегу, покрывающим планету, выглядит не очень натурально. Чтобы изменить цвет пыли, которую транспортные средства поднимают, используется вкладка DustColor, которая находиться в Level Properties.
StallZ - Это используется, чтобы уберечь Raptor от продвижения слишком высоко в вашем уровне. Выше этого места они остановятся, и будут вынуждены опуститься. Эта опция появиться, если нажать и выбрать View >> Level Properties >> LevelInfo >> StallZ, и появиться, как синяя линия в 2d viewports. Автор статьи: Factor
Добавлено (25.10.2009, 09:42) --------------------------------------------- Вступление. Часть 1.
Этот документ создан с целью ознакомить начинающих мапперов с редактором для игр на движке Unreal. В этот туториале вы не только узнаете как создать свой первый уровень, но и получите ценные советы и рекомендации от профессионалов.
Философия UnrealED.
Философия построения уровней в UnrealED достаточно оригинальна и может поначалу показатся достаточно сложной, и в тоже время однажды с ней ознакомившись вы поймете, что лучшего принципа человечество еще не придумало 8) Итак представьте себе бесконечное "ничто". Посредством редактора вы как бы вырезаете пространство в этой безжизненной массе. Постепенно, комнату за комнатой наполняете жизнью безжизненный доселе мир...
Примечание! Даже к такому, казалось бы простейшему занятию, как вырезание комнат относитесь крайне серьезно, потому как в процессе создания из за вашей собственной небрежности могут возникнуть так называемые BSP Holes. (Искажения)
Создаем базовое пространство.
Инструменты, которыми вы будете создавать пространство называются Brush Builders. Они представляют из себя набор стандартных примитивов благодаря которым вы сможете выдавливать или добавлять пространство на уровне. Это не единственный способ создания брашей на уровне. Так же существует 2D Shape Editor, однако его сложно назвать основным инструментом, потому как используется он реже и в более специфических случаях. Поговорим о нем в другом туториале, сейчас же вернемся к стандартным примитивам. Для каждого из примитивов вы можете вызвать меню свойств просто кликнув на соответствующей кнопочке примитива правой клавишей мыши. В опциях вы сможете выставить размер предполагаемого браша: высоту, ширину и длинну + некоторые специфические параметры присущие только определенной геометрической форме. После того, как вы определились с размерами будущего браша либо просто кликните левой кнопкой мыши на кнопочке с изображением геометрической формы, либо нажмите кнопку Build в свойствах браша. Вы увидите, что во всех вьюпортах появилась геометрическая форма, состоящая из красных линий. Это и есть выш еще не выдавленный браш.
Примечание! Вы можете менять размеры браша только когда он находится в том состоянии, в котором мы только что оставили наш браш. Если вы его уже выдавили или добавили, то изменить его размеры уже нельзя!
Ну что ж. Пришла пора выдавливать наш браш нажав кнопку Subtract.
Закрепляем материал. Выдавите прямоугольный браш с размерами 256х512х1024
Наложение текстур.
В UnrealED вы накладываете текстуры на стены посредствам Браузера текстур. Выделите одну из стен. Затем в браузере текстур выберите нужную текстуру и кликните по ней. Таким образом текстура наложится именно на ту стену, которую вы только что выделили.
PlayerStart это одна из тех вещей, без которых ваш уровень не запустится впринципе. Это та точка, с которой будет стартовать ваш персонаж или бот. Размещение Player Start просто до неприличия. Щелкаем левой кнопкой мыши по поверхности, и в выскочившей менюшке выбираем опцию PlayerStart. После чего на поверхности должен появится соответствующий значек.
Примечание! Следите за тем, что бы значек PlayerStart был расположен максимально близко к поверхности. Иначе редактор не будет адекватно воспринимать эту точки и будет постоянно выдавать ошибку!
Закрепляем материал. В нашей созданной и затекстуренной комнате разместите точку PlayerStart.
Добавляем свет на наш уровень.
Последним штрихом перед запуском нашей карты является освещение. Для того, что бы добавить в нашу комнату света просто кликните правой клавишей мыши на любой из стен своей комнаты и в выпавшем меню выберите AddLightHere. После чего на стене появится изображение лампочки означающее, что на данном участке карты свет добавлен. Если вы хотите подредактировать свойства источника освещения, то кликните на ломпочке правой кнопкой мыши и выберите LightProperties. Выскочит окошко с множеством менюшек, где вы сможете поменять цвет освещения, его яркость, контраст.... и тд.
Закрепляем материал. Добавьте в свою комнату столько источников света, сколько посчитаете нужным.
Rebuild!
Rebuild (пересчет) это по сути закрепление тех изменений, которые вы внесли на уровне. Без выполнения этой операции на рекомендуется запускать уровень вообще, потому как редактор может просто не запомнить тех изменений, которые вы только что внесли. Выберите в верхнем меню опцию Rebuild и в опциях выберите Rebuild All (пересчитать все).
Закрепляем материал. Выполните пересчет уровня.
Запускаем уровень из редактора.
После того как вы выполнили Rebuild уровня вам его нужно сохранить. Выбираем меню File, из ниспадающего меню выбираем Save Обратите внимание, что в начале названия вашей карты должны стоят буквы, обозначающие тот режим игры, для которого вы собственно эту карту и делаете. В данном случае давайте ограничимся самым простым - DeathMatch, который обозначается как DM. Итак, если ваша карта называется Pupkin, то по науке, в папке Maps игры она должна называтся DM-Pupkin. Теперь найдите в верхнем меню кнопочку PlayMap! и вуаля! Если вы все сделали правильно то, после нескольких мгновений вы уже будете гонять по своей, только что созданной карте! Пусть она и простенькая, но сколько перпектив вы окрыли для себя сегодня! Клифф Блезински будет закусывать валидолом!
Закрепляем материал. "Правильно" сохраните вашу карту. Запустите ваш уровень из редактора. Автор статьи: Неизвестно
Добавлено (25.10.2009, 09:43) --------------------------------------------- Общая информация. Часть2
Добавляем контент на уровень.
Есть множество способов добавления своего контента на уровень. Вы можете оперировать BSP ( работа брашами), добавлять как собственные, так и уже имеющиеся статик меши (Statik Meshes), создавать ландшафт, "рисовать" объекты посредством 2d Shape Editor. Ниже, более детальное описание нескольких вышеперечисленных способов.
Работа с BSP. Краткие рекомендации.
1.При работе с брашами настоятельно рекомендуется оставить сетку (Grid) включенной. На первый взгляд неочевидно, но сетка очень сильно помогает в планировке точной геометрии на уровне.
2.Для минимализации возможности появления BSP Holes настоятельно рекомендуется как можно внимательнее производить операции Intersect (для Subtract) и Deintersect (для Add).
3. Как можно чаще "ребилдите" (Rebuild) свою карту. Так как не все изменения могуть быть видны в реальном времени. Это актуально в первую очередь для изменений в освещении и работе с брашами.
Размещение статик мешей(Static Meshes) на карте.
Статик меш - это модель, созданная в таких пакетах трехмерного моделирования как 3Ds Max, Maya или LightWave, импортированная в UnrealED. В основном статик меши используются в декоративных целях. Однако не редки случаи, когда практически весь уровень состоит из одних статик мешей (например проект Devastation). Однако не переусердствуйте с количеством статик мешей на уровне, потому как статик меши это впринципе самая высополигональная составляющая уровня, а потому напрямую влияющая на быстродействие игры. Просмотр статик мешей возможен посредством браузера статик мешей (Static Mesh Browser). Это одна из закладок в браузере ресурсов.
Ньюансы UnrealED
1. Старайтесь не называть паки с ресурсами одними и теми же именами.(файлы, которые содержат ресурсы игры называют паками). Допустим, у вас есть затекстуреный статик меш дерева. Большинство начинающих мапперов естественно называют паки примерно следующим образом Trees.utx (для текстур) и Trees.usx (для статик мешей). Увы, но как показала практика редактор напрочь отказывается воспринимать подобные вещи. В лучшем случае, вы просто не увидите на уровне вашей модели, в худшем у вас не запустится UT, потому что обнаружит конфликт ресурсов.
2. Не забывайте сохранять свои созданные и измененные паки. Если вы не сохранили свой свежесозданный или измененный пак с текстурами или статик мешами, то вы просто не увидите их на уровне.
3. При импорте своей модели в игру не забывайте назначить ей анимацию (Link Animation To Mesh).
4. Волшебные свойства Face Backdrop. Нередки случаи, когда маппер забывает разместить на своей карте освещение, из за чего в игре на уровне "хоть глаз выколи". При этом грамотный уровень требует грамотного освещения, на которое порой тратится не меньше времени, чем на создание самой карты. Временное решение данной проблемы состоит в выставлении опции Face Backdrop в свойствах поверхности. Благодаря этому свойству поверхность будет освещена дневным светом независимо от источников динамического освещения.
5. Не забывайте ребилдить уровень. Очень и чень многие изменения в редакторе окончательно реализуются только после очередного ребилда, а без оного работать не смогут.
6. Оставляйте сетку(Grid) включенной. Многие мапперы недооценивают практическую пользу сетки, в то время как именно она является залогом высокоточного воспроизведения геометрии на уровне, что в свою очередь является одним из столпов стабильной работы уровня (помните о BSP Holes!). Интерфейс. Эту статью нужно понимать скорее не как туториал по созданию чего либо, а как справочник, к которому вы будете обращатся время от времени.