Предисловие

Здравствуйте, сейчас я опубликую запись о АИ мешах. Я не автор этого и лишь скопировал эту тему на форум. Я это сделал без ведома переводчика и автора, т.к. я не имею их контактных данных, а переводчик на сайте не появляется.
Переводчик - Lord British
Автор - Mortus

Часть 1. Основы

Так что же такое - AI mesh - и как он работает?
AI Mesh - это сеть, указывающая NPC, где он может пройти, а где нет. Если, допустим, какой-нибудь NPC вдруг захотел прогуляться из точки A в точку B, он делает это так: находит кратчайший путь, проверяет, может ли он там пройти, и только потом (о, чудо!) идет. Если Вы построили стену у него на пути, то он врежется в нее и застрянет там навечно. Но если Вы сделаете AI mesh так, чтобы он учитывал эту стену, то NPC не только не врежется, но и обойдет злополучную стену кратчайшим путем.

Важное замечание
Все грани AI mesh'а должны быть соединены, чтобы работать должным образом. Это означает, что вы не можете создать AI mesh внутри здания, а затем другой наулице, не соединить их и надеяться, что всё будет хорошо. Повторюсь: они должны быть соединены, а не просто находиться близко друг к другу.

Правильно. NPC пройдут там:
http://www.picamatic.com/show/2009/06/01/11/54/3855783_729x768.jpg

Неправильно, NPC не будет использовать этот проход:
http://www.picamatic.com/show/2009/06/01/11/54/3855784_682x768.jpg

Вы можете подключить две различные грани с с помощью функции Fill, когда находитесь в режиме редактирования вершин (Vertex Mode).

Очень важно покрыть AI mesh'ами как можно больше возможных мест, где могут гулять NPC. Вот несколько примеров хорошего размещения AI mesh'а (скриншоты из сцен Native'а):
http://www.picamatic.com/show/2009/06/01/11/55/3855785_1024x787.jpg

Обратите внимание на то, как расположен AI mesh на ступеньках:
http://www.picamatic.com/show/2009/06/01/11/55/3855795_1024x787.jpg

Постарайтесь не использовать сложные "узоры", когда мостите вашу mesh. Я полагаю, что строить квадратами - хорошая техника. Не делайте слишком большие грани, постарайтесь разбить их на более мелкие. Но постарайтесь не делать слишком много маленьких квадратов, так как это, возможно, понизит FPS. Плюс ко всему, если Вы расположите большие грани в одной части сцены, а в другой - маленькие, это может привести к непредвиденным вещам. Например:
http://www.picamatic.com/show/2009/06/01/11/54/3855791_1024x541.jpg

Я разместил 30-31 entrypoint в точке A и 32-39 - в точке B. Очевидно, что у NPC есть два пути между этими точками, и, как Вы видите, они выбирают путь номер 2, потому что они думают, что он короче первого. И это фактически правда, потому что с точки зрения NPC, в пути номер 1 содержится гораздо больше AI mesh'ей, чем в пути номер 2. Постарайстесь, чтобы в Ваших сценах не было таких "двусмысленностей".

Часть 2. Размещение AI mesh'ей в зданиях.

Давайте, наконец, перейдем к практической части.

Допустим, у нас есть сцена, покрытая AI mesh'ем, и нам захотелось поставить на ней замок. Ставим castle_f_gatehouse_a и переключаемся в режим редактирования AI mesh'ей (Edit AI Mesh).
http://www.picamatic.com/show/2009/06/01/11/54/3855792_1024x787.jpg

Теперь, нам нужно удалить грани, которые находятся под замком, таким образом мы удостоверимся, что NPC не попытаются пройти туда, тем самым мы избавим их от ударов итак неблагополучной головы о беспощадную стену. Есть один простой способ - выбираете одну грань, а затем жмете Grow Selection столько раз, сколько понадобится, чтобы выбрать достаточно удаляемых граней. Потом уберите из выделения те грани, которые удалять не стоит. У нас должно получиться так:
http://www.picamatic.com/show/2009/06/01/11/56/3855824_1024x787.jpg

Удалим выбранные грани и переместим оставшиеся вершины граней поближе к зданию:
http://www.picamatic.com/show/2009/06/01/11/56/3855799_1024x787.jpg

(возможно, это не лучший способ проектирования, и Вам, возможно, пришлось добавить еще несколько граней, чтобы заполнить пустоты, но он очень простой, поэтому мы им и воспользуемся)

Вы ведь хотите, чтобы NPC могли пройти в ворота, не так ли? Тогда Вам придется проложить AI mesh внутри прохода. Но так как нам не хватит вершин, перейдем в режим ребер (Edge Mode), выберем ребро поближе ко входу и нажмем Subdivide. Результат будет примерно таким:
http://www.picamatic.com/show/2009/06/01/11/56/3855845_1024x787.jpg
Сейчас проделаем то же самое с другой стороной ворот.

Выберем ребро, находящееся ближе всех к проходу и нажмем Extrude, затем подвинем новоиспеченное ребро к проходу, отредактируем как следует его размер и сделаем то же самое с другой стороны:
http://www.picamatic.com/show/2009/06/01/11/56/3855825_1024x787.jpg

Теперь переключаемся в режим вертексов (Vertex Mode), выбираем все 4 вершины, которые должны быть соединены, и нажимаем Fill:
http://www.picamatic.com/show/2009/06/01/11/56/3855836_1024x787.jpg

Поздравляю! Вы освоили простые вещи. Теперь попробуйте сделать это поточнее, чтобы NPC не застревали в углах.

Сейчас нам нужно сделать AI mesh, ведущий к крыше этого здания. Вот как это должно выглядеть:
http://www.picamatic.com/show/2009/06/01/11/55/3855811_1024x787.jpg

С помощью Extrude, поработайте с ребром близ двери. Также, нужно убедиться, что грани не шире прохода, чтобы NPC не застряли в нем. Не забудьте проверить расположение mesh'а по Z-координате: mesh должен лежать аккурат на полу, не выше, не ниже.
http://www.picamatic.com/show/2009/06/01/11/55/3855814_1024x787.jpg

Теперь с пощью Extrude продлите AI mesh к лестницам:
http://www.picamatic.com/show/2009/06/01/11/56/3855855_1024x787.jpg

Теперь, используя 'T', 'G' и все что Вашей душе угодно, продлите mesh'и к конечной точке лестницы:
http://www.picamatic.com/show/2009/06/01/11/56/3855858_1024x787.jpg

С помощью Extrude, продлеваем грань на втором этаже, затем включаем режим вершин (Vertex Mode) и выбираем эти вершины:
http://www.picamatic.com/show/2009/06/01/11/59/3855887_1024x787.jpg

Жмем Connect и удаляем вторую грань, появившуюся в результате этого действия:
http://www.picamatic.com/show/2009/06/01/11/59/3855889_1024x787.jpg

Двигайте, расширяйте, соединяйте, и опять двигайте - Вы уже знаете как это делать, поэтому проложите оставшийся mesh самостоятельно (не забудьте поэксперементировать с функцией Fill):
http://www.picamatic.com/show/2009/06/01/11/59/3855891_1024x787.jpg

Я не буду описывать оставшийся процесс, так как Вы уже научились основам и можете проделать остальное самостоятельно. Проделайте те же операции и над вторым входом (у этой башни их два). Разместите 30 и 31 entrypoint и 32-39 близ входа, добавьте немного пленников башни и посмотрите, смогут ли они взобраться наверх. Если они где-нибудь застрянут - Вам нужно подправить mesh в том самом месте. Также не забывайте, что очень важно добавить AI mesh везде где возможно будут ходить NPC.

Это screenshot наполовину готовой работы. Протестируйте каждый проход, который вы сделали, с помощью NPC, в конце концов, разве не для этого они были созданы?

http://www.picamatic.com/show/2009/06/01/11/59/3855894_1024x787.jpg

Пока всё. Я надеюсь, что эта статья будет сколько-нибудь полезна.