Jump to content

Modding/creating custom ambience sounds


GRiN_desmond22

Recommended Posts

The Twelve Step Program to editing an existing soundbank/wavebank :santa:

In this example, I'm gonna edit the radio that can be heard in some maps, e.g. mission 2 in the SP campaign, or the Shanty Town MP map, and make it play your favourite music.

1. Creating the folder

In your graw folder, go into local, and create a folder named "english". You will need to copy all the files we're messing with in this folder into the other "language" folders if you want the mod to work in these languages as well. Then, create all the entire folder-and-sub-folder tree that branches out to the soundbank/wavebank you want to edit (corresponging to the folder tree in the "data" folder). In this example we want to edit the radio_sound.xml and radio_wave.xml, which are located in data/sound/environment/radio, so we create local/english/sound/environment/radio.

2. Install Nemon's decompiler

Install Nemons decompiler (http://www.ghostrecon.net/files/pafiledb.php?action=file&id=323). You'll need Microsoft .Net to make it work - that download is also linked from the site. Just put Nemon's decompiler exe-file in your graw/Bundles folder - it's not dependent on lying in a certain folder or anything, so just put it where you think it's best suited. I'd prefer the graw/Bundles folder.

3. Check out the bundle file

Start Nemon's decomiler (BundleReader.exe) and click "Open Bundle" in the lower left corner. Go into graw/Bundle folder (if you're not already there) and open the .bundle file containing the soundbank/wavebank you wish to edit. Some soundbanks/wavebanks were not in the retail version and have been added in patches, then that data is available only in the patch.bundle file. Other data was in the retail version of the game and have not been altered by any patch - then that data is only in the quick.bundle file. The data that was in the retail version and has been altered by patching are in both the quick.bundle and patch.bundle file - but needless to say it is the data in the patch.bundle that is used when the game runs. The best way to know whether a soundbank/wavebank has been patched or not is to just open the patch.bundle file, check the data/sound folder and its subfolders, and take notes of everything that is there - if the thing you are about to mod is there, you should mod those files and not the ones in the quick.bundle file.

4. Check out the right *_wave.xml in the bundle file

So now we have the quick.bundle opened (the radio_sound.xml and radio_wave.xml have not been edited in any patch, so in our example the data is only available in the quick.bundle file). In the left hand window, click your way down the folder tree into data/sound/environment, and click the "radio" folder to see a list of the files in that folder, shown in the same window as the folder tree. Clicking on any of those files (we are interested in the .xml files, not the .xml.bin files) will show the content of that file in the right hand window. Do so with the radio_wave.xml (click it, that is).

5. Create your own copy of the *_wave.xml to mod

So there, in the right hand window, you have the xml file that ties in the sound that are supposed to be played by the radio. You'll see a list of .wav files beginning with "illnino_", those are of course the Ill Nino songs played on the radio in the unmodded game. Mark all this data ("<?xml version..." etc. all the way to "</waveank>") with your mouse cursor and copy the text into your favourite text editor (which of course is UltraEdit). Save the file right away in the local/english/sound/environment/radio/ folder you created at stage 1 of this guide. It should, of course, be named "radio_wave.xml".

6. Collect the sounds you want to use

Take your favourite CD (or a bunch of songs in mp3 format that you like, however, remember that illegal downloading is theft), rip/convert it to your computer in .wav format (not .mp3 masked as .wav or anything weird, just plain ol' .wav format). To cut the hard disc streaming some slack, you can convert the files to 22 kHz format. In this example I'm ripping Pearl Jam's "Ten". Put the songs in your local/english/sound/environment/radio folder (where your copy of the original bundled radio_wave.xml already is). Name the files in a simple way (no weird non-english characters, also replace spaces with underscore ("_"). My list of .wav files now looks like this:

pearljam_once.wav

pearljam_even_flow.wav

pearljam_alive.wav

pearljam_why_go.wav

pearljam_black.wav

pearljam_jeremy.wav

pearljam_oceans.wav

pearljam_porch.wav

pearljam_garden.wav

pearljam_deep.wav

pearljam_release.wav

9. Add your songs to the *_wave.xml file

Go back to the text editor with the radio_wave.xml file. If you are adding more songs than are originally in the radio's playlist (five), you'll have to duplicate the existing lines to get all your songs in there. Note that they should all have a unique "name" tag. I suggest you do as I've done and just call the songs "song01", "song02"... etc. I have eleven Pearl Jam songs I want to be played by the radio, so I add six lines to the existing five, and call the additional songs "song06" through "song11".

10. Clean up the *_wave.xml file

Get rid of all the "quality", "size_before", "size", "compression", "offset" and "bank" tags in all of the xml file - that data will only mess your mod up. After I've done so, my example radio_wave.xml file looks like this:

<?xml version="1.0" encoding="iso-8859-1"?>

<wavebank name="radio_wave" dir="data/sound/environment/radio" xmlns:xi="x">

	<wave name="song01" file="pearljam_once.wav" stream="true" />

	<wave name="song02" file="pearljam_even_flow.wav" stream="true" />

	<wave name="song03" file="pearljam_alive.wav" stream="true" stream="true" />

	<wave name="song04" file="pearljam_why_go.wav" stream="true" stream="true" />

	<wave name="song05" file="pearljam_black.wav" stream="true" stream="true" />

	<wave name="song06" file="pearljam_jeremy.wav" stream="true" stream="true" />

	<wave name="song07" file="pearljam_ocans.wav" stream="true" stream="true" />

	<wave name="song08" file="pearljam_porch.wav" stream="true" stream="true" />

	<wave name="song09" file="pearljam_garden.wav" stream="true" stream="true" />

	<wave name="song10" file="pearljam_deep.wav" stream="true" stream="true" />

	<wave name="song11" file="pearljam_release.wav" stream="true" stream="true" />

</wavebank>
...a neat and tidy little playlist, ain't it? Note that I leave the stream="true" tag in there, as the song files are large, and we don't want them in the RAM. If you're editing some other file, like frogs_wave.xml (to edit the frog sounds) you should get rid of the stream="true" tag as you want to keep the amounts of streams to a minimum, and frog sounds are small enough to fit in the RAM. 11. Create your own copy of the *_sound.xml to mod Now, go to Nemon's decompiler again, and click on the "radio_sound.xml" file in the left hand window. The contents of that file will now be shown in the right hand window. This is the file that decides how the .wav files listed in the *_wave.xml document are treated when they are called for by the script - this includes gain (audio volume), pitch or pitch randomization attributes, etc. etc. Copy this data into your text editor and save it as "radio_sound.xml" in the same folder as your radio_wave.xml files and .wav files. 12. Edit your newly created copy of the radio_sound.xml file, and add/remove the correct amount of files. In this file, the songs are only referred to as "song01", "song02", etc. - which of course are the names they were given in the radio_wave.xml file. You understand now why it is easier to let go of the actual song titles in that step. This next part is hard (and lengthy) to describe, but I hope you have some basic programming experience (html at the least, to get some "eye for code") and I'll give it a shot: Look at the bottom of the radio_sound.xml file. There is a tag named <sound name="radio"... Whenever the script calls for the "radio" cue (that is, if you place a sound source in a map, tells it to play the "radio" cue and then start that map), this sound is called for, and the cue then randomizes between either of the cues "radio_a" or "radio_b". The weight tag is to makes sure that in four times out of five, the randomizer chooses the "radio_a" cue - you can use weight tags to make sure there is a larger chance for one or more options to be chosen over the others. The "radio_a" and "radio_b" cues (above the "radio" cue in the xml file) then contain song01 through song04, and song05 respectively. This means that every time a sound source calls for the "radio" cue (every time you start a map with a sound source calling for the "radio" cue (this is only done once as the "radio" cue then loops and is never retriggered)) that sound source becomes either a "radio_a" or "radio_b" cue, and then loops that "playlist" for all eternity. I, however, want a simple radio that doesn't randomize between different playlists, so I slim the code down and reduce the number of cues so that every time the radio is called for, it always plays the Pearl Jam songs in the album order, and then starts over. After editing, my radio_sound.xml file looks like this:
<?xml version="1.0" encoding="iso-8859-1"?>

<soundbank name="radio_sound" default_wavebank="radio_wave" xmlns:xi="x">

	<sound name="song01" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song01"/>

	</sound>

	<sound name="song02" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song02"/>

	</sound>

	<sound name="song03" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song03"/>

	</sound>

	<sound name="song04" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song04"/>

	</sound>

	<sound name="song05" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song05"/>

	</sound>

	<sound name="song06" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song05"/>

	</sound>

	<sound name="song07" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song05"/>

	</sound>

	<sound name="song08" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song05"/>

	</sound>

	<sound name="song09" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song05"/>

	</sound>

	<sound name="song10" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song05"/>

	</sound>

	<sound name="song11" group="ambient_loop" has_custom_distances="true" zero_distance="60" gain="-12" occlusion="false">

		<wave name="song05"/>

	</sound>

	<sound name="radio" group="ambient_loop" has_custom_distances="true" zero_distance="60" loop="true" occlusion="false">

		<queue>

			<sound name="song01"/>

			<sound name="song02"/>

			<sound name="song03"/>

			<sound name="song04"/>

			<sound name="song05"/>

			<sound name="song06"/>

			<sound name="song07"/>

			<sound name="song08"/>

			<sound name="song09"/>

			<sound name="song10"/>

			<sound name="song11"/>

		</queue>

	</sound>

</soundbank>
If you study the original radio_sound.xml file, or better yet the birds_sound.xml file, you will get a good idea of the possibilities with the *_sound.xml system. The birds_sound.xml is a great example of how sounds can be made more "alive" and not as repetitive, by chopping up the .wav files into short, short pieces and have the xml code piece it together in a random manner each time it is triggered, to make each bird call sound different from the other (or, rather, be a new combination of the same set of chopped up sounds). This is all possible with the help of "random pitch" attributes, sounds that randomize to All set and donw - now run the game and start a one player LAN server hosting the Shanty Town map, where there should be a radio in the Echo zone. Head there and listen to your playlist being heard from the radio. The muffle and echo effect added to the original sounds, to make it sound like the radio really is heard from inside a building, you have to add yourself with the help of a sound editing program, such as Sony Sound Forge. Here is a list of some of the different attributes you can give a sound tag. To learn about more attibutes, browse the sound folders with Nemon's decompiler and just chek out what attributes are used in some of the *_sound.xml files. If you have questions, ask me here in the forum. Pitch Use:
pitch="0"
Sets the pitch of the sample, 1 unit = The step between a white key and the next black key on a piano. "12" is one octave up, "-12" is one octave down. Pitch can be set from -60 to 60. Pitch the original .wav file rather than using this attribute. Random Pitch Use:
random_pitch="1"
Applies a random pitch value on top of the general pitch value. This means that if the general pitch value is set to "-10", and the random pitch is set to "2", the pitch will randomize between -12 and -8. I usually set general pitch to "0", and random pitch to no higher than 1, maybe 2. Gain Use:
gain="0"
Gain 0 is the loudest a sound should be played - if you push it above that (e.g. gain="10" you risk creating distortion - it's better to maximize the gain in the sound's .wav file. Group Use:
group="music"
Defines what group the sound belongs to, and inherits certain attributes from. Groups are edited in the data/sound/sound_settings.xml file. Zero Distance Use:
zero_distance="30"
Defines the distance (in meters) at which the rolloff of the sample reaches inaudible value. In other word, it defines how far from the sound source the sound can be heard. Exlplosions should have a very high Zero Distance value, the buzz of a lamp should have a very low Zero Distance value. Loop Use:
loop="true"
Self describing. Default is no loop, so if you omitt the tag, the sound will not loop. I extend this list as you come with questions about other attributes. Alright, let's immediately go on to the next tutorial! The Seven Step Prograom to create an entirely new soundbank/wavebank setup Now, if you want to have custom music for your own map, you can add that with the procedure described above, together with some additional attribute tweaking. In that case, you preferably don't want to mod the original radio sound/wavebanks, but rather add an entirely new soundbank and wavebank to the game - or you will have two layers of music playing simultaneously (both the original GRAW music, and your own custom music) in every SP map that has a radio. So, it's better to create your own, new soundbank and wavebank, and connect that to sound sources that are only in your own custom map. In this example we will create a soundbank/wavebank setup that plays a song from "The Rock - Original Motion Picture Soundtrack" on your level. Here's how: 1. Use Nemon's decompiler to open any wavebank, copy that data to your favourite text editor (which of course is UltraEdit) and save that as custom_music01_wave.xml in the local/english/sound/music/custom_music01 folder that you simultaneously create (always use numbers in the name of file types that you suspect you will create more of, hence the "01" in the file name - you might want to have another custom song for another custom map in the future). 2. Rip your copy of "The Rock - Original Motion Picture Soundtrack" (remember, illegal downloading is theft) and save the first track as therock_track01.wav in your newly created local/english/sound/music/custom_music01 folder. If you can, convert it to 22 kHz so that the file isn't such a chore for the computer to stream (we don't want a several minutes long song in the RAM). 3. Edit the custom_music01_wave.xml file so that it contains only the tag that "brings" your .wav file "into it". The "name" attribute should be whatever you want to call your wave bank (preferably a describing name and/or on that is easy to remember), I choose "custom_music01_wave". Also, the "dir" attribute should be the non-existing data folder that corresponds to your existing local/english/sound/music/custom_music01 folder - see below how it should look. Note that you don't need to create a dummy folder in the data/sound/.. folder of your GRAW installation - the game will realize anyway that the sound data isn't there, and look for it in the local/english/sound/.. folder instead.
<?xml version="1.0" encoding="iso-8859-1"?>

<wavebank name="custom_music01_wave" dir="data/sound/music/custom_music01" xmlns:xi="x">

	<wave name="custom_song01" file="therock_track01.wav" stream="true" />

</wavebank>
4. Use Nemon's decompiler to browse through the sound folders and find a suitable soundbank - in my example I am only going to create a simple sound bank with only one cue playing only one music .wav file, so data/sound/music/menu_music/music_menu_sound.xml is a perfect .xml file to start from. Copy that data to your favourite text editor (which of course is UltraEdit) and save that as custom_music01_sound.xml in the local/english/sound/music/custom_music01/ folder where your custom_music01_wave.xml and therock_track01.wav file already lie. 5. Edit the newly created custom_music01_sound.xml file so that the default_wavebank attribute names your custom wave file (in my example "custom_music01_wave").
<?xml version="1.0" encoding="iso-8859-1"?>

<soundbank name="custom_music01_sound" default_wavebank="custom_music01_wave" xmlns:xi="x">

	<sound name="custom_music01" group="music" zero_distance="10.0" pitch="0" loop="true" positioning="2d" attenuation="none" occlusion="false" reference_distance="1.0">

		<wave name="custom_music01"/>

	</sound>

</soundbank>
Look at the attributes of the sound tag above. It would have been nice if you could set the group attribute to "music", which would make it earn all attributes of that music group - mainly the connection to the "music volume" slider in the game's setup menu, and high priority (which is very high for music). However, I just now realized that it is not only an MP map's lack of event manager script that stops it from playing music - for some reason one of our programmers have set any cue with the group="music" attribute to mute on MP maps. I suggest you give your custom music cues the attribute group="ambient_loop", in which case it will at least get a very high priority - however, no one will be able to turn the music off, which kinda sucks! I'll see if this can be patched. Furthermore, the zero_distance="10.0" attribute means nothing as attenuation is set to "none" - this means that the sound does not get weaker the farther the listener is from the sound source. Pitch is of course set to "0" as you want the music to be played in its original pitch. The attribute "loop" is set to "true" because I want the .wav file to start over every time it reaches the end. If you're skilled you can edit the .wav file and make the end of the file blend perfeclty with the beginning of the file, making the music loop seamlessly, without ever going silent. The "positioning" attribute is what makes this sound cue different from the sound cues of the radio cue we created in the first example: Now we're making a 2d cue, so that the music always is in the listeners ear, as opposed to being heard from a position in the world around him/her. Occlusion should be false so that EAX doesn't muffle the sound as soon as an occluder (static object or large dynamic object) comes between the listener and the sound source. You want that to happen if you're creating a yak sound cue to add atmosphere to your Himalayan MP map, but not for music - which is what I'm making in this example. As no one will be able to turn the music off, make sure it isn't too loud and too much "in your face" (or maybe here it would be "in your ear"). Use the "gain" attribute (use: gain="-10") to do so. "0" is maximum volume, and -100 is the lowest (although the sound's volume has become so low it's inaudible much earlier than that, I'd guess at about -40). 6. Go into the editor, load the map where you want your custom sound, place a sound source where you want it. Iin my example we're adding a cue that plays music that is supposed to be heard all over the level, and takes no occluders or falloff into account, so it doesn't matter at all where we place that sound source. In the "cue" text box, write the name of your custom cue. For me, that's "custom_music01" (the "name" attribute of the sound in my cursom_music01_sound.xml file, see stage 5 of this tutorial). 7. Ok, we're almost there but not quite yet: As we are adding a new soundbank and wavebank as opposed to just modding existing ones, we need to let the game know what we have added. This is done in the sound_settings.xml file in the data/sound/ folder. In the "wavebanks" tag, duplicate any element and edit it to match the custom *_wave.xml file you want to add, and do the same for your *_sound.xml in the "soundbanks" tag. For me, I would have to add this line of code in the "wavebanks" tag:
<wavebank path="data\sound\music\custom_music01\custom_music01_wave.xml"/>
...as well as add this line of code in the "soundbanks" tag:
<soundbank path="data\sound\music\custom_music01\custom_music01_sound.xml"/>

Now, run GRAW and start your custom level - and listen to the music.

Hope this helps.

PS. Please don't quote this post in your reply - this thread would become unbearable to scroll through!!

This tutorial was written in UltraEdit-32. :rofl:

Link to comment
Share on other sites

Hehe, you and [99]-Athenian are pretty much the only ones who have shown interest in this, but that doesn't matter cause here at GRIN we show our love to the minorities too. :group:

well I'm proud to be a minority if it means I'll be able to mod the game the way I like, and your dedication is much appreciated :grin1:

--------

EDIT: ok I've read it all, it's very clear :grin1: and I only have a couple of questions..which is the measure's unit of the zero_distance? can you confirm that we can use unbanked wav's without losing anything? I mean.. the .bank is not a compression but just a grouping function right ?

Edited by DiGiTALY -TC-
Link to comment
Share on other sites

TC your right Christmas came early this year. I think I got a warm liquid running down the side of my leg now I'm so happy :). Thanks Desmond, I don't care what the other GRIN guys say about you behind your back, your the man. :whistle:

Link to comment
Share on other sites

EDIT: ok I've read it all, it's very clear :grin1: and I only have a couple of questions..which is the measure's unit of the zero_distance? can you confirm that we can use unbanked wav's without losing anything? I mean.. the .bank is not a compression but just a grouping function right ?

zero_distance is in meters. Remember that the value is the distance from the sound source where the sound becomes so low that it's inaudible - this doesn't mean that you immediately hear the sound as soon as you step within this radius - if zero_distance="100", the sound is still aaalmost inaudible at 90 meters. It of course depends on the character of the sound - a deep humming sound with zero_distance="100" probably become inaudible (e.g. mix with the background noise until it's impossible to distinguish) much earlier than a sharp, grinding noise even if that sound also has zero_distance="100". You'll just have to start your map to try those values out in order to tweak them.

The .bank file is both grouping and compression. As you won't be able to create .bank files, your .wav files will have to lie "lose" in the soundbank folder (together with your soundbank and wave bank xml files). Also, you'll have to optimize the .wav files yourself - preferably by lowering the sample rate to a kHz value that is just high enough for the sound quality to be ok. This is to save RAM (if the sound is to be loaded into the RAM) or stream capacity (if the sound is to be streamed). The amount of quality you can reduce a sound to is of course different from sound to sound - sounds that only contain deep bass can have a very low sample rate, like 8kHz, while music (which has a lot of treble which you want to be crisp) should be at least 22 kHz. In other words, treble is the first thing you lose as you start lowering a sound's sample rate. When creating our .bank files we use ADPCM compression - I guess you can do that too to your "lose" .wav files, if you have the ability to save as ADPCM .wav in your sound editing program. However, I don't promise it'll work because there are like ten different ADPCM standards and our system only supports one of them.

Link to comment
Share on other sites

last question ( <---it's a lie :P )

<effect name="car_impact" test_plane_width="0" test_plane_height="0" test_nr_instances="1" test_spawn_offset="0" test_spawn_rate_hz="0" test_unit="" test_effect_surface="" >

<sound3d cue="car_impact" soundbank="car_sound" />

</effect>

this is an eg of a collision sound, could you explain me the meaning of each parameter? I'm particulary interested in the possibility to change the position of the sound related to the position of the triggering obj (is there a way to offset the sound in the x,y,z space?)

and (ok this is another question but I told you I was lying..) when you attach a sound to an object (the dummy in 3dsmax):

<ambient source="xxxx" cue="xxxx" bank="xxxx"/>

are these all the parameters you can deal with?

THX again :)

Link to comment
Share on other sites

The test parameters are only used for testing purposes in our particle/effect editor. As far as I know you can't offset the sound in any way.

The only parameters that are required for an effect is:

name - the name of the effect

cue - the name of the sound cue that is triggered with the effect

soundbank - the sound bank where the sound cue is specified

To trigger the effect ingame you have to use the collision_effect parameter, wich you put in the body tag of an object.

Here's and example from the fugit.xml:

<body name="chassi" collision_group="1" template="prop_car" ray="ignore" friction="0.4" ang_damping="1.0" lin_damping="1.0" collision_effect="car_impact" collision_effect_filter="180" collision_effect_quiet_time="0.05"

collision_effect - specifies the effect to play on collisions.

collision_effect_filter - specifies the collision speed required to generate a body_collision event .

collision_effect_quiet_time - specifies how long the body should wait before reporting another collision with the same other body. This is used to reduce the number of duplicate collisions when two objects intersect.

Concerning the ambient tag, yeah those are all the parameters you have to play with.

Hope that helps!

Link to comment
Share on other sites

thx bogvaldt :) (wille already explained the collision_fx in a previous post, but in a willey way :P now at least we have a professional explanation :grin1: )

what I'm trying to achieve is some workaround to trigger both sound and visual fx in a MP game mode but it seems that I'll have to entrust in the ability of some talented script modder ;)

PS: good job with you know what kenneth :grin1:

Link to comment
Share on other sites

sure!

I think the main problem is to use the action key to trigger events in a MP map (mainly to start an animation) eg: to open a door

but it would also be usefull to have the ability to run events (eg: a smoke fx in a certain spot after 1min from the start of the match, an explosion fx, a sound fx)

all these triggered both by a timer or by the action key (eg: a detonator) or by proximity of the player (eg: a landmine)

Link to comment
Share on other sites

sure!

I think the main problem is to use the action key to trigger events in a MP map (mainly to start an animation) eg: to open a door

but it would also be usefull to have the ability to run events (eg: a smoke fx in a certain spot after 1min from the start of the match, an explosion fx, a sound fx)

all these triggered both by a timer or by the action key (eg: a detonator) or by proximity of the player (eg: a landmine)

Ah yes, I see.. well sadly there's no easy way of doing this right now. As you said some scripting has to be done for this to work.

I don´t know how much access modders have to the scripts as of now, but you could look around in the vehicle scripts for the blackhawk or the stryker. They have functions for entering and exiting that utilizes the action key.

Link to comment
Share on other sites

thx bogvaldt :) (wille already explained the collision_fx in a previous post, but in a willey way :P now at least we have a professional explanation :grin1: )

what I'm trying to achieve is some workaround to trigger both sound and visual fx in a MP game mode but it seems that I'll have to entrust in the ability of some talented script modder ;)

PS: good job with you know what kenneth :grin1:

damn you!

Link to comment
Share on other sites

damn you!

hey man this was your crappy explanation:

hey, adding "collision sounds" to collision bodies is as desmond said, easy as tic tac toe, I dont have the game installed right now so I cant write a guide on it but ill do it as soon as I install the game here. in the mean time you can open up the pot_plant_small unit for example and look at how its bodies are set up, it has properties like "collision_filter" and "collision_effect" and "silent_time" or something similar, these are used to play effects when an object collides with something.

"collision_filter" or however it is called in the game sets a min_speed at wich an effect will be played

for example collision_filter="30" collission_effect="shards" silent_time="10"

(the names of the properties are more than probably quite off since I dont have it all in my head..)

sets up the collision body so that when it hits something else or something else hits it at a speed higher than 30

(30 what? who KNOWS!I dont ...hehe, youll have to play with this setting until you are satisfied)

it playes an effect called "shards" and that could be a sound effect or a particle effect, in your case the sound of branches crunching" and then "silent-time" sets how many seconds should pass before you allow the game to play that effect again so it doesnt just loop and act weird..)

hope this helps for now, but look in pot_plant_small or pot_plant_big for a more excact reference!!

just want to clarify that it plays an effect , so you have to create an effect with a sound in it..look in the effects folder for examples!:)

so bow to bogvaldt pro style :P

Link to comment
Share on other sites

Does this work for changing the main menu music? *sorry girn but the original GR music is better :P)

I don't think they mind, after all, Tom Salta composed the music, not GRIN :)

Tho I think the menu music rules :P

GJ Tom!

sooo.. can you help me out on actually doing this? im kinda new at this and could only follow up so far on it, then get confused. :P

Link to comment
Share on other sites

Does this work for changing the main menu music? *sorry girn but the original GR music is better :P)

I don't think they mind, after all, Tom Salta composed the music, not GRIN :)

Tho I think the menu music rules :P

GJ Tom!

sooo.. can you help me out on actually doing this? im kinda new at this and could only follow up so far on it, then get confused. :P

Sorry, but I'm an idiot :dunce:

The only modding I have done is changing the skins in GTA 3 through paint :P

Desmond"tutu" might help tho. :)

Edited by Hockeystick
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...