playSound3D: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
(updated description based on info provided by BIS programmer)
m (template:command argument fix)
(16 intermediate revisions by 5 users not shown)
Line 6: Line 6:
|0.50|= Game version
|0.50|= Game version


|arg= global |= Arguments in MP
|arg= global |Multiplayer Arguments=


|eff= global |= Effects in MP
|eff= global |Multiplayer Effects=
____________________________________________________________________________________________
____________________________________________________________________________________________


| Plays positional sound with given filename on every computer on network. At least 2 parameters must be added.  |= Description
| Plays positional sound with given filename on every computer on network. At least 2 parameters must be specified.  |DESCRIPTION=
____________________________________________________________________________________________
____________________________________________________________________________________________


| '''playSound3D''' [filename, sound source, isInside, sound position, volume, sound pitch, distance] |= Syntax
| '''playSound3D''' [filename, soundSource, isInside, soundPosition, volume, soundPitch, distance] |SYNTAX=


|p1= [filename, sound source, isInside, sound position, volume, sound pitch, distance]: [[Array]]  |= PARAMETER1
|p1= [filename, soundSource, isInside, soundPosition, volume, soundPitch, distance]: [[Array]]  |PARAMETER1=  


|p2= filename: [[String]] |= PARAMETER2
|p2= filename: [[String]] - see [[Arma_3:_SoundFiles]] for available filenames |PARAMETER2=


|p3= sound source: [[Object]] - the object emitting the sound. If "sound position" is specified this param is ignored |= PARAMETER3
|p3= soundSource: [[Object]] - the object emitting the sound. If "sound position" is specified this param is ignored |PARAMETER3=  


|p4= isInside: [[Boolean]] (optional) |= PARAMETER4
|p4= isInside: [[Boolean]] (optional) Default: [[false]]|PARAMETER4=  


|p5= sound position: [[Position]] (optional) - position for sound emitter, will override "sound source" position.  |= PARAMETER5
|p5= soundPosition: [[PositionASL]] (optional) - position for sound emitter, will override "sound source" position. Default: [0,0,0] |PARAMETER5=  


|p6= volume: [[Number]] (optional) |= PARAMETER6
|p6= volume: [[Number]] (optional) Default: 1 Maximum value: 5 (limited since A3 v1.91.145537)  |PARAMETER6=  


|p7= sound pitch: [[Number]] (optional) - 1: Normal (default), 0.5: Darth Vader, 2: Chipmunks, etc.    |= PARAMETER7
|p7= soundPitch: [[Number]] (optional) - 1: Normal, 0.5: Darth Vader, 2: Chipmunks, etc. Default: 1   |PARAMETER7=  


|p8= distance: [[Number]] (optional) - How far is sound audible (0 <nowiki>=</nowiki> no max distance). |= PARAMETER8
|p8= distance: [[Number]] (optional) - How far is sound audible (0 <nowiki>=</nowiki> no max distance) Default: 0. |PARAMETER8=  


| [[Nothing]] |= RETURNVALUE
| [[Nothing]] |RETURNVALUE=  




|x1= <code>[[playSound3D]] ["A3\Sounds_F\sfx\blip1.wav", [[player]]]</code>|= EXAMPLE1
|x1= <code>[[playSound3D]] ["A3\Sounds_F\sfx\blip1.wav", [[player]]]</code>|EXAMPLE1=  
|x2= <code>[[playSound3D]] ["A3\Sounds_F\sfx\blip1.wav", [[player]], [[false]], [[getPos]] [[player]], 1, 1, 0]</code>|= EXAMPLE2
|x2= <code>[[playSound3D]] ["A3\Sounds_F\sfx\blip1.wav", [[player]], [[false]], [[getPosASL]] [[player]], 1, 1, 0]</code>|EXAMPLE2=  
|x3= Sound file extension must be specified even if a config entry has none:
|x3= Sound file extension must be specified even if a config entry has none:
<code>[[playSound3D]] ["A3\Sounds_F\sfx\alarm_independent", [[player]]]; //no sound
<code>[[playSound3D]] ["A3\Sounds_F\sfx\alarm_independent", [[player]]]; //no sound
[[playSound3D]] ["A3\Sounds_F\sfx\alarm_independent.wss", [[player]]]; //alarm</code>|= EXAMPLE3
[[playSound3D]] ["A3\Sounds_F\sfx\alarm_independent.wss", [[player]]]; //alarm</code>|EXAMPLE3=  


____________________________________________________________________________________________
____________________________________________________________________________________________


| [[say3D]], [[playSound]], [[say2D]], [[say]] |= SEEALSO
| [[say3D]], [[playSound]], [[say2D]], [[say]], [[createSoundSource]], [[setRandomLip]], [[getMissionPath]] |SEEALSO=  


| |= MPBEHAVIOUR
| |MPBEHAVIOUR=  
____________________________________________________________________________________________
____________________________________________________________________________________________
}}
}}
Line 52: Line 52:
<dl class='command_description'>
<dl class='command_description'>
<!-- Note Section BEGIN -->
<!-- Note Section BEGIN -->
<dd class="notedate">--[[User:JacmacBrian|JacmacBrian]] 08:21, 16 October 2013 (CEST)
<dt class="note">'''[[User:JacmacBrian|Jacmac]]'''
<dd class="note">You need to get the correct path for custom mission sounds. Use [[missionConfigFile]] with BIS_fnc_trimString (to trim off "[[description.ext]]"), then add your mission's sound directory and sound file:
<code>_soundPath = [([[str]] [[missionConfigFile]]), 0, -15] call BIS_fnc_trimString;
_soundToPlay = _soundPath + "sounds\some_sound_file.ogg";
playSound3D [_soundToPlay, _sourceObject, [[false]], getPos _sourceObject, 10, 1, 50]; //Volume db+10, volume drops off to 0 at 50 meters from _sourceObject</code>


<dd class="notedate">Posted on September 23, 2013
<dd class="notedate">Posted on September 23, 2013
Line 72: Line 66:
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands Arma 3|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on September 26, 2014 - 09:18 (UTC)</dd>
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dd class="note">
Currently, [[playSound3D]] is not JIP compatible, so joining players will not hear the sound if is started before and is still playing when player joins.
</dd>
</dl>
<!-- DISCONTINUE Notes -->
<!-- CONTINUE Notes -->
<dl class="command_description">
<dd class="notedate">Posted on October 16, 2013 - 08:21 (UTC)
<dt class="note">'''[[User:JacmacBrian|Jacmac]]'''
<dd class="note">You need to get the correct path for custom mission sounds. Use [[missionConfigFile]] with BIS_fnc_trimString (to trim off "[[description.ext]]"), then add your mission's sound directory and sound file:
<code>_soundPath = [([[str]] [[missionConfigFile]]), 0, -15] call BIS_fnc_trimString;
_soundToPlay = _soundPath + "sounds\some_sound_file.ogg";
playSound3D [_soundToPlay, _sourceObject, [[false]], getPos _sourceObject, 10, 1, 50];
//Volume db+10, volume drops off to 0 at 50 meters from _sourceObject</code>
</dd>
</dl>
<dl class="command_description">
<dd class="notedate">Posted on November 8, 2014 - 21:48 (UTC)</dd>
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
<dd class="note">
When object is supplied but not a position, the position is taken from object, otherwise the position is taken from supplied position. That doesn't mean that when position is taken from object it is going to follow object when it changes position. The sound is generated at object position and it stays there.<br><br>One other important note: If <i>soundSource</i> param is [[objNull]] then his command develops the same bug with first person view as [[createSoundSource]] and [[say3D]]. If <i>soundSource</i> param is [[player]] then the bug is inverted. It seems that passing [[vehicle]] [[player]] as <i>soundSource</i> param is the only way to make it behave correctly when vehicles involved.
</dd>
</dl>
<!-- DISCONTINUE Notes -->

Revision as of 12:12, 5 August 2019

Hover & click on the images for description

Description

Description:
Plays positional sound with given filename on every computer on network. At least 2 parameters must be specified.
Groups:
Uncategorised

Syntax

Syntax:
playSound3D [filename, soundSource, isInside, soundPosition, volume, soundPitch, distance]
Parameters:
[filename, soundSource, isInside, soundPosition, volume, soundPitch, distance]: Array
filename: String - see Arma_3:_SoundFiles for available filenames
soundSource: Object - the object emitting the sound. If "sound position" is specified this param is ignored
isInside: Boolean (optional) Default: false
soundPosition: PositionASL (optional) - position for sound emitter, will override "sound source" position. Default: [0,0,0]
volume: Number (optional) Default: 1 Maximum value: 5 (limited since A3 v1.91.145537)
soundPitch: Number (optional) - 1: Normal, 0.5: Darth Vader, 2: Chipmunks, etc. Default: 1
distance: Number (optional) - How far is sound audible (0 = no max distance) Default: 0.
Return Value:
Nothing

Examples

Example 1:
playSound3D ["A3\Sounds_F\sfx\blip1.wav", player]
Example 2:
playSound3D ["A3\Sounds_F\sfx\blip1.wav", player, false, getPosASL player, 1, 1, 0]
Example 3:
Sound file extension must be specified even if a config entry has none: playSound3D ["A3\Sounds_F\sfx\alarm_independent", player]; //no sound playSound3D ["A3\Sounds_F\sfx\alarm_independent.wss", player]; //alarm

Additional Information

See also:
say3DplaySoundsay2DsaycreateSoundSourcesetRandomLipgetMissionPath

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

Notes

Posted on September 23, 2013
Killzone_Kid
This command works well with addon sounds, however getting it to play mission sound files is a bit tricky. Follow this guide

Bottom Section

Posted on September 26, 2014 - 09:18 (UTC)
Killzone Kid
Currently, playSound3D is not JIP compatible, so joining players will not hear the sound if is started before and is still playing when player joins.
Posted on October 16, 2013 - 08:21 (UTC)
Jacmac
You need to get the correct path for custom mission sounds. Use missionConfigFile with BIS_fnc_trimString (to trim off "description.ext"), then add your mission's sound directory and sound file: _soundPath = [(str missionConfigFile), 0, -15] call BIS_fnc_trimString; _soundToPlay = _soundPath + "sounds\some_sound_file.ogg"; playSound3D [_soundToPlay, _sourceObject, false, getPos _sourceObject, 10, 1, 50]; //Volume db+10, volume drops off to 0 at 50 meters from _sourceObject
Posted on November 8, 2014 - 21:48 (UTC)
Killzone Kid
When object is supplied but not a position, the position is taken from object, otherwise the position is taken from supplied position. That doesn't mean that when position is taken from object it is going to follow object when it changes position. The sound is generated at object position and it stays there.

One other important note: If soundSource param is objNull then his command develops the same bug with first person view as createSoundSource and say3D. If soundSource param is player then the bug is inverted. It seems that passing vehicle player as soundSource param is the only way to make it behave correctly when vehicles involved.