XML:SNDD: Difference between revisions

From OniGalore
Jump to navigation Jump to search
m (update on onisplit's (v56) ONCC <SoundConstants>)
m (improvments here and there)
Line 1: Line 1:
{{finish}}
{{finish}}
(More OSBD .grp / .amb information could be good and .imp is completly left out so far.)
{| border=0 cellspacing=20 cellpadding=0 align=center
| More OSBD .grp / .amb information could be good and .imp is completly left out so far.
|}


{{XMLModdingHints}}
{| border=0 cellspacing=20 cellpadding=0 align=center
| The xml code on this page is based on onisplit '''v0.9.61.0'''
|}


__TOC__
__TOC__
{{XMLModdingHints}}




Line 72: Line 76:


==Oni file creation==
==Oni file creation==
===via Excel macro===
{| border=0 cellspacing=20 cellpadding=0 align=right
| macro GUI<br>[http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/VBA/sound_setup_assistant.png http://i305.photobucket.com/albums/nn207/unknownfuture/Oni_Galore_Images/VBA/sound_setup_assistant_tn.png]
|}
You can use this [http://dl.dropbox.com/u/139715/OniGalore/SNDD_OSBD_macro.zip macro] to create single sounds with fwe clicks.
It generates the OSBD (.amb + .grp) and SNDD file.
No need to buy Windows version of Excel. The trail version will also do it.
===via batch files===
===via batch files===
Get them [http://dl.dropbox.com/u/139715/OniGalore/sound_creation_via_batch_files.zip HERE], includes a short readme.
Get them [http://dl.dropbox.com/u/139715/OniGalore/sound_creation_via_batch_files.zip HERE], includes a short readme.


===via command lines===
===via command lines===
Line 96: Line 113:




===OSBDfile.grp.xml===
===OSBDfile.amb.xml===
In case you want to create a simple sound file you can basically copy the code and change the red marked stuff.
The .amb file can be called from BSL or from area-fixed sound object. (See level-specific file [[#BINACJBOSound.xml|BINACJBOSound.xml]].)
* <Oni Version="      "> - self-explanatory, isn't it?
* <NumberOfChannels> - here you tell Oni if your sound file is "1" (22.05 kHz, mono) or "2" (22.05 kHz, stereo; (PC-only:) 44.1 kHz, mono), if you set the wrong value the music will sound distorted
* <Sound> - this is the sound file (for example: <font color=#AAAAAA>SNDD</font>nyan<font color=#AAAAAA>.oni</font>), file prefix and suffix aren't used


(sample file)
The .amb file links to .grp file(s).
 
<?xml version="1.0" encoding="utf-8"?>
<Oni Version="<font color=#FF0000>'''0.9.52.0'''</font>">
    <SoundGroup>
        <Volume>1</Volume>
        <Pitch>1</Pitch>
        <PreventRepeats>1</PreventRepeats>
        <LastSelectedPermutation>0</LastSelectedPermutation>
        <NumberOfChannels><font color=#FF0000>'''2'''</font></NumberOfChannels>
        <Permutations>
            <Permutation>
                <Weight>10</Weight>
                <Volume>
                    <Min>1</Min>
                    <Max>1</Max>
                </Volume>
                <Pitch>
                    <Min>1</Min>
                    <Max>1</Max>
                </Pitch>
                <Sound><font color=#FF0000>'''nyan'''</font></Sound>
            </Permutation>
        </Permutations>
    </SoundGroup>
</Oni>


* <Priority>
: Low
: Normal
: High
: Highest
* <Flags>
: InterruptTracksOnStop - this flag must be set if you want to use BSL command ''sound_music_stop''
: PlayOnce
: CanPan
* <BaseTrack1> - this links to the .grp file (for example: <font color=#AAAAAA>OSBD</font>nyan<font color=#AAAAAA>.grp.oni</font>), file prefix and suffix aren't used


===OSBDfile.amb.xml===
This file use the .grp file(s).<br>This file is used by area-fixed sounds. (See level-specific file [[#BINACJBOSound.xml|BINACJBOSound.xml]].)
* <Flags> - use "PlayOnce" if you don't want your sound to be repeated automatically
* <BaseTrack1> - this is the grp sound file (for example: <font color=#AAAAAA>SNDD</font>nyan<font color=#AAAAAA>.grp.oni</font>), file prefix and suffix aren't used


(sample file)
(OSBDfile.grp.xml, OSBDfile.amb.xml, BINACJBOSound.xml are actully showing the code from the [http://mods.oni2.net/node/177 <font color=#FF0000>'''nyan</font> cat mod'''].)


  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
  <Oni Version="0.9.52.0">
  <Oni>
     <AmbientSound>
     <AmbientSound>
         <Priority>Normal</Priority>
         <Priority>Normal</Priority>
Line 156: Line 151:
         </Volume>
         </Volume>
         <DetailTrack></DetailTrack>
         <DetailTrack></DetailTrack>
         <BaseTrack1><font color=#FF0000>'''nyan'''</font></BaseTrack1>
         '''<BaseTrack1>nyan</BaseTrack1>'''
         <BaseTrack2></BaseTrack2>
         <BaseTrack2></BaseTrack2>
         <InSound></InSound>
         <InSound></InSound>
Line 163: Line 158:
         <MinOcclusion>0</MinOcclusion>
         <MinOcclusion>0</MinOcclusion>
     </AmbientSound>
     </AmbientSound>
</Oni>
===OSBDfile.grp.xml===
In case you want to create a simple sound file you can basically copy the code and change the red marked stuff.
* <Flags>
: PreventRepeat - forces to play different sounds if more than one permutation is present
* <NumberOfChannels> - here you tell Oni if your sound file is "1" (22.05 kHz, mono) or "2" (22.05 kHz, stereo; (PC-only:) 44.1 kHz, mono), if you set the wrong value the music will sound distorted
* <Sound> - this is the sound file (for example: <font color=#AAAAAA>SNDD</font>nyan<font color=#AAAAAA>.oni</font>), file prefix and suffix aren't used
<?xml version="1.0" encoding="utf-8"?>
<Oni>
    <SoundGroup>
        <Volume>1</Volume>
        <Pitch>1</Pitch>
        <Flags>PreventRepeat</Flags>
        <NumberOfChannels><font color=#FF0000>'''2'''</font></NumberOfChannels>
        <Permutations>
            <Permutation>
                <Weight>10</Weight>
                <Volume>
                    <Min>1</Min>
                    <Max>1</Max>
                </Volume>
                <Pitch>
                    <Min>1</Min>
                    <Max>1</Max>
                </Pitch>
                <Sound><font color=#FF0000>'''nyan'''</font></Sound>
            </Permutation>
        </Permutations>
    </SoundGroup>
  </Oni>
  </Oni>


Line 172: Line 201:
* <MinRadius> - between min radius and sound origin (<Position>) is the sound volume equally strong
* <MinRadius> - between min radius and sound origin (<Position>) is the sound volume equally strong
* <MaxRadius> - between max and min radius is a transition of the sound volume
* <MaxRadius> - between max and min radius is a transition of the sound volume
(A block ("object") of sample code.)


         <Object Id="8805" Type="SNDG">
         <SNDG Id="8805">
             <Header>
             <Header>
                 <Flags>0</Flags>
                 <Flags></Flags>
                 <Position>125 10 2231</Position>
                 <Position>125 10 2231</Position>
                 <Rotation>0 0 0</Rotation>
                 <Rotation>0 0 0</Rotation>
             </Header>
             </Header>
             <OSD>
             <OSD>
                 <Class><font color=#FF0000>'''nyan'''</font></BaseTrack1></Class>
                 <Class><font color=#FF0000>'''nyan'''</font></Class>
                 <Sphere>
                 <Sphere>
                     <MinRadius>7</MinRadius>
                     <MinRadius>7</MinRadius>
                     <MaxRadius>21</MaxRadius>
                     <MaxRadius>21</MaxRadius>
                 </Sphere>
                 </Sphere>
                 <Volume>1</Volume>
                 <Volume>0.75</Volume>
                 <Pitch>1</Pitch>
                 <Pitch>1</Pitch>
             </OSD>
             </OSD>
         </Object>
         </SNDG>




Line 219: Line 247:
{|
{|
{{table}}
{{table}}
!colspan=3| comparison of TRAM's <Vocalization> IDs and ONCC's <String>s
!colspan=2| TRAM <Vocalization> IDs refer to these ONCC SoundConstants tags
|-
|-
|width=80px|
|width=30px| ID
|width=30px| ID
| link to ...
| link to ...
|-
|-
| <String>
| 0
| 0
| '''taunt(s)''' - refers to <TauntProbability> in xml file made by onisplit 56(+)
| <TauntProbability> - '''taunt(s)'''
|-
|-
| <String>
| 1
| 1
| AI being surprised by a sound - <AlertProbability>
| <AlertProbability> - AI being surprised by a sound
|-
|-
| <String>
| 2
| 2
| AI being surprised by an enemy - <StartleProbability>
| <StartleProbability> - AI being surprised by an enemy
|-
|-
| <String>
| 3
| 3
| (AI only?) death taunt (when enemy / player dies) - <CheckBodyProbability>
| <CheckBodyProbability> - (AI only?) death taunt (when enemy / player dies)
|-
|-
| <String>
| 4
| 4
| sound when character lost track of enemy - <PursueProbability>
| <PursueProbability> - sound when character lost track of enemy
|-
|-
| <String>
| 5
| 5
| being afraid (E.g. "Dont't hurt me.") - <CoverProbability>
| <CoverProbability> - being afraid (E.g. "Dont't hurt me.")
|-
|-
| <String>
| 6
| 6
| '''sound of ######punch_heavy.oni''', super punches don't have sound IDs - <SuperPunchSound>
| <SuperPunchSound> - '''sound of ######punch_heavy.oni''', super punches don't have sound IDs
|-
|-
| <String>
| 7
| 7
| '''sound of ######kick_heavy.oni''', super kicks don't have sound IDs - <SuperKickSound>
| <SuperKickSound> - '''sound of ######kick_heavy.oni''', super kicks don't have sound IDs
|-
|-
| <String>
| 8
| 8
| AI specialty, Mukade use it for his devil star attack - <Super3Sound>
| <Super3Sound> - AI specialty, Mukade use it for his devil star attack
|-
|-
| <String>
| <font color=#777777>9</font>
| <font color=#777777>9</font>
| <font color=#777777>unsued - <Super4Sound></font>
| <font color=#777777><Super4Sound> - unsued</font>
|}
|}




===step 2: preparing the ONCC===
===step 2: preparing the ONCC===
{{divhide|onisplit 52 (-)}}
Search for <SoundProbabilities> and set a value. The "<Int8>" tags have the same ID as the "<string>" tags in the table above.
If you 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>
{{divhide|end}}
{{divhide|onisplit 56 (+)}}
Search for <SoundConstants> and set a value between 0 and 100. 100 will make the engine play a sound always the taunt animation is played.
Search for <SoundConstants> and set a value between 0 and 100. 100 will make the engine play a sound always the taunt animation is played.


Line 334: Line 312:
                 <Super4Sound></Super4Sound>
                 <Super4Sound></Super4Sound>
             </SoundConstants>
             </SoundConstants>
{{divhide|end}}
 


===step 3: preparing the OSBD.amb===
===step 3: preparing the OSBD.amb===
Line 340: Line 318:


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>.
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"?>
  <?xml version="1.0" encoding="utf-8"?>
  <Oni Version="0.9.52.0">
  <Oni>
     <AmbientSound>
     <AmbientSound>
         <Priority>Highest</Priority>
         <Priority>Highest</Priority>
Line 379: Line 358:


  <?xml version="1.0" encoding="utf-8"?>
  <?xml version="1.0" encoding="utf-8"?>
  <Oni Version="0.9.52.0">
  <Oni>
     <SoundGroup>
     <SoundGroup>
         <Volume>1</Volume>
         <Volume>1</Volume>
         <Pitch>1</Pitch>
         <Pitch>1</Pitch>
         <PreventRepeats>1</PreventRepeats>
         <Flags>PreventRepeat</Flags>
        <LastSelectedPermutation>0</LastSelectedPermutation>
         <NumberOfChannels>1</NumberOfChannels>
         <NumberOfChannels>1</NumberOfChannels>
         <Permutations>
         <Permutations>

Revision as of 21:44, 31 March 2012

Unfinished building-60px.jpg

This page is unfinished. Can you fill in any missing information?
If it is not clear which part of the page is unfinished, ask on the talk page.

More OSBD .grp / .amb information could be good and .imp is completly left out so far.

Template:XMLModdingHints

The xml code on this page is based on onisplit v0.9.61.0


How do I get sounds into Oni?

In order to make your sounds available on both sides - pc and mac - you need to create them twice (one time from a wav source and another time from an aif/aifc/afc source).


Source file creation

These are the requirements of your source file(s).

PC retail MAC
.wav
22.05KHz (mono / stereo) or 44.1KHz (mono)
uncompressed (PCM) or compressed (MS-ADPCM)
.aif / .aifc / .afc
22.05KHz (mono / stereo)
compressed (ima4)


To create suitable files you could use audacity and its ffmpeg Export Library.

download PC version Mac version
audacity link link
ffmpeg Export Library link link
mirror links audacity (1.3 beta) + library audacity (1.3 beta) + library
installation After you installed Audacity and the library goto Audacity > Preferences... > Libraries - click on Locate... button and find the installed library file.
source file creation wav for PC oni file


Open your sound file then goto File > Export... > Save As: yourfile.wav; Format: Custom FFmpeg Export; Options... > wav; pcm_s16le; Sample Rate: 22050; OK and save the file
(adpcm_ms doesn't work with Audacity 1.3 Beta)

Audacity_wav_tn.png

aif for Mac oni file


Open your sound file then goto File > Export... > Save As: yourfile.aif; Format: Custom FFmpeg Export; Options... > aiff; adpcm_ima_qt; Sample Rate: 22050; OK and save the file

Audacity_tn.png


Oni file creation

via Excel macro

macro GUI
sound_setup_assistant_tn.png

You can use this macro to create single sounds with fwe clicks.

It generates the OSBD (.amb + .grp) and SNDD file.

No need to buy Windows version of Excel. The trail version will also do it.


via batch files

Get them HERE, includes a short readme.


via command lines

For those who want to do it on their own.

onisplit

-create output_directory_MAC input_directory/*.aif
-create output_directory_PC input_directory/*.wav
-create output_directory input_directory/*.xml

For fast xml text changes and naming give them all yourfile as name if you have only one sound:

SNDDyourfile.oni
OSBDyourfile.grp.oni
OSBDyourfile.amb.oni


OSBD information

OSBD_newmusic.amb.oni (The main file, links to the group, intro and ending files)
OSBD_newmusic.grp.oni (Contain links to the music files)
OSBD_newmusic_in.grp.oni (Links to intro part of the music - Optional)
OSBD_newmusic_out.grp.oni (Links to the ending of the music - Optional)
SNDD_newmusic1.oni (The individual music files - Its best to break up the music into segments of perhaps 30 secs to a minute each - Oni may crash or become sluggish if you use a single file for the music -- EdT) (Can someone doublecheck this? --Paradox-01 19:54, 23 April 2011 (UTC))


OSBDfile.amb.xml

The .amb file can be called from BSL or from area-fixed sound object. (See level-specific file BINACJBOSound.xml.)

The .amb file links to .grp file(s).

  • <Priority>
Low
Normal
High
Highest
  • <Flags>
InterruptTracksOnStop - this flag must be set if you want to use BSL command sound_music_stop
PlayOnce
CanPan
  • <BaseTrack1> - this links to the .grp file (for example: OSBDnyan.grp.oni), file prefix and suffix aren't used


(OSBDfile.grp.xml, OSBDfile.amb.xml, BINACJBOSound.xml are actully showing the code from the nyan cat mod.)

<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <AmbientSound>
       <Priority>Normal</Priority>
       <Flags>InterruptTracksOnStop</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>nyan</BaseTrack1>
       <BaseTrack2></BaseTrack2>
       <InSound></InSound>
       <OutSound></OutSound>
       <Treshold>3</Treshold>
       <MinOcclusion>0</MinOcclusion>
   </AmbientSound>
</Oni>


OSBDfile.grp.xml

In case you want to create a simple sound file you can basically copy the code and change the red marked stuff.

  • <Flags>
PreventRepeat - forces to play different sounds if more than one permutation is present
  • <NumberOfChannels> - here you tell Oni if your sound file is "1" (22.05 kHz, mono) or "2" (22.05 kHz, stereo; (PC-only:) 44.1 kHz, mono), if you set the wrong value the music will sound distorted
  • <Sound> - this is the sound file (for example: SNDDnyan.oni), file prefix and suffix aren't used


<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <SoundGroup>
       <Volume>1</Volume>
       <Pitch>1</Pitch>
       <Flags>PreventRepeat</Flags>
       <NumberOfChannels>2</NumberOfChannels>
       <Permutations>
           <Permutation>
               <Weight>10</Weight>
               <Volume>
                   <Min>1</Min>
                   <Max>1</Max>
               </Volume>
               <Pitch>
                   <Min>1</Min>
                   <Max>1</Max>
               </Pitch>
               <Sound>nyan</Sound>
           </Permutation>
       </Permutations>
   </SoundGroup>
</Oni>


BINACJBOSound.xml

This is for area-fixed sounds.

  • <Position> - here you tell Oni where you want the sound to be located
  • <Class> - this is the amb sound file (for example: SNDDnyan.amb.oni), file prefix and suffix aren't used
  • <MinRadius> - between min radius and sound origin (<Position>) is the sound volume equally strong
  • <MaxRadius> - between max and min radius is a transition of the sound volume
       <SNDG Id="8805">
           <Header>
               <Flags></Flags>
               <Position>125 10 2231</Position>
               <Rotation>0 0 0</Rotation>
           </Header>
           <OSD>
               <Class>nyan</Class>
               <Sphere>
                   <MinRadius>7</MinRadius>
                   <MaxRadius>21</MaxRadius>
               </Sphere>
               <Volume>0.75</Volume>
               <Pitch>1</Pitch>
           </OSD>
       </SNDG>


sound-related BSL commands


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:
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.
    Note that the ONCC file has also a probability value that 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.


TRAM <Vocalization> IDs refer to these ONCC SoundConstants tags
ID link to ...
0 <TauntProbability> - taunt(s)
1 <AlertProbability> - AI being surprised by a sound
2 <StartleProbability> - AI being surprised by an enemy
3 <CheckBodyProbability> - (AI only?) death taunt (when enemy / player dies)
4 <PursueProbability> - sound when character lost track of enemy
5 <CoverProbability> - being afraid (E.g. "Dont't hurt me.")
6 <SuperPunchSound> - sound of ######punch_heavy.oni, super punches don't have sound IDs
7 <SuperKickSound> - sound of ######kick_heavy.oni, super kicks don't have sound IDs
8 <Super3Sound> - AI specialty, Mukade use it for his devil star attack
9 <Super4Sound> - unsued


step 2: preparing the ONCC

Search for <SoundConstants> and set a value between 0 and 100. 100 will make the engine play a sound always the taunt animation is played.

Let's compare with Konoko (and in the following steps especially the with her taunt files.) In ONCCkonoko_generic.xml it looks like this:

           <SoundConstants>
               <TauntProbability>100</TauntProbability>
               <AlertProbability>0</AlertProbability>
               <StartleProbability>0</StartleProbability>
               <CheckBodyProbability>0</CheckBodyProbability>
               <PursueProbability>0</PursueProbability>
               <CoverProbability>0</CoverProbability>
               <SuperPunchProbability>100</SuperPunchProbability>
               <SuperKickProbability>100</SuperKickProbability>
               <Super3Probability>0</Super3Probability>
               <Super4Probability>0</Super4Probability>
               <TauntSound>c17_99_28konoko</TauntSound>
               <AlertSound></AlertSound>
               <StartleSound></StartleSound>
               <CheckBodySound></CheckBodySound>
               <PursueSound></PursueSound>
               <CoverSound></CoverSound>
               <SuperPunchSound>c18_79_14konoko</SuperPunchSound>
               <SuperKickSound>c18_79_15konoko</SuperKickSound>
               <Super3Sound></Super3Sound>
               <Super4Sound></Super4Sound>
           </SoundConstants>


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 OSBDc17_99_28konoko.grp.oni.


<?xml version="1.0" encoding="utf-8"?>
<Oni>
   <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.

1 (22.05 kHz, mono)
2 (22.05 kHz, stereo)
2 (44.1 kHz, mono) [PC-only]

(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>
   <SoundGroup>
       <Volume>1</Volume>
       <Pitch>1</Pitch>
       <Flags>PreventRepeat</Flags>
       <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

  • SNDDc17_99_28konoko.aif.oni ("You're gonna get beat(en) by a girl!")
  • SNDDc17_99_29konoko.aif.oni ("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

  • create your SNDD if you haven't yet
  • put your files into a package
  • test your stuff in-game