Difference between revisions of "Hpl2:HPL2/Tutorials/CustomSounds"

From Frictional Wiki
Jump to navigation Jump to search
m (Darkfire moved page Hpl2:Tutorials:script:page to Hpl2:Tutorials:script:CustomSounds without leaving a redirect: Generic location)
(Some clean up)
Line 1: Line 1:
= How to add Custom Sounds? =
+
{{cleanup|This article uses personal language and has poorly explained fragments and broken links.}}
 +
= Adding custom sounds=
 +
== Preparing the sounds ==
  
 +
First you'll need a sound-editting program, you can do this by using [http://www.erightsoft.com/S6Kg1.html|SUPER]] (Recommended) [http://audacity.sourceforge.net/download/|Audacity] or [[http://www.sonycreativesoftware.com/download/trials/vegaspro Sony Vegas] (Not free)
  
Hello! Stepper321 (And friends) here, i'm gonna teach you how to add custom sounds!
+
The sounds need to be in '''.ogg ''' format, If your soundfiles are formatted as '''.MP3''', '''.WAV''' or anything else, you may use one of the said above programs to convert your soundfile of choice to an '''.ogg''' file format.
  
 +
For my example, my script file is called '''tutorial.txt''', and the sound is '''door.ogg'''.
  
== Having the sounds ==
+
{{tip|It is recommended to use mono files. Stereo should only be used (but is not required) for music and ambient tracks.}}
 
 
 
 
First you'll need a sound-editting program, you can do this by using [http://www.erightsoft.com/S6Kg1.html|SUPER]] (Recommended) [http://audacity.sourceforge.net/download/|Audacity] or [[http://www.sonycreativesoftware.com/download/trials/vegaspro Sony Vegas] (Not free)
 
 
 
  
The sounds need to be in '''.ogg ''' format, If your soundfiles are formatted as '''.MP3''', '''.WAV''' or anything else, you may use one of the said above programs to convert your soundfile of choice to an '''''.'' ogg''' file format.
+
== Managing sound files ==
  
 +
In your mod's (FC or CS, doesn't matter) folder, create a folder for sounds. It can be called however you want, but '''sounds''' would probably be the best.
  
For my example, my script file is called '''tutorial.txt''', and the sound is '''door.ogg'''.
+
{{tip|If your mod has a lot of custom sounds, make sure to organise them into subfolders!}}
  
== Placing the sounds in the right folder ==
+
Place the tutorial.ogg file in the created (sub)folder.
  
 +
== Creating the sound entity file ==
  
You need to go to your custom story folder and create a new folder called: “sounds” and in that folder an: “extrasounds” folder. In there you place the tutorial.ogg file.<br />
+
Create a '''.txt''' file and name it the name of your sound's Script, open it with any Text Editor you use. I use [http://wiki.frictionalgames.com/hpl2/third_party_tools/text/notepad?s[]=notepad Notepad++]. I named my file '''tutorial.txt'''.
('''You can name it what ever you want.''')
 
== Making the sound work in Amnesia ==
 
  
Create a '''.txt''' file and name it the name of your sound's Script, open it with any Text Editor you use. I use [http://wiki.frictionalgames.com/hpl2/third_party_tools/text/notepad?s[]=notepad Notepad++]. I named my file <u>'''tutorial'''</u>'''.txt'''.
+
{{tip|.txt might work, but it is recommended to give sound files the .snt extension used by the main game. This will allow your sound to be placed in a level without scripting. If using Notepad++, right-click them and pick Notepad++ to edit these files.}}
  
 
In the file, you can edit quite a few things, and among them is..''Adding your sound-file into the script!'' And since my sound file is <u>'''door'''</u>'''.ogg''', It shall go to the '''MAIN''' section. Random soundfiles will be covered later on.
 
In the file, you can edit quite a few things, and among them is..''Adding your sound-file into the script!'' And since my sound file is <u>'''door'''</u>'''.ogg''', It shall go to the '''MAIN''' section. Random soundfiles will be covered later on.
<syntaxhighlight lang="">
+
<syntaxhighlight lang="xml">
 
<SOUNDENTITY>
 
<SOUNDENTITY>
 
  <SOUNDS>
 
  <SOUNDS>
Line 37: Line 37:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Maybe you're asking, what the hell is all of this? I will explain :
+
Format explanation:
 
 
<'''SOUNDENTITY''' > is the start of the sound file to know what it will play, it can only have one. (Like the extra_english file you have normally in your Custom Story :))
 
 
 
<'''SOUNDS''' > is the sound what it will play
 
  
<'''Main''' > is the main sound it will play, i don't know if there exist other categories for that. But use it
+
<'''SOUNDENTITY'''> is the start marker of the sound file
  
<'''Sound File''' =" ''YourFileName''.ogg" /> is the sound file it will play, if you add multiple sound files, it will play the sounds randomly.
+
<'''SOUNDS'''> indicates the sound list
  
<'''PROPERTIES''' > Are all the options you may use to decide how the sound will behave in-game, like '''MinDistance''' is what distance you have to be in to hear it, since 1 is the players exact size, You will hear the sound perfectly if you stand on it. Beyond that, you will be able to hear the sound until the distance specified in '''MaxDistance''', I don't know exactly but I think that "1" distance is a meter, excuse me if i'm wrong :). (Probably an inch, a person 1 meter in width? '''Needs to be confirmed''')
+
<'''Main'''> is the list of sounds the file will play. It is unsure if other categories exist.
  
Well thats it! You now created your very own sound! Use it with PlaySoundAtEntity(syntax) in your custom level-script; (check [http://wiki.frictionalgames.com/hpl2/amnesia/script_functions Engine scripts] to know what syntax to use)
+
<'''Sound File'''="''YourFileName''.ogg" /> is the way to add a file to the sound. Adding multiple files will play them randomly.
  
= Custom Music =
+
<'''PROPERTIES'''> Are all the options you may use to decide how the sound will behave in-game. Most important ones are:
 +
*'''MinDistance''' is what distance you have to be in to hear it, since 1 is the players exact size, You will hear the sound perfectly if you stand on it. The sound will be heard with less and less volume until getting further than the distance specified in '''MaxDistance'''.
 +
*If you have multiple sounds, changing the '''Random="0"''' parameter to the number of sound files might be needed.{{confirm}}
 +
*'''Loop="False"''' - Make sure to change this to true if your sound should loop.
 +
*'''Use3D="false"''' - Setting this as true will make the sound fade if the player rotates right and left from the sound origin. Using false will only use the distance to fade the sound.{{confirm}}
 +
{{warning|Stereo files will never work with this! The file needs to be mixed into a mono track to use this parameter. Also keep in minds stereo doesn't fade with distance.}}
  
 +
Well thats it! You now created your very own sound! Use it with <code>PlaySoundAtEntity();</code> in your level script (check [http://wiki.frictionalgames.com/hpl2/amnesia/script_functions Engine scripts] for details).
  
Custom musics are exactly the same steps as the custom sounds. But you won't need an .snt file created as long as you do it with PlayMusic(syntax); or at the credits.
+
= Adding custom music =
  
 +
Custom music needs exactly the same steps as the custom sounds. However, they won't need an .snt file to be created as long as the music is to be played with <code>PlayMusic();</code> or at the credits.
  
 
Prepare your .ogg file with the same steps as the Custom Sounds.
 
Prepare your .ogg file with the same steps as the Custom Sounds.
  
 +
Just like with sounds, it is good to create a folder for music in the mod's main folder, e.g. '''music'''. Put the '''.ogg''' file there.
  
Create a new folder called "music" and in the 'music' folder one that's called "extramusic" put it in there. ('''Again, you may name it whatevas you want''')
+
Now, use <code>PlayMusic();</code> in a script. (check [http://wiki.frictionalgames.com/hpl2/amnesia/script_functions Engine scripts] to know what syntax to use)
 
 
 
 
Now use '''PlayMusic''' (Syntex); (check [http://wiki.frictionalgames.com/hpl2/amnesia/script_functions Engine scripts] to know what syntax to use)
 
 
 
 
 
Now maybe you're thinking that you could use this '''like''' a sound effect? Well ; [http://i0.kym-cdn.com/photos/images/original/000/262/501/be7.gif NOPE]. Music has only two "layers" (Priorities). 0 and 1. I.E: only'''one can play at once.'''
 
 
 
 
 
If 1 '''is ''<u>not__ '' specified''', track 0 will play. If 1'''''__is</u> '' specified''', ONLY "1" will play.<br />
 
(You can use that to suddenly or smoothly fade-stop a track in it's place, initiate a different track for your scene, and than resume the previous track. Pretty much what happens when a grunt chases you; only that is automatic!)
 
 
 
  
<br />
+
Keep in mind that only one music file can play at a time. For ambients, it is better to create a sound file (like described earlier).
Send suggestions for tutorials to my forum account by Personal Messaging me at this link: [http://www.frictionalgames.com/forum/user-17976.html Stepper321's personal forum account].<br />
 
<font 8px:normal/Arial;;inherit;;inherit >(Everything is in good will, Stepper, your guide was quite incoherent. Cheers for the initiative ~Yer wiki-friends.)</font>
 

Revision as of 14:23, 24 July 2020

Adding custom sounds

Preparing the sounds

First you'll need a sound-editting program, you can do this by using [1]] (Recommended) [2] or [Sony Vegas (Not free)

The sounds need to be in .ogg format, If your soundfiles are formatted as .MP3, .WAV or anything else, you may use one of the said above programs to convert your soundfile of choice to an .ogg file format.

For my example, my script file is called tutorial.txt, and the sound is door.ogg.

Icon tip.png Tip: It is recommended to use mono files. Stereo should only be used (but is not required) for music and ambient tracks.

Managing sound files

In your mod's (FC or CS, doesn't matter) folder, create a folder for sounds. It can be called however you want, but sounds would probably be the best.

Icon tip.png Tip: If your mod has a lot of custom sounds, make sure to organise them into subfolders!

Place the tutorial.ogg file in the created (sub)folder.

Creating the sound entity file

Create a .txt file and name it the name of your sound's Script, open it with any Text Editor you use. I use [=notepad Notepad++]. I named my file tutorial.txt.

Icon tip.png Tip: .txt might work, but it is recommended to give sound files the .snt extension used by the main game. This will allow your sound to be placed in a level without scripting. If using Notepad++, right-click them and pick Notepad++ to edit these files.

In the file, you can edit quite a few things, and among them is..Adding your sound-file into the script! And since my sound file is door.ogg, It shall go to the MAIN section. Random soundfiles will be covered later on.

<SOUNDENTITY>
 <SOUNDS>
   <Main>
      <Sound File="door.ogg" />
   	</Main>
   </SOUNDS>
   <PROPERTIES Volume="5" MinDistance="1" MaxDistance="50" Random="0" Interval="0" FadeEnd="False" FadeStart="False" Stream="False" Loop="False" Use3D="false" Blockable="False" BlockVolumeMul="0.7" Priority="5" />
</SOUNDENTITY>

Format explanation:

<SOUNDENTITY> is the start marker of the sound file

<SOUNDS> indicates the sound list

<Main> is the list of sounds the file will play. It is unsure if other categories exist.

<Sound File="YourFileName.ogg" /> is the way to add a file to the sound. Adding multiple files will play them randomly.

<PROPERTIES> Are all the options you may use to decide how the sound will behave in-game. Most important ones are:

  • MinDistance is what distance you have to be in to hear it, since 1 is the players exact size, You will hear the sound perfectly if you stand on it. The sound will be heard with less and less volume until getting further than the distance specified in MaxDistance.
  • If you have multiple sounds, changing the Random="0" parameter to the number of sound files might be needed.[Confirm]
  • Loop="False" - Make sure to change this to true if your sound should loop.
  • Use3D="false" - Setting this as true will make the sound fade if the player rotates right and left from the sound origin. Using false will only use the distance to fade the sound.[Confirm]
Alert icon.png Warning: Stereo files will never work with this! The file needs to be mixed into a mono track to use this parameter. Also keep in minds stereo doesn't fade with distance.

Well thats it! You now created your very own sound! Use it with PlaySoundAtEntity(); in your level script (check Engine scripts for details).

Adding custom music

Custom music needs exactly the same steps as the custom sounds. However, they won't need an .snt file to be created as long as the music is to be played with PlayMusic(); or at the credits.

Prepare your .ogg file with the same steps as the Custom Sounds.

Just like with sounds, it is good to create a folder for music in the mod's main folder, e.g. music. Put the .ogg file there.

Now, use PlayMusic(); in a script. (check Engine scripts to know what syntax to use)

Keep in mind that only one music file can play at a time. For ambients, it is better to create a sound file (like described earlier).