8,184
edits
Paradox-01 (talk | contribs) mNo edit summary |
Paradox-01 (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
{{finish}} | {{finish}} | ||
(More OSBD .grp / .amb information could be good | (More OSBD .grp / .amb information could be good, .imp and a Mac conversion tool is completly left out so far.) | ||
Line 162: | Line 162: | ||
==[http://oni.bungie.org/community/forum/viewtopic.php?id=798 OCF thread about new music]== | ==[http://oni.bungie.org/community/forum/viewtopic.php?id=798 OCF thread about new music]== | ||
==How to register sounds to characters== | |||
... such as sounds of heavy attacks and taunts. | |||
'''Let's see how sounds become picked up:'''<br>Schemata: | |||
: TRAM -> ONCC -> OSBD.amb -> OSBD.grp -> SNDD | |||
Explanation: | |||
* The character performs a move / attack whereby the TRAM file holds a sound ID (<Vocalization>). | |||
* A link (OSBD.amb name) in ONCC file becomes looked up based on the sound ID.<br>Note that the ONCC file has also a probability value that randomly decides whether a sound becomes played or not. | |||
* The game engine looks into OSBD.amb and follows the link into OSBD.grp. | |||
* '''OSBD.grp can hold multiple links to SNDD files.''' That's why Konoko can have multiple taunt sounds. | |||
===step 1: preparing the TRAM=== | |||
'''Search for <Vocalization> in the TRAM file''' and give it an ID according to the following table. | |||
{| | |||
{{table}} | |||
!colspan=3| comparison of TRAM's <Vocalization> IDs and ONCC's <String>s | |||
|- | |||
|width=80px| | |||
|width=30px| ID | |||
| link to ... | |||
|- | |||
| <String> | |||
| 0 | |||
| '''taunt(s)''' | |||
|- | |||
| <String> | |||
| 1 | |||
| being surprised by a sound | |||
|- | |||
| <String> | |||
| 2 | |||
| being surprised by an enemy | |||
|- | |||
| <String> | |||
| 3 | |||
| death taunt (when enemy / player dies) | |||
|- | |||
| <String> | |||
| 4 | |||
| sound when character lost track of enemy | |||
|- | |||
| <String> | |||
| 5 | |||
| being afraid (E.g. "Dont't hurt me.") | |||
|- | |||
| <String> | |||
| 6 | |||
| '''sound of ######punch_heavy.oni''', super punches don't have sound IDs | |||
|- | |||
| <String> | |||
| 7 | |||
| '''sound of ######kick_heavy.oni''', super kicks don't have sound IDs | |||
|- | |||
| <String> | |||
| 8 | |||
| AI specialty, Mukade use it for his devil star attack | |||
|- | |||
| <String> | |||
| <font color=#777777>9</font> | |||
| <font color=#777777>AI special 2? Unsued or really dead?</font> | |||
|} | |||
===step 2: preparing the ONCC=== | |||
Search for <SoundProbabilities> and set a value. The "<Int8>" tags have the same ID as the "<string>" tags in the table above. | |||
If write 100 into the first in8 tag (<Int8>100</Int8>) then you have a 100 % probability that the taunt sound will be played. | |||
7th <Int8> would have ID 6.<br>8th <Int8> would have ID 7.<br>The little difference exist because of ID 0 for taunt. | |||
Fill your needed <String></String> tags when you're done with the <Int8> values. | |||
Let's compare with Konoko (and in the following steps especially the with her taunt files.) | |||
In ONCCkonoko_generic.xml it looks like this: | |||
<SoundProbabilities> | |||
<Int8>100</Int8> | |||
<Int8>0</Int8> | |||
<Int8>0</Int8> | |||
<Int8>0</Int8> | |||
<Int8>0</Int8> | |||
<Int8>0</Int8> | |||
<Int8>100</Int8> | |||
<Int8>100</Int8> | |||
<Int8>0</Int8> | |||
<Int8>0</Int8> | |||
</SoundProbabilities> | |||
<Sounds> | |||
<String>c17_99_28konoko</String> | |||
<String></String> | |||
<String></String> | |||
<String></String> | |||
<String></String> | |||
<String></String> | |||
<String>c18_79_14konoko</String> | |||
<String>c18_79_15konoko</String> | |||
<String></String> | |||
<String></String> | |||
</Sounds> | |||
===step 3: preparing the OSBD.amb=== | |||
You basically need such a file... | |||
Do you see the <BaseTrack1> tag? In this case it holds the link <font color=#AAAAAA>OSBD</font>c17_99_28konoko<font color=#AAAAAA>.grp.oni</font>. | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<Oni Version="0.9.52.0"> | |||
<AmbientSound> | |||
<Priority>Highest</Priority> | |||
<Flags>InterruptTracksOnStop PlayOnce</Flags> | |||
<DetailTrackProperties> | |||
<SphereRadius>10</SphereRadius> | |||
<ElapsedTime> | |||
<Min>0</Min> | |||
<Max>0</Max> | |||
</ElapsedTime> | |||
</DetailTrackProperties> | |||
<Volume> | |||
<Distance> | |||
<Min>10</Min> | |||
<Max>50</Max> | |||
</Distance> | |||
</Volume> | |||
<DetailTrack></DetailTrack> | |||
<BaseTrack1>c17_99_28konoko</BaseTrack1> | |||
<BaseTrack2></BaseTrack2> | |||
<InSound></InSound> | |||
<OutSound></OutSound> | |||
<Treshold>3</Treshold> | |||
<MinOcclusion>0</MinOcclusion> | |||
</AmbientSound> | |||
</Oni> | |||
===step 4: preparing the OSBD.grp=== | |||
Since <NumberOfChannels> is only once presented all the SNDD file must have the same number of channels (moro/stereo). | |||
(It's possible to speed up sounds with <Pitch>. E.g. Fury's taunt is speeded up by 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"?> | |||
<Oni Version="0.9.52.0"> | |||
<SoundGroup> | |||
<Volume>1</Volume> | |||
<Pitch>1</Pitch> | |||
<PreventRepeats>1</PreventRepeats> | |||
<LastSelectedPermutation>0</LastSelectedPermutation> | |||
<NumberOfChannels>1</NumberOfChannels> | |||
<Permutations> | |||
<Permutation> | |||
<Weight>10</Weight> | |||
<Volume> | |||
<Min>1</Min> | |||
<Max>1</Max> | |||
</Volume> | |||
<Pitch> | |||
<Min>1</Min> | |||
<Max>1</Max> | |||
</Pitch> | |||
<Sound>c17_99_28konoko.aif</Sound> | |||
</Permutation> | |||
<Permutation> | |||
<Weight>10</Weight> | |||
<Volume> | |||
<Min>1</Min> | |||
<Max>1</Max> | |||
</Volume> | |||
<Pitch> | |||
<Min>1</Min> | |||
<Max>1</Max> | |||
</Pitch> | |||
<Sound>c17_99_29konoko.aif</Sound> | |||
</Permutation> | |||
'''''[...]''''' | |||
</Permutations> | |||
</SoundGroup> | |||
</Oni> | |||
As you can see | |||
* <font color=#AAAAAA>SNDD</font>c17_99_28konoko.aif<font color=#AAAAAA>.oni</font> ("You're gonna get beat(en) by a girl!") | |||
* <font color=#AAAAAA>SNDD</font>c17_99_29konoko.aif<font color=#AAAAAA>.oni</font> ("Ready to lose?") (You can play sounds with (PC) onisplit GUI or (Mac) AETools. | |||
* ''[...]'' | |||
are used for Konoko. ("aif" is here part of the name, don't get bothered by it.) | |||
This file is the magic why Konoko has multiple sounds through one and the same taunt animation. | |||
===step 5: everything else what's left=== | |||
* [[#Source_file_requirements|create your SNDD]] if you haven't yet | |||
* put your files into a package | |||
* test your stuff in-game |
edits