Сглобяване на AI мрежа

От Mod Wiki.

Съдържание

Списък на необходимите програми

  • AiCompiler 0,1 от Нео
  • AiWrapper от Bardak 'и
  • Информация LVID/GVID скрипт от Bardak 'и
  • SDK 0.4 от GSC
  • Актуализация на SDK от Нео + GSC

  • Pos Extracter - нова програма за работа с координати

Добре. нека започнем с най-простото, компилирайте нивото с AI (чудовища) на картата mp_atp. Отваряме нивото. Първото нещо, което трябва да направите, е да премахнете всичко. rpoint (мултиплейър точки за хвърляне на хайвера). Премахнато? Отлично. Ние създаваме Spawn елементи -> актьор добре и по желание в имотите (Имоти) в потребителски данни ние му предписваме, да предположим това:

Така, когато играчът се появи, той вече ще има AK74 в ръцете си. След това създаваме чудовище (всяко, по желание) - да кажем, кръвопиец и го поставяме на нивото. Сега е до AI карта - AI мрежа, която е необходима за NPC и чудовища, за да се движат по нивото. Натискаме Обект и кликнете върху земята (по този начин го "избрахме" за по-нататъшни манипулации), след това AI карта -> Команди -> Направете списък от избрания, натискаме Добавяне В глава Възли на AI карта и Добавяне за да добавите обекти горе вляво (чайник), поставете възлите на картата в реда, в който се нуждаете (един е достатъчен), и след това щракнете Генериране на пълен. Това е всичко, генерира се AI мрежа. Сега добавете една графика точка (Хвърля хайвера си->AI->графична точка), не е нужно да пишете нищо в него. Запазваме нивото, изграждаме (изграждане).

Следващата стъпка е да редактирате конфигурациите.

Сега отваряме AI Съставител, посочете папката с SDK(./level_editor или, ако е обединен с играта, пътят към него). Избор на вашето ниво. Преминаваме първия етап от грубото изобразяване на AI-картата (етап 1), или, ако искате да изчакате дълго време и да изчислите капака за NPC, изберете стъпка 2. След това изграждаме мрежа (графика) и кръстосана таблица на нивото (стъпка 3), след това графиката на играта (стъпка 4) и накрая .spawn файла (стъпка 5). След всички етапи отидете на gamedata \ spawns и преименувайте test.spawn в всички.спаун

Правилен .bat файл:

% 1 - име на ниво

Разширено проучване

След това ще разгледаме как да съберем няколко нива и да зададем преходи между тях.

Така че имате две нива. един от тях е актьор. Нека започнем с него:

Ние създаваме AI -> Превключвател на ниво, тогава Форма -> Сфера, през Мащаб увеличете до необходимия размер, сега преминете в режим на редактиране Елемент за хвърляне на хайвера, подчертавам Превключвател на ниво и щракнете Команди -> Прикачете обект, и след това щракнете върху сферата. Всичко, сферата и нивелирът вече са свързани. След това отидете на отметката Имоти, ние посочваме името, например to_atp_2, сега трябва да се регистрирате в потребителски данни точка за връщане, в случай че играчът откаже да се премести от място на място (това трябва да се направи). Въвеждаме това:

IN Ниво за промяна въведете името на нивото, където искаме да преминем от това ниво, например atp_2. IN Точка на ниво за промяна посочете точката, в която играчът ще се появи. start_actor_01. С чейнджър за ниво това е всичко на това ниво, нека отидем по-нататък. Ние създаваме графична точка или използвайте празен съществуващ, ако имате такъв. Влизаме в него start_actor_01, тази точка, за да можем да изравним от втората atp_2 Отидете на atp_1(първо). Създайте друг графична точка със заглавие exit_atp_1_01, В глава местоположение изберете например "бягство". IN Връзка -> Име на ниво посочете нивото, с което ще бъде свързано atp_1, тоест изберете atp_2, в Връзка-> Име на точка въвеждаме точка на връзка от второто ниво, която ще създадем по-късно изход_atp_2_01. С първото ниво всичко.

Защо ни трябват графични точки изход_xxx? изход_xxx представлява точка на свързване(точка на свързване) - така че компилаторът да знае кои нива свързва и ако по различен начин: графиката на началното ниво, тогава всички възли се отчитат от него.

start_actor_xx - точката на хвърляне на актьора след прехода.

Не забравяйте, че писахме потребителски данни чейнджър 'а точката? Сега трябва да го създадем. Ние избираме Пътни точки -> натиснете "чайник" и поставете 1 точка от точката до нивелира (така създадохме началната точка на пътя), сега натиснете точков режим и сложи втория. Ако не са свързани със стрелка, натиснете създайте 1-линк. Сега имаме пътя, който регистрирахме в потребителските данни чейнджър за ниво, влизаме в свойствата и го наричаме по същия начин, както в потребителски данни, т.е. atp_1_way_if_reject. Всички завършиха с първото ниво.

И така, ние отваряме второто ниво и преминаваме към ново.

Създайте път там от две точки, съгласно схемата по-горе, и го наименувайте atp_2_way_if_reject. Създайте чейнджър за ниво и го кръстете to_atp_1, в потребителски данни ние пишем

IN ниво за промяна посочете atp_1 //, където преминаваме от atp_2 V точка на ниво за промяна - start_actor_01(dada, този, който създадохме на първо ниво:))

Сега тук на atp_2 създайте точка на графиката с името start_actor_01. И още една, където въвеждаме следните стойности:

Забравете това АКТОР трябва да е само на едно място (в нашия случай atp_1), в противен случай компилаторът ще генерира грешка. Всичко. Запазване, предварително компилиране.

Стартиране Ай Съставител, изберете нашите две нива на свой ред и изчислете стъпка 1, проверете мрежата. Сега ние създаваме Текстов документ и ние влизаме там

запазете го като .bat и го стартирайте, в резултат на което всяко ниво ще има свое ниво.граф(графика и кръстосан таб).

Създаваме още един учебник, пишем

запазете като .bat и започнете. Ето как събрахме game.graph на level.graph 'ов.

И накрая . създайте 3-тия "лък" за сглобяване всички.спаун!

Компилирайте, отидете на gamedata \ хвърля хайвера \, преименувайте получения хайвер на всички.спаун и го пуснете в нова игра. Както можете да видите, можете да се движите от ниво на ниво, тук-там без никакви проблеми.

Почти забравих, винаги временно, по време на компилацията, преместете всички останали нива на играта с изключение на вашето във всяка друга папка, в противен случай може да има грешки при събиране на графики и хвърляне на хайвер.

За сглобяване от всички единични нива от оригиналната игра, използвайте файла bat: fullgame.bat Ако има грешки, свързани с Alife, щракнете върху продължете. След това следвайте процедурите, както е описано по-горе, монтаж game.graph, и тогава всички.спаун.

Добавете нивото ни към един играч!

Данък, да продължим. Най-накрая успях да комбинирам тестовото си ниво с картите на GSC. Така че нека да започнем. Първо, имаме нужда от изравняване. своя собствена, подготвена. Ако не сте прочели инструкциите по-горе, тогава няма какво да правите по-нататък. На наше ниво, първо точка на свързване(свързваща точка), ние въвеждаме параметрите на този пример в него, да предположим следното:

Сега създаваме друга графика на нивото, просто въведете нейното име. напр Име: start_actor_01. Не забравяйте да добавите уникален обект към нивото. да предположим кола. Защо ще разберете по-късно. Но на ниво, в никакъв случай не трябва да има Актьори! Запазете, предварително компилирайте нивото. Компилирайте с xrLC цялото ниво, сега отваряме AICompiler от нео и направете 1 или 2 и 3 стъпки по отношение на нивото ни.

Сега трябва да запишем СПЕЦИАЛНИ инструменти, в нашия случай се нуждаем от скрипт от бъркотията, който ни позволява да разберем при стартиране на всяко ниво level_vertex_id, game_vertex_id, позиция(координати на играча в момента), посока(координати на посоката на неговия "поглед"), всичко това се изисква при работа с AC DC няколко стъпки по-долу. Зареждаме играта, намираме подходящо място, където искаме да видим в бъдеще спусък за прехода на нивата и записваме всички параметри на лист хартия, ще ни трябват по-късно. За добро е желателно отделно след това отидете на друг LE (редактор на нива), отворете нивото ни, като поставите ector точно на графиката с start_actor_01, компилирайте проекта, преминете през всички стъпки за компилиране в xraicompiler(1,3,4,5,6), задължително предварително архивиране game.graph, започнете нова игра и запишете координатите level_vertex_id и посока, но това е доста скучно и трудно, но желателно, и тогава ще е необходимо всичко да се върне на държавата преди всички тези действия. т.е. премахване ектор, възстанови оригинала game.graph.

Така. трябва да го разопаковате всичко играта е инсталирана aiwrapper от бъркотията (прочетете инсталацията readme.) и aicompiler той е нео.

Създайте .bat файл в папка aiwrapper с текст

или също влизаме в общия командир, с помощта на този ключ, който актуализирахме level.spawn 's на всички единични нива, тъй като те не са били актуализирани от първата корекция.

Сега учим връзки.проба в тетрадка. не разбрах нищо? Обяснявам: aiwrapper има най-полезния ключ -м2.

Тоест с помощта на него можем да вземем всяка съществуваща графика на ниво gsc, която е „не е заета“, и да добавим необходимите ни стойности към нея, например да я направим точка на свързване (свързваща точка), и тогава всичко това ще бъде залепено в общ глобален game.graph.

Ние изпълняваме aiwrapper -dump_graph graphs.txt бат или общо. Командата ще ни покаже списък с оригиналните върхове на AI-графиката в посочения файл, тоест списък на съставени графики на всички едностепенни gsc във файла graphs.txt. Намерете точка там esc_graph_point_0034. Виждате ли, че е празен по отношение на връзките, за разлика от exit_escape_01.02? Това означава, че можем да го използваме, в оригинала те са разработени за пътеките на ботове, тоест, ai се движи по тях, но ние го използваме за комуникация с нивото на теста ни.

Така например, ние създаваме учебник links_fixed.txt и влизаме там

test_level_x - име на нашето ниво. point_test_location_escape - точка на свързване на наше ниво. Тоест, ние регистрираме тези два параметъра в точката на бягство в точката на бягство, които я превръщат в точка на свързване, свързана с това, което е на нашето ниво; запишете учебника.

Изпълнете с бухалка или тотален командир:

ZYY Препоръчително е временно да преместите някъде неизползвани нива (мултиплейър също) далеч от вредата преди това действие. Чакаме, докато се съберат game_graph, грешки не трябва да има.

В резултат на това във файла svyazi.txt в скоби ще бъдат посочени game_vertex_id за определено ниво, така че няма нужда да се учи dest_game_vertex_id чрез прекомпилиране.

Пример: l01_escape (0) --1206.29 -> l02_garbage (415)

0 - game_vertex_id, 415 - dest_game_vertex_id, 1206,29 - разстояние(разстояние между точките), а не тази в промяна на ниво_д, а между точка на връзка 'ами.

Сега е до всички.спаун:

В резултат на това пълна всички.спаун от всички нива, които са в папката нива. Но това е само началото на работата, сега е необходимо редактиране това се оказа всички.спаун и добавете обменник на ниво до нивото на gsc, за да можем да превключим от него на нашето (в нашия случай от бягството към test_level_x). Копирайте полученото всички.спаун в \ utils и създайте .bat с този текст:

В резултат на това анализирахме all.spawn в ltx, имаме нужда alife_l01_escape.ltx, въвеждаме това в края там:

Друго определение на два параметъра за скучните:

Въвеждаме уникален идентификатор за всяко ниво в тях, т.е. в някои случаи просто разглеждаме тези два параметъра за съседните обекти на това ниво и въвеждаме стойностите. Обикновено, level_vertex_id може да се сложи -един, но не за всички обекти, game_vertex_id = идентификатор на ниво.

Изморен ли си? =) Но това не е всичко, трябва да създадете точка, в която се регистрирахме потребителски данни чейнджър 'и. Ние отваряме way_l01_escape.ltx и въведете нещо като:

Слагам? Всичко, остава само да се събира всички.спаун, baht или тотален командир направете това:

Сега копирайте полученото all.spawn.new в gamedata \ хвърля хайвера \ и го преименувайте на всички.спаун.

Мъките свършиха:) Започнете нова игра и се насладете на прехода си.