Fortnite music ("UE4OPUS") by filament at 3:35 AM EDT on June 27, 2018
Hello,

Recently all music in Fortnite was converted to a strange format, "UE4OPUS".
I just wanted to ask if there's currently any way of playing that back or converting it? I'd love to extract the music, convert it to something like wav and listen to it in high quality.

Best regards,
filament
by Missingno_force at 9:13 AM EDT on June 27, 2018
the OPUS makes it sound like there is/was a plain ogg file somewhere (using opus instead of vorbis).
try having a look with something that can rip ogg files from binary blobs (i think vgmtoolbox has an option for this) or check the contents with a hex-editor, there should be a "OggS" string somewhere
by bnnm at 5:01 PM EDT on June 27, 2018
It's custom OPUS, used in some Unreal Engine 4 games (ex. ARK Survival Evolved).

Post a bunch of sample files and I'll see.
by filament at 1:56 AM EDT on June 28, 2018
Thank you for the replies. There seems to be no "OggS" string in the files.
Here's a few sample files exported using UModel.

Link to samples

The "UE4OPUS" signature is present in the .uexp files. Really strange format.
Thanks for looking into this!
by bnnm at 6:09 PM EDT on June 30, 2018
It's proving harder that I hoped, can't guess packet sizes.
Could you post a bunch of the smallest uexp+uassets+ubulk? (maybe with only uexp+uasset).
Or maybe just post all the files, if they aren't too big.
by filament at 7:11 AM EDT on July 2, 2018
Alright, here's a ZIP file (34,3 MB) with plenty of UE4OPUS samples. I think the smallest one is Menu_Enter_Lobby_Intro.

The directory with UE4OPUS music also contained some sounds in the Ogg format - I've included them in the archive as well - maybe it'll help?

EDIT: Also, some more info. For example, attempting to export the file Victory_Menu_Screen_Main_Loop produces this result in the UModel console:
Pastebin

The line that I think will interest you the most is:
*** USoundWave: streaming data: 11 chunks in format OPUS
so Victory_Menu_Screen_Main_Loop apparently has "11 chunks of streaming data".

Output for another file, fortnite_login_screen is:
*** USoundWave: streaming data: 4 chunks in format OPUS
So that's four chunks. Maybe it'll help you discover the format?

edited 7:26 AM EDT July 2, 2018
by Lunar at 7:28 AM EDT on July 2, 2018
I am monitoring this thread. Fortnite has some pretty great music to be honest, particularly this tune. Having clean audio would be great.
by bnnm at 10:47 PM EDT on September 22, 2018
I've added this for the next vgmstream release, in their extracted/raw form (.opus/lopus/ue4opus, examples).

However, getting the UE4OPUS from uexp/ubulk/uasset is a bit involved so I think I'll ask umodel's author to add extraction support.
Otherwise I could cook some .bms later.
by marcusss at 1:49 AM EDT on September 23, 2018
Yeah ark had lots of atrac9 but would love to give it another rip to get any missing ue4opus if they are there. Umodel is pretty good these days for the times the ue4 bms script fails to extract.

Look forward.to it
by filament at 4:21 PM EDT on September 25, 2018
Great news, bnnm. Can't wait for the next vgmstream release.
by bnnm at 7:49 PM EDT on September 28, 2018
umodel's author wasn't very interested so here are some BMS:
- Extract standard assets (ARK .ue4opus in .uasset, Fortnite .ogg in .uexp): https://pastebin.com/451fbVHS
- Extract chunked assets (Fortnite .ue4opus in .uexp+ubulk): https://pastebin.com/MfWM9Qky

I can't guarantee 100% results so check everything gets reasonably extracted. Particularly, .ue4opus size should be slightly smaller than .uexp+ubulk, but not much smaller. Also pay attention to silent data at the end (=truncated). Worked with all samples I had tho.


edited 7:57 PM EDT September 28, 2018
by filament at 12:10 PM EDT on September 30, 2018
The BMS scripts work like a charm, so does the UE4OPUS decoder. Thank you.
by FunGames at 4:44 AM EDT on October 1, 2018
Hello bnnm. I really appreciate your work on the ue4opus decoder. But there is one thing I don't understand in the BMS Script. I only want to write the .ue4opus file without quickbms. I know you get the metadata from the uexp and then the actual data from the Ubulk. The thing I don't understand is where my error is. I at first write the header in an file and then directly after it the whole Ubulk without the many 00 at the end but my file is still like 10000 bytes bigger so I wanted to ask you where in the Ubulk you cut away these bytes I have touch.
I would really appreciate any help

edited 4:48 AM EDT October 1, 2018
by bnnm at 1:28 PM EDT on October 1, 2018
I'm not sure I understand what you need, so I'll explain about the format:
- data is divided into chunks, of usable data + 0 padding up to 0x40000
- uexp contains the chunk table *and* the first chunk
- you need to read the chunk table, that tells you the chunk size and usable data size, and extract the usable data (first chunk from uexp, rest from ubulk)
- chunk data in uexp start where the "UE4OPUS" string is (there may be a pointer but it was simpler to find that string)
- chunk table starts at UE4OPUS offset + 0x40000
by marcusss at 5:27 PM EDT on October 1, 2018
@bnnm Thanks for your script. Using the ue4opus script on ARK Survival Evolved [PC] works for the most part, most are 300 or so kbps opus; but some are largein size e.g. 20 or 30mb in size wont play even though the header has ue4opus. I will upload a couple examples. Maybe video? Or opus thats needs further splitting??

Unplayable ue4opus HERE

Almost finished ripping the PC version of ARK.


PC version sounds better tan PS4. Opus sounds far better :
Example1
Example2

edited 8:10 AM EDT October 2, 2018

edited 8:16 AM EDT October 2, 2018
by FunGames at 9:36 AM EDT on October 2, 2018
@bnnm
Thanks for the explanation. So when I understood it right the first part of the first chunk and the content table is in the uexp. The rest in Ubulk. And then you can't simply write the whole ubulk without the 00 00 at the end because there are to chunks and they have some filling bytes before the second chunk starts?
by marcusss at 10:33 AM EDT on October 3, 2018
@ bnnm

Some of the ue4opus that didn't work seem to be just Ogg Vorbis grouped together such as the manticore boss .ue4opus file I linked to earlier..

So I am guessing the unplayable songs need to be split again since that Manticore song now plays as vorbis


Btw about ue4 games..

I noticed a couple games lately using ue4 such as bards tale 4 are using an unknown or rather a..well hidden music format. It is probably audiokinetic since I can see it mentioned in those 1kb uexp files as well and i saw sequence metioned also.. but.cannot for the life of me locate the music. Even scanning the ubulk files i came up empty...banks are mentioned as well but also cannot locate them. Quite annoying combing through 48gb of exported files but no luck so far... adjusted your script to.scan for otjer strings but no luck either.. hmm



edited 10:34 AM EDT October 3, 2018

edited 6:58 PM EDT October 3, 2018

edited 7:00 PM EDT October 3, 2018

edited 7:01 PM EDT October 3, 2018
How i Edit the ue4uops by barmagic803to at 8:43 PM EDT on October 6, 2018
Guys i Want to edit the ue4uops file and relpace him how i do that please help me my discord is Srizo#2310


Go to Page 0

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source