say3D: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|game([0-9]) ?= (.+) \|version([0-9]) ?= (.+) " to "|game$1= $2 |version$3= $4 ")
m (page formatting)
Line 2: Line 2:


|game1= arma2
|game1= arma2
|version1= 1.00
|version1= 1.00
|game2= arma2oa
|version2= 1.51
|game3= tkoh
|version3= 1.00
|game4= arma3
|version4= 0.50


|arg= global
|arg= global
Line 9: Line 22:


|gr1= Broken Commands
|gr1= Broken Commands
|gr2= Sounds
|gr2= Sounds


|descr= Unit or object will say given sound in 3D Space.
|descr= Lets an object say given sound in 3D space.
This allows broadcasting of positional music or sound from a source, without having to script a fade sound or music command.
This allows broadcasting of positional music or sound from a source, without having to script a fade sound or music command.
Compare this with [[say2D]] which will always play a sound at the location of the player after he has been in the vicinity of a broadcasting sound.
Compare this with [[say2D]] which will always play a sound at the location of the player after he has been in the vicinity of a broadcasting sound.
Line 24: Line 38:
|s1= from [[say3D]] sound
|s1= from [[say3D]] sound


|p1= from: [[Object]] - origin of the sound
|p1= from: [[Object]] - Origin of the sound


|p2= sound: [[String]] - classname of the sound to be played. Defined in [[Description.ext#CfgSounds|CfgSounds]] including [[Description.ext]]
|p2= sound: [[String]] - Classname of the sound to be played. Defined in [[Description.ext#CfgSounds|CfgSounds]] including [[Description.ext]]


|r1= [[Object]] - the sound source (was [[Nothing]] before {{arma3}} v2.00)
|r1= [[Object]] - The sound source (was [[Nothing]] before {{arma3}} v2.00)


|s2= from [[say3D]] [sound, maxDistance, pitch, isSpeech, offset]
|s2= from [[say3D]] [sound, maxDistance, pitch, isSpeech, offset]


|p21= from: [[Object]] - origin of the sound
|p21= from: [[Object]] - Origin of the sound


|p22= sound: [[String]] - classname of the sound to be played. Defined in CfgSounds including [[Description.ext]]
|p22= sound: [[String]] - Classname of the sound to be played. Defined in [[Description.ext#CfgSounds|CfgSounds]] including [[Description.ext]]


|p23= maxDistance: [[Number]] - (Optional, default 100) max distance in meter at which the sound can be heard.
|p23= maxDistance: [[Number]] - (Optional, default 100) Maximum distance in meters at which the sound can be heard


|p24= pitch: [[Number]] - (Optional, default 1) pitch of the sound.
|p24= pitch: [[Number]] - (Optional, default 1) Pitch of the sound


|p25= isSpeech: [[Boolean]] - (Optional, default [[false]]) [[true]]: play as speech, [[fadeSpeech]] applies; [[false]]: play as sound, [[fadeSound]] applies.
|p25= isSpeech: [[Boolean]] - (Optional, default [[false]])  
If [[true]], filters are not applied to it (i.e. house or vehicle interior one). Available since 1.91.145286
* [[true]] = play as speech ([[fadeSpeech]] applies), filters are not applied to it (i.e. house or vehicle interior one) {{Since|arma3|1.92|y}}
* [[false]] = play as sound, [[fadeSound]] applies


|p26= offset: [[Scalar]] - (Optional, default 0) Offset in seconds. Same with [[playMusic]]. {{Since|arma3|1.99.146480|y}}
|p26= offset: [[Scalar]] - (Optional, default 0) Offset in seconds. Same as [[playMusic]]. {{Since|arma3|2.00|y}}


|r2= [[Object]] - the sound source (was [[Nothing]] before {{arma3}} v2.00)
|r2= [[Object]] - The sound source (was [[Nothing]] before {{arma3}} v2.00)


|s3= [from, to] [[say3D]] sound
|s3= [from, to] [[say3D]] sound


|p41= from: [[Object]] - origin of the sound
|p41= from: [[Object]] - Origin of the sound


|p42= to: [[Object]] - target
|p42= to: [[Object]] - Target


|p43= sound: [[String]] - classname of the sound to be played. Defined in CfgSounds including [[Description.ext]]
|p43= sound: [[String]] - Classname of the sound to be played. Defined in [[Description.ext#CfgSounds|CfgSounds]] including [[Description.ext]]


|r3= [[Object]] - the sound source (was [[Nothing]] before {{arma3}} v2.00)
|r3= [[Object]] - The sound source (was [[Nothing]] before {{arma3}} v2.00)


|s4 = [from, to] [[say3D]] [sound, maxDistance, pitch, isSpeech, offset]
|s4 = [from, to] [[say3D]] [sound, maxDistance, pitch, isSpeech, offset]


|p61= from: [[Object]] - origin of the sound
|p61= from: [[Object]] - Origin of the sound


|p62= to: [[Object]] - target
|p62= to: [[Object]] - Target


|p63= sound: [[String]] - classname of the sound to be played. Defined in CfgSounds including [[Description.ext]]
|p63= sound: [[String]] - Classname of the sound to be played. Defined in [[Description.ext#CfgSounds|CfgSounds]] including [[Description.ext]]


|p64= maxDistance: [[Number]] - (Optional, default 100) max distance in meter at which the sound can be heard.
|p64= maxDistance: [[Number]] - (Optional, default 100) Maximum distance in meters at which the sound can be heard


|p65= pitch: [[Number]] - (Optional, default 1) pitch of the sound.
|p65= pitch: [[Number]] - (Optional, default 1) Pitch of the sound


|p66= isSpeech: [[Boolean]] - (Optional, default [[false]]) [[true]] = play as speech ([[fadeSpeech]] applies), [[false]] = play as sound, [[fadeSound]] applies.
|p66= isSpeech: [[Boolean]] - (Optional, default [[false]])  
If [[true]], filters are not applied to it (i.e. house or vehicle interior one). {{Since|arma3|1.99.145286|y}}
* [[true]] = play as speech ([[fadeSpeech]] applies), filters are not applied to it (i.e. house or vehicle interior one) {{Since|arma3|2.00|y}}
* [[false]] = play as sound, [[fadeSound]] applies


|p67= offset: [[Number]] - (Optional, default 0) Offset in seconds. Same with [[playMusic]]. {{Since|arma3|1.99.146480|y}}
|p67= offset: [[Number]] - (Optional, default 0) Offset in seconds. Same as [[playMusic]]. {{Since|arma3|2.00|y}}


|r4= [[Object]] - the sound source (was [[Nothing]] before {{arma3}} v2.00)
|r4= [[Object]] - The sound source (was [[Nothing]] before {{arma3}} v2.00)


|x1= <code>helicopter1 [[say3D]] "Fortunateson"</code>
|x1= <code>helicopter1 [[say3D]] "Fortunateson";</code>


|x2= Workaround for dead bodies:
|x2= Workaround for dead bodies:
Line 111: Line 127:
[] [[spawn]] {[[sleep]] 1; [[player]] [[say3D]] "Alarm"};</code>
[] [[spawn]] {[[sleep]] 1; [[player]] [[say3D]] "Alarm"};</code>
</dd>
</dd>
</dl>
</dl>
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}

Revision as of 18:20, 7 May 2021

Hover & click on the images for description

Description

Description:
Lets an object say given sound in 3D space. This allows broadcasting of positional music or sound from a source, without having to script a fade sound or music command. Compare this with say2D which will always play a sound at the location of the player after he has been in the vicinity of a broadcasting sound. Sound is defined in "CfgSounds" of the Description.ext or main config.
You can stop say3D sound currently playing in 2 ways:
Problems:
For some unknown reason if at the moment of command execution the player is in first person view and is inside a vehicle, the sound created is greatly attenuated.
Groups:
Broken CommandsSounds

Syntax 1

Syntax:
from say3D sound
Parameters:
from: Object - Origin of the sound
sound: String - Classname of the sound to be played. Defined in CfgSounds including Description.ext
Return Value:
Object - The sound source (was Nothing before Arma 3 v2.00)

Syntax 2

Syntax:
from say3D [sound, maxDistance, pitch, isSpeech, offset]
Parameters:
from: Object - Origin of the sound
sound: String - Classname of the sound to be played. Defined in CfgSounds including Description.ext
maxDistance: Number - (Optional, default 100) Maximum distance in meters at which the sound can be heard
pitch: Number - (Optional, default 1) Pitch of the sound
isSpeech: Boolean - (Optional, default false)
offset: Scalar - (Optional, default 0) Offset in seconds. Same as playMusic. Template:Since
Return Value:
Object - The sound source (was Nothing before Arma 3 v2.00)

Syntax 3

Syntax:
[from, to] say3D sound
Parameters:
from: Object - Origin of the sound
to: Object - Target
sound: String - Classname of the sound to be played. Defined in CfgSounds including Description.ext
Return Value:
Object - The sound source (was Nothing before Arma 3 v2.00)

Syntax 4

Syntax:
[from, to] say3D [sound, maxDistance, pitch, isSpeech, offset]
Parameters:
from: Object - Origin of the sound
to: Object - Target
sound: String - Classname of the sound to be played. Defined in CfgSounds including Description.ext
maxDistance: Number - (Optional, default 100) Maximum distance in meters at which the sound can be heard
pitch: Number - (Optional, default 1) Pitch of the sound
isSpeech: Boolean - (Optional, default false)
offset: Number - (Optional, default 0) Offset in seconds. Same as playMusic. Template:Since
Return Value:
Object - The sound source (was Nothing before Arma 3 v2.00)

Examples

Example 1:
helicopter1 say3D "Fortunateson";
Example 2:
Workaround for dead bodies: private _dummy = "#particlesource" createVehicleLocal ASLToAGL getPosWorld _corpse; _dummy say3D "whatever"; _dummy spawn { sleep 5; // at least the length of your sound deleteVehicle _this; };

Additional Information

See also:
saysay2DplaySoundcreateSoundSource

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Posted on 7 March 2013
Rocket
The only difference with this command and say is during cutscenes (when some camera effect is active). In cutscenes, say3D is 3D, say is not.
Posted on July 19, 2015 - 21:26 (UTC)
Benargee
In Arma 2 1.63, the object this command is assigned to must be alive for the sound to broadcast. If the object is killed while the sound is still playing, the sound will stop immediately.
Here is a link to the forum to get around this issue: [1]
I have not tested this in Arma 3 yet.
Posted on March 11, 2017 - 14:43 (UTC)
Killzone Kid
This command creates sound object "#soundonvehicle" which can be detected with allMissionObjects: onEachFrame {hintSilent str allMissionObjects "#soundonvehicle"}; [] spawn {sleep 1; player say3D "Alarm"};