Есть на CryWiki статьи, посвящённые работе с файлами интерфейса.
Исправление декомпилированных Flash-файлов
Создание HUD. Здоровье, энергия, боезапас
Возможно, пригодится. Декомпилированные файлы нужно исправлять. При декомпиляции теряется внедрённый шрифт, а в текстовые поля часто добавляются пробелы, символы переноса строк и ненужные свойства. При экспорте нужно выбирать Flash Player 8 в настройках публикации, экспортировать желательно без сжатия.
1) Есть ли какое-нибудь решение этой проблемы? Возможно-ли восстановить игровой шрифт и
локализацию альтернативным путем? Влияет ли версия Adobe Flash Player на ошибки в CS6?
В игре используются строки локализации, такого вида : "@ui_my_message1". Должно быть только это на всё текстовое поле и ничего лишнего. Строки распознаются движком и заменяются на текст из файла локализации. Но при декомпиляции туда добавляются ненужные символы. Убери во всех текстовых полях документа лишние пробелы и переносы строк и внедри шрифты, и проблемы не будет. Но тебе придётся перелопатить весь flash файл целиком. Также, русский шрифт Agency FB в игре используется полужирный, а в интернете доступен только в обычном начертании. Ты можешь скачать его и внедрить в свой отредактированный вариант, но символы будут более тонкими. Как альтернатива, ты можешь использовать уже внедрённый шрифт из общей библиотеки шрифтов
HUD_Font_LocFont.gfx, которая есть в Crysis/Game/Localized/Russian.pak.
Возьми файлы
HUD_Font_LocFont.gfx и
HUD_Font_LocFont_glyphs.gfx из
Crysis/Game/Localized/Russian.pak и скопируй в
Mods/твой_мод/Game/Libs/UI. Дальше в своём .fla файле меню создай в библиотеке новый шрифт, назови его к примеру MyFont, всё остальное во владке "параметры" оставь как есть. Далее перейди во вкладку ActionScript. Там выбери следующие значения.
В панели "Связывание":
пропиши
Идентификатор:
Font_Body
В панели "Общий доступ":
Поставь галочку "
Импорт для общего доступа при исполнении",
пропиши
URL:
HUD_Font_LocFont.gfx
Нажми ОК.
Выглядеть это будет вот так:
index.php?page=Attachment&attachmentID=2287 index.php?page=Attachment&attachmentID=2288
Потом в своём текстовом поле выбери свой шрифт из списка, он должен быть в самом верху и будет помечен звёздочкой: MyFont*. Это означает, что шрифт загружается из внешней библиотеки через ActionScript.
Скриншот:
index.php?page=Attachment&attachmentID=2289
В тексте должно быть твоё сообщение локализации, и поле уже должно быть исправлено после декомпиляции. Лучше создай новое текстовое поле заново, для проверки, чтобы исключить ошибку. Остаётся только перелопатить все текстовые поля во всём документе. В каждом поле убрать ненужные свойства, убрать в тексте все лишние символы до и после идентификатора локализации, применить новый созданный шрифт из списка. После экспорта .swf файла, если всё было сделано правильно, в игре твои текстовые поля будут иметь шрифт Agency FB полужирный, точно так же, как и в оригинальном интерфейсе Crysis. Так же общая библиотека шрифтов позволяет экономить оперативную память, которую использует библиотека Scaleform. Но учти, что в обычном Flash Player ты никаких изменений не увидишь. Шрифт вообще не будет внедрён, либо будет простой Times New Roman. Это заработает только в игре. Ты можешь внедрить диапазоны символов в свой шрифт для целей теста, выбрать "Прописные", "Строчные", "Основную латиницу" и "Кириллицу", но в игре эти внедрённые символы вообще использоваться не будут, и это просто пустая трата ресурсов. Scaleform берёт шрифт из файла, указанного в URL, по указанному идентификатору. Подробнее об этом можно прочитать на сайте Autodesk:
https://help.autodesk.com/view/SCLFRM/EN…_faqs_font_html и в документации к CryEngine 3:
UI Localization
2) Необходим ли в таком случае Autodesk Scaleform и где его сейчас возможно достать? (Если он действительно упростит задачу, просто эту программу я не очень понимаю)
Autodesk Scaleform это не какой-то отдельный редактор вместо Flash Professional. Это всего лишь набор инструментов для преобразования .swf файлов в формат .gfx, плюс документация и набор UI компонентов для создания интерфейсов, упрощающие жизнь разработчику. Сам Scaleform GFx является по сути альтернативным flash плеером, созданным независимо от Adobe, специально под нужны игровых движков. Там есть существенные различия в том, как выполняется код в виртуальной машине AcionScript, и в том как устроен рендеринг векторной графики. В флеше это кривые, а в Scaleform это полигоны. То есть это как бы проигрыватель flash файлов, но устроенный совершенно иначе, по-своему намного более продвинутый, чем продукт от Adobe. Проигрыватель Scaleform (Scaleform Player) тоже включён в состав SDK.
index.php?page=Attachment&attachmentID=2290
К сожалению, Scaleform версии 2.x, который используется в движке Crysis, отсутствует в свободном доступе. Поэтому все эти плюшки нам, простым моддерам, недоступны. Нет даже инструмента GFX Export, который изменяет формат .swf файлов и преобразует их в .gfx формат. В CryEngine 3 и 5 используется GFX 3.0, который поставляется в комплекте с SDK. Правда, там не всё. Можешь в интернете найти GFx 3.3 SDK, найти его также можно в составе UDK (Unreal Develoment Kit). Там присутствует также гора документации от разработчиков.
) Как сделать селектор уровней? Нужен ли в этом случае Adobe CS6?
А что за селектор тебе нужен? Что-то особенное? Выбор любого уровня по желанию? В составе SPMod в Crysis Wars Mod SDK есть простой селектор уровней.
При каком-либо незначительном изменении файла в Adobe Flash CS6 (в плане изменения текста) вылетает ошибка и так каждый раз (пробовал и в CS5)
Мы не экстрасенсы, поэтому прочитать мысленно код ошибки никто не сможет. Нужны подробности.