Unreal Engine SoundNodeWave: Difference between revisions
Jump to navigation
Jump to search
imported>Ikskoks (Created page with "{{GRAFPageHeader}} == SoundNodeWave == * ''' Format Type ''': Audio / Text / Misc <br> * ''' [http://en.wikipedia.org/wiki/Endianness Endian Order] ''': Little Endian <b...") |
imported>Ikskoks |
||
| (28 intermediate revisions by the same user not shown) | |||
| Line 43: | Line 43: | ||
8 bytes (uint64) - property length | 8 bytes (uint64) - property length | ||
x bytes - property data | x bytes - property data | ||
// Data depends on property | // Data type depends on property name ID, for example: | ||
// for bLoopingSound = 1 byte (bool), e.g. false | // for bLoopingSound = 1 byte (bool), e.g. false | ||
// for bManualWordWrap = 1 byte (bool) e.g. true | // for bManualWordWrap = 1 byte (bool) e.g. true | ||
| Line 50: | Line 50: | ||
// for SampleRate = 4 bytes (uint32) e.g. 48000 | // for SampleRate = 4 bytes (uint32) e.g. 48000 | ||
// for RawPCMDataSize = 4 bytes (uint32) | // for RawPCMDataSize = 4 bytes (uint32) | ||
// for LocalizedSubtitles = x bytes | // for LocalizedSubtitles = x bytes | ||
// for SourceFilePath = x bytes (string + null) | // for SourceFilePath = x bytes (string + null) | ||
| Line 71: | Line 70: | ||
// | // | ||
// for Subtitles = x bytes | // for Subtitles = x bytes | ||
// 4 bytes (uint32) - number of subtitle | // 4 bytes (uint32) - number of subtitle properties | ||
// | // | ||
// // subtitle properties | |||
// num_of_sub_properties * | |||
// { | // { | ||
// x bytes - | // 8 bytes (uint64) - nested property name ID // 59 - Text Type | ||
// | // // 60 - Time Type | ||
// | // // 45 - None | ||
// | // 8 bytes (uint64) - nested property type ID | ||
// x bytes - subtitle property data | |||
// // for Text Type: | |||
// // 4 bytes (uint32) - string size | |||
// // x bytes (string) - string entry | |||
// // for Time Type: | |||
// // 4 bytes (float) - timestamp (can be empty) | |||
// // for None: | |||
// x bytes - nested subtitle entries (Text Type + Time Type) | |||
// } | // } | ||
} | |||
</pre> | |||
</div> | |||
=== Other Structures === | |||
Some structures inside SoundNodeWave files may be different for other games. <br> | |||
Below is example of LocalizedSubtitles structure which contains text strings and other text-related data.<br> | |||
<div class="toccolours mw-collapsible" id="mw-customcollapsible-myDivision" style="width:800px; overflow:auto;"> | |||
<pre> | |||
// Killer is Dead (PC Steam) | |||
// LocalizedSubtitles Type file format | |||
4 bytes (uint32) - ID | |||
num_of_properties * | |||
{ | |||
8 bytes (uint64) - nested name ID // 25 - LanguageExt Type | |||
// 40 - Subtitles Type | |||
// 2 - bMature Type | |||
// 1 - bManualWordWrap Type | |||
// 4 - bSingleLine Type | |||
// 27 - None Type | |||
8 bytes (uint64) - nested type ID | |||
8 bytes (uint64) - property size | |||
x bytes - property data | |||
// for LanguageExt Type: | |||
// 4 bytes (uint32) - size of the language code | |||
// x bytes (string) - language code // e.g. INT, DEU, ESN etc. | |||
// | |||
// for Subtitles Type: | |||
// 4 bytes (uint32) - number of subtitles | |||
// num_of_subtitles * | |||
// { | |||
// 8 bytes (uint64) - nested name ID // 41 - Text Type | |||
// // 42 - Time Type | |||
// // 27 - None Type | |||
// 8 bytes (uint64) - nested type ID | |||
// 8 bytes (uint64) - property size | |||
// x bytes - property data | |||
// for Text Type: | |||
// 4 bytes (uint32) - subtitle length | |||
// x bytes (string) - subtitle | |||
// for Time Type: | |||
// 4 bytes (float) - time in seconds | |||
// for None Type: | |||
// x bytes - nested Text Type | |||
// x bytes - nested Time Type | |||
// x bytes - nested empty None Type | |||
// } | |||
// | |||
// for bMature Type: | |||
// 1 byte (bool) - mature type flag | |||
// for bManualWordWrap Type: | |||
// 1 byte (bool) - word wrap flag | |||
// for bSingleLine Type: | |||
// 1 byte (bool) - single line flag | |||
// for None Type: | |||
// x bytes - nested entries | |||
} | } | ||
</pre> | </pre> | ||
| Line 90: | Line 159: | ||
=== Notes and Comments === | === Notes and Comments === | ||
* This file format is commonly used in '''Unreal Engine''' | * This file format is commonly used in games built using '''Unreal Engine 3'''. | ||
=== Games === | === Games === | ||
| Line 100: | Line 169: | ||
=== Compatible Programs === | === Compatible Programs === | ||
* [https:// | See [[List of Unreal Engine Tools]] article on this wiki. | ||
=== See Also === | |||
* [http://wikitest.nexusmods.com/index.php/Sound_Files_-_XCOM:EU_2012#SoundNodeWave SoundNodeWave details] | |||
* [https://wiki.beyondunreal.com/UE3:SoundNodeWave_(UDK) UE3:SoundNodeWave (UDK)] | |||
* [https://www.gildor.org/smf/index.php/board,22.0.html UE game localization and modding] | |||
<br/><br> | <br/><br> | ||
Latest revision as of 11:14, 24 June 2022
Back to index | Edit this page
SoundNodeWave
- Format Type : Audio / Text / Misc
- Endian Order : Little Endian
Format Specifications
// A Story About My Uncle (PC Steam)
// SoundNodeWave file format (Unreal Engine 3)
// Version: 868
// Engine version: 12097
// Cooker version: 136
4 bytes (uint32) - file ID number
// UE3 properties
num_of_properties *
{
// Note: name ID mapping can be found in "NameTable.log"
// after using "UPKunpack.exe" tool
// Mapping can be different for each game
// Note: "None" property should be the last one
8 bytes (uint64) - property name ID // 2 - bLoopingSound
// 3 - bManualWordWrap
// 14 - Duration
// 19 - LocalizedSubtitles
// 45 - None
// 46 - NumChannels
// 49 - RawPCMDataSize
// 51 - SampleRate
// 54 - SourceFilePath
// 55 - SourceFileTimestamp
// 58 - Subtitles
8 bytes (uint64) - property type ID
8 bytes (uint64) - property length
x bytes - property data
// Data type depends on property name ID, for example:
// for bLoopingSound = 1 byte (bool), e.g. false
// for bManualWordWrap = 1 byte (bool) e.g. true
// for Duration = 4 bytes (float) e.g. 15.69950
// for NumChannels = 4 bytes (uint32) e.g. 2
// for SampleRate = 4 bytes (uint32) e.g. 48000
// for RawPCMDataSize = 4 bytes (uint32)
// for LocalizedSubtitles = x bytes
// for SourceFilePath = x bytes (string + null)
//
// for SourceFileTimestamp = x bytes
// 4 bytes (uint32) - timestamp length
// x bytes (string) - timestamp e.g. "2014-04-14 12:01:51"
// 1 byte - null
//
// for None = x bytes
// 8 bytes (uint64) - nulls
// 4 bytes (uint32) - nulls
// 4 bytes (uint32) - pointer1?
// 4 bytes (uint32) - nulls
// 4 bytes (uint32) - audio compressed size
// 4 bytes (uint32) - audio uncompressed size
// 4 bytes (uint32) - pointer2?
// x bytes - OGG audio data
// x bytes - unknown
//
// for Subtitles = x bytes
// 4 bytes (uint32) - number of subtitle properties
//
// // subtitle properties
// num_of_sub_properties *
// {
// 8 bytes (uint64) - nested property name ID // 59 - Text Type
// // 60 - Time Type
// // 45 - None
// 8 bytes (uint64) - nested property type ID
// x bytes - subtitle property data
// // for Text Type:
// // 4 bytes (uint32) - string size
// // x bytes (string) - string entry
// // for Time Type:
// // 4 bytes (float) - timestamp (can be empty)
// // for None:
// x bytes - nested subtitle entries (Text Type + Time Type)
// }
}
Other Structures
Some structures inside SoundNodeWave files may be different for other games.
Below is example of LocalizedSubtitles structure which contains text strings and other text-related data.
// Killer is Dead (PC Steam)
// LocalizedSubtitles Type file format
4 bytes (uint32) - ID
num_of_properties *
{
8 bytes (uint64) - nested name ID // 25 - LanguageExt Type
// 40 - Subtitles Type
// 2 - bMature Type
// 1 - bManualWordWrap Type
// 4 - bSingleLine Type
// 27 - None Type
8 bytes (uint64) - nested type ID
8 bytes (uint64) - property size
x bytes - property data
// for LanguageExt Type:
// 4 bytes (uint32) - size of the language code
// x bytes (string) - language code // e.g. INT, DEU, ESN etc.
//
// for Subtitles Type:
// 4 bytes (uint32) - number of subtitles
// num_of_subtitles *
// {
// 8 bytes (uint64) - nested name ID // 41 - Text Type
// // 42 - Time Type
// // 27 - None Type
// 8 bytes (uint64) - nested type ID
// 8 bytes (uint64) - property size
// x bytes - property data
// for Text Type:
// 4 bytes (uint32) - subtitle length
// x bytes (string) - subtitle
// for Time Type:
// 4 bytes (float) - time in seconds
// for None Type:
// x bytes - nested Text Type
// x bytes - nested Time Type
// x bytes - nested empty None Type
// }
//
// for bMature Type:
// 1 byte (bool) - mature type flag
// for bManualWordWrap Type:
// 1 byte (bool) - word wrap flag
// for bSingleLine Type:
// 1 byte (bool) - single line flag
// for None Type:
// x bytes - nested entries
}
MultiEx BMS Script
Not written yet.
Notes and Comments
- This file format is commonly used in games built using Unreal Engine 3.
Games
List of games using this file format:
- A Story About My Uncle
- Killer is Dead
- Many more...
Compatible Programs
See List of Unreal Engine Tools article on this wiki.
See Also