Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Туториал о создании компньонов-животных (без пр...doc
Скачиваний:
47
Добавлен:
06.11.2019
Размер:
790.02 Кб
Скачать

2. Создание пакетов

Теперь перейдем к созданию пакетов. Они нам понадобятся при написании скрипта. С их помощью мы будем управлять компаньоном.

Идем в главное меню Character > PackageОткроется окно AI packages, где мы увидим список всех существующих в игре пакетов АИ. Кликаем правой клавишей мыши где-нибудь в этом списке и в появившемся меню выбираем New (Новый).

Сначала создаем пакет для следования (IgorRaCompanionFollow):

1) ID пишем произвольно (для удобства IgorRaCompanionBlackBearFollow).

2) Тип пакета (Package Type). Выбираем Follow (Следовать).

3) Schedule (расписание) – не трогаем.

4) Conditions (условия) – не трогаем.

5) Location (местоположение) не трогаем.

6) Target (Цель) – в закладке Target (цель) отмечаем Any Object. В выпадающим списке Object ID выбираем Player. Это и будет цель, за которой будет следовать компаньон. То есть за игроком в данном случае.

7) Флаги (Flags) не трогаем.

Теперь пакет прогулки (IgorRaCompanionWander):

1) ID пишем произвольно (для удобства IgorRaCompanionBlackBearWander).

2) Тип пакета (Package Type). Выбираем Wander (Бродить).

3) Schedule (расписание) – не трогаем.

4) Conditions (условия) – не трогаем.

5) Location (местоположение). Отмечаем Location, затем отмечаем Near Current Location. То есть NPC будет бродить в районе того места, где он сейчас находится. И выставляем Радиус (Radius), то есть насколько далеко он будет отходить от начальной точки. Я поставил 1024. Но если вы хотите, чтобы он стоял на месте ставьте 0.

6) Target (Цель) – не активна.

7) Флаги (Flags) не трогаем.

И последний пакет, пакет бега домой (IgorRaCompanionRun):

1) ID пишем произвольно (для удобства IgorRaCompanionBlackBearRun).

2) Тип пакета (Package Type). Выбираем Wander (Бродить).

3) Schedule (расписание) – не трогаем.

4) Conditions (условия) – не трогаем.

5) Location (местоположение). Отмечаем Location, затем отмечаем Near Editor Location. То есть NPC будет бежать туда, где он был изначально выставлен в редакторе. И выставляем Радиус (Radius) в зависимости от того, хотите чтобы он бродил неподалеку от этого места или стоял на месте.

6) Target (Цель) – не активна.

7) Флаги (Flags) отмечаем Always Run и Defensive Combat.

С пакетами все. Переходим к следующему этапу.

3. Размещение животного в мире (с Ref)

Начнем с выбора подходящего места для размещения. Я в силу удобства для себя выбрал район набережной Имперского города, неподалеку от хижины на продажу.

Здесь нужно упомянуть о возможных проблемах. В процессе создания различных компаньонов я столкнулся с тем, что некоторые из существ не размещаются в помещениях и городах. То есть в Конструкторе мы их можем разместить, только в игре их не будет. С чем это связано? Сначала я думал, что это связано с типом существа (Type) – что из-за особенностей движка животные, относящиеся к типу существа (Creature), не могут находиться в помещениях. Но это не так! Эта проблема возникала и с представителями типа Даэдра. К тому же смена типа никакого влияния не оказала на поведение животных. Судя по всему, с этим связана и еще одна проблема – эти же некоторые виды существ не хотят перемещаться вместе с игроком с помощью быстрого перемещения (fast travel) в города и не проходят вместе с ним через ворота, двери и т.д.

Эту проблему можно решить выставлением определенного уровня интеллекта (intelligence) в закладке stat окна редактирования NPC (в данном случае вашего компаньона). Для полной уверенности, что компаньон последует за вами всюду, выставьте интеллект = 100.

Итак, определились с местом размещения. Далее в Render Window нам нужно загрузить необходимую ячейку. В окне Cell View ищем в окошке World Space мир с названием Tamriel. В списке ниже ищем ICWaterfront01 и дважды по ней щелкаем левой клавишей. Спустя какое-то время ячейка загрузится в Render Window.

Теперь ищем в окне объектов (Object Window) наше животное и перетаскиваем его в Render Window. Там устанавливаем его по своему усмотрению.

А теперь важный момент, упустив который у вас появятся проблемы со скриптами в дальнейшем. Двойной щелчок левой клавишей на нашем животном, находящемся в Render Window. Появится окно Reference (ссылка), где нам нужно выставить уникальный Reference Editor ID (например, IgorRaCompanionBlackBearRef; чтобы не запутаться, удобно использовать ID объекта добавив к нему Ref) и убедится, что отмечено окошко Persistent Reference (в данном случае оно изначально отмечено и заблокировано)

Зачем все это? Дело в том, что в игре может присутствовать большое количество объектов (существ, предметов, оружия и т.д.) с одинаковым ID. А если нам нужно задействовать какой-то конкретный объект или существо, размещенное в игре? Если использовать ID, то наше воздействие на него повлияет на всех таких объектов. Именно для того, чтобы этого избежать, для каждой копии объекта размещенной в игре вводится ссылка (Reference Editor ID) именно на данный конкретный объект. Таким образом, мы можем воздействовать через эту ссылку на конкретный объект, а не на все однородные. Это важно знать при написании скриптов, чем мы с вами сейчас и займемся…