- •Туториал о создании компаньонов-животных V.2.0
- •1. Создание животного
- •2. Создание пакетов
- •3. Размещение животного в мире (с Ref)
- •4. Скрипт на призыв
- •5. Заклинание призыва
- •6. Скрипт основной
- •7. Добавляем в меню пункт «Установить дом»
- •8. Добавление визуальных эффектов
- •9. Даем возможность компаньону носить наши вещи
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) именно на данный конкретный объект. Таким образом, мы можем воздействовать через эту ссылку на конкретный объект, а не на все однородные. Это важно знать при написании скриптов, чем мы с вами сейчас и займемся…