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

webdes27

Легендарный
Проверенный
Победитель в номинации 2021
Победитель в номинации 2020
Победитель в номинации 2019
Светоч знаний
На страже закона
Часть системы
За заслуги перед форумом
Клиент разработчик
За веру и верность форуму
Сообщения
1 368
Розыгрыши
0
Решения
3
Репутация
3 899
Реакции
812
Баллы
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
 
Последнее редактирование:

Loops are made with cue_points

here's an example of how to loop a video:

1000
0,0,start
2000,1,loop_point
3000,2,loop_start
11000,0,end

1000 -- interval in milliseconds
0,0,start -- video start time
2000,1,loop_point -- time of loop start
3000,2,loop_start -- time from when to jump to loop start ^
11000,0,end -- end time of the video
-- in this case the video will play till 3 second then jump to 2 seconds play till 3 and back to 2 and 3 and 2 .....
So, no NCSoft didn't invent anything
save these cue points in a .txt file and select it in the ScaleForm video Encoder, it just works
1672547387467.png

P.S. Happy new year!
 
Для русскоговорящих / For Russian Speakers

Циклы создаются с помощью cue_points

вот пример того, как зациклить видео:
1000
0,0,start
2000,1,loop_point
3000,2,loop_start
11000,0,end
1000 -- интервал в миллисекундах
0,0,start -- время начала видео
2000,1,loop_point -- время начала цикла
3000,2,loop_start -- время перехода к началу цикла ^
11000,0,end -- время окончания видео
-- в этом случае видео будет воспроизводиться до 3 секунды, затем оно перейдет на 2, затем будет воспроизводиться до 3 и обратно на 2, 3 и 2 .....
Так что никакой NCSoft ничего не изобрел

сохраните эти cue_points в файле .txt и выберите его в ScaleForm video Encoder.
1672547810306.png

P.S. С Новым Годом!
 
Для русскоговорящих / For Russian Speakers

Циклы создаются с помощью cue_points

вот пример того, как зациклить видео:
1000
0,0, старт
2000,1,loop_point
3000,2,loop_start
11000,0,конец

Так что никакой NCSoft ничего не изобрел

сохраните эти cue_points в файле .txt и выберите его в ScaleForm video Encoder.
Посмотреть вложение 47044

P.S. С Новым Годом!
Я не утверждал а предполагал. Спасибо за информацию у меня была идея по этому поводу что может быть там, но информации по этому поводу не нашел. Спасибо за информацию, теперь все стало на свои места. Хороших вам праздников.
 
Loops are made with cue_points

here's an example of how to loop a video:

1000
0,0,start
2000,1,loop_point
3000,2,loop_start
11000,0,end


So, no NCSoft didn't invent anything
save these cue points in a .txt file and select it in the ScaleForm video Encoder, it just works
Посмотреть вложение 47043

P.S. Happy new year!
Сan you help me to loop 8 sec video? I tried dozens of settings variations - but nothing helpsю
 
Назад
Сверху Снизу