Removing Hard Coded Audio
by
AkyV
When you're using an object in the game, sometimes you will hear an
unwanted (hardcoded) audio file.
Let's
see some examples when you encounter that problem:
a,
Lara gets into the jeep. The background audio stops on channel1
automatically, and ID 098 audio starts there (in loop mode).
b,
Lara gets off the jeep. 098.wav stops on channel1 automatically, and ID
110 audio starts there (in loop mode).
c,
Lara gets into the motorboat or the rubberboat. ID 012 audio starts on
channel2 (in single mode), automatically.
For
instance, let's take the case of the jeep:
I'll
show you now how to prevent the problem, using scripting.
Using
this 'scripting solution', you won't sense any change, actually, when
Lara gets in and then gets off, i.e. the audio will remain the same on
channel1. (See Note#1 below to understand what 'actually' means.)
All
you have to do is place some entries in your Script:
GlobalTrigger=
1, IGNORE, GT_LARA_HOLDS_ITEM, HOLD_JEEP, IGNORE, 1, 1
TriggerGroup=
1, $2000, 68, $16B
; Set Trigger Type -
FLIPEFFECT 68
;
Exporting: TRIGGER(363:0) for FLIPEFFECT(68)
; <#> : Sound. (CD) Play <&>CD track in (E) way
on channel1
; <&> :
AUDIO\107
; (E) :
Looped playback
;
Values to add in script command: $2000, 68, $16B
So:
Let's
say the level has 107.wav on channel1 in loop mode as a background audio
when Lara gets into the jeep. 098.wav would start at once but the
condition in GlobalTrigger#1 is true, because the item that Lara's just
'holding' is the jeep. That's why TriggerGroup#1 starts, starting again
107.wav, not letting 098.wav start.
See
the third 1 in GlobalTrigger#1: if Lara doesn't 'hold' the jeep, the
situation also starts 107.wav. � It means if Lara has just got off the
jeep then 110.wav won't start, but 107.wav will.
Notes:
1.
In fact, the GlobalTrigger can't prevent 098.wav or 110.wav from
starting, but stops them at once:
-
When Lara's just got into the jeep, 098.wav starts but stops at once,
because of GlobalTrigger#1. And, if the GlobalTrigger starts 107.wav
now, it starts it from its beginning, so it won't start it from the
point where the start of 098.wav interrupted that.
-
When Lara's just got off the jeep, 110.wav starts but stops at once,
because of GlobalTrigger#1. And, if the GlobalTrigger starts 107.wav
now, it starts it from its beginning, so it won't start it from the
point where the start of 110.wav interrupted that.
2.
Whether you use your own audio files in ID 098/110 audio slots or the
original ones, it's advisable to use the files in those slots that start
with low volume.
I
say that because when 098 and 110.wav is playing for a very-very short
moment (see just above), then it seems obvious for the player that the
setup is not perfect, if the WAVs are loud. I.e. you'll hear the loud
098 and 110.wav for a short moment. But if they have low volume at their
starts, then I'm sure you won't notice they have been started for a
moment.
3.
'If Lara doesn't hold the jeep' is also true when Lara's just doing
anything in the level that has nothing to do with the jeep. But, because
the background audio is just 107.wav, and the game doesn't want to start
110.wav automatically in those cases, then GlobalTrigger#1 has not any
task.
But
you have problems with that, if you want to use more than one background
audio on channel1 in the level. Because, if you want to change your
background audio, for example, into 111.wav, then GlobalTrigger#1 won't
let you do that, starting 107.wav again and again, because 'Lara's just
not holding the jeep'.
To
prevent that, you have to make the setup more complicated a bit:
GlobalTrigger=
1, IGNORE, GT_LARA_HOLDS_ITEM, HOLD_JEEP, IGNORE, 1, 1
GlobalTrigger=
2, FGT_DISABLED, GT_LARA_HOLDS_ITEM, HOLD_JEEP, IGNORE, 2, 2
TriggerGroup=
1, $2000, 68, $16B
TriggerGroup=
2, $2000, 68, $16F
; Set Trigger Type -
FLIPEFFECT 68
;
Exporting: TRIGGER(367:0) for FLIPEFFECT(68)
; <#> : Sound. (CD) Play <&>CD track in (E) way
on channel1
; <&> :
AUDIO\111
; (E) :
Looped playback
;
Values to add in script command: $2000, 68, $16F
So:
When
the level starts, GlobalTrigger#2 is disabled (see: FGT_DISABLED flag),
that's why the game won't try to start 111.wav.
Lara
gets into the jeep to get from the left part of the room to the right
part of the room.
She
drives over 'A' FLIPEFFECTs. Nothing will happen, because
GlobalTrigger#2 is just disabled, GlobalTrigger#1 is just enabled and ID
107 audio is just playing.
Then
Lara drives over 'B' FLIPEFFECTs. ID 111 audio will start instead of ID
107. And GlobalTrigger#1 won't prevent that, because one of the
FLIPEFFECTs disables that GlobalTrigger.
When
Lara gets off the jeep in the right part of the room then not 107 or
110.wav but 111.wav will play, thanks to GlobalTrigger#2 that has been
activated by one of the 'B' FLIPEFFECTs.
And
when Lara gets back into the jeep there, then not 107 or 098.wav but
111.wav will play, thanks again to GlobalTrigger#2.
After
that, you can figure out easily what will happen if Lara drives back
from the right part of the room to the left part.
4.
Modify the setup if that's not exactly what you want. For example, if
you want to start a single audio on channel2 when Lara gets into the
jeep.
Here's
an example:
GlobalTrigger=
1, IGNORE, GT_LARA_HOLDS_ITEM, HOLD_JEEP, IGNORE, 1, 2
TriggerGroup=
1, $2000+TGROUP_SINGLE_SHOT, 68, $16B, $2000, 129, $2
TriggerGroup=
2, $2000, 68, $16B, $2000, 345, $1
; Set
Trigger Type - FLIPEFFECT 129
;
Exporting: TRIGGER(2:0) for FLIPEFFECT(129)
; <#> : Sound. (CD) Play <&>CD track in (E) way
on channel2
; <&> :
AUDIO\002
; (E) :
Single playback
;
Values to add in script command: $2000, 129, $2
; Set Trigger Type - FLIPEFFECT 345
; Exporting: TRIGGER(1:0) for FLIPEFFECT(345)
; <#> : TriggerGroup. Enable newly the one-shot
<&>TriggerGroup already performed
;
<&> : TriggerGroup= 1
;
(E) :
; Values to add in script command: $2000, 345,
$1
So
I want to start 107.wav in loop mode and 002.wav in single mode when
Lara gets into the jeep (TriggerGroup#1) and I want to start only
107.wav in loop mode when she gets off (TriggerGroup#2).
TGROUP_SINGLE_SHOT
is necessary or else 002.wav wants to get started in every moment when
Lara is in the jeep.
$2000,
345, $1 trigger cancels the effect of that TGROUP_SINGLE_SHOT flag, so
when Lara gets into the jeep next time, TriggerGroup#1 will be activated
again.
5.
After reading what I wrote above I think it's not complicated to find
out the setup in the cases of the boats and other things.
6.
This setup might contain some possible bugs. So, if the setup won't
work, then try this:
-
Type IGNORE instead of FGT_DISABLED flag, and place a
GlobalTrigger#2-disabling FLIPEFFECT trigger on the square of LARA
object. (It's a bug of that flag.)
-
Don't let 'A' FLIPEFFECT triggers be adjacent directly with 'B'
FLIPEFFECT triggers. I mean, leave at least one square space between
them. (It's a bug of the missing space.)
(When
I say 'possible bugs' I mean those bugs are confirmed at some other
cases of NGLE, but they are NOT confirmed now.
However,
I can't pronounce undoubtedly you won't encounter those bugs now.)
Made
using TRNG 1.2.2.6