XML:SNDD: Difference between revisions

840 bytes removed ,  31 March 2012
m
improvments here and there
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>
8,189

edits