[FAQ] Работа с .usm файлами (Распаковка/Упаковка)

USM
  • webdes27

    Легендарный
    Проверенный
    Победитель в номинации 2021
    Победитель в номинации 2020
    Победитель в номинации 2019
    Светоч знаний
    На страже закона
    Часть системы
    За заслуги перед форумом
    Клиент разработчик
    За веру и верность форуму
    Сообщения
    1 369
    Розыгрыши
    0
    Решения
    3
    Репутация
    3 895
    Реакции
    807
    Баллы
    1 733
    Работа с .usm файлами

    У многих встает вопрос как работать с .usm файлами клиента и мало кто понимает что это такое вообще, кто то не знает что с этим делать и даже не пытается разобраться, кто то ищет, но не находит в том виде в котором ему бы хотелось и не приходит к необходимому результату.
    В нашей статье мы пройдем все этапы работы по распаковке пакетов .usm до упаковки и их тестированию.

    Ниже я вам приведу список того что нам потребуется для работы с usm пакетами, при этом некоторые инструменты(программы) будут у нас в нескольких вариантах для вашего удобства.

    Список программ:
    Scaleform Video Encoder - Программа для создания usm пакетов из , , и файлов.
    UsmDemuxer - Программа для простого и удобного извлечения аудио и видео контента из usm пакетов в m2v и формат.
    UsmToolkit - Программа для извлечения аудио и видео контента из usm пакетов в m2v и формат а так же их конвертации в .
    - Программа для извлечения аудио и видео контента включая пакеты.
    - Набор свободных библиотек, которые позволяют записывать, конвертировать и передавать цифровые аудио и видеозаписи в различных форматах. ( )
    - библиотека необходимая для использования UsmToolkit и в некоторых случаях VGMToolbox.

    1. Первым делом когда мы скачали весь пакет необходимых программ, нам необходимо распаковать наш .usm пакет, для дальнейшей работы с ними.
    Для распаковки можно использовать любой из трех вышеперечисленных программ, а именно UsmDemuxer, UsmToolkit или . Мы будем описывать использования всеми тремя программами, а вы уже сами выберете какой из выше перечисленных программ вы будете пользоваться.

    1.1. Распаковка usm при помощи UsmDemuxer является самым простым и удобным способом извлечения, так как буквально в 1-2 действия вы можете распаковать пакет. Для этого вам необходимо распаковать вашу программу, поместить в любое вам удобное место, взять выбранный вами .usm файл, к примеру heroes.usm и перетащить его на UsmDemuxer.exe, после чего откроется окно командной строки и по завершению процедуры автоматически закроется.
    Вы получите 2 файла: heroes_40534656.m2v, heroes_40534641.adx

    1.2.
    Распаковка usm при помощи UsmToolkit, тоже не составляет труда но потребует от вас немного больше действий чем предыдущий вариант.
    Для этого так же распаковываем наш софт в удобное для вас место, к примеру D:\Games\Client\Tools\UsmToolkit, в нем создаем для удобства .bat или .cmd файл с любым удобным названием, я обычно делаю 1 или !, либо !с названием, что бы наш файл был в верху папки и нам не приходилось его искать, я буду использовать !cmd.bat. При необходимости можете не создавать файл а пользоватся командной строкой из windows, сочетанием кнопок Win+R и в появившемся окне пишем cmd и жмем ок. В созданный нами файл мы записываем команду cmd и сохраняем файл. Теперь нам необходимо перенести в папку с программой пакеты .usm которые мы будем распаковывать, к примеру heroes.usm и запустить созданный нами !cmd.bat, в появившейся командной строке мы вписываем команду и подтверждаем нажатием Enter:
    Код:
    UsmToolkit convert heroes.usm
    Используем именно эту команду по той причине что если использовать параметр extract а не convert, он создаст только .m2v и .adx файлы, а при использовании convert он создаст ещё .mp4 и .wav.
    Вы получите 4 файла: heroes.m2v, heroes.adx, heroes.mp4, heroes.wav

    Если у вас возникли проблемы при работе и программа просит , скачайте его и положите в папке с программой папку и распакуйте архив в нее.

    Так же для удобства вы можете создать переменную среду с названием UsmToolkit и добавить путь к исполняемому файлу D:\Games\Client\Tools\UsmToolkit\UsmToolkit.exe что б в дальнейшем не быть зависимым от папки с программой и использовать командную строку с любого удобного для вас места, включая саму папку игры. Если вы не знаете как, то пример будет указан в пункте 2.

    1.3.
    Распаковка usm при помощи , так же не составит труда и возможно будет в чем то для вас проще и удобней чем вариант 2 но при этом время затратнее чем первый вариант, так как она хоть и имеет графический интерфейс, но при этом требует минимального перемещения по программе.
    Для работы в , вам необходимо распаковать в любое удобное для вас место и запустить её при помощи запуска VGMToolbox.exe файла. После чего у вас откроется интерфейс программы, в котором вам нужно выбрать следующее меню и настройки, указанное на скриншоте ниже:

    Затем выбираете .usm файл который вы хотите извлечь и переносите файл на программу в поле Drop Files Here. После чего в папке с файлами у вас появятся распакованные файлы.
    Вы получите 2 файла: heroes_40534656.m2v, heroes_40534641.adx

    2.
    В данном пункте мы подготовим извлеченные полученные файлы аудио и видео контента, для дальнейшей их упаковке. Если вы будете их редактировать или использовать свои видео и аудио файлы то вы можете пропустить этот шаг или применить если ваша программа в которой вы создавали видео и аудио нуждается в этом. В данном пункте мы конвертируем полученные файлы в .avi и .wav формат для каждого варианта извлечения приведенного выше.
    Для этого вам необходимо скачать и распаковать в удобное для вас место, не содержащее в названии пробелы и русские буквы. Я использую версию . В примере я буду использовать путь D:\Games\Client\Tools\ffmpeg, вы же можете использовать любой вам удобный путь. Так же я себе для использования программы облегчил жизнь и прописал путь к переменные среды, что бы не использовать программу из ее корневой папки и не захламлять, теперь я могу использовать её с любого удобного для меня места. Создадим переменные среды, у меня Windows 11 у вас может будет другая операционная система, нахождение меню переменных сред, будет плюс минус идентичным, принцип тот же. На Мой компьютер или Этот компьютер нажимаем правый щелчок мыши и выбираем Свойства, в появившемся окне свойств находим Дополнительные параметры системы и нажимаем на них. У вас должно появится новое окно с названием Свойства системы, в котором вам необходимо нажать кнопку Переменные среды..., после чего у вас откроется окно Переменные среды. Пример приведу на скриншоте ниже:

    После того как вы увидели окно приведенное на скриншоте выше, вам необходимо создать системные переменные, для этого в нижней части окна в части с названием Системные переменные, вам необходимо в переменную Path добавить путь к папке с нашим . Нажимаем кнопку Изменить... и в появившемся окне если у вас Windows 10 или 11 (Если Windows 7, то в конце нижней строки ставим точку с запятой и указываем путь), нажимаем ещё раз кнопку Создать и в новой появившейся строке вписываем путь к папке bin в вашей программе , у меня это будет D:\Games\Client\Tools\ffmpeg\bin, вы можете создать где то отдельно дабы не удалить потом её с вашим клиентом, после чего нажимаем ОК и возвращаемся в окно Системные переменные. У меня это выглядит примерно вот так:

    После того как мы добавили путь в переменную среду Path, вам необходимо создать новую переменную среду . Для этого вам необходимо в окне Переменные среды, в нижней части Системные переменные, нажать кнопку Создать...
    В появившемся окне Новая системная переменная в поле Имя вписать название переменное , а в поле Значение указать путь к исполняемому .exe файлу, в нашем случае это будет D:\Games\Client\Tools\ffmpeg\bin\ffmpeg.exe и нажать ОК, пример на скриншоте ниже:

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

    2.1. Для подготовки файлов после извлечения UsmDemuxer, вам необходимо полученные вами heroes_40534656.m2v и heroes_40534641.adx, преобразовать в файлы heroes.avi и heroes.wav. Для этого вам необходимо в папке с вашими файлами запустить командную строку, любым удобным для вас способом, у меня это будет созданный файл !cmd.bat с командой cmd в нем. Если у вас он не создан, создайте его. После создания запустите исполняемый файл !cmd.bat и выполните в открывшейся командной строке, следующие команды:
    Код:
    ffmpeg -i heroes_40534656.m2v -c:a pcm_s16le -qscale:v 0  heroes.avi
    Аналог команды, смотрим на качество и выбираем предыдущую или эту:
    Код:
    ffmpeg -i heroes.m2v -brand mp42 -c:a pcm_s16le -ar 44100 -b:v 16M heroes.avi
    А затем ещё следующую команду:
    Код:
    ffmpeg -i heroes_40534641.adx heroes.wav
    После чего мы получим два готовых для использования файла heroes.avi и heroes.wav
    Если есть необходимость то вы можете использовать объединенную команду, для получения видео с уже вшитым звуком, команда в процессе выдаст ошибку, но при этом создаст готовый файл, для этого вы можете использовать команду:
    Код:
    ffmpeg -i heroes_40534656.m2v -c:a pcm_s16le -qscale:v 0  heroes.avi -i heroes_40534641.adx heroes.wav

    2.2. Подготовка файлов после программы UsmToolkit. Для этого идем в нашу папку с полученным файлам heroes.m2v, heroes.mp4, heroes.adx, heroes.wav, по сути в данном случае вам необходимо только преобразовать ваш .mp4 файл в .avi или использовать способ с .m2v и .adx из предыдущего пункта. Мы будем использовать метод для конвертации .mp4 в .avi при помощи . Для этого из папки с нашими файлами запускаем командную строку или созданный нами файл !cmd.bat с командой cmd и выполняем следующую команду:
    Код:
    ffmpeg -i heroes.mp4 -c:a pcm_s16le -qscale:v 0  heroes.avi
    По сути для этого метода и все, так как у нас уже есть готовый .wav файл и конвертации не требует.

    2.3. Подготовка файлов после программы . по сути не требует не чего нового и полностью соответствует способу указанному в пункте 2.1., по этой причине не вижу смысла описывать что уже и так описано.

    3. Самый долгожданный кульминационный пункт, который по сути и самый простой если вы уже создали или отредактировали и подготовили ваши файлы для упаковки в USM пакеты. По сути этот пункт по упаковке наших файлов в пакет.

    Для упаковки наших файлов hero.avi и hero.wav в hero.usm, вам необходимо распаковать программу Scaleform Video Encoder в любое для вас удобное место и запустить файл ScaleformVideoEncoder.exe. В появившемся окне выбираем в поле Input Name - ваш видео файл в формате .avi, если ваше видео не содержит аудио - то ниже убираем галочку Use Audio Track(к примеру для login), в поле Output Name - выбираем место куда будет сохранен готовый файл .usm. Если вы упаковываете со звуком в графе Other Audio идем ниже и ставим точку в Mono/Stereo, после чего ниже возле графы Mono/Stereo нажимаем на кнопку ... и выбираем наш аудио файл в формате .wav. Теперь настройка нашей программы для создания usm пакета готова и вам всего лишь осталось нажать кнопку Encode в правом нижнем углу и дождаться завершения, в графе Encoding Log будет указана информация о ходе выполнения задачи и её завершении.
    Пример заполнения и успешном выполнении процесса показан на скриншоте ниже:

    На этом наш гайд окончен, скажу лишь об одном неудобстве связанном с данной программой упаковки, возможно я что то не изучил целиком, но перечитал я кучу вики, сайтов и форумов разных стран и не где не было информации по поводу того как зациклить воспроизведения видео, как я потом понял по общению с людьми с других стран что такого просто нет в usm и как я сделал выводы это вне очередная модификация NcSoft которой нет в стандартизированном софте который используют большинство игр, по этому если вы будете использовать для других игр, метод пригоден, если для Lineage 2 то пригоден для видео файлов которые не нуждаются в зацикливании видео по типу логин меню.
    Так же поясню на чем основаны мои выводы: Если взять файл логин меню и перепаковать не чего не меняя, то меню с оригинальным .usm будет проигрывать зациклено, а с перепакованным отыграет раз и исчезнет. После сравнения в Hex редакторе оригинальных файлов и файлов упакованных мной в Scaleform VideoEncoder 4.0 или 4.6.33, роли не играет, в заголовке файла, отсутствуют секции loop_point и loop_start что как я предполагаю и отвечает за зацикливание видео. На всякий случай приложу скрин с моими довадами, если что не пинать я в Hex не силен и лишь делаю простые необходимые мне задачи.

    Так же если почитать описание .adx, то приходит понимание что этот формат создан для зацикливание, но сидишь думаешь как и при всем этом а как делать с видео не содержащим аудио? Фейковый звук делается что ли, в общем пока больше вопросов чем ответов, но если посмотреть GENH в VGMToolbox, либо .POS File Maker, то понимаешь что все же должно быть что то с зацикливанием саундов, хоть бы так пустышку б уже накладывали.

    Частичка полезной информации по структуре и описанию формата и работе с ним. .

    Если будут какие идеи и желание по решению проблемы с loop, прошу обсуждать в теме.

    Статью написал webdes27 специально для форума MMO-Dev.Info
     
    Последнее редактирование:

    Назад
    Сверху Снизу