Jump to content

[Tutorial] Adding Custom Sound To Your Custom Character


Malacath

Recommended Posts

So this is a very short tutorial based on this tutorial from Cheerio but a bit more specific if anyone wants that. Also don't forget to check out the rest of character creation here

 

Old version of the tutorial:

What we need:

- PC version of Don't Starve and Don't Starve Mod Tools
- Some sounds to mess around with. I quickly went to freesfx.co.uk (because it was the first google hit, I don't mean to promote them, I haven't made any experience there, but at least I didn't find any viruses) and downloaded something. For best results of course use your own sound- and/or music-files
 
 
So we're ready to go...
 
Open up FMOD Designer through the Don't Starve Mod Tools and create a new project by pressing Ctrl+N, remember to save an previously opened project, since FMOD remebers your last session. Create the project within your characters sound folder which you might have to create first. Name it however you want, but for simplicities sake you should keep it the same as your characters name. I'll stick with "wod", we'll call  it the placeholder <file>
 
So far that should have been easy. And actually... it's not getting much harder  ; )

 

On the left side of the screen you'll see "untitled", shich looks like a fodler. LMB(LeftMouseButton) it and rename it to something more fitting. In my case I called it "wod" which is kinda stupid, in other cases I usually called it "sound". Let's just call it <folder> for the rest of the tutorial.

post-245716-0-50929700-1379253663_thumb.

 

RMB <folder> and choose "Add Simple Event" and call it "hurt". No placeholder this time, best we use this nomenclature for all our characters. Add two other simple events called "death_voice" adn "talk_LP". In the meantime you'll see something called "event00". We don't want that RMB it and choose "Delete"

post-245716-0-78470800-1379253669_thumb.

 

Let's go back to "hurt". RMB in the gray area in the middle of the screen and choose "Add Sound" and search the sound you wish your character to make when she/he gets hit. Repeat for "death_voice" and we're done with the two.

post-245716-0-57026300-1379253831_thumb.

 

Let's move on to talk_LP. Have you ever noticed that examining an object in game yields different sounds? I hope you have, cause all of them are pretty neat. We do the same for our character and when adding sound simply select all the sounds we want to hear later. This will then add all of the sounds and assign them a probability equal to 100(amount of files). Wait what? You can add probability to your sounds?

I was baffled when I noticed that, but you can. So just assign a probability of 0.01% to your easter-egg  ; )

post-245716-0-60499800-1379254163_thumb.

 

Right now these percentages are kind of moot. Scroll down on the right side and tick the box "Allow sounds to be repeated". You might not want that, but I really prefer it.

post-245716-0-01761300-1379254287_thumb.

 

Now for pure asthetics go to the banks tab on the top and rename your bank to <filename> as well.

post-245716-0-21101600-1379254327_thumb.

 

Press CTRL+B, tick the box beside your bank and hit build. Close FMOD Designer, we're done here.

 

 

Now back to lua. In your modmain.lua add the assets which were created by FMOD Designer:

and remap the sounds which will be used.

Finally pretend that your sound files were there all along and open your characters lua-file and change the line:

to:

I hope this has helped someone at least and we'll see some characters in the future with their own sounds. If I'm not mistaken there's only the minimapicon which is left to be customisable, or am I mistaken?

 

Anyways, have fun  ^^

Assets = {	Asset("SOUNDPACKAGE", "sound/<file>.fev"),	Asset("SOUND", "sound/´<file>.fsb"),}
RemapSoundEvent( "dontstarve/characters/<character>/death_voice", "<file>/<folder>/death_voice" )RemapSoundEvent( "dontstarve/characters/<character>/hurt", "<file>/<folder>/hurt" )RemapSoundEvent( "dontstarve/characters/<character>/talk_LP", "<file>/<folder>/talk_LP" )
inst.soundname = "wilson"
inst.soundname = "<character>"

 

I wrote a new verison of this tutorial which should be super easy to follow. So here we go:

 

What wee need this time:

What we need:

- PC version of Don't Starve and Don't Starve Mod Tools
- Some sounds to mess around with. If you don't have any yourself use these
-The FMOD-Designer project template from here
 
 
Step 1: Put all your files into your characters sound folder (i.e. "mods/waverly/sound/") If that doesn't exist simply create it.
Step 2: Whenever you come across "waverly" replace it by your characters name. (That also means rename the file!) (The old tutorial was written with a template that contained "waverly" instead, so don't be confused by the screenshots)
Step 3: Open the *.fdp-file, left-click on "talk_LP" on the left side of your screen. Right-click in the gray area. Select all sound files you wish to use for the speech (that is when the character examines something) and click open.

post-245716-0-14676300-1379604232_thumb.
(File-name seems to be "sound_mod_tutorial", this is the project name in the upper right. If you want to get rid of that that simply "Save As" and create a new file with the appropriate name)
post-245716-0-37000800-1379604239_thumb.

Step 4: Repeat Step 3 for "hurt" and "death_voice"
Hint: You find instances of "waverly" in the following two places:

post-245716-0-73180200-1379604245_thumb.
post-245716-0-35873600-1379604251_thumb.

Step 5: Press CTRL+B, check if the box next to your characters name is checked and hit "Build"
Step 6: Open your "modmain.lua" and add the lines:
Assets = {	Asset("SOUNDPACKAGE", "sound/waverly.fev"),	Asset("SOUND", "sound/waverly.fsb"),}RemapSoundEvent( "dontstarve/characters/waverly/death_voice", "waverly/characters/waverly/death_voice" )RemapSoundEvent( "dontstarve/characters/waverly/hurt", "waverly/characters/waverly/hurt" )RemapSoundEvent( "dontstarve/characters/waverly/talk_LP", "waverly/characters/waverly/talk_LP" )

Hint: Don't forget to replace "waverly"

Step 7: Open your characters *.lua-code and replace the line:

inst.soundsname = "wilson"

by:

inst.soundsname = "waverly"

Please don't tell me you need the hint this time...

Step 8: Go back and check if you really replaced al instances of "waverly". In the first case rebuild your soundfiles.

 

That's it... Oh and don't forget to replace all instances of "waverly" by your characters name  ; )

 

Link to comment
Share on other sites

  • Developer

So this is a very short tutorial based on this tutorial from Cheerio but a bit more specific if anyone wants that. Also don't forget to check out the rest of character creation here

 

What we need:

- PC version of Don't Starve and Don't Starve Mod Tools
- Some sounds to mess around with. I quickly went to freesfx.co.uk (because it was the first google hit, I don't mean to promote them, I haven't made any experience there, but at least I didn't find any viruses) and downloaded something. For best results of course use your own sound- and/or music-files
 
 
So we're ready to go...
 
Open up FMOD Designer through the Don't Starve Mod Tools and create a new project by pressing Ctrl+N, remember to save an previously opened project, since FMOD remebers your last session. Create the project within your characters sound folder which you might have to create first. Name it however you want, but for simplicities sake you should keep it the same as your characters name. I'll stick with "wod", we'll call  it the placeholder <file>
 
So far that should have been easy. And actually... it's not getting much harder  ; )

 

On the left side of the screen you'll see "untitled", shich looks like a fodler. LMB(LeftMouseButton) it and rename it to something more fitting. In my case I called it "wod" which is kinda stupid, in other cases I usually called it "sound". Let's just call it <folder> for the rest of the tutorial.

attachicon.gif2.jpg

 

RMB <folder> and choose "Add Simple Event" and call it "hurt". No placeholder this time, best we use this nomenclature for all our characters. Add two other simple events called "death_voice" adn "talk_LP". In the meantime you'll see something called "event00". We don't want that RMB it and choose "Delete"

attachicon.gif3.jpg

 

Let's go back to "hurt". RMB in the gray area in the middle of the screen and choose "Add Sound" and search the sound you wish your character to make when she/he gets hit. Repeat for "death_voice" and we're done with the two.

attachicon.gif4.jpg

 

Let's move on to talk_LP. Have you ever noticed that examining an object in game yields different sounds? I hope you have, cause all of them are pretty neat. We do the same for our character and when adding sound simply select all the sounds we want to hear later. This will then add all of the sounds and assign them a probability equal to 100(amount of files). Wait what? You can add probability to your sounds?

I was baffled when I noticed that, but you can. So just assign a probability of 0.01% to your easter-egg  ; )

attachicon.gif6.jpg

 

Right now these percentages are kind of moot. Scroll down on the right side and tick the box "Allow sounds to be repeated". You might not want that, but I really prefer it.

attachicon.gif7.jpg

 

Now for pure asthetics go to the banks tab on the top and rename your bank to <filename> as well.

attachicon.gif8.jpg

 

Press CTRL+B, tick the box beside your bank and hit build. Close FMOD Designer, we're done here.

 

 

Now back to lua. In your modmain.lua add the assets which were created by FMOD Designer:

Assets = {	Asset("SOUNDPACKAGE", "sound/<file>.fev"),	Asset("SOUND", "sound/´<file>.fsb"),}

and remap the sounds which will be used.

RemapSoundEvent( "dontstarve/characters/<character>/death_voice", "<file>/<folder>/death_voice" )RemapSoundEvent( "dontstarve/characters/<character>/hurt", "<file>/<folder>/hurt" )RemapSoundEvent( "dontstarve/characters/<character>/talk_LP", "<file>/<folder>/talk_LP" )

Finally pretend that your sound files were there all along and open your characters lua-file and change the line:

inst.soundname = "wilson"

to:

inst.soundname = "<character>"

I hope this has helped someone at least and we'll see some characters in the future with their own sounds. If I'm not mistaken there's only the minimapicon which is left to be customisable, or am I mistaken?

 

Anyways, have fun  ^^

That's an awesome tutorial :-).  Our sound guy read your tutorial and put this FMOD project together for you.  It's similar to what you create in your tutorial but it has a bunch of settings setup for the voice events so that they will sound closer to what you hear in game.  Thought you might be interested in taking a look.

Link to comment
Share on other sites

That's an awesome tutorial :-).  Our sound guy read your tutorial and put this FMOD project together for you.  It's similar to what you create in your tutorial but it has a bunch of settings setup for the voice events so that they will sound closer to what you hear in game.  Thought you might be interested in taking a look.

Thanks a lot ^^  Of course I'm interested in taking a look at that, who wouldn't want the sounds to resemble the game sounds better  ; )

Now I might just be a big dummy, but where can I get that FMOD project and how is your "sound guy" called if I may ask?

EDIT: Or is it the one in your tutorial with the updated folder structure?

EDIT2; Yes I think it's that one, since it contains a big bunch of options that are different. But I'll wait with updating the tutorial until I know for sure.

Link to comment
Share on other sites

Gah I can't get this to work, I've managed to get it not to crash but it's always silence, it took me half an hour of random guessing from your "<file>/<folder>/talk_LP" comment as I'm new to it and there's no finished example but figured it out... Still all I get is silence.

I've got this under assets in modmain,

	Asset("SOUNDPACKAGE", "sound/weavsounds.fev"),	Asset("SOUND", "sound/weavsounds.fsb"),

This just under it (outside of assets)

RemapSoundEvent( "dontstarve/characters/wilson", "weavsounds/characters/weavile" )RemapSoundEvent( "dontstarve/characters/wilson/death_voice", "weavsounds/characters/weavile/death_voice" )RemapSoundEvent( "dontstarve/characters/wilson/hurt", "weavsounds/characters/weavile/hurt" )RemapSoundEvent( "dontstarve/characters/wilson/talk_LP", "weavsounds/characters/weavile/talk_LP" )

And

	inst.soundsname = "weavsounds"

in the prefab file, I've tried different character names like "weav", "weavsound" etc as you don't explain what specific type of character name it uses, but I'm really stumped.

 I really didn't want to bother anyone with this but I've tired for like 3 hours and I'm totally stumped, it's probably something stupid but I can't seem to figure it out, thanks in advance =O

Link to comment
Share on other sites

No worries, this thread is made for you to ask those questions ; )

I apologize for the poor choice of words, as soon as I hear word from Cheerio I'll rewrite a big chunk of the tutorial.
Let me clear it up:
<Character> is the name of your character, in your case that something like weavil if I'm not mistaken.
<file> is the name of the fsb-file
<folder> is the name of the folder inside FMOD on the left side which I can't know without seeing the project file

When I'm on my PC I hope I can post a corrected version of your code.

Link to comment
Share on other sites

Thanks for speedy reply :3

Yeah inside the fev/fsb file it's characters/weavile/ then the hurt, talk_LP and death_voice, I've been testing the talk_LP with .wav and ,mp3 files to see if that was the problem but it's still silent... I feel I've done everything right but it doesn't work... if there's any additional info you need just lemme know.

Oh oh, if this actually works it'd be awesome for another character I'm planning, do you think it's possible to replace the music for danger/working etc? It sounds like it should work the same as replacing sounds but I'm unsure as of yet as I should get SFX working first :V

Link to comment
Share on other sites

RemapSoundEvent( "dontstarve/characters/wilson", "weavsounds/characters/weavile" )RemapSoundEvent( "dontstarve/characters/wilson/death_voice", "weavsounds/characters/weavile/death_voice" )RemapSoundEvent( "dontstarve/characters/wilson/hurt", "weavsounds/characters/weavile/hurt" )RemapSoundEvent( "dontstarve/characters/wilson/talk_LP", "weavsounds/characters/weavile/talk_LP" )
	inst.soundsname = "weavsounds"

Corrected versions would be:

--First line is not needed since that's a "sound" that's never played, it's actually just the folder--RemapSoundEvent( "dontstarve/characters/weavil", "weavsounds/characters/weavile" )RemapSoundEvent( "dontstarve/characters/weavil/death_voice", "weavsounds/characters/weavile/death_voice" )RemapSoundEvent( "dontstarve/characters/weavil/hurt", "weavsounds/characters/weavile/hurt" )RemapSoundEvent( "dontstarve/characters/weavil/talk_LP", "weavsounds/characters/weavile/talk_LP" )
inst.soundsname = "weavil"

It's important that you remap the sounds of the character which you will be using. So <character> is actually your characters name. What you did was remap the sounds of wilson which is obviously not what you want. The same goes for the inst.soundname part. I thought my formulation in the tutorial made it clear at least that those two have to be the same, but alas it seems not so....

 

For remapping any existing sound and/or music I'll have to redirect you to the tutorial I have linked in the first post.

Link to comment
Share on other sites

Thanks but I tried what you said, no difference and I'm more confused, I thought the point was to load up a existed character voice (AKA Wilson) then remap his speech to the custom speech in the mod folder, what your new code there does is remap itself to itself... I don't understand how that works... Everything but sound works, also have another character I'm working on where the custom item/weapon just makes the game exit but that's for a different thread. I'm just totally lost here...

Link to comment
Share on other sites

Thanks but I tried what you said, no difference and I'm more confused, I thought the point was to load up a existed character voice (AKA Wilson) then remap his speech to the custom speech in the mod folder, what your new code there does is remap itself to itself... I don't understand how that works... Everything but sound works, also have another character I'm working on where the custom item/weapon just makes the game exit but that's for a different thread. I'm just totally lost here...

The point is that SGwilson.lua has lines like the following:

local sound_name = inst.soundsname or inst.prefabif inst.prefab ~= "wes" then	inst.SoundEmitter:PlaySound("dontstarve/characters/"..sound_name.."/death_voice")    end

When your character dies it will try to play "dontstarve/characters/weavil/death_voice" which is non-existent. That's why we could never add custom sounds before. That's why we need:

RemapSoundEvent( "dontstarve/characters/weavil/death_voice", "weavsounds/characters/weavile/death_voice" )

What it does is simply redirect the game to another sound whenever it tries to play "dontstarve/characters/weavil/death_voice". Thus it doesn't exactly remap itself to itself because "dontstarve/characters/weavil/death_voice" was not there before. You replaced that nonexisting event with the new event so it can now be actually played. Granted of course that "weavsounds/characters/weavile/death_voice" actually exists, otherwise we would just be in the same polace as before. And I guess that's the problem for your code. If you mind uploading your mod I could take a sharp look at it but right now I can only guess and we all know how ineffective that is  ; )

Link to comment
Share on other sites

Just a tip: when I give you corrected code you shouldn't just copy and paste it and hope that it works. Next time read through it and delete what you don't need and correct my errors. But don't add new errors yourself after that. I wrote:

inst.soundsname = "weavil"

You wrote:

inst.soundsname = "weavile"

I have no possibility to test that now. I hope it works and if it doesn't then I guess it's your FMOD-project (which you could alos upload in that case)

Link to comment
Share on other sites

It's not like I didn't read it, I left it there for emphasis for me when I see it and to mark where the code is in the file, it's blocked out so it's not like that mattered that much,

 I wrote "Weavile" because that's the characters name and how it's spelt throughout the coding when not referred to as 'weav' (Weavile the Pokemon) and is the name refered to in the Fmod project (which your fixed code spelt as 'Weavil').

 So actually the error was in your code fix spelt as Weavil, however I changed it to it's correct spelling (for the character anyway) and there is still no sound...

https://dl.dropboxusercontent.com/u/5285727/weav%20fdp.zip

All sounds currently are retarded random placeholders, I don't know what I'm doing wrong, I tried to keep as close to the tutorials as possible.

Link to comment
Share on other sites

It's not like I didn't read it, I left it there for emphasis for me when I see it and to mark where the code is in the file, it's blocked out so it's not like that mattered that much,

 I wrote "Weavile" because that's the characters name and how it's spelt throughout the coding when not referred to as 'weav' (Weavile the Pokemon) and is the name refered to in the Fmod project (which your fixed code spelt as 'Weavil').

 So actually the error was in your code fix spelt as Weavil, however I changed it to it's correct spelling (for the character anyway) and there is still no sound...

https://dl.dropboxusercontent.com/u/5285727/weav%20fdp.zip

All sounds currently are retarded random placeholders, I don't know what I'm doing wrong, I tried to keep as close to the tutorials as possible.

Next thing is I'm quite sure you cannot rename you are not allowed to rename your fsb-file or fev-file. On building the fev one should've been called weav.fev since that's the name your fdp-file is called. Try that and reajust your code accordingly when it doesn't work I have no clue for now. Maybe you could also post your log where it says it doesn't find a file, you can also see that ingame by pressing CTRL-L.

Link to comment
Share on other sites

This is strange, still not working, did rebuild the fev/fsb and didn't rename and changed reference in modmain

EDIT: useless FMOD info as I misread the last post.

Thanks for trying either way... I can always use a default voice for Weavile if this brings nothing up, though my next one (with the currently unplayable, faulty weapon) would def. benefit from a voice change.

Link to comment
Share on other sites

This is strange, still not working, did rebuild the fev/fsb and didn't rename and changed reference in modmain

Okay, what KI meant was the log.txt when you try to make your char talk. If I see something like "blabla" couldn't be found then I know at least a bit more-.

Link to comment
Share on other sites

  • Developer

@Malacath I believe the sound guys is..... Jason Garner? I'll check the credits

Hey guys/gals/humans,

I'm the audio department here at Klei. Jason Garner is one of the awesome composers that does all the music for our games. Music is him along with Vince De Vera neither of whom frequents the forums.

I do try to pop in when I can to check on audio related questions. It's really cool to see the mod community taking on sound changes.

 

Matthew

Link to comment
Share on other sites

Hey guys/gals/humans,

I'm the audio department here at Klei. Jason Garner is one of the awesome composers that does all the music for our games. Music is him along with Vince De Vera neither of whom frequents the forums.

I do try to pop in when I can to check on audio related questions. It's really cool to see the mod community taking on sound changes.

 

Matthew

Hej Matthew, good to hear from you ^^  Thanks for making the file Cheerio mentioned earlier! I've always wanted to mod the sounds, and don't get me wrong it's not because your work isn't good ^^ I just always want to mod everything possible. You're all doing a great work from what I can see (or hear in that case)

 

"Orphaned unnamed resource. This resource must have used Add( resource ) to insert itself into the manager."

Is what I get in the Documents/Klei/Dontstarve/log.txt when I check... Maybe the other examples and guides were old and didn't cover this statement?

That error message doesn't have anything to do with your problem I guess. And if I do everything I told you with your mod it works. So I can't do more for you here.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...