Вы не вошли.

Уважаемый гость, добро пожаловать на форум: CRYMOD.NET - Портал сообщества CryENGINE. Если вы здесь впервые, то, пожалуйста, прочитайте раздел Помощь. В этом разделе можно подробно ознакомится с функционалом данной системы. Что бы использовать все возможности системы, необходимо зарегистрироваться. Для этого пройдите по ссылке и узнайте подробнее о процессе регистрации. В случае если вы уже зарегистрировались – войдите под своей учётной записью.

Rasmus

Новичок

  • "Rasmus" мужчина
  • "Rasmus" создал эту тему

Сообщений: 5

Место жительства: О. Линг-шань, западный берег "Виллэдж" д.№4

1

Вторник, 17 Ноябрь 2020, 17:49

Изменение главного меню Crysis (интерфейс) и селектор уровней.

Добрый день, я создаю свою глобальную модификацию, в главном меню сверху должно быть название мода (в данном случае вместо Crysis Wars - Crysis AW например), а дальше, через "новую игру", создание селектора уровней (по актам). Дело в том, что после внесения изменений в декомпилированный Flash-файл (Menus_MenuStart.fla) и вставки уже в .gfx формате в модификацию, при запуске выдаёт вместо слов только обозначения для локализации (как @ui_button_07 что-то типа такого).
При каком-либо незначительном изменении файла в Adobe Flash CS6 (в плане изменения текста) вылетает ошибка и так каждый раз (пробовал и в CS5), а при внедрении шрифта игры ничего не меняется, ни шрифт, ни появление локализации вместо обозначений, только квадратики и какой-то другой шрифт. Только одно изменение - отображается новый "логотип".



1) Есть ли какое-нибудь решение этой проблемы? Возможно-ли восстановить игровой шрифт и локализацию альтернативным путем? Влияет ли версия Adobe Flash Player на ошибки в CS6?

2) Необходим ли в таком случае Autodesk Scaleform и где его сейчас возможно достать? (Если он действительно упростит задачу, просто эту программу я не очень понимаю)

3) Как сделать селектор уровней? Нужен ли в этом случае Adobe CS6?



Помогите пожалуйста, долго искал решение этих проблем. Буду очень благодарен.

(P.S. Так как сам не совсем опытен в программировании, некоторые фразы, возможно, будут непонятны. Постараюсь как-нибудь объяснить проблему)

Вот кстати сам проект: https://www.moddb.com/mods/crysis-alternative-wars

2

Среда, 18 Ноябрь 2020, 02:26

Есть на 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

Нажми ОК.

Выглядеть это будет вот так:



Потом в своём текстовом поле выбери свой шрифт из списка, он должен быть в самом верху и будет помечен звёздочкой: MyFont*. Это означает, что шрифт загружается из внешней библиотеки через ActionScript.

Скриншот:



В тексте должно быть твоё сообщение локализации, и поле уже должно быть исправлено после декомпиляции. Лучше создай новое текстовое поле заново, для проверки, чтобы исключить ошибку. Остаётся только перелопатить все текстовые поля во всём документе. В каждом поле убрать ненужные свойства, убрать в тексте все лишние символы до и после идентификатора локализации, применить новый созданный шрифт из списка. После экспорта .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.



К сожалению, 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)


Мы не экстрасенсы, поэтому прочитать мысленно код ошибки никто не сможет. Нужны подробности.
Legacy of the Yods



Rasmus

Новичок

  • "Rasmus" мужчина
  • "Rasmus" создал эту тему

Сообщений: 5

Место жительства: О. Линг-шань, западный берег "Виллэдж" д.№4

3

Среда, 18 Ноябрь 2020, 07:58

Большое спасибо! :)
А что за селектор тебе нужен? Что-то особенное? Выбор любого уровня по желанию? В составе SPMod в Crysis Wars Mod SDK есть простой селектор уровней.
Забыл сказать насчёт селектора: так как в модификации будет много уровней (около 12), я хочу сделать селектор выбора актов, примерно как в Wreckage, только вместо выбора чекпоинтов (как я понял, там выбираются только чекпоинты уровней) возможность выбора уровней в каждом акте. Каждый акт должен быть в такой последовательности, как к примеру:

Act I
Level1
Level2

Act II
Level3
Level4
Level5
и тд...

Только вот как это оформить... Смотрел темы конкретно по селектору, но примерно такой ситуации не нашёл.
поэтому прочитать мысленно код ошибки никто не сможет. Нужны подробности.
Да, точно, вот несколько скриншотов:






Делал как в одной старой теме, то есть скопировал перенос и вставил в "Найти". При поиске всё прошло нормально. Но при "Заменить всё" на пустоту вылетает подобное письмо:






То же самое и при работе с отдельными файлами, минут 5 проходит и тот же прикол вылезает. Решение этой проблемы так же искал, но результат такой себе.

4

Четверг, 19 Ноябрь 2020, 01:11

У меня были такие ошибки на старой версии Flash. Ты точно установил все патчи и обновления? Если ошибка вылетает не только при редактировании файлов из Crysis, то причина явно в самой программе Flash.

Я в Wreckage не играл. Там скорее всего просто несколько кнопок, при нажатии ка которые отправляется fs-команда для определённого действия. Fs-команда может также содержать консольную команду. В данном случае это будет что-то вроде "map level1", "map level2", "map level3" и так далее. Но через C++ можно прописать свои действия и делать доступным или недоступным тот или иной выбор, например, в зависимости от значений Game Token.
Legacy of the Yods



Rasmus

Новичок

  • "Rasmus" мужчина
  • "Rasmus" создал эту тему

Сообщений: 5

Место жительства: О. Линг-шань, западный берег "Виллэдж" д.№4

5

Четверг, 19 Ноябрь 2020, 08:50

Благодарю! Очень помогло! Ожидайте новый проект ;)

6

Четверг, 19 Ноябрь 2020, 22:58

Благодарю! Очень помогло! Ожидайте новый проект ;)

Рад был помочь. Что-нибудь получилось с меню? Шрифты заработали? Разобрался с fs-командами?
Legacy of the Yods



Rasmus

Новичок

  • "Rasmus" мужчина
  • "Rasmus" создал эту тему

Сообщений: 5

Место жительства: О. Линг-шань, западный берег "Виллэдж" д.№4

7

Воскресенье, 22 Ноябрь 2020, 14:49

Добрый день. На днях попробовал поработать с главным меню, проблема с фатальной ошибкой исправилась, пробелы и переносы убираются, но появилась одна проблема - экспорт .SWF файла в .GFX
Пытался найти Scaleform GFx 3.3 версии (искал и другие версии в том числе для CE5), так же скачал CryEngine 3 MOD SDK, но связанную с теми форматами (SWF и GFX) программу нашел только GFxexport и при его использовании и вставки .gfx файла в меню игры появляется только черный экран. Честно говоря, не догнал, как всё-таки использовать и в целом найти этот Scaleform, но, конечно, стараюсь понять.
Что-нибудь получилось с меню? Шрифты заработали?

ВОПРОС СО ШРИФТАМИ РЕШЁН! Как я понял, решением данной проблемы является внедрение шрифта в каждом тексте, только один вопрос: можно ли сделать вреднение для всех шрифтов сразу или придется перелопатить каждое текстовое поле?


!!! Новая проблема: Название мода частично отображается квадратами, а при выходе из игры в красном окошке видны только квадраты. Посмотрел содержимое FLA файла ещё раз, не нашёл таких символов. В чём может быть проблема?
Разобрался с fs-командами?

Теперь по поводу селектора. Появились некоторые вопросы насчёт fs-команд:

1. Как их использовать и в какой программе?


2. Необходим ли для этого Flash?

В этом плане не совсем понял. Заранее спасибо :good:

Это сообщение было отредактировано 1 раз(а), последнее редактирование в "Rasmus" (22 Ноябрь 2020, 17:02)


8

Вчера, 01:15

появилась одна проблема - экспорт .SWF файла в .GFX


Никакой проблемы нет. Если ты прочитаешь внимательно статьи из CryWiki по ссылкам из предыдущего поста, после экспорта тебе нужно только поменять расширение файла.swf на .gfx. Инструменты от Scaleform 2.x нам недоступны, а инструменты от Scaleform 3.x несовместимы. Поэтому сжатие swf в правильный формат нам недоступно, его мы не делаем.

ВОПРОС СО ШРИФТАМИ РЕШЁН! Как я понял, решением данной проблемы является внедрение шрифта в каждом тексте, только один вопрос: можно ли сделать вреднение для всех шрифтов сразу или придется перелопатить каждое текстовое поле?


Или использовать общую библиотеку шрифтов Crysis, как описано в предыдущем сообщении. Как я уже сказал, придётся шрифты всех текстовых полей внедрять вручную, но лучше использовать общую библиотеку шрифтов из Crysis.


!!! Новая проблема: Название мода частично отображается квадратами, а при выходе из игры в красном окошке видны только квадраты. Посмотрел содержимое FLA файла ещё раз, не нашёл таких символов. В чём может быть проблема?


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


1. Как их использовать и в какой программе?
2. Необходим ли для этого Flash?


Тут ничего сложного нет. Поищи по форуму, этот вопрос уже поднимался неоднократно.

FS-команды (fscommand) это метод коммуникации с внешним приложением. Движок получат все нужные команды с действиями из Scaleform с помощью fs-команд.

В коде используется в следующем виде:

Код

1
fscommand("MyCommand", "arguments")


Подробнее описано тут: https://web.archive.org/web/200902261520…t=00002995.html

Придётся изучить ActionScript 2. Используй ссылку на документацию Adobe выше. Почитай на сайтах.


Прилагаю архив с официальной документацией по языку с сайта Adobe.
Alex626 приложил следующий файл:
  • Flash10_AS2LR_en.zip (1.5 MB - Скачано 1 раз - Последняя загрузка: Вчера, 12:45)
Legacy of the Yods



Rasmus

Новичок

  • "Rasmus" мужчина
  • "Rasmus" создал эту тему

Сообщений: 5

Место жительства: О. Линг-шань, западный берег "Виллэдж" д.№4

9

Вчера, 10:27

Хорошо, спасибо большое, просто немного протупил с этими шрифтами, попробую проработать сам