ЭИК
Персонажи

Основы персонажей

Элемент Character, файлы конфигурации, рэгдолл и анимации, разделы health и ai, варианты через VariantOf.

Из чего состоит существо

Существо (Character) в Barotrauma — это не один файл, а связка:

  • XML-конфиг (<Character>) — параметры, здоровье, ИИ, инвентарь.
  • Файлы рэгдолла — физическая модель тела (конечности, суставы).
  • Файлы анимаций — как существо двигается (плавает, ходит).

Обычно эти файлы генерит редактор персонажей (Character Editor), и руками их правят только ради сложной кастомизации.

Корневой элемент Character

<Character SpeciesName="mycreature" Humanoid="false"
           CanInteract="false" NeedsAir="false" NeedsWater="true">
  <Ragdoll />
  <Animations />
  <Health Vitality="100" />
  <ai />
</Character>

Главные атрибуты

АтрибутЗачем
SpeciesNameИдентификатор вида, по нему на существо ссылаются.
HumanoidГуманоид или нет (влияет на ограничения анимаций).
HasInfoВключает назначение профессии (jobs).
CanInteract, CanSpeakМожет ли взаимодействовать / говорить.
NeedsAir, NeedsWaterНужен ли воздух / вода.
DisplayNameИмя для игрока (перебивает видовое).
Noise, VisibilityНасколько существо заметно для механик обнаружения.

Основные вложенные разделы

Ragdoll и Animations — указывают игре, в каких папках искать файлы рэгдолла и анимаций. Руками их обычно трогать не надо.

Health — максимальная живучесть (vitality), глубина раздавливания (crush depth), регенерация, множители урона по конечностям и модификаторы живучести по типам урона.

AI — боевое поведение: чувствительность зрения/слуха, пороги здоровья, приоритеты целей, дистанции реакции и паттерны атак. Здесь же существо получает свои атаки (см. атаки и взрывы).

Inventory — сколько слотов, правила доступа, возможный лут с весами commonness.

Варианты: VariantOf

Хочешь «подвид» существа — наследуй базового через VariantOf и переопредели только нужные разделы (например, <Ragdoll>, <Attack>, <Health>) с модификаторами вроде ScaleMultiplier и DamageMultiplier:

<Character SpeciesName="bigspineling" VariantOf="spineling">
  <Health Vitality="200" />
  <Ragdoll ScaleMultiplier="1.5" />
</Character>

Удобный способ быстро слепить усиленную/ослабленную версию ванильного монстра, не копируя все файлы.

Как обычно делают существо

  1. Лепишь основу в редакторе персонажей — он сгенерит рэгдолл и анимации.
  2. Подключаешь файл существа как тип контента Character в filelist.xml.
  3. Точечно правишь XML — здоровье, ИИ, атаки.
  4. Тестишь через консоль (spawn mycreature).

Урон и эффекты существа разберём в уроках про статус-эффекты и атаки и взрывы. А сначала — система аффликшенов.