18,700
edits
m (wording and link change for "permutation"; "MAC" -> "Mac", "PC" -> "Win") |
(overall copyedit; updated/corrected Audacity instructions as of v2.3) |
||
Line 1: | Line 1: | ||
{{XML_File_Header | prev=PSUI | type=SNDD | next=StNA | name=Sound Data}} | {{XML_File_Header | prev=PSUI | type=SNDD | next=StNA | name=Sound Data}} | ||
{| border=0 cellspacing=10 cellpadding=0 style="margin-left:auto; margin-right:auto; padding-bottom:30px;" | |||
{| border=0 cellspacing= | |{{finish}} | ||
| Needed: More OSBD .grp / .amb information could be useful, and .imp is completely left out so far. | |- | ||
|align=center|Needed: More OSBD .grp / .amb information could be useful, and .imp is completely left out so far. | |||
|} | |} | ||
Line 28: | Line 29: | ||
: compressed ('''ima4''') | : compressed ('''ima4''') | ||
|} | |} | ||
[[Image:Audacity.png|right| | [[Image:Audacity.png|right|300px]] | ||
To create suitable files for importing into Oni | To create suitable files for importing into Oni, you could use [https://www.audacityteam.org/download/ Audacity] and its [https://manual.audacityteam.org/man/faq_installation_and_plug_ins.html#How_do_I_download_and_install_the_FFmpeg_Import.2FExport_Library.3F ffmpeg Export Library]. After you've installed Audacity and the ffmpeg library, go to Preferences > Libraries, click the "Locate…" button and find the installed library file. Open your sound file then go to File > Export… > Export Audio…. Choose to save it as type "Custom FFmpeg Export". Then click the button "Open custom FFmpeg format options", click "wav" in the Formats list, then "adpcm_ms" in the Codecs list. Enter a Sample Rate of 22050. Click "OK" and "Save". | ||
Note: You may find that '''ima4''' AIFF files exported by OniSplit do not play in Audacity, whether you are using it in Windows or on the Mac. This does not mean the files themselves are broken — they will actually play outside of Audacity, e.g. in Windows Media Player. The reason for this remains to be investigated. | |||
===44.1 kHz sounds=== | ===44.1 kHz sounds=== | ||
Line 42: | Line 42: | ||
ffmpeg -i input.wav -acodec adpcm_ima_qt -ar 22050 output.aif | ffmpeg -i input.wav -acodec adpcm_ima_qt -ar 22050 output.aif | ||
The order of arguments is critical: the rate and encoding are being applied to the outputted file, whereas if they came before the input file's name they would be instructions on how to read the input sound. Here is a simple shell script for converting a folder of sounds from WAV to the AIFF format suitable for importing: | |||
#!/bin/sh<br /> | #!/bin/sh<br /> | ||
Line 49: | Line 49: | ||
IN_DIR="/path/to/SNDD-wav" | IN_DIR="/path/to/SNDD-wav" | ||
OUT_DIR="/path/to/SNDD-aif" | OUT_DIR="/path/to/SNDD-aif" | ||
for WAV in | for WAV in $(find $IN_DIR | grep ".wav$") | ||
do | do | ||
FILENAME=$(basename "$WAV") | FILENAME=$(basename "$WAV") | ||
Line 56: | Line 56: | ||
done | done | ||
Note the double ".aif" suffix applied to the outputted | Note the double ".aif" suffix applied to the outputted files…. | ||
===The .aif suffix=== | ===The .aif suffix=== | ||
When you are replacing existing Oni sounds, note that all of Oni's SNDD resources possess a ".aif" suffix as part of their <u>actual resource names</u> (yes, even the WAV-encoded sounds in Windows Oni). So if you import them with a name like "SNDDgears.aif", the file suffix gets changed to ".oni" upon import by OniSplit, and you end up with a resource simply titled "SNDDgears" in-game. Oni will look for a sound titled "SNDDgears.aif", and nothing will play. Hence, we title the AIFF file "SNDDgears.aif.aif" so that OniSplit yields "SNDDgears.aif.oni" upon importing, which in turn produces the resource named "SNDDgears.aif" that Oni desires. | When you are replacing existing Oni sounds, note that all of Oni's SNDD resources possess a ".aif" suffix as part of their <u>actual resource names</u> (yes, even the WAV-encoded sounds in Windows Oni). So if you import them with a name like "SNDDgears.aif", the file suffix gets changed to ".oni" upon import by OniSplit, and you end up with a resource simply titled "SNDDgears" in-game. Oni will look for a sound titled "SNDDgears.aif", and nothing will play. Hence, we title the AIFF file "SNDDgears.aif.aif" so that OniSplit yields "SNDDgears.aif.oni" upon importing, which in turn produces the resource named "SNDDgears.aif" that Oni desires. | ||
== | ==.oni file creation== | ||
===Via Vago=== | ===Via Vago=== | ||
Installation: | Installation: | ||
* Oni/AE/[[Anniversary_Edition/Installer#Tools| | * Oni/AE/AEInstaller2.exe > Tools > [[Anniversary_Edition/Installer#Tools|Manage Tools]] | ||
Usage: Oni/AE/Tools/VagoGUI/[[ | Usage: Oni/AE/Tools/VagoGUI/[[Vago (tool)|Vago.exe]] | ||
* Target Platform: choose the desired mode | * Target Platform: choose the desired mode | ||
* Tools > Sound Wizard | * Tools > Sound Wizard | ||
Line 86: | Line 86: | ||
For those who want to do it on their own. | For those who want to do it on their own. | ||
OniSplit | |||
: -create output_directory_'''Mac''' input_directory/'''*.aif''' | : -create output_directory_'''Mac''' input_directory/'''*.aif''' | ||
: -create output_directory_'''Win''' input_directory/'''*.wav''' | : -create output_directory_'''Win''' input_directory/'''*.wav''' | ||
: -create output_directory input_directory/*.xml | : -create output_directory input_directory/*.xml | ||
For | For simplicity's sake you can give them all the same base name, assuming you have only one sound: | ||
: <font color=#AAAAAA>SNDD</font>yourfile<font color=#AAAAAA>.oni</font> | : <font color=#AAAAAA>SNDD</font>yourfile<font color=#AAAAAA>.oni</font> | ||
: <font color=#AAAAAA>OSBD</font>yourfile<font color=#AAAAAA>'''.grp'''.oni</font> | : <font color=#AAAAAA>OSBD</font>yourfile<font color=#AAAAAA>'''.grp'''.oni</font> | ||
Line 96: | Line 96: | ||
==OSBD information== | ==OSBD information== | ||
OSBD files are stored globally (in level0_Final). | OSBD files are stored globally (in level0_Final). Here's when to use each type of OSBD: | ||
' | |||
* OSBD*.'''amb''' | * OSBD*.'''amb''' | ||
** music (call OSBD from BSL) | ** music (call OSBD from BSL) | ||
** | ** dialogue (call OSBD from BSL) | ||
** [[XML:BINA/PAR3|BINA3RAP]] <AmbientSound> (action type) | ** [[XML:BINA/PAR3|BINA3RAP]] <AmbientSound> (action type) | ||
** [[#BINACJBOSound.xml|BINACJBOSound.xml]] (area-fixed sounds) | ** [[#BINACJBOSound.xml|BINACJBOSound.xml]] (area-fixed sounds) | ||
Line 467: | Line 465: | ||
| <Position> | | <Position> | ||
| float x3 | | float x3 | ||
| Here you tell Oni where you want the sound to be [[ | | Here you tell Oni where you want the sound to be located (see [[OBD talk:BINA/OBJC|HERE]] for help with that). | ||
|- | |- | ||
| <Rotation> | | <Rotation> | ||
Line 597: | Line 595: | ||
|- | |- | ||
| 6 | | 6 | ||
| <SuperPunchSound> — '''Sound of ######punch_heavy.oni''' | | <SuperPunchSound> — '''Sound of ######punch_heavy.oni'''; super punches don't have sound IDs | ||
|- | |- | ||
| 7 | | 7 | ||
| <SuperKickSound> — '''Sound of ######kick_heavy.oni''' | | <SuperKickSound> — '''Sound of ######kick_heavy.oni'''; super kicks don't have sound IDs | ||
|- | |- | ||
| 8 | | 8 | ||
| <Super3Sound> — AI specialty | | <Super3Sound> — AI specialty; Mukade uses it for his Devil Star attack (TRAMNINCOMfireball) | ||
|- | |- | ||
| <font color=#777777>9</font> | | <font color=#777777>9</font> | ||
Line 683: | Line 681: | ||
|} | |} | ||
(It's possible to speed up sounds with <Pitch>, e.g. the Fury's taunt is sped up | (It's possible to speed up sounds with <Pitch>, e.g. the Fury's taunt is sped up with 1.14 to "brighten" the voice. But in most cases you probably want to keep it as "1".) | ||
<?xml version="1.0" encoding="utf-8"?> | <?xml version="1.0" encoding="utf-8"?> | ||
Line 726: | Line 724: | ||
* <font color=#AAAAAA>SNDD</font>c17_99_29konoko.aif<font color=#AAAAAA>.oni</font> ("Ready to lose?") (You can play sounds in Simple OniSplit GUI (Windows only). | * <font color=#AAAAAA>SNDD</font>c17_99_29konoko.aif<font color=#AAAAAA>.oni</font> ("Ready to lose?") (You can play sounds in Simple OniSplit GUI (Windows only). | ||
* ''[...]'' | * ''[...]'' | ||
"aif" is here part of the name, as explained | "aif" is here part of the name, as explained under the section "The .aif suffix" above. | ||
Permutations in .grp files are the reason why Konoko has multiple sounds that can play during the same taunt animation. | Permutations in .grp files are the reason why Konoko has multiple sounds that can play during the same taunt animation. |