Всем привет, уважаемые. Сегодня у нас немного необычный и интересный материал. Это полный перевод официального руководства для моддеров и картоделов по игре Jagged Alliance Flashback, которая как вы знаете, уже давно находится в раннем доступе в сети Стим. Разработчики сразу заявили о том, что всем желающим игрокам будет доступно редактирование и добавление в игру всего, что они смогут сами же и создать. Благо игра разрабатывается на популярном движке Unity 3D. Правда, для полноценной разработки желательна коммерческая версия движка, но какого же отечественного моддера это остановит?
Level Editor (TXEditor) для Jagged Alliance Flashback
Level Editor (или TXEditor) позволяет вам создавать свои собственные сектора (sectors) или уровни (levels) для игры Jagged Alliance: Flashback.
TXEditor – это расширение для Unity. Чтоб его использовать, вам необходимо установить Unity на ваш компьютер. Большинство функций доступно в стандартной бесплатной версии, но для строительства AssetBundles нужна платная pro-версия (или тридцатидневная триал-версия, ну или “ищите на торрентах”).
>> Download JAF Level Editor v0.4.1 <<[www.jaggedallianceflashback.com]
>> Download Unity3d <<[unity3d.com]
Распакуйте Level Editor, откройте Unity и вызовите “Open new project”, выбрав папку с распакованным Level Editor, чтоб начать работу. В этом видео показано, как установить Редактор, связать его с игрой и начать создавать собственный уникальный контент.
Прописываем путь к игре
Чтобы получить доступ к игровым ассетам (3d-модели и т.п.), вам нужно указать путь к игре. Это нужно сделать один раз.
- (1) С открытым в панели project TxEditor, откройте окно «preference»
Mac: Unity -> Preferences… -> TxEditor
PC: Edit -> Preferences… -> TxEditor - (2) Нажмите на кнопку“…”рядом с полем ввода Game Data Folder.
- (3) Найдите вашу папку с игрой:
Mac: /Users/[имяпользователя]/Library/Application Support/Steam/SteamApps/common/Jagged Alliance Flashback/game.app/Contents/Data
Windows: C:\Program Files (x86)\Steam\SteamApps\common\Jagged Alliance Flashback\game_Data - (4) Теперьидемвменю TxEditor -> Open AssetsPanel
- (5) Подождите немного пока все ассеты (Assets)загрузятся в панель. Это может занять некоторое время.
Замечание для пользователей Mac: чтоб попасть в папку с игрой, кликните правой кнопкой мыши по иконке приложения JA:F и выберете «показать контент». Это действие позволит открыть скрытую файловую структуру.
Замечание: если панель ассетов (AssetsPanel) пустая или ассеты исчезли с экрана (случается, если Unity была перекомпилирована, к примеру), просто кликните кнопку “Load AssetBundle”, чтобы перезагрузить игровые ассеты. Также не забудьте перезагрузить сцену, с которой вы работаете.
Создание нового сектора (Sector)
- (1) Идемв TXEditor -> Create a new Sector (Создатьновыйсектор)
- (2) Выберете имя и место для сохранения вашего Sector (сохранить как «Unity scene»).
- (3) Чтоб показать игровую сетку (game’s grid), идем в TXEditor -> “Open Camera Control” и кликаем “Show Grid”. Чтоб отключить Unity’s grid, в окне «scene», идем в Gizmos и отключаем “Show Grid”.
- (4) Перетаскивайте элементы из Assets Panel в окно «scene», чтоб расположить их там и начать строительство!
- (5) Сохраните и загрузите «scenes», как вы обычно делаете в Unity.
Экспорт Сектора (Sector) в игру
Если вы довольный вашим новым сектором, то самое время экспортировать его в папку с модами (имеется в виду папка Mods).
- (1) Откройте TxEditor -> Export Scene As Level…
- (2) Введите название вашего сектора (или название другого существующего сектора)
- (3) Введите имя вашего мода (mod)
- (4) Жмите “Export”
Ваш новый сектор создан в [папка с игрой]/Data/StreamingAssets/Mods/[название мода]/Levels/[название уровня].xxx
Редактор выполняет экспорт файла данных, содержащего информацию о том, как именно ваш ассет должен располагаться в секторе. Также экспортируются Terrain -карты
Для активации мода, ищите необходимый сектор в данном документе.
Редактор: VFX (Визуальные эффекты)
В этом видео объясняется, какие VFX (Визуальные эффекты) уже присутствуют в игре, и как вы можете добавить их на ваши уровни (levels).
Редактор: создание собственных ассетов
Для ваших секторов вы можете создавать собственные ассеты (assets), объекты (objects) или модели (models).
Ассет в JA:F – это ничего более чес prefab (префаб), (смотри документацию Unity [docs.unity3d.com]) у которого есть компонент AssetView, прикрепленный к верхнему уровню GameObject.
Замечание: требуется Pro-лицензия Unity
- (1) Откройте WorkbenchScene вместе с Editor project
- (2) Создайте пустой GameObject. Это будет верхний уровень ассета
- (3) Назовите его как-нибудь так, чтоб в дальнейшем вам было понятно, что это такое.
- (4) Добавьте сюда ваш контент, как дочерний для этого объекта, и поместите его в правильные координаты местоположения.
- (5) Перетащите верхний уровень вашего ассета в project view, чтоб сделать из него префаб.
- (6)Выберете свежесозданный префаб в project panel.
- (7) Переходим в режим Debug, который можно найти в выпадающем меню рядом с иконкой «замочек» в самом верху панели inspector (см. картинку № 1).
- (8) Кликаем “Add Component” в панели inspector.
- (9) Вбиваем AssetView в поле поиска и выбираем класс, который покажется
- (10)Вводим уникальное имя в поле PrefabID.
- (11) Возвращаемся к режиму Normal (см. картинку № 1)..
- (12) Выбираем наш ассет в панели Hierarki (или в нашей сцене)
- (13) Установите блокировки и разблокировки для ваших объектов (вам может понадобиться их снова активировать или деактивировать)
- (14) Кликаем кнопку “Close Asset Setup” Это позволит применить настройки к префабу.
- (15) теперь все готово к использованию на ваших (sector levels) уровнях сектора.
Замечание: вы не можете прикреплять ваши собственные компоненты к asset views, так как их нельзя экспортировать вместе с AssetBundle
Создание AssetBundle
Чтобы использовать в игре пользовательские ассеты, вам нужно создать AssetBundle, содержащий ваши ассеты и поместить его в вашу папку с модами.
- (1) Убедитесь, что все созданные вами Asset prefab’ы помещены внутрь созданной папки.
- (2) Выберете эту папку
- (3) Идемв TxEditor -> Assets -> Export AssetsBundle…
- (4) Дайте вашему assetbundle название и укажите название мода
- (5) Убедитесь в том, что из чекбокса “Export only AssetViews” убрана галочка
- (6) жмем «Export»
AssetBundle теперь создан и скопирован в вашу папку с игрой, внутри которой он готов к использованию. Убедитесь в том, что ваш мод активирован, как описано выше.
Редактор: Scripting Triggers, Quests & Dialogs
TX Editor позволяет вам устанавливать ваши собственные триггеры, квесты и диалоги.
Сценарии в JA:F написаны на языке программирования Lua. Чтоб получить больше информации о том, как писать Lua- код, кликните сюда.[www.lua.org]
По ссылке, приведенной ниже, вы сможете найти рекомендации по написанию сценариев для Jagged Alliance: Flashback, тут содержаться команды, пригодные для кода LUA и ваших сценариев.
>> Download TX Editor Lua Scripting Reference Doc[dl.dropboxusercontent.com]
Триггеры
Чтоб написанное на Lua было приведено в действие, код нужно привязать к триггеру. Триггер приводится в действие при выполнении определенных событий; OnSectorLoad, OnZoneEnter, OnUnitKilled и т. п. Также триггер срабатывает, когда вы кликаете на Unit (Неигровой персонаж).
Trigger asset можнонайтина AssetsPanel под Logic foldout. Просто перетащите его в сцену, как любой другой ассет.
Триггер разделен на два скрипта. Первый называется condition script. Он будет выполнен только, при значении «true»
Зоны
Если у триггера тип события OnEnterZone, то его нужно связать с одной или более зоной. Зоной называется собрание плиток, связанных в сцене в кубическую область. Каждая рлитка этого куба принадлежит зоне.
Зона представляет собой Asset prefab, который вы можете найти в Logic foldout в панели Assets.
Часть 1: Установка триггерных зон
Часть 2: Установка квестов
Это видео является продолжением предыдущего и рассказывает о том, как можно устанавливать квесты, связанные с триггерами
Часть 3: Создание custom Dialogs
Моддинг: создание и распространение Модов
Создание Мода
Все файлы в папке “Original” могут быть перекрыты модом. Мод представляет собой набор файлов, которые помещены в одну папку и названы, как соответствующие файлы в исходной папке
Например, среды папок в Mods, есть директория, которая называется “TheGym”. А в этой папке есть поддиректория “Units”, которая содержит измененную копию NPCs.json. Когда мод активирован (позже мы расскажем об этом более подробно), игра использует версию NPCs из папки с модами, и не из исходной (Original) папки.
Вы можете проделывать тоже самое с unit portraits, GameRuleSettings, AssetBundles и т. п.
Активация мода
Мод можно активировать и деактивировать вручную. Вы также можете активировать множество модулей сразу, если вы хотите.
Процесс активации мода:
Открываем файл StreamingAssets/Core/ModData.json в любом текстовом редакторе (Notepad или TextEdit подойдет) и добавляем в файл следующий код:
{
“path”: “TheGym”,
“active”: true
}
“path” – это путь к вашему моду, связанный с папкой Mods.
“active”показывает активен (true) мод или нет (false)
Пожалуйста, обратите внимание, что если мод не один, вам нужно разделять их запятой
Данные, относящиеся к ассетам
Из-за наличия разных информационных файлов (datafiles), существуют коллекции данных, которые относятся к определенным ассетам. Это может быть текстура из файла или 3d-модель из assetbundle. Все эти ассеты имеют свой уникальный AssetID (тоже самое, что prefabID в TxEditor).
Файл SourceAssets.json в папке Assets, к примеру, содержит целый список assetID в assetbundle SourceAssets.unity3d.
Так, если вы хотите сослаться на модель gavestone, assetID-ссылка выглядит так Props/gravestone_01. Или unit portrait (портрет юнита) может выглядеть так UnitPortraits/LuisaGarneau.jpg
Откройте необходимый json файл из папки StreamingAssets/Original/Assets, и вы увидете ссылочный AssetID для любого модифицированного ассета.
Вы также можете добавить собственный json-файл в папку Assets и установить собственные assetID.
Если вы добавляете ассеты к моду самостоятельно, вам придется добавить ссылочный файл, чтоб использовать их в игре.
Замечание: если вы создаете ассеты, используяTxEditor (как AssetBundles), ссылочные файлы будут созданы за вас.
Распространение мода
Если вы создали классный мод, вы должны поделиться им с JA:F-сообществом. Вы можете просто упаковать вашу папку с модом, и позволить людям скачивать архив вручную. Но также есть возможность распространить мод через SteamWorkshop.
Чтоб это сработало, запустите steam и авторизуйтесь в своем Steam-аккаунте (также необходимо, чтоб вы активировали игру через Steam).
Загрузите ваш мод на SteamWorkshop. Загрузка мода на SteamWorkshop позволит вам распространять вашу работу среди пользователей. Вы и другие также сможете обсуждать, оценивать и подписываться на моды.
- (1)Запустите JA:F через Steam
- (2)Как только увидите предупреждение, нажмите маленькую кнопку в“mods” левом верхнем углу
- (3)Ваш мод должен быть в появившемся списке
- (4)Кликните на него
- (5)Кликните «publish» и дождитесь завершения процесса.
- (6)Вот и все!
Подписка на моды
Для поиска модов и подписки на них, используйте steam-интерфейс:
- (1)Откройте steam
- (2)Найдите страницу сообщества игры JA:F
- (3)Кликните таб Workshop
- (4)Найдите классный мод, выберете его
- (5)Кликните кнопку подписки
Все, теперь, чтоб поиграть в выбранный мод, вам нужно распаковать и активировать его. Вы можете использовать тот же интерфейс и для загрузки модов:
- (1)запустите JA:F через Steam
- (2) Как только увидите предупреждение, нажмите маленькую “mods” кнопку в левом верхнем углу
- (3 Теперь вы можете скачать, распаковать и установить моды, на которые вы недавно подписались или же те, которые были обновлены в недавнем времени
- (4) Мод должен быть в вашем списке. Кликните на него.
- (5)Кликните, чтоб активировать мод.
- (6)Кликните “save and close” в верхнем правом углу.
- (7) Перезапустите игру и можете играть в мод.
Моддинг: изменение настроек игры
Мы пытаемся добавить максимальное количество контента во внешние файлы. И потому этот контент очень легко изменить. Большее количество важной информации содержится в файлах json, которые очень легко модифицировать. Другая часть информации представляет собой изображения, которые загружаются по мере необходимости. Еще одна глобальная часть контента поставляется в виде AssetBundles[docs.unity3d.com](формат бинарного файла, интегрированного в Unity и содержащего все виды ассетов).
Файловая структура
Если вы взгляните на содержимое папки с игрой в Finder (на Mac) или Explorer (Windows), вы увидите папку под названием StreamingAssets.
В Windows, вы найдете ее в папке _Data, а на Mac вам нужно кликнуть правой кнопкой мыши и выбрать “Show Package Content”, где вы найдете папку StreamingAssets внутри папки Data.
- (a)Файлы ModData.json содержат информацию о том, какой мод активен, а также показывает приоритет всех модов
- (b)Внутри папки Mods вы найдете моды. Они представляют собой “отфильтрованные” копии вариантов из папки Original. Подробнее об этом позже!
- (c)GameSettings.json хранят настройки игры, например ZoomSpeed для камеры и т. п.
- (d) Файлы NPC.json и Units.json содержат все доступные для игры юниты (или моды)
- (e) Папка levels хранит все, что касается различных секторов
- (f) Файл FileResources.json содержит информацию о внешних текстурных ассетах. Это могут быть portraits f.ex.
- (g) Файлы SourceAssets.json и SourceAssets.unity3d – это AssetBundle. Подробнее об этом позже!
- (h) GameRulesSettings содержит информацию об игровых правилах ядра. Это могут быть настройки боя и т. п.
Моддинг: изменение персонажей
Замечание: вам нужно иметь некоторые базовые знания о том, как редактировать файлы .json. Также рекомендуется сделать бэкап перед тем, как редактировать все, что попало. Иначе игра может выйти из строя, если вы что-то сделаете не так.
Что ж, пора немного повеселиться!
Открываем файлы
Весь моддинг персонажей осуществляется в файлах Units.json и/или NPCs.json, которые вы можете найти в “Jagged Alliance Flashback\game_Data\StreamingAssets\Original\Data\Units\Units.json”
Откройте файл в каком-нибудь текстовом редакторе, в котором вам удобно работать (Я обычно использую Notepad++ и иногда MonoDevelop, который заточен под работу с Unity). Открыв этот файл, вы увидите все существующие в игре юниты (исключая некоторые NPCs, которые можно найти в файле NPCs.json) в комплекте со статистикой, визуализациями и прочим. В этой инструкции мы будем модифицировать JAF’s starter unit “#0047”. Ищем “unitID”: “CIA_Agent” (на момент написания данной статьи юнит можно было найти в самом конце списка).
Изменение цветов
Я не буду углубляться в то, для чего нужны все эти значения, так как сейчас мы обращаем внимание только на свойства под “Visual”. Первое, что мы видим в этом списке, это настройки цветов. В этом параметре у персонажа 9 значений, отвечающих за выбор цветов. Значения для #0047, данные по умолчанию, выглядят вот так: “UpperBodyColor1”: “0.208, 0.216, 0.271”,
“UpperBodyColor2”: “0.878, 0.804, 0.757”,
“UpperBodyColor3”: “0.318, 0.231, 0.192”,
“LowerBodyColor1”: “0.412, 0.427, 0.502”,
“LowerBodyColor2”: “0.396, 0.431, 0.451”,
“LowerBodyColor3”: “0.412, 0.427, 0.502”,
“HairColor”: “0, 0, 0”,
“HeadColor”: “1, 0.612, 0.494”,
“MoustacheColor”: “0, 0, 0”,
Как вы видите модели UpperBody (верхняя половина тела) и LowerBody (нижняя половина тела) поддерживают максимально 3 изменяемых цвета, в то время, как HairColor (цвет волос), HeadColor (цвет головы) и MoustacheColor (цвет усов) – только один. Это не обязательно значит, что все модели upperbody и lowerbody имеют 3 изменяемых цвета, технически, они просто поддерживаются. Особо не заморачивайтесь по этому поводу; просто если вы меняете цвет и не видите его значений для персонажа, то это говорит о том, что значение цвета просто не поддерживается для этой конкретной части тела.
Цвет обычно выводится с помощью трех десятичных значений (в порядке R, G и B), которые представляют собой результат конвертирования RGB-шкалы (0-255) в номера между 0 и 1, например, UpperBodyColor1 имеет значения 0.208, 0.216 и 0.271.
Давайте изменим эти значения на что-нибудь другое, типа оранжевого цвета.
Чтоб конвертировать RGB-значения в десятичные значения 0-1, все, что вам нужно сделать, это разделить RGB-цифру на 255. К примеру, вот RGB для ярко-оранжевого цвета, который я выбрал:
255, 127, 39
255/255 = 1
127/255 = 0,4980392156862745
39/255 = 0,1529411764705882
Я округлил эти значения до 1, 0.5 и 0.15 соответственно. Теперь мы вставим полученное в наш CIA_Agent, свойство UpperBodyColor1:
“UpperBodyColor1”: “1, 0.5, 0.15”,
Теперь сохраняем Units.json и загружаем в игру. Unit #0047 теперь должен выглядеть, как на изображении ниже. Не стесняйтесь экспериментировать с другими цветами и смотреть, что изменится!
Изменение частей тела
Теперь продолжим с того места, где мы закончили в предыдущей части данной инструкции в файле Units.json. После цветовых настроек вы увидите это:
“EnabledParts”:
“LowerBody01”,
“UpperBody04”,
“Mask”
Эта часть кода отвечает за части тела, которые мы хотим видеть у персонажа. Как мужские, так и женские персонажи имеют свои наборы моделей, которые вы можете включать или выключать, используя этот список. Я больше не хочу, чтоб на моем парне была надета маска. Я стираю Mask, а вместо этого добавляю голову (head) с бородой (beard), а также кепку (cap).
“EnabledParts”:
“LowerBody01”,
“UpperBody04”,
“Head01”,
“Beard01”,
“Cap”
Сохраняем изменения, и опять запускаем JAF.
Поздравляем, вы только, что создали «наемника-дровосека»! Ниже приведены списки доступных частей тела. #0047сейчас должен выглядеть вот так:
Доступные части тела. Мужской персонаж:
UpperBody01 – рубашка, закатанные рукава
UpperBody02 – рубашка без рукавов
UpperBody03 – куртка
UpperBody04 – расстегнутая куртка с рубашкой внутри
LowerBody01 – армейские штаны + сапоги
LowerBody04 – шорты + ботинки
Head01 – базовая голова
Hair01 – короткие редеющие волосы
Hair02 – короткие волосы
Hair03 – афро
Hair04 – стиль командира Спайса (волосы)
Mask01 – стандартная балаклава
Hat01 – шляпа
Hat02 – догадайтесь…
Baret – красный берет, отличительный знак Армии Принца (Prince’s Army)
Cap – зеленая бейсболка
Radio – радиопередатчик для связи
Beard01 – стиль командира Спайса (борода)
Moustache01 – волосы, которые отрастают над вашим ртом и под вашим носом…
Apron – фартук подходящий для барменов и мясников
ArmPatch –армейская нашивка, отличительный знак Армии Принца (Prince’s Army)
Доступные части тела. Женский персонаж:
UpperBody01 – рубашка без рукавов
UpperBody02 – футболка
LowerBody01 – армейские штаны + сапоги
LowerBody02 – шорты и ботинки
Hair01 – короткие волосы
Hair02 – длинные волосы
Списки меняются по мере развития игры.
[hr]За предоставленный материал огромное спасибо комрадам Militaris и Tasha. Оригинал статьи доступен вот тут.
Интернет Магазин Гардениум https://gardenium.com.ua/ – вот тут. Все лучшее для дома и сада – в одном месте!
Ооо, и когда же ждать эту чудесную игру? Когда…
Чего ждать то? Доступна в Стиме.
… и что, готовая игра? Не ранний доступ, не бета-версия?
Ранний, ранний…