Overview
Перевод официального гайда по разработке пользовательских персонажей в Barotrauma.
Введение
Написано для Barotrauma 0.9.1.0 itchyOwl’ом (перевел IDPixel_RUS)
Это руководство касается предстоящей версии редактора, не выпущенного в настоящее время, который должен использоваться во многих местах в текущей версии. Кроме того, сам редактор персонажей все еще находится в стадии разработки. Многое изменится, и есть много возможностей для совершенствования. Также обратите внимание на то, что создание персонажей в настоящее время требует немного технического волшебства, и не рекомендуется заниматься этим, если вы боитесь редактировать .xml
Это официальное руководство Barotrauma команды разработчиков по созданию собственных персонажей с помощью редактора персонажей в игре. Руководство не является исчерпывающим, но оно содержит некоторые технические детали. Видео урок планируется позже, но я чувствую, что некоторые вещи лучше объяснить в текстовом формате.
Все персонажи в Barotrauma состоят из “скелета” рэгдолл, с одной стороны, и анимации, которые идут с этим персонажем, с другой. В Редакторе персонажей вы можете редактировать их оба. Рэгдолл создается из конечностей, которые связаны с суставами. Анимации в основном определяют движение рэгдолла. Ниже приведены более подробные инструкции для каждого из этих шагов, а также некоторые сведения о них редактирование .xml.
Совет: используйте клавиши [1], [2] и [3] на клавиатуре для быстрого переключения между режимами редактирования конечностей, суставов и анимации.
Создание нового персонажа
В настоящее время проще всего создать рыбу или червеобразных существ – все, что ходит, немного сложнее на данный момент. Таким образом, в идеале не пытайтесь создать краба с 10 ногами в качестве первого персонажа.
Чтобы создать нового персонажа, нажмите кнопку “Create New Character” на панели “Files”. Следующее окно потребует основную информацию о персонаже, которого вы собираетесь создать. Пути к конфигурационному файлу и пути к текстуре относятся к папке проекта в папке игры.
Одна вещь, которую вы должны иметь под рукой в этот момент является текстура для персонажа. В Barotrauma все персонажи сделаны из конечностей, которые имеют спрайт. На практике вам понадобится лист спрайтов, где находятся спрайты для всех конечностей вашего персонажа. Запишите путь к файлу текстуры в поле “Texture Path”.
Также необходимо выбрать или создать новый пакет контента для персонажа, который содержит пользовательский контент для игры. Пакет контента – это, по сути, мод. Выберите пакет содержимого, который вы хотите использовать для персонажа, или создайте новый пакет содержимого, указав его имя и нажав кнопку “Create New”.
Третье, что вам понадобится, это файл конфигурации персонажа, но он будет автоматически создан для вас. Вы можете определить путь к нему в поле “Config File Output”. Можно оставить по умолчанию.
После того, как вы заполнили основную информацию, пришло время создать конечности. Используйте кнопки ” + ” и ” – ” для добавления или удаления конечностей. Вы можете легко добавить несколько конечностей, определив 2D-сетку (поля ” X ” и “Y”) и нажав кнопку “Add Multiple”.
Не обращайте внимания на некоторые настройки. Они нужны, чтобы добавить некоторые конечности, которые мы будем редактировать позже. Кроме того, сейчас не рекомендуется определять суставы. Это можно сделать легче немного позже.
Файловая структура
При создании нового персонажа вам будет предложено определить путь к файлу конфигурации персонажа (например, Mods/MyMod/Characters/Mycharacter.XML.) Настоятельно рекомендуется, чтобы текстовые и звуковые файлы были помещены в ту же папку или во вложенные папки в том же месте, что и файл конфигурации персонажа.
Когда в Редакторе создается новый персонаж, система автоматически добавляет ссылку на файл конфигурации символа в пакете содержимого и создает для вас файлы анимации и ragdoll.
Если по какой-то причине вы не хотите использовать пути по умолчанию, вы можете изменить пути в конфигурации персонажа, изменив значения атрибутов “folder” элементов “ragdolls” и “animations”.
ВАЖНО: не переименовывайте файлы анимации или ragdoll, иначе игра не сможет их использовать. Надеюсь, в какой-то момент это изменится, но пока используйте имена файлов по умолчанию.
ВАЖНО: чтобы избежать проблем с файловой структурой, пожалуйста, используйте только заглавные буквы в имени персонажа. Имя персонажа должно совпадать с именем папки.
СОВЕТ: Вы можете иметь несколько рэгдоллов и анимаций для одного персонажа, но в настоящее время в игре используются только дефолтные.
Редактирование конечностей
Когда вы закончите с добавлением конечностей, нажмите кнопку “Create”. Поначалу ваш персонаж будет выглядеть жутким месивом со всеми конечностями друг на друге. Это потому, что еще нет суставов, чтобы соединить и разделить разные конечности. Пока давайте просто проигнорируем, как персонаж выглядит в игровом представлении; он не будет выглядеть правильно, пока мы не добавим суставы.
СОВЕТ: вы можете добавить конечности после создания суставов и создать суставы до того, как конечности будут окончательными. Однако сначала легче определить конечности. Потом суставы. А затем повторить.
Прежде чем перейти к тому, как мы добавляем суставы, мы должны сначала отрегулировать исходные прямые и коллайдеры конечностей. Исходные прямые – это просто определения положения и размеров конечности; они определяют, где конечность находится в файле текстуры (в пикселях). Коллайдеры, с другой стороны, являются физическими определениями конечностей. Они определяют, как движутся конечности в игровом мире.
Хорошо, давайте начнем редактирование. Во-первых, убедитесь, что у вас есть переключатели “Spritesheet” и “Limbs”, выбранные на панели “Modes”. Также перейдите через переключатель “Adjust Collider”, расположенный в верхней части экрана.
СОВЕТ: вы можете изменить форму коллайдера, регулируя размеры коллайдера из параметров. Включите переключатель “Parameters”, чтобы увидеть параметры выбранной конечности.
Теперь вы увидите коллайдеры конечностей, нарисованные зеленым цветом над вашим персонажем. Выберите конечности над листом спрайта. Перетащите небольшой прямоугольник в левом верхнем углу, чтобы переместить исходный прямоугольник, и прямоугольник в правом нижнем углу, чтобы настроить размер исходного прямоугольника (и коллайдера).
Важно: когда включен режим “Adjust Collider”, коллайдеры автоматически пересчитываются. Если коллайдеры имеют неправильный размер, столкновения не будут работать правильно. Если коллайдеры слишком малы, рэгдолл может быть нестабильным и даже взорваться.
СОВЕТ: используйте клавиши со стрелками для перемещения источника по прямой на один пиксель.
Вы можете добавить больше конечностей, дублируя существующую конечность. Выберите конечность и нажмите “Duplicate Limb” [ctrl+c]. Теперь следует выбрать новую конечность. Перетащите исходную прямую в нужное положение и отрегулируйте размер, как и с другими конечностями. Большинство конечностей также могут быть удалены [delete], но есть некоторые ограничения.
СОВЕТ: если суставы или конечности не удаляются или добавляются неправильно, или у вас есть какая-то другая проблема в Редакторе, загляните внутрь XML-файл. Вы можете вручную добавлять или удалять конечности и суставы через .xml тоже.
Создание суставов
Когда вы закончите с основными конечностями (вам не нужно определять их все сразу), вы можете начать создавать суставы между конечностями.
Убедитесь, что выбран режим “Limbs”. Затем выберите конечность и нажмите кнопку “Create Joint” [ctrl+e]. Теперь вы можете нарисовать сустав между двумя конечностями. Начальная точка соединения была определена при нажатии кнопки или горячей клавиши, и теперь вам нужно определить другой конец соединения. Для этого наведите курсор мыши на нужную конечность и выберите ее левой кнопкой мыши.
СОВЕТ: нажмите [ctrl], чтобы выбрать и отредактировать несколько конечностей или суставов одновременно.
СОВЕТ: в режиме редактирования соединения нажмите кнопку “Copy Joint Settings”, чтобы скопировать настройки первого выбранного соединения в другие соединения.
Режим редактирования теперь должен автоматически измениться на “Joints”. В этом режиме, мы можем увидеть совместные концы нарисованные как красные круги. Если вы выберете один из кругов, он изменит цвет и покажет три маленьких виджета рядом с каждым концом соединения.
СОВЕТ: вы можете редактировать и создавать конечности и суставы также над персонажем в игровом представлении, но обычно это проще сделать на листе спрайта.
Попробуйте перетащить круглый виджет. Это точка опоры сустава. Он определяет точку, от которой конечность прикреплена к другой конечности. Чем больше расстояние между двумя концами, тем длиннее соединение. И чем длиннее сустав, тем дальше конечности друг от друга.
СОВЕТ: если кажется, что конечности находятся друг над другом, а суставные концы выглядят правильно на листе спрайта, но неправильно в игровом представлении, попробуйте перевернуть суставные концы (т. е. просто перетащите их так, чтобы они поменялись местами).
Когда оба конца соединения будут на месте, выберите один из прямоугольных виджетов. Это виджеты совместного угла. Они определяют пределы совместного вращения. Есть верхний и нижний предел. По умолчанию оба значения равны 0. Когда совместные пределы на таком же значении, сустав будет настолько жесткий, насколько это возможно. Верхний предел всегда должен быть выше нижнего предела. Оба эти ограничения идут по часовой стрелке от -180 градусов до 180 градусов.
СОВЕТ: по умолчанию вращения начинаются сверху и заканчиваются внизу, но “Spritesheet Orientation” влияет на это. Нажмите кнопку “Spritesheet” на панели “Modes”, чтобы увидеть элементы управления ориентацией.
Можно, например, определить некоторые конечности слева направо, а другие сверху вниз, но в настоящее время вы можете иметь только одно универсальное смещение для персонажа. Вы можете свободно изменять ориентацию в зависимости от того, какой сустав вы в настоящее время редактируете, но это намного проще, если большинство спрайтов конечностей выложены в той же ориентации на листе спрайта.
Свойство ‘Spritesheet Orientation’ также влияет на некоторые игровые функции, такие как сектора повреждений. Поэтому убедитесь, что вы сохраните тряпичную куклу с правильной ориентацией.
Базовая настройка для Ragdoll
В этот момент у вас должен быть персонаж с конечностями и суставами. Конечности и суставы вместе составляют скелет персонажа, или рэгдолл, как мы его называем. Включите “Ragdoll” на панели “Modes”, чтобы увидеть рэгдолл, нарисованную над персонажем. Справа вы увидите настройки, которые влияют на весь рэгдолл.
У персонажей есть нечто под названием “main collider”. Это приближение размеров персонажа, используемых для анимации, многопользовательской синхронизации и решений AI. Когда у вас включен режим “Colliders”, основной коллайдер рисуется белым цветом (капсула) над персонажем. Важно, чтобы коллайдер имел приблизительно правильный размер. Также важно, чтобы параметру “Height From Floor” было присвоено разумное значение. В противном случае персонаж не будет стоять там, где должен. Обратите внимание, что этот параметр действует только тогда, когда символ стоит; это не влияет на анимацию плавания.
Включите “Parameters” на панели “Modes”, чтобы увидеть редактор параметров справа. Убедитесь, что главный коллайдер настроен правильно. Теперь вы можете также просмотреть все коллайдеры конечностей, чтобы проверить, что они правильной формы и размера.
Еще одна вещь, чтобы проверить типы конечностей. Выберите режим “Limbs”, чтобы просмотреть параметры конечностей для каждой конечности в Редакторе параметров. Убедитесь, что персонаж имеет туловище и/или голову, что ноги и руки определены как таковые, а хвостовые конечности имеют тип “Tail”. Если типы конечностей неправильные, ваши анимации могут работать не так, как предполагалось, потому что система не знает, какую конечность она должна переместить, чтобы заставить персонажа плавать или ходить, например.
СОВЕТ: если выбраны конечности или суставы, в Редакторе параметров отображаются только выбранные элементы. Если вы хотите увидеть все конечности или суставы, снимите выделение со всего, щелкнув правой кнопкой мыши.
Когда вы закончите, нажмите кнопку “Recreate Ragdoll” на панели “Tools”, чтобы применить изменения.
СОВЕТ: в настоящее время в Редакторе нет автосохранения (извините! Мы обещаем сделать это позже). Пожалуйста, используйте кнопки быстрого сохранения почаще, чтобы не потеряете ваш прогресс.
СОВЕТ: попробуйте отменить [ctrl+z] и повторить [ctrl+r]. Они должны работать для большинства вещей. Только не пытайтесь восстановить разрушенные конечности или суставы. Это не сработает.
Анимации
Анимации делает героев живыми. В отличие от многих других игр, в Barotrauma персонажи полностью управляются физическими силами. Когда мы заставляем ноги персонажа делать шаги или хвост качаться, когда персонаж плавает, мы фактически определяем силы на конечностях.
Выполнение такого рода анимации может немного отличаться от выполнения обычных анимаций с ключевыми кадрами. У нас нет такого же контроля над движением. Положительным моментом является то, что анимация может адаптироваться к окружающей среде без какого – либо изменения или смешивания из анимационного клипа в другой-у нас нет клипов, но у нас есть определения анимации как набор параметров.
В настоящее время существует четыре типа анимации для персонажей, которые вы можете редактировать: ‘Walk’, ‘Run’, ‘SwimSlow’ и ‘SwimFast’. Каждая анимация определяется в отдельном файле и имеет различные параметры. Некоторые параметры являются общими для всех, некоторые специфичны для типа анимации. Большинство из них вам не придется беспокоиться, потому что вы можете легко экспериментировать с виджетами, которые рисуются поверх персонажей.
СОВЕТ: нажмите [e] для переключения между анимацией хождения и плавания. Нажмите [сдвиг влево] для переключения между медленными и быстрыми анимациями движения. Там также есть выпадающее меню для выбора анимации.
Однако есть некоторые важные параметры, которые можно редактировать только в Редакторе параметров. Выберите “Parameters” в правой части окна редактора, чтобы открыть редактор параметров.
- Сила перемещения головы/туловища/ноги определяет направленную силу, приложенную к данной конечности для ее перемещения.
- Крутящий момент головы/туловища/стопы определяет угловую силу, которая приводит конечности во вращение, определенное в параметре угла головы/туловища/стопы.
- Крутящий момент определяет скорость вращения главного коллайдера при повороте персонажа.
- Только для гуманоидов: get up force определяет, сколько силы используется, чтобы заставить персонажа стоять.
СОВЕТ: когда редактор параметров открыт, вы можете видеть, какие параметры вы изменяете при перетаскивании виджета по символу. Обновляемые параметры должны мигать зеленым цветом.
Ограничения и отсутствующие функции
При создании персонажей в Редакторе необходимо учитывать некоторые ограничения.
Наиболее актуальными из них являются следующие:
- В отличие от параметров анимации, многие параметры ragdoll не обновляются во время выполнения. Нажмите кнопку “Recreate Ragdoll” на панели “Tools”, чтобы увидеть изменения.
- Вы можете редактировать атаки, но не можете создавать их в Редакторе. Итак, чтобы заставить персонажа атаковать что-либо в игре, вам нужно будет редактировать xml.
- Все повреждения других персонажей могут быть отредактированы в XML, с этим проблем нет.
- Вы не можете редактировать деформации спрайта, которые используются, например, в мочевом пузыре Молоха, чтобы заставить его пульсировать.
- Вы не можете редактировать файл конфигурации персонажей (“Mycharacter.xml”) вообще, это означает, что вам придется редактировать .xml для включения ИИ для вашего персонажа.
- Создание гуманоидов отключено для предотвращения сбоев, поскольку у гуманоидов есть предпосылки, которые не применяются при создании персонажа. Обратите внимание, что вы все еще можете создавать гуманоидов с помощью XML, если вы знаете, что делаете. Просто используйте ванильного человека в качестве основы вашего гуманоидного персонажа и будьте готовы к ошибкам.
Наличие вышеперечисленных ограничений означает, что некоторые вещи просто могут быть сделаны вручную через редактирование xml-файлов. Надеюсь, в какой-то момент мы сможем устранить необходимость в этом, но пока давайте посмотрим, как вы можете справиться с этим.
Настройка XML: файл конфигурации персонажа
Две вещи, которые вам действительно понадобятся для вашего персонажа, – это здоровье и ИИ (Искусственный Интеллект). Здоровье довольно просто, но ИИ, возможно, потребует немного объяснений.
СОВЕТ: редактирование xml-файлов могут быть пугающими на первый взгляд, но это не так сложно. Просто проверьте существующие файлы персонажей и берите оттуда.
Нечеловеческий ИИ в настоящее время является всего лишь простой системой состояний, где ИИ определяет, какую цель он должен приоритизировать в данной ситуации. В блоке “ai ” вы можете определить эти приоритеты: какие вещи персонаж должен нацелить, какое состояние он должен использовать при таргетинге и какой (базовый) приоритет должен быть предоставлен этой цели. Фактический приоритет определяется динамическими факторами, такими как расстояние до цели. Некоторые факторы могут быть изменены .XML. Давайте подробнее рассмотрим самые важные из них:
combat strength – определяет, насколько сильным ИИ считает персонажа.
sight – увеличивает расстояние, на котором персонаж может видеть цели.
hearing – умножает расстояние, на котором персонаж может слышать (или “чувствовать”) цели.
aggressive boarding – если включено, персонаж пытается прорваться в подводную лодку.
flee health threshold – если у персонажа меньше здоровья, чем указано здесь, он будет бежать.
aggression greed – определяет, насколько увеличивается приоритет прицеливания каждый раз, когда персонаж наносит урон цели. Фактическая корректировка приоритета рассчитывается на основе процента ущерба, умноженного на значение жадности (greed). Значение по умолчанию равно 10, что означает, что приоритет будет увеличиваться на 1 каждый раз, когда персонаж наносит урон 10% текущего здоровья цели. Если урон составляет 50%, то приоритет увеличивается на 5.
aggression hurt – определяет, насколько увеличивается приоритет таргетинга каждый раз, когда персонаж получает урон. Работает как значение жадности, описанное выше. Значение по умолчанию-100.
Вы также можете добавить какие-нибудь звуки и частицы (например, кровь) к вашему персонажу. Если вы хотите, чтобы персонаж дропал какие-нибудь предметы, добавьте ему инвентарь. Это довольно легко сделать. Просто скопируйте и вставьте соответствующие блоки из других файлов и немного отрегулируйте значения.
СОВЕТ: ИИ персонажей таргетируется только на объекты, имеющих теги <aitarget/> в определении XML. Для некоторых вещей, таких как стены, этот тег автоматически добавляется в код.
Настройка XML: файлы ragdoll
Хорошо, теперь вы знаете, как редактировать xml файлы – давайте копнём немного глубже: нам нужно добавить атаку для вашего персонажа. И это требует настройки многих параметров.
К счастью, вы также можете редактировать параметры атаки в редакторе (где у вас есть подсказки для большинства из них). Так что я не собираюсь здесь рассказывать про все параметры. Просто скопируйте и вставьте блок атаки из файла ragdoll другого персонажа и поместите его на конечность, которую вы хотите использовать для атаки. Это намного проще, если вы дали легко читаемые имена своим конечностям.
Важная часть, которую вы, к сожалению, не вижу в Редакторе (пока что) – это недуги (Afflictions). недуги – это то, что на самом деле наносит урон персонажам. Все недуги в игре определены в Content/Afflictions.xml, где вы также можете создать свой собственный.
Таким образом, вы можете добавить некоторые недуги внутри блоков атаки в файле ragdoll, например:
Ещё некоторые штуки, которые вы можете попытаться добавить к своему персонажу, – это модификаторы повреждений и деформации. Модификаторы повреждений могут быть положительными (>1) или отрицательными (<1), Что означает, что они могут быть использованы для определения бронирования или слабого места, например. Деформации только визуальны, но они могут быть использованы для достижения вещей, которые не возможно сделать. Взгляните на MolochDefaultRagdoll.xml для справки по обеим темам. Вот упрощенный код из файла ragdoll Молоха:
СОВЕТ: все, что вы редактируете в Редакторе, имеет представление XML-файла. При редактировании анимации, анимационные файлы будут меняться. И если вы отредактируете ragdoll, файл ragdoll изменится.
Публикация вашего персонажа
Чтобы играть с вашими персонажами, они должны быть скачаны у всех игроков.
К счастью, публикация мода довольно проста: сначала вам нужно выбрать недавно созданный пакет контента, который создает папку под названием “NewWorkshopItem” внутри вашей папки с игрой и копирует туда файл персонажа. Эта папка и все ее содержимое будут загружены на Workshop.
Убедитесь, что все файлы, необходимые для вашего мода присутствуют внутри папки: текстуры, аудио, ragdoll и анимационные файлы. Если вы мудро поместили все в ту же папку, что и файл конфигурации персонажа, вам не нужно вручную добавлять какие-либо дополнительные файлы: вся папка включена в элемент workshop.
Как только все будет готово, просто нажмите кнопку ‘Publish item’. Мод теперь может быть найден в Steam workshop, где другие могут найти и скачать его.
Спасибо за прочтение!
Надеюсь, это руководство было для вас полезным. Как уже упоминалось, это первое грубое издание о неполном редакторе, поэтому все отзывы приветствуются! Мы с нетерпением ждем ваших удивительных пользовательских персонажей в Мастерской Steam Barotrauma. Если у вас есть какие-либо вопросы, пожалуйста, используйте канал “baro-modding” на нашем сервере Discord или “Workshop Discussions” в Steam.