• Добро пожаловать, Гость. Войдите или зарегистрируйтесь.

Автор Тема: Работа над Npc  (Прочитано 4181 раз)

Описание:

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

Оффлайн zOmb

  • *
  • Сообщений: 504
  • Репутация: 0
    • ICQ клиент - 272034714
    • Просмотр профиля
    • Email
Работа над Npc
« : 06 Март, 2005, 16:57:03 »
0
Пожалуй, расскажу поподробней об работе над NPC, раз уж у нас академия. Итак, вы, вероятно, знаете, как его создать, одеть и пр., но не знаете деталей.
В поле свойств мы видим много полей. Пойдём по порядку:
ID-уникальное обозначение NPC. Обычно существует только 1 непись с одним ID, но есть исключения типа стражников, вампиров и спящих. Вы можете наделать много копий NPC, но помните, что с копиями не могут работать удалённые скрипты.
Name – просто имя. Может быть что угодно. Именно это и увидит плеер. Если тут будет пусто, плеер увидит ID.
Скрипт – скрипт, висящий на персе.
Раса – раса персонажа. Справа галочка, отвечающая за смену пола NPC. Поставили – женщина, не поставили – мужик. Ещё правее вы видите 2 окна со списком. В верхнем вы выбираете голову, а в нижнем – причёску подопытного.
Class – класс персонажа. Он отвечает за начальные навыки непися. Если вы установите галочку auto calculate stats, то только класс и уровень будут определять навыки персонажа, в противном случае вы можете выставить их сами. Навыки влияют на броню, оружие, магию, которую использует непись. Если навык будет развит слабо (слабее, чем другой), то он просто не оденет выданную ему броню и возьмёт в руки оружие. Так что выдавайте неписям оружие и броню, которой они умеют пользоваться. Также класс влияет на услуги, которые оказывает персонаж. Если вы хотите сделать кузнеца, который будет чинить и торговать, то и ищите, соответственно, класс smith. Если хотите вора-торговца, то ставьте thief-service и т.д.
Faction&Ranc –соответственно, фракция, в которой состоит персонаж и его ранг.
галочка essential отвечает за назойливое сообщение «Со смертью этого персонажа линия судьбы разорвано и пр.» Ничем, кроме выдачи таблички это не грозит.
corpses persist – если поставить, то труп непися не пропадёт никогда.
respawn – отвечает за возрождение персонажа. Вы, наверняка, замечали, что стражники, погонщики силтстрайдеров, вампиры возрождаются через некоторое время. Вот тут это и устанавливается.
Ниже идут стандартные характеристики от силы и ловкости до стамины и магии.
Disp- начальное отношение лично непися к вам. Но в игре оно может быть другим, ведь будут учитываться такие факторы, как отношение раса-раса, и фракция-фракция.
Rep – репутация само непися. Чем она выше, тем труднее будет с ним договориться.
Blood texture – текстура вылетающей из него крови. У всех она всегда красная, но если вам вдруг захочется, можете сделать белой или золотой.
Ниже идут скиллы персонажа.
Переходим на правую сторону окна.
Кнопка add animation file позволяет добавить свою собственную анимацию движений неписю. Мало кто может делать хорошие анимации, тем более для людей, так что оно вам вряд ли понадобится. Сами бефсесдовцы использовали, а точнее, хотели использовать эту функцию только 1 раз. Помните танцовщиц в Суране? Так они должны танцевать :) . В архивах игры есть их анимация xanim_dancinggirl, но её почему то забыли подключить. Кстати, кроме выбранной в этом пункте анимации, непись не будет делать ничего.
Закладка items . В ней лежат все предметы, которые есть у непися  которыми он торгует. Кроме того он может торговать и предметами, которые ему приписаны в их свойствах, но только если по классу он может торговать предметами этого типа. Вы замечали, что у ростовщиков можно купить всякую фигню типа тарелок и вилок? Это именно из-за этого. Все эти предметы лежат в его доме на столах и полках и, по идее, не предназначены для продажи. Также, если вы хотите, чтоб предметы у непися не кончались, то поставьте слева отрицательное количество.
Закладка Spells – заклинания, которые знает персонаж. Но если он недостаточно хорошо знает какую-то школу магии, то он и не будет пользоваться такими заклинаниями.
Кнопка Dialogue вызывает меню диалогов с уже выставленным на этого непися фильтром.
Кнопка Animation позволяет просмотреть, какие анимации доступны персонажу. Они тут все стандартные.
Кнопка AI позволяет настроить поведение непися. Давайте туда и перейдём:

AI
На первой закладке Package, можно настроить перемещения непися в пространстве. В списке, по умолчанию, присутствует только 1 пункт - Wander. Он отвечает за анимации, проигрываемые неписём (почёсывания, верчение головой…) и за перемещение его вокруг точки, где он был поставлен в реакторе. Для изменения пункта щёлкните по нему 2 раза, а для удаления выделите, и нажмите delete на клаве. Итак, там Distance означает расстоянии, на которое он отойдёт от своего начального положения. 2 соседних окошка отвечают за то, как часто и как долго он будет бродить. Idle chance – шанс в процентах, что непись совершит какую-то анимацию. Приведём список этих анимаций:
Человек мужчина:
Idle1:    Стоять смирно
Idle2:  Перенос веса с одной ноги на другую
Idle3:  Посмотреть назад
Idle4:  Почесать голову, потрясти головой
Idle5:  Поправить одежду или броню на плече
Idle6:  Зевать и потягиваться
Idle7:  Посмотреть на пальцы и оглянуться вокруг
Idle8:  Положить руку на грудь, как при боли в сердце
Idle9:  Потянуться за оружием, затем дотронуться до головы.
Человек женщина – как и выше, кроме:
Idle5:  Рука на бедро
Хаджит женщина – как Человек мужчина, кроме:
Idle9:  Почесать голову, потрясти головой
Также эти параметры можно настроить через скрипт или результирующую команду в диалоге. Она должна выглядеть так: AIWander, 512, 5, 0, 0,20,0,0,10,30,0,0,0, где 1-е число соответствует Distance , затем Duration, time и все idle.
Итак, если вы сделаете режим Wander с параметрами 512, 5, 0, 0,20,0,0,10,30,0,0,0, то ваш непись будет регулярно прогуливаться по локации на расстояние не более 512 ед. от своего первоначального положения, изредка останавливаясь(idle1), почёсываясь(idle4) и поправлять одежду на плече (idle5). В общем, он будет вести себя живенько. Большинство стандартных неписей ведёт себя похожим образом и, если ваш подопытный ничем не выделяется из их числа, то можно вообще оставить стандартные настройки. А вот если нет… Вот, например, паромщик из моего плага WindyBoat, который стоит на корпусе лодки не должен никуда ходить, или он свалится. По этому я поставил Distance на 0. Если вы делаете какого-нибудь божка или короля, то будет не совсем разумно, позволять ему почёсываться. Тогда ставим вероятность выпадения соответствующего idle на 0.

В меню Add package также можно выбрать и другие действия.
Travel заставляет непися идти в назначенную точку. Нажав на кнопку View location, вы можете визуально её определить по красному кресту. Этот крест вы можете спокойно двигать мышкой. Если вы поставите несколько travel’ов, то можете сделать маршрут и заставить непися «патрулировать территорию», бегая между этими точками.
Можно также задать это строкой: AITravel [координата х] [координата у] [координата z]

Escorte заставляет вести куда-то выбранного актора (плеера, непися, кричерза). Он идёт впереди и, если ведомый отстаёт, ждать его. Помните белого гуара? Когда вы с ним встречаетесь, он ласково смотрит вам в глаза, разворачивается и уходит. Если вы не идёте за ним, он останавливается и ждёт. Это очень удобно применять, чтоб довести плеера до квестовой точки, как, например труп, вещи, дом, в конце концов. Только есть один нюанс. Актор остановится не только, если плеер отстанет, но и если будет опережать его.
Можно также задать это строкой: AIEscort, "Actor ID", duration [координата х] [координата у] [координата z].

Follow заставляет непися следовать за целью, как компаньон из Трибунала. В начальных настройках почти никогда не используется. Глупо переводить непися в компаноны, если вы с ним даже не познакомились. А вот устанавливать в разговоре или по скрипту – это применяется часто. Команда выглядит так: AiFollow, "Actor ID", duration, [координата х] [координата у] [координата z].
Если указать нулевые координаты, то цель будет следовать за актором до поступления новых инструкций.
Так, например, если вы укажете в результате диалога строку AiFollow, "Player", 0,0,0,0, то заставите непися следовать за плеером и оборонять его. Для того, чтоб отменить это действие, то есть попросить непися “подождать здесь”, надо установить команду AIWander, например AIWander, 512, 5, 0, 0,40,40,10.

 Activate, который, по идее, должен заставлять непися актировать какой-то объект не работает.

Поле Fight отвечает за агрессивность персонажа. Коротко говоря, если эта величина более 50, то он на вас нападёт, а если не коротко, то вот выдержка из MSfD8:
Цитировать (выделенное)
100   Всегда атакует
95   Атакует, если игрок ближе 3000 единиц
90   Атакует, если игрок ближе 2000 единиц
80   Атакует, если игрок близко или вы ему не нравитесь (1000 единиц, 40 Disp)
70   Атакует, если игрок близко, и вы ему сильно не нравитесь (1000 единиц, 35 disp)
60   Атакует, если вы ему не нравитесь и находитесь близко (Disp меньше 30)
50   Атакует, если он ненавидит вас (Disp 0)
40   Атакует, если игрок близко или вы ему не нравитесь. (500 единиц, Disp 10)
30   Будет атаковать, если он ненавидит вас, и вы совершили преступление.
20   Будет атаковать, если он ненавидит вас, и вы совершили много преступлений.
10   Атакует, если он ненавидит вас, и вы совершили много преступлений по отношению к нему.
0   Атакует ТОЛЬКО, если атакован первым
 

Flee влияет на желание непися смотаться от вас при драке. Если 100 –мотает, не дожидаясь столкновения, если 0 – не бежит никогда. Но результат не всегда такой, так как актер учитывает другие факторы, такие как количество повреждений, которые он может получить, или другая стратегия, которую они могут использовать, например магию и дальний бой.

Alarm влияет на отношение его к вашим криминальным наклонностям. На то, что он сделает, если увидит кражу или нападение, на то, что сделает, если за вашу голову назначена награда. Соответственно, чем больше цифра, тем ретивее перс защищает закон.

Hello –расстояние, на котором непись с вами поздоровается. Для получения реального расстояния умножайте на 7.
Все эти параметры можно также изменять и устанавливать при помощи скриптов и из диалогов: SetFight #, SetFlee #, SetAlarm #, SetHallo #.

Следующая закладка Services отвечает за услуги предоставляемые неписём. Если вдруг тут окажется закрыто что-то, что вы хотите использовать, значит, вы выбрали не тот класс персонажа. Сверху мы видим типы предметов, которые мы можем продать/купить у этого непися. В Barter gold указывается сумма, которой обладает непись. Внизу слева типы услуг, а справа места, в которые персонаж нас может отправить.

Кроме того, есть команды AI, которые можно ввести только при помощи скрипта или диалога. Большая их часть требует версии игры 1.2 или выше (Триб или БлудМун).
ForceSneak, ClearForceSneak
Команда ForceSneak переводит актера в режим скрытности, все движения будут выполняться, как будто он крадется. ClearForceSneak завершает режим ForceSneak.
ForceRun, ClearForceRun
ForceJump, ClearForceJump
ForceMoveJump, ClearForceMoveJump
Все эти функции управляют движением указанного NPC. ForceRun заставляет актера всегда бежать при движении, ForceJump заставляет актера постоянно прыгать, ForceMoveJump заставляет актера постоянно прыгать при движении. Функции Clear используются для сброса эти режимов. Каждый NPC может быть только в одном из этих режимов одновременно. Приоритет для этих режимов: Sneak > Running > Jump > MoveJump.

Также, если говорить о перемещениях NPC, нельзя не сказать о путях их перемещений, так называемых Path Grid (Сетка путей). Если в редакторе вы нажмёте на кнопку с изображением «Красных и синих точек, связанных жёлтыми палочками» ;) в любой стандартной локации вы увидите эти самые точки и палочки.
Итак, зачем они нужны? Геймер всегда видит, где есть проход, как обойти препятствие и тому подобные навигационные действия. Для компьютера же это очень сложная задача. В реальной жизни, задача ориентирования и распознавания является одной из наиболее трудоёмких в кибернетике. В игре это намного легче, но тоже доставляет неудобства. Все вы видели, как во время боя, неписи застревают в камнях, статуях и пр. Если вы тестировали только что созданные локации с неписями, то замечали, что те норовят потоптаться по кроватям, залезть на стол или учудить подобные безобразия. Это из-за неверной расстановки тех самых точек.
Как оно работает? Вы видите точки и линии. Эти точки являются как бы железнодорожными станциями, а линии – путями. В нормальном (небоевом) состоянии, непись будет ходить точно между точками и только по путям. В состоянии блуждания(Wander) он идёт к какой-либо случайной точке, находящейся в пределах [Distance] от начальной точки. Если эта точка окажется для него недостижимой, он будет вечно крутиться по локации, пока её не достигнет или пока плеер не уйдёт другую локацию. По этому надо внимательно следить за расположением этих точек. Когда NPC дойдёт до этой точки, он переходит к следующей операции (движению idle, следующему переходу и т.д.). Короче, если вы хотите, чтоб неписи вменяемо передвигались, правильно расставляйте пафгриды.
Для того чтоб они появились в вашей новой локации, нажмите на кнопку Generate default grid, в выскочившем окне. Коэффициент, значащийся рядом, показывает расстояние, на котором будут укладываться точки. Если вы сделали открытое пространство, то можно поставить что-то типа 1024, а если это инт, то 128-256, хотя наверняка всё равно придётся расставлять их вручную. Вы можете подцепить стандартные (красные) точки и перетащить их. Тогда они превращаются в пользовательские (синие) и для их сохранения надо поставить соответствующую галочку. Для перемещения по вертикали зажмите “z”. Вы можете произвольно создавать точки, нажав правую кнопку мыши. Для соединения точек выделите одну, зажмите ctrl и щёлкните по второй. Точки должны лежать в легкодоступных местах, на поворотах. Линии не должны быть перегорожены предметами, иначе непись в них уткнётся и всё. Для сохранения точек нажмите save.


Вот, кажется и всё, что можно извлечь из непися. Что-то новое можно поставить через скрипты, что-то через диалоги, но самое лёгкое было описано выше. Надеюсь, моя статья вам поможет.

При написании статьи использованы материалы из MSfD8 GhanBuriGhan’а с переводом Gwathlobal’а (Для MPT).

zOmb ©
Глава проекта "Сыны Кагренака"
Награды Награждаются форумчане, заставшие зарождение Румора

Теги:
 

Работа над адаптом The Black Mill By Bilbo

Автор dx117Раздел Плагины для TES 3: Morrowind

Ответов: 127
Просмотров: 31631
Последний ответ 07 Январь, 2009, 22:23:00
от Siegrun
Работа над заказным плагином Dan"а

Автор DanРаздел Плагины для TES 3: Morrowind

Ответов: 31
Просмотров: 17947
Последний ответ 30 Октябрь, 2005, 11:27:41
от N 34
Работа с bsa-файлами

Автор AnufisРаздел Мастерская TES IV

Ответов: 1
Просмотров: 1370
Последний ответ 26 Сентябрь, 2009, 18:38:24
от Visman
Wiki: Fallout3 GECK:Руководство по скриптам: Работа с FormLists

Автор WikiBotРаздел Конструктор G.E.C.K.

Ответов: 0
Просмотров: 879
Последний ответ 26 Октябрь, 2011, 20:00:45
от WikiBot
Wiki: Morrowind:Работа со звуками в Морровинде

Автор WikiBotРаздел Мастерская TES III

Ответов: 0
Просмотров: 923
Последний ответ 11 Ноябрь, 2011, 09:30:05
от WikiBot
Wiki: Morrowind:Работа с NPC и AI

Автор WikiBotРаздел Мастерская TES III

Ответов: 0
Просмотров: 895
Последний ответ 11 Ноябрь, 2011, 09:30:05
от WikiBot
Wiki: Morrowind CS:Создание и работа с NPC

Автор WikiBotРаздел Мастерская TES III

Ответов: 0
Просмотров: 876
Последний ответ 26 Март, 2012, 11:31:25
от WikiBot
Wiki: Morrowind CS:Работа с журналом

Автор WikiBotРаздел Мастерская TES III

Ответов: 0
Просмотров: 890
Последний ответ 26 Март, 2012, 13:32:18
от WikiBot
Моя работа

Автор UmmartРаздел Блог Ummart"a

Ответов: 15
Просмотров: 1228
Последний ответ 11 Август, 2013, 20:41:02
от RedMen

Поиск

 
Top
SimplePortal 2.3.5 © 2008-2012, SimplePortal