Oblivion:Руководство по созданию NPC

Материал из Tiarum
Перейти к: навигация, поиск



Руководство по созданию NPC
45px-Scroll.png

автор: JBurgess, перевод и доработка Ingvar 3009.
переводчик: Ingvar 3009
редактор: Garin
ccылка на оригинал: Создание NPC (932.8Kb)
ссылка на сайт: OBLIVION & FALLOUT 3 MODDING


Примечание Garin: Этот туториал был написан автором по мотивам официального туториала Bethesda Basic NPC Creation Tutorial. Дословный перевод от Boblen`a вы можете прочитать с статье Руководство по основам создания NPC. Но в данной статье содержится и некоторая новая информация, поскольку в качестве неигрового персонажа (NPC) мы будем создавать не женщину-главаря банды, а мужчину-фермера, работающего на своем огороде в районе Имперского города.


Обзор

Этот туториал ознакомит вас с основами создания NPC и размещение его в мире Oblivion. Будут раскрыты следующие темы:

  • Создание нового NPC.
  • Редактирование NPC Stats.
  • Редактирование внешности NPC.
  • Инвентарь и заклинания.
  • Основы редактирования AI и пакетов.

Этот урок не затрагивает диалоги и квесты. Ну что ж, начнём!


Создание нового NPC

Для начала - лирическое отступление, в котором объясним: кто же такие NPC (для тех, кто не знает). NPC (абревиатура от Non Playable Characters) - в компьютерных играх персонаж, управляемый программой. Следует отметить, что в компьютерных играх таким термином обычно обозначают дружественных или нейтральных к игроку персонажей, а враждебных чаще называют монстрами. Неигровые персонажи служат как инструмент создания игровой атмосферы (мирные жители в городах, животные в природе), и для создания сюжета (незаменимы в квестах).

Для туториала создадим NPC фермера, работающего на своём огороде в Waterfront (Имперский город). Часто для создания нового NPC используют уже существующий в качестве шаблона. Мы этим способом пользоваться не будем, но пример привести надо. Для этого выберите Object Window > Actors > NPC. В списке персонажей (справа) находим Адарнел (“Adanrel”). Двойной клик по ID, чтобы открыть окно NPC.

Важно: перед тем, как делать какие-то изменения в персонаже-шаблоне, измените его ID на что-нибудь уникальное. Так мы предостережем себя от случайного сохранения наших изменений в NPC-шаблоне. После изменения ID жмите ОК и на появившиеся сообщение отвечайте Yes (да).

Это был первый способ, но мы воспользуемся вторым. Для этого выберите Object Window > Actors > NPC. В списке правый клик и New.


Редактирование NPC Stats

Итак, перед нами окно NPC, рассмотрим его:

  • ID: Редактор ID для NPC. Должен быть уникальным. У нас “aaaMyFirstNPCFarmer” (без кавычек; “aaa” в начале ID поможет без труда найти нашего фермера в списке).
  • Name: Имя персонажа, которое игрок видит в игре. У нас My Farmer.
  • Script: Позволяет присвоить скрипт к персонажу. Оставим в покое.
  • Class: класс персонажа. У нас Farmer. Чтобы посмотреть особенности и характеристики класса, выберите в меню Character > Class и в списке найдите интересующий вас класс.
  • Summonable: Оставьте чистым!
  • Offset/PC Level Offset: Если отметить, то уровень персонажа будет подстраиваться под уровень игрока. Offset определяет, насколько выше или ниже уровня игрока будет уровень NPC. У нас не отмечено.
  • Calc Min/Max: Эти две ячейки определяют минимальный и максимальный уровень персонажа. Очень удобно при создании пещер для игроков определённого уровня. Например, можно создать подземелье для игроков 10-15 уровней. Если выставлено Min=1, a Max=0, то персонаж будет того же уровня, что и игрок.
  • Race: Раса персонажа. Наш фермер будет данмером (тёмным эльфом, Dark elf).
  • Female: Если отметить, то персонаж станет женщиной. У нас не отмечено.
  • Combat Style: Стиль боя. У нас DEFAULT (по умолчанию).
  • Death Item: Специальная вещь, которая появляется в инвентаре существа (NPC, или монстра) после его смерти. Такую вещь нельзя украсть, или купить. Применимо для трофеев (шкуры, клыки и т.д.), или квестов. У нас не отмечено.
  • Essential: Если отметить, то персонаж станет неуязвимым, и место смерти будет просто терять сознание. У нас не отмечено.
  • Respawn: Если отметить, то через некоторое время после смерти персонаж возродится и продолжит жить. Применимо для стражи, если вы, убегая от правосудия, убили пару стражников, то через пару дней они снова будут нести службу. Для рядовых персонажей обычно не применяют. У нас не отмечено.
  • No Persuasion: Если отметить, то при общении с персонажем мы не сможем подкупить его, или повлиять на его отношение к игроку. Пропадает кнопка Убеждения (такая улыбающиеся мордочка)
  • No Rumors: Если отметить, то мы не сможем общаться с персонажем, так как меню диалога пропадёт. У нас не отмечено.
Рис.1. Окно характеристик NPC

Заметьте: если вы отметите PC Level Offset, то закладка Stats будет заперта, так как эти характеристики будут зависеть от класса и уровня персонажа, а его уровень зависит от уровня игрока. Сверьтесь с рис.1 (на нём изображена часть окна)

Закладка Factions (Фракция) также важна. Сейчас тут пусто, а это означает, что персонаж не принадлежит ни к одной из фракций (гильдии, общества и т.д.). В меню выберите Character > Faction. В списке ищем Fighters Guild (Гильдия бойцов), выделяем её и перетаскиваем в закладку Faction у нашего персонажа.

Около названия фракции можно увидеть 0, это число отвечает за ранг в гильдии. Чтобы узнать, какое число отвечает тому или иному рангу, смотрите в Character > Faction > нужная фракция. Слева появится окно, в которое занесены все настройки гильдии и отношение к другим фракциям.

Итак, теперь наш фермер вступил в гильдию бойцов.

Редактирование внешности

ВНИМАНИЕ!!! На этом этапе может возникнуть проблема так как на некоторых операционных системах как раз на вкладке Face не прорисовывается ничего и программа может зависнуть. Для этого перед тем как нажать на вкладку надо справа внизу поставить галочку возле "Head" и только потом можно спокойно переходить на вкладку Face.

Переходим в закладку Face. Она даёт возможность изменить базовые настройки внешности: возраст, цвет кожи, стиль и цвет прически, цвет глаз. Если отметить Lock…, то при генерации внешности (кнопка Generate) установленные параметры не изменятся, удобно, если вы хотите сгенерировать лицо определенного возраста.

Рис.1а. Редактирование внешности NPC

О цвете волос: слишком яркий цвет волос не очень подходит к стилистике мира Oblivion, поэтому после выбора цвета, постарайтесь утемнить его и сделать менее вызывающим и вульгарным.

Иногда достаточно сгенерировать лицо, например для бандитов, некромантов и.д., для тех, с кем игрок общается в основном во время боя. Но для уникальных NPC (жителей городов, торговцев) нужно сделать неповторимое лицо, для этого идём в закладку Face Advanced:

Рис.1б. Тонкая настройка внешности NPC

Эта закладка открывает множество опций, но для туториала мы объясним основы. Вы узнаете больше, эксперементируя с различными опциями.

  • Slider: полоса прокрутки, используется для редактирования опции которую вы выбрали.
  • Control Type: тип изменений, которые вы хотите внести.
  • Geometry – отвечает за структуру лица, его форму;
  • Texture отвечает за цвет, текстуры лица.
  • Symmetry Type: симметричные и несимметричные изменения лица.
  • Symmetry – обычно вы будете работать в этом режиме, так как он делает одинаковыми изменения левой и правой части лица;
  • Asymmetry – работает только в режиме Control Type: Geometry. Используется для создания интересных внещеностей, напр. Кривой рот, одна бровь выше другой и т.п.

Редактирование с помощью Миши: вы можете использовать правую клавишу Миши в окне лица, для редактирования структуры.

Редактирование инвентаря и заклинаний NPC

Рис.2. Одетый персонаж

Откроем закладку Inventory (Инвентарь). Если не видно закладку, нажмите на левой стрелке, справа от полосы с закладками, и нажимайте на стрелку, пока не увидите нужную вам вкладку. Сейчас в инвентаре у нашего фермера ничего нет, мы добавим туда одежды. Найдите и перетащите в инвентарь следующие вещи:

  • Object Window > Items > Clothing > Lower Class:
  • “LowerShirt06” (рубашка с воротником)
  • “LowerPants06” (зеленая фетровая одежда)
  • “LowerShoes06” (туфли с пряжкой)
  • Object Window > Items > Miscitem > Clutter > Farm > “Hoe01” (Мотыга, наше орудие труда)

Наш одетый NPC представлен на рис.2 справа.

Также можно добавить ему еды, но это уже будут уровневые вещи (Leveled items). Leveled item – это список из конкретных предметов или других Leveled items, которые появляются в инвентаре по случайному выбору или при определённом уровне NPC или игрока.

  • Object Window > Items > Leveled Item:
  • LL0FoodLowerClass75” (еда),
  • LL0FoodLowerClassDrinks75” (выпивка).

Чтобы посмотреть результаты случайного выбора, а они всегда разные, нажмите на Preview Calculated result в закладке Inventory.

Если хотите проверить, при каком уровне какие вещи будут, введите нужный уровень в Preview level (слева от Preview Calculated result) и нажмите кнопку.

Далее откройте закладку Spells (Заклинания). В этом списке размещены все заклинания, магические способности и умения персонажа. Сейчас у нас пусто. Давайте добавим простейшие заклинания лечения и атаки. Для этого выберите и перетащите следующие заклинания:

  • Object Window > Magic > Spell > Spell:
  • StandardRestoreHealth1Novice” (Лечение малых ранений).
  • StandardShockDamageTouch1Novice” (Электризующие касания).

Эти элементарные заклинания довольно слабые, но не требуют много манны. Также существуют уровневые заклинания, как и в случае с предметами – это списки с заклинаниями, которые случайным образом добавляются к NPC. Добавим одно такое: Object Window > Magic > Spell > Leveled Spell, ищем LL0ShieldMinor100 (добавит заклинания щита, опираясь на уровень)

Основы редактирования AI и пакетов

В принципе, наш фермер готов, но он ничего не будет делать, а просто стоять там, где вы его разместите, он уже не болванчик, но всё ещё кукла, а не полноценный NPC. Мы должны найти ему жильё, заставить его работать и жить в мире Oblivion. Для этого и нужен AI, это его интеллект, а специальные пакеты будут заставлять его делать те или иные вещи. Для начала создадим ему условия для жизни, для этого в окне Cell > World Space > Interiors в списке интерьеров ищем “ICWaterfrontAbandonedShack” (покинутая хижина).

Наш NPC будет небогатым и жить в этой хижине вместе с остальными бедняками. Ему нужно спальное место. Выберите Object Window > World Objects > Furniture > Architecture > Tents и перетащите в Render Window нашу “кровать” “BedrollSideEntry”. Эта кровать будет принадлежать нашему фермеру, поэтому двойной клик по кровате в Render Window и в закладке Ownship в графе NPC выбираем нашего фермера (“aaaMyFirstNPCFarmer”). И сразу в графе Reference Editor Id пишем: aaaMyFirstNPCbed, отмечаем Persistent Reference. Затем ОK. (рис. 3)

Рис.3. Назначение NPC спального места

Итак, кровать есть, но ещё нужно место работы. Так как он фермер, он будет что-то копать, копать на грядке. Но нужна и грядка, это будут обычные растения. Для того, чтобы быстрее выбрать место, двойной клик на желтом маркере (с розовой стрелкой) у двери и отвечаем Да. Он перенесёт нас в Waterfront (Имперский город). Осмотримся и выберем место для грядки. Можете последовать за мной и разместить огородик под деревом, рядом с домом фермера и его друзей.

Выберите Object Window > World Objects > Flora > Plants ищем и “сажаем” пару кустиков “PotatoPlant” (Картофель). Теперь нужно установить маркер для того, чтобы фермер работал именно на грядке.

Для этого выберите Object Window > World Objects и просто кликаем по Static, в самом низу списка (справа) ищем “XMarker” и перетаскиваем этот крестик в то место, где бы вы хотели заставить фермера работать. Двойной клик на маркере в Render Window и присваиваем ему уникальный Reference Id: aaaMyFirstNPCWorkMark (рис. 4) .

Рис.4. Создаем огородик

Теперь осталось сделать пакеты сна и роботы. Нажимаем на кнопку “AI”. Делаем следующее:

Для пакета сна (Sleep Package)


  • ID: уникальное ID (например, MyFirstNPCSleepPack)
  • Package Type: Sleep
  • Flags: ничего не отмечаем
  • Door Flags: ничего не отмечаем
  • Schedule
  • Day of Week: -Any-
  • Month: -Any-
  • Date: -Any-
  • Time: время, когда вы хотите, чтобы NPC закончил работать и пошёл спать. Тут используется 24 часовая система (напр. 20 = 8:00 вечера (pm.) это то, что мы выберем)
  • Duration: как долго он будет спать (напр. 11, это означает, что по прошествии 11 часов он проснётся, тобто в 7:00 утра (am))
  • Condition: Ничего не трогаем
  • Location: Отметьте Location, и затем пункт Near Reference. В Cell выберите ICWaterfrontAbandonedShack, а в Ref – ‘BedrollSideEntry’’ aaaMyFirstNPCbed’.
  • Target: Ничего не трогаем.

Теперь нажимаем ОK и будем делать другой пакет для работы.

Для пакета работы (Work Package)


  • ID: уникальное ID (напр.)
  • Package Type: Use Item At.
  • Flags: ничего не отмечаем.
  • Door Flags: ничего не отмечаем.
  • Schedule:
  • Day of Week: -Any-
  • Month: -Any-
  • Date: -Any-
  • Time: 7
  • Duration: 13.
  • Condition: Ничего не трогаем
  • Location: Отметьте Location, и затем пункт Near Reference. В Cell выберете ICWaterfront02 (03,11), а в Ref‘XMarker’’aaaMyFirstNPCWorkMark’.
  • Target: отмечаем Any Object и в Object ID выбираем нашу мотыгу – Hoe01.

Теперь ОК. Да, и не забудьте поместить вашего фермера в мире Oblivion. Для этого в Object Window > Actors находим NPC и перетаскиваем фермера в Покинутую хижину (место, где у него кровать). Чтобы опустить на пол: клавиша "F".

Сохранение и тестирование

Помните: при использовании другого персонажа в качестве шаблона не забывайте в первую очередь менять его ID на уникальное значение. Также при копировании сохраняются AI и пакеты, не забывайте удалять их для вашего нового NPC.

Кажется, всё! Сохраните плагин и протестируйте его. Теперь в Уотерфронте живёт созданный вам фермер, рано встаёт и много работает, чтобы прокормить себя.

Вам осталось экспериментировать и создавать всё более интересных персонажей, которые запомнятся игроку!

В архиве с оффлайн-версией туториала на сайте OBLIVION & FALLOUT 3 MODDING находится мод TP_NPCcreation, в нём уже сделано всё, что было описано выше. Можете проверить, правильно ли вы всё сделали.



  • Оригинал: Basic NPC Creation Tutorial.
  • Перевёл и немного изменил Popov Igor (Ingvar 3009). Вы можете найти меня на сайте www.modder.3bb.ru под ником Ingvar 3009. Желаете что-либо добавить в этот тутор, или разместить где-либо пожалуйста, свяжитесь со мной, мой e-mail: Furgi@rambler.ru