МАГИСТЕРИУМ в T3Ed:   создать, избавиться, исправить

Автор Tiens, 28 сентября 2009 13:06:40

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

Savar

ЦитироватьВ The Oldstone Castle есть комната, где мебель летает
А как уменьшить скорость передвижения обьектов?

Tiens

Цитата: Savar от 12 декабря 2010 17:00:09А как уменьшить скорость передвижения обьектов?

Уменьшай цифры в этом разделе:

- PhysicsAction:
        * SwingAction:
                -> MaxForce:
                        => X = 600
                        => Y = 500
                        => Z = 700
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Savar


Tiens

ВОПРОС:   Мне нужна рабочая дверь-глиф, такая же как те, что в Библиотеке оригинала Т3 и на улицах спрятаны. Беру из редактора, а также копированные - но они не активные. Нажать и открыть не получается. Как заставить её работать?

Что ж, этот ларчик просто открывался. Ведь в Т3 глифы становятся доступны только после определенных событий, т.е. чтобы иметь такую способность с самого начала миссии, то наступление этих событий надо "симулировать".

Итак, во-первых, лучше брать дверь из Actor Browser: World Obj -> Environmental -> Special -> KeeperGlyphDoor2FT (на неё уже всё, что надо, прицеплено). Во-вторых, добавь твоему PlayerStart вот такой скрипт:

COND:
- When player starts map.
ACT:
- Set flag [CS_HasKeeperDoorGlyph] to [TRUE] expires on map change [FALSE] expires on mission [20]

Этот флаг уже есть в списке, так что найти его будет просто.


ВОПРОС:   С дверью-глифом получилось, спасибо. Но при тесте в игре виден только дверь-блок, а короб появляется только, когда нажимаешь глиф. Это почему?

Потому что именно так работают хранительские двери во всем Городе. Сначала ты видишь гладкую стену с глифом, а нажимая на глиф получаешь дверной проём. А иначе с чего бы вдруг они стали "секретными проходами Хранителей"?
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:   Можешь мне помочь разобраться с магазином? Я не могу понять, как там идёт нумерация продаваемых предметов. Когда я навожу курсором что-то купить, то некоторые предметы неправильно наводятся.

В данном случае - проблема не в нумерации.

Дело в том, что под "ячейками магазина" игра понимает определенное положение ("место") под товар на экране. Когда курсор наводится в это самое место, появляется возможность купить предмет и соответствующая надпись. При этом не важно, где именно в данный момент предмет находится визуально. Главное, что он присутствует на карте и что за ним в его свойствах закреплена определенная ячейка магазина.

Думаю, сделать всё заново будет легче, чем что-то исправлять. Итак, по шагам:

1) удали свой товар и PlayerStart магазина, а затем скопируй и поставь на это место весь товар (тот, что на столе) и PlayerStart из какого-то из родных магазинов TDS. PlayerStart очень важен - он задает правильное расстояние от игрока до товара. Также надо соблюсти расстояние от PlayerStart-a до пола - тогда товар не окажется визуально выше своих ячеек.

2) Теперь смотрим на товар и ячейки, что он занимает:

1 - обычная стрела
2 - шумовая
3 - водяная (или еще какая-нить стрела элементов)
4 - вспышка
5 - лечилка
6 - мина
7 - газовая бомба
8 - масло

Замени родной товар своим в следующих ячейках:

1 - отмычки
2 - лечилка
4 - святая вода
6 - масло
8 - фонарик

Остальной товар - удали.

3) Теперь каждому из своих товаров поставь в свойстве Store -> Store Window Number номер той ячейки, в какой он стоит.
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:   Как сделать так, чтобы источник света был, но не влиял на "кристалл освещенности" Гарретта ("Light Gem")?

Добавь источнику света свойство Light Level -> Light Level Weight = -1.00 и Гарретта не будет видно даже прямо под лампой. Только заодно поменяй этому источнику света цвет, чтобы народ не принял это нововведение за глюк.

Кстати, если в этом свойстве поставить значение 5.00, то Гарретт окажется ярко освещен сразу же, как только войдет в радиус светового пятна.
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:   Я хочу, чтобы в моей миссии были мои видео-ролики, но T3Ed не понимает формат AVI. Что делать?

Видео можно конвертировать из AVI в BIK с помощью проги RAD Video Tools (Bink Video): http://www.radgametools.com/bnkmain.htm

После конвертации ролик надо назвать ***_engl_none_30.bik и поместить в папку ...CONTENT\T3\VideoTextures. Учти, что во всех ссылках T3Ed на это видео ролик должен называться ***.bik (без приписки "_engl_none_30").


ВОПРОС:   А если мне нужен отрывок или кадр из родного видео из TDS?

Тогда нужно:

1) Конвертировать ролики из BIK в AVI с помощью RAD Video Tools (Bink Video). Этой же прогой можно разложить BIK на кадры в форматах JPG, BMP, TGA и других.

2) Отредактировать получившийся AVI. Например, с помощью проги Virtual Dub:
страница создателя - http://www.virtualdub.org/
скачать - http://sourceforge.net/projects/virtualdub/
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:   А существуют ли ещё какие-либо сайты с туториалами по T3Ed?

ССЫЛКИ на WIKI для T3Ed:
- http://thief.wikia.com/wiki/T3Ed/Editing - THIEF The Dark Wiki
- http://www.ttlg.com/wiki/T3ed_Tutorials - TTLG Wiki
- http://t3edleveldesign.wordpress.com/t3ed-tutorials/ - ресурс от Judith
- https://sites.google.com/site/ascottk/home - ресурс от AScottK

ССЫЛКИ на форумы:
- http://www.ttlg.com/forums/forumdisplay.php?f=138 - Thief III Editors' Guild at TTLG Forums
- http://forums.eidosgames.com/forumdisplay.php?f=46 - Thief: Deadly Shadows at Eidos Forums
- http://forums.beyondunreal.com/forumdisplay.php?s=bc048ac17df3b7480c2b11624c222ac2&f=13 - вообще по движку Unreal

К сожалению, все сайты англоязычные. На русскоязычные туториалы или другие форумы на русском я пока не натыкалась.
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС: Можно ли сделать так, чтобы NPC не издавал звука шагов по полу?

На NPC-животных работает следующее:

В свойствах NPC есть раздел Sound -> свойство Character Type. Если удалить из строки всё написанное, то швук шагов исчезнет. Если содержание строки заменить на Character Type другого персонажа (например, "gamall" на "statue"), то звук шагов изменится.

Благодаря экспериментам Savar-a удалось доказать, что если NPC-человеку добавить свойство Sound - Character Type с пустой строкой, то звук его шагов тоже исчезнет.
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:   Сначала игры у Гарретта в инвентаре (слева) имеется Языческий скипетр. Его по заданию надо на что-то положить - при этом задание выполнено. Подскажешь, как сделать?

Думаю, после создания фонарика эта вещь пойдет и с кратким объяснением.

Итак, в разделе World Obj / Inventory Object / Power Up / Potion создаешь новый предмет "Pagan_Sceptre". Настраиваешь ему свойства точно так же, как и фонарю, но с другим именем в свойствах HelpText и InvName. Добавляешь такой же скрипт, но с другим значением параметра trigger message - например, [Pagan_Sceptre].

Теперь надо сделать стол, на который игроку придется положить скипетр.

В разделе World Obj / Set Dressing создаем новый объект "Pagan_Sceptre_Table". Добавляем ему свойства:

Actor / b Not Moveable Physics = True
Actor / b Not Moveable Render = True
Highlight / Highlight Dist = 128
Render / Object Mesh = какой-нить стол

Теперь добавляем этому столу скрипт, где в Conditions будет:

Logic [AND] operator
- Received trigger message [Pagan_Sceptre]
- Query if linked objects [PLAYER] are within [128] unreal units from linked objects [MYSELF]

Что будет в Actions - решать тебе, но вот эти строчки быть просто обязаны:

- Delete [1] [Pagan_Sceptre] objects from the player inventory. - Это удалит скипетр из инвентаря.
- Set goal [название цели про скипетр] to [kGS_Success]. - Это выполнит цель.


ВОПРОС:   Что-то не пойму, где искать свойство bOutOfWorld ?

В свойствах объекта Properties, в разделе Advanced.


ВОПРОС:   При тесте, сразу после загрузки, скипетра у Гарета в инвентаре нет, а нужно, чтобы был.

А ты внес его в Level Info / Default Inventory, туда же, где дубинка, кинжал и т.д.? И, если уже внес, название правильно напечатал? Всё, что создано для инвентаря Гарретта, вносится в инвентарь теми же способами, что и оружие.


ВОПРОС:   Беру скипетр, бросаю на стол - исчезает из инвентаря. А мне нужно, чтобы исчез и лёг на стол. Видимо, нужно дополнить "Actions" в скрипте?

Нет, для этого совсем не нужно изменять скрипт к инвентарному жезлу.

Чтобы скипетр появился на столе, надо сделать обманку. Положи на стол меш твоего скипетра (с правильным скином и эффектами, чтобы похоже было), взятый из Mesh Browser. Добавь этому мешу свойство bOutOfWorld = TRUE, чтобы он исчез до нужного нам момента. Добавь этому мешу скрипт, благодаря которому жезл появится на столе. В CONDITIONS должно быть условие появления жезла - например, цель "положить скипетр на стол" исполнена, а в ACTIONS будет строка из раздела Properties:

- Set [bOutOfWorld] to [FALSE] on linked objects of [MYSELF]

И тогда свойство bOutOfWorld поменяется с изначального TRUE на новое FALSE. Вообще, свойство bOutOfWorld очень удобная штука. Оно, как следует из названия, выводит из "игрового мира" всё то, что надо спрятать до нужного момента. Или, наоборот, возвращает это что-то в "мир". Если надо спрятать, то bOutOfWorld = TRUE. А если надо, чтобы спрятанное появилось, то bOutOfWorld = FALSE.


ЦИТАТА:   ...Добавь этому мешу скрипт, благодаря которому жезл появится на столе...
ВОПРОС:   Как я понял скрипт будет выглядить так:
cond.:
- When I am frobbed by player
act.:
- Set [bOutOfWorld] to [FALSE] on linked objects of [MYSELF] ?


Нет, условие "- When I am frobbed by player" означает, что скрипт сработает, когда игрок схватит предмет. А как ты его схватишь, если жезл-обманка сначала должен быть НЕВИДИМЫМ? А появляться должен только ПОСЛЕ того, как игрок лишится жезла в инвентаре?

Ставь в условия что-нить другое. Удобнее всего, если это "другое" будет зависеть от скрипта, прицепленного к столу. Например, тебе же всё равно надо, чтобы, в тот же момент, как игрок "использует" инвентарный жезл на столе, выполнилась цель "принести жезл". Тогда в скрипте к обманке будет так: (COND.) цель выполнилась - (ACT.) жезл появился.

Пусть человеческому восприятию этого не уловить, но скрипты выполняются по очереди: сначала - скрипт инвентарного жезла, затем - скрипт стола, и только после этого - скрипт на обманке. Вот исходя из этого и ищи подходящее условие.


ВОПРОС:   Для меня скрипты как страшный суд :(

Это зря. Там все элементарно. Главное, ухватить логику.

Что такое скрипт? Это мини-программа, которая запускается сама, а потом делает что-нить полезное.

Когда запускается? В ту секунду, когда выполняется условие (или условия) её запуска: conditions. Т.е. скрипт сработает ЕСЛИ: игрок или АИ что-нибудь нажмет ("сфробит" - пошлет команду "frob"), пересечет границу volume, получит в инвентарь определенный предмет и т.д. и т.п.

Что она делает после запуска? Совершает действия, прописанные в её actions. Она проигрывает звуковой файл, телепортирует тебя куда надо, открывает двери, запускает лифты и т.д. и т.п.

Как эту программу-скрипт заставить запуститься? Указать имя скрипта в свойствах объекта, связанного с выполнением этого скрипта (ложки-плошки-финтифлюшки для новой позиции в инвентаре, кнопки лифта для нажатия, книжки для получения задания, АИ чтоб отколол что-нить прикольное или еще чего там твоя душа пожелает).

Вот списки Conditions и Actions к скриптам, так что переведи их для себя и выбирай то, что тебе нужно:

Scripting conditions - http://www.ttlg.com/wiki/Scripting_conditions

Scripting actions - http://www.ttlg.com/wiki/Scripting_Actions


ВОПРОС:   Скипетр исчезает, куда бы я его не бросил, а нужен бросок непосредственно на стол.

Уменьши расстояние Highlight Dist с 128 до 96 и в скрипте к столу, и в свойствах стола. Тогда игрок будет просто вынужден подойти к столу вплотную. Сделать идеально невозможно, но игрок всё равно на это купится.
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:   Добавил в магазин перчатки. Хочу, чтобы их можно было купить. Назначил цену, покупаю, берутся (звука спец. возможностей, как в Доках, не было). Выхожу из магазина, но по стенам лазить не могу. Может, мне в редакторе нужно добавить свои перчатки, новые, а не Доковские?

Нет, как раз скопированные из Доков тебе идеально подойдут - они нужным образом настроены. В принципе, настройки перчаток в списке активных объектов (Actor Browser) могут оказаться теми же самыми, но я не сверяла, так что поручиться не могу.

Чтобы не запутаться, по шагам:

- Лезем в Доки, копируем перчатки, вставляем к себе в ФМку, двигаем на нужное место.

- ПОСЛЕ ЭТОГО выделяем перчатки на карте, открываем их свойства (Properties), ищем их скрипты (Trigger Scripts), добавляем строку, открываем окошко списка скриптов и долго-долго нудно-нудно ищем скрипт DOC2_PlayerBuysClimbingGloves (где-то в подпапках должен быть).

- ДАЛЬШЕ закрываем список скриптов, вставлем этот скрипт перчаткам, сохраняем, запускаем ребилдинг, проверяем. Так как мы меняли свойства только одной единственной вещи прямо на карте, то файл T3Gamesys.t3u возмущаться не будет.

DOC2_PlayerBuysClimbingGloves это родной скрип, а его суть такова:

Cond.:
- When [ClimbingGloves] count in inventory becomes [GreaterThanEqualTo][1]
Act.:
- Set flag [PlayerHasWallClimbing] to [TRUE] expires on map change [FALSE] expires on mission [-1]


ЦИТАТА:   ...копируем перчатки...
ВОПРОС:   Т.е. делаем дубликат?


Нет, обычное копирование: через меню Edit - Copy.


ВОПРОС:   С перчатками пробовал мутить... Залез, скопировал, открыл обратно свою карту, вставляю, - ничего не вставляется.

Да всё там вставляется! Просто прога вставляет скопированное ТОЧНО на то же самое место, откуда копировали, а на твоей карте это место может быть чёрт знает где. Не спеши снимать выделение после вставки, а просто отдаляй от себя карту зумом (у меня это колесико мыши) и ищи выделенное.

И сначала потренируйся вставлять на пустой карте. Вообще советую заиметь привычку любое нововведение сначала тестировать на специальной тестовой карте - пустой камнате с PlayerStart-ом.

Непосредственно вставка скопированного: через меню Edit - Paste.


ВОПРОС:   Добавил перчатки из инвентаря. Интересно, что скрипты Доков и тех, что ты мне дала, отличаются.

Там различаются не только скрипты, но и свойства. Без правильных свойств нужного эффекта не будет.

На будущее - ВСЕГДА сверяй и выписывай свойства нужных тебе объектов в оригинальной миссии и в Actor Browser. Заодно названия на инглише запомнишь.

У перчаток обязательно должно быть в свойствах, в разделе Store:
- bOnlyBuyOnce = True
- StorePrice = 2000
- StoreWindowNumber = 9


ВОПРОС:   Не нашёл скрипт DOC2_PlayerBuysClimbingGloves...

В списке скриптов загляни в папки Missions - Docks.


ВОПРОС:   У перчаток в свойствах есть скрипт "HelpPopUpClimbingGloves". Надо ли его удалить?

Не стоит. Если ты его удалишь, у тебя не будет подтверждения "перчатки взяты!".
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:    Что нужно сделать, чтобы мисия была провалена, если ОТДЕЛЬНЫЕ (а не все сразу) NPC заметят меня?

Цепляешь к нужному субъекту вот такой скрипт:

COND.:
When linked AI [MYSELF] sees the player
ACT.:
End Mission [False] successfully
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:   Как уменьшить мэш-объекты? Никак не могу найти подобную функцию.   

Это размер изображения - DrawScale. Ты её должен не найти, а добавить.

Выделяешь меш, открываешь его свойства Properties, выделяешь заголовок Render. Щелкаешь правой кнопкой мыши, далее добавляешь свойство функцией Add Properties: в группе Render выделяешь свойство DrawScale; щелкаешь кнопку, чтобы оно добавилось. Далее в ячейке напротив имени твоего нового свойства вручную пишешь нужную тебе цифру (находишь её подбором).

Заметь, что 1,0 это нормальный размер, все что крупнее это цифра больше единицы (1,5 или 2,0 или 3,8...), все что меньше - дробь типа 0,25.
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ВОПРОС:   А как ты сделала в "CABAL: Furious Flames" открывающийся тайник за картиной?
 
Сам тайник - это полость в стене. А с картиной всё просто. В Actor Browser есть двери, которые отъезжают в сторону при открывании - "sliding doors" (Actor - World Obj - Moving - Sliding - Door Sliding - Door Metal Sliding). Вставь такую дверь на карту, в свойствах замени меш двери на картину (Render - Object Mesh) и передвинь дверь-картину на нужное место.
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050

Tiens

ЗОНЫ,  ЗОНИРОВАНИЕ  И  ПОСТРОЕНИЕ  БРАШЕЙ:

ВОПРОС:   Что такое "зона"? И зачем надо делить миссию на зоны?

ЗОНА - это некое пространство, заключенное в разделители зон и стенки брашей. Насколько высока будет производительность (или FPS - Frames Per Second) в данной точке пространства миссии, напрямую зависит от того, сколько объектов в данной зоне. Если зона слишком велика или перегружена деталями, то FPS упадет, из-за чего объекты в миссии начнут глючить, игра начнет тормозить или даже вылетит в Windows. Деление миссии на зоны это основной рычаг оптимизации карты. Также зоны крайне полезны тем, что именно в их свойствах выставляется нужная фоновая музыка.


ВОПРОС:   У меня не работает фоновая музыка. Пытаюсь копировать зеленные рамки зонирования, но без толку.

Зонирование - это ДВА этапа:

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

2) затем вызвать в меню Show Zone Properties Dialog и дать машине согласие на постройку зон. В открывшемся окне будет список всех зон.

Перещелкивай вниз по списку строчку за строчкой и смотри на 3D превью, какая из зон окрасится оранжевым. Чтобы музыка точно сработала, ищи только крупные зоны (т.е. размером с комнату и больше), а маленьким зонам (т.е. дверные проёмы) лучше поставить Silence.

Когда найдешь нужную зону, открой её свойства и добавь ей свойство "SoundStreaming" – "StreamSchema1". Дальше жми на "..." и открывай Sounds Browser. Ищи там нужную музыкальную схему, выйди из Sounds Browser через кнопку Exit и жми в свойствах зоны на кнопку "Use". Чтобы заменить музыку на другую, опять найди в Sounds Browser новую звуковую схему и жми "Use". После - опять полный ребилдинг.


ВОПРОС:   Хочу разделить пространство на зоны. На родных картах некоторые разделители зон имеют параметры 128/0/64. Но когда я ввожу эти цифры в Cube Builder, то никак не могу выставить "ноль" - выскакивает окно с ошибкой. Почему? И вообще, когда я строю габаритные зоны (1000/1000/1), у меня лезут дыры по карте, хотя до этого было всё ровненько. Это из-за цифры "1" вместо "0"?

ВО-ПЕРВЫХ, при построении брашей забудь навсегда про цифры типа 1000 и 1!!! Все вводимые тобой цифры должны быть кратны 32, т.е. браши должны располагаться на поле четко по 16-единичной сетке. Это связано с тем, что по-умолчанию машина считает толшину стенки любой браши равной 16 (см. в Cube Builder параметр Wall Thickness). Конечно, ты можешь это изменить вручную, но тогда у тебя будет куча проблемм с Nav Mesh для NPC. К тому же, браши должны быть построены аккуратно и выровнены по сетке. Иначе нет гарантии, что машина их правильно построит и что браши не отсекают друг от друга куски, незаметные невооруженным глазом. Ошибки построения всегда появляются в виде BSP-дыр в стенках брашей.

Итак, как избежать основных ошибок при создании браши:

1) когда ты создаешь браш для комнаты (через Add или Subtract), браш типа Volume или разделитель зон, твоя сетка на поле должна быть 16, а твои габариты для браши должны быть кратны 32 (если ты строишь браш, вводя размеры в Cube Builder). Т.е. все браши должны располагаться на поле четко по 16-единичной сетке. Это связано с тем, что по-умолчанию машина считает толщину стенки любой браши равной 16.

Для справки - сетка это серые линии на рабочем поле, а её габариты задаются в маленьком окошечке с цифрами на нижней панели редактора.

Более мелкие градации сетки (8, 4, 2, 1) - для выранивания меша (Static Mesh) и эмитеров (Emitters), а для брашей подходит только сетка от 16 и выше. Пока у тебя в руках только красный куб (т.е. пока твоя браш не построена), ты можешь смело вертеть его столько, сколько тебе хочется, и менять ему габариты столько раз, сколько тебе надо.

В случае, если ну очень-очень-очень надо, чтобы толщина перекрытия между двумя комнатами была равна 8, то гораздо безопаснее в качестве перекрытия вставить меш (Static Mesh), чем строить слишком тонкую браш.

2) прежде чем щелкать на кнопке создания браши, выровняй красный куб по сетке через команду "Snap To Grid" (выделить браш -> щелкнуть ПКМ -> в списке выбрать Snap To Grid). Даже если сетка уже выставлена на 16 и куб на глазок вроде бы совпадает, все равно выровняй красный куб - ты можешь просто не видеть этого машинного глюка. Уже созданная браш может не выровняться правильно (уехать в далеко сторону), а браш типа Volume вообще нельзя трогать после построения.

Эти два правила спасают от дыр в стенах и глюков при построении Nav Mesh. Убедилась на своей шкуре.

ВО-ВТОРЫХ, ну кто строит плоскость через Cube Builder? Cube Builder по умолчанию создает кубик с шестью стенками-плоскостями! Поэтому, когда ты командуешь "ребилдинг" (например, через главное меню Build - Build All), эти стенки-плоскости начинают остервенело кромсать пространство вокруг и выдавать тебе кучу дыр. А значит, для зонирования это не подходит. В данном случае надо использовать "создатель плоскостей" - Sheet Builder. Поэтому удали все свои "габаритные зоны" и построй правильные, плоские.

Итак, чтобы построить разделитель зон:

1) создай плоскость с помощью Sheet Builder (пиктограмма с плоскостью, немного ниже Cube Builder): задай ей габариты - ТОЛЬКО ВЫСОТУ (Height) И ШИРИНУ (Width), поверни в нужную сторону и помести её куда тебе надо.

2) после того, как поместишь красный куб (вернее, красный квадрат) в нужное место, открой окно "Add Special Brush" ("добавить специальную браш"), выбери из списка "зону" и один раз (только один раз!) клинки на кнопке "OK". Пиктограмма "Add Special Brush" - синий квадрат с пунктирным квардратиком внутри - находится немного ниже обычного добавления брашей "Add".

Появившийся разделитель зон не будет видно за красным квадратом, поэтому убери квадрат в сторону. Если ты ошибся и щелкнул "OK" несколько раз, то разделителей будет несколько в одном и том же месте, и при постройке зон машина глюкнет и выдаст или мультизонность, или дыры.

3) проведи полный ребилдинг - через главное меню Build - Build All (будет ребилдинг с настройками по умолчанию), либо Build - Build Options - в появившемся окошке выставь свои настройки - кнопка Build.

4) построй зоны (главное меню View - Show Zone Properties Dialog - если новые зоны построились, редактор спросит, создавать ли для них свойства - жми YES - откроется окно - жми CLOSE) и опять проведи полный ребилдинг.


ВОПРОС:   Я не добавлял разделителей зон, но после очередного ребилдинга на стенках брашей появились BSP-дыры. Почему?

Иногда дыры - это показатель слишком низкого FPS (производительности) в данном месте карты. В таких случаях надо добавить зон, тогда при следующем ребилдинге машина пересчитает FPS и уберет дыры. Проверь, достаточно ли твоей карте уже построенных зон: открывай Zones Browser, где смотри на размеры зон, не слишком ли они сложного вида, нет ли ошибки мультизонности (надпись MULTIZONES в строке зоны) и т.п.


ВОПРОС:   У меня в Zones Browser в строке у некоторых зон написано "Multizones". Это плохо? И как от этого избавиться?

Да, плохо. Правильно, чтобы в каждой зоне было только по одному эктору ZoneProperties. Но у тебя в зонах возник глюк мультизонности (Multizones) - это когда в одной зоне появляется куча экторов ZoneProperties. Проверь через Zone Browser, какие именно экторы приписаны к каждой зоне с пометкой Multizones - просто щелкни на названии зоны в браузере, и все экторы ZoneProperties данной зоны выделятся, - а затем удали лишнее вручную.

Еще можно одним махом выделить все ZoneProperties и удалить их, а потом запустить Zone Browser, чтобы тот сам создал зоны заново, но тогда придется опять выставлять настройки звука.

Вообще мультизонность - это серьезная ошибка. Из-за неё могут появиться дыры в стенах, тормоза (FPS сильно падает даже при полном отсутствии источников света) и глюки со звуками.


ВОПРОС:   Скажи, а если я добавлю зоны, но не вызову меню Show Zone Properties Dialog, зоны будут работать - уменьшать ФПС?

Нет, без этого меню все остальное бесполезно. Вызывая этот браузер, ты заставляешь машину пересчитать зонирование (т.е. показатели FPS) и создать экторы свойств зон. Обязателен весь цикл - порезать пространство спец-плоскостями, запустить ребилдинг, вызвать Zones Browser, опять запустить ребилдинг, опять проверить зоны в Zones Browser и исправить мультизонность (если надо), опять ребилдинг (если надо).


ВОПРОС:   ...было много мультизон, которые я удалял вручную. Не хочется заново их удалять...

Увы, от этой рутины не убежать. Правда, бывает, что, когда наконец удается правильно порезать карту на зоны, мультизонность исчезает сама собой после очередного ребилдинга.
Windows XP Professional SP3, Intel Core 2 CPU 6400 @ 2.13GHz each CPU (4.26GHz total), Random Access Memory 3.25Gb, NVIDIA GeForce 9600 GT, Motherboard ASUS P5KC, Monitor Resolution 1680x1050