Difference between revisions of "Hpl2:HPL2/Tutorials/CustomSounds"
(Some clean up) |
(Some rewrites) |
||
Line 1: | Line 1: | ||
− | + | = Adding custom sounds = | |
− | = Adding custom sounds= | ||
== Preparing the sounds == | == Preparing the sounds == | ||
− | First you'll need a sound-editting program | + | First you'll need a sound-editting program; [https://www.audacityteam.org/ | Audacity] is a common choice - it is free and will suit most needs. |
− | The sounds need to be in '''.ogg ''' format | + | The sounds need to be in '''.ogg ''' format. If your sound files are formatted as '''.MP3''', '''.WAV''' or anything else, you need to use one your audio editing software of choice to convert your sound file to an '''.ogg''' file format. In Audacity, you just need to drag the file into the program and then export as '''.ogg'''. |
− | + | {{tip|It is recommended to use mono files. Stereo should only be used for music and ambient tracks, because it will play directly at the player rather than play in 3D.}} | |
− | + | If you only want to play this sound as music, you can skip the next few steps and jump right to the custom music section. | |
== Managing sound files == | == Managing sound files == | ||
Line 21: | Line 20: | ||
== Creating the sound entity file == | == Creating the sound entity file == | ||
− | + | The behaviour of the sound in the game is determined by a "sound entity" file. These files have a '''.snt''' extension. | |
− | {{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 | + | For the fastest workflow, copy an existing sound file that works similarly to how you want and change its name. Then alter the contents of that file rather than writing them from scratch. |
+ | |||
+ | {{tip|If using Notepad++, right-click a .snt file and pick Notepad++ to edit the file.}} | ||
+ | |||
+ | Alternatively, you can do the following: | ||
+ | |||
+ | Create a '''.txt''' file and name it what you want (same as the .ogg file is common), open it with any text editor you use.[[Notepad%2B%2B | Notepad++]] is recommended. When you finish editing the file, change the extension to the correct one. I named my file '''tutorial.snt'''. | ||
+ | |||
+ | {{tip|Other extensions 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.}} | ||
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. | ||
Line 54: | Line 61: | ||
{{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.}} | {{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! | + | Well thats it! You now created your very own sound! Place it in the map with the Level Editor or use it with <code>PlaySoundAtEntity();</code> in your level script (check [http://wiki.frictionalgames.com/hpl2/amnesia/script_functions Engine scripts] for details). |
= Adding custom music = | = Adding custom music = | ||
− | Custom music needs | + | Custom music only needs to be a file in the '''.ogg''' format. It won't need an '''.snt''' file to be played with <code>PlayMusic();</code> or at the credits, but you won't be able to use <code>PlaySoundAtEntity();</code> with this file. |
− | |||
− | |||
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. | 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. | ||
− | + | See [http://wiki.frictionalgames.com/hpl2/amnesia/script_functions Engine scripts] to learn how to use <code>PlayMusic();</code>. | |
− | Keep in mind that only one music file can play at a time. For | + | Keep in mind that only one music file can play at a time. For ambient sound, it is better to create a sound file (like described earlier). That way you can layer ambient sound with actual music when needed. |
Revision as of 18:06, 2 November 2020
Contents
Adding custom sounds
Preparing the sounds
First you'll need a sound-editting program; | Audacity is a common choice - it is free and will suit most needs.
The sounds need to be in .ogg format. If your sound files are formatted as .MP3, .WAV or anything else, you need to use one your audio editing software of choice to convert your sound file to an .ogg file format. In Audacity, you just need to drag the file into the program and then export as .ogg.
If you only want to play this sound as music, you can skip the next few steps and jump right to the custom music section.
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.
Place the tutorial.ogg file in the created (sub)folder.
Creating the sound entity file
The behaviour of the sound in the game is determined by a "sound entity" file. These files have a .snt extension.
For the fastest workflow, copy an existing sound file that works similarly to how you want and change its name. Then alter the contents of that file rather than writing them from scratch.
Alternatively, you can do the following:
Create a .txt file and name it what you want (same as the .ogg file is common), open it with any text editor you use. Notepad++ is recommended. When you finish editing the file, change the extension to the correct one. I named my file tutorial.snt.
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]
Well thats it! You now created your very own sound! Place it in the map with the Level Editor or use it with PlaySoundAtEntity();
in your level script (check Engine scripts for details).
Adding custom music
Custom music only needs to be a file in the .ogg format. It won't need an .snt file to be played with PlayMusic();
or at the credits, but you won't be able to use PlaySoundAtEntity();
with this file.
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.
See Engine scripts to learn how to use PlayMusic();
.
Keep in mind that only one music file can play at a time. For ambient sound, it is better to create a sound file (like described earlier). That way you can layer ambient sound with actual music when needed.