playSound3D: Difference between revisions
Jump to navigation
Jump to search
Killzone Kid (talk | contribs) (bug and workaround) |
Lou Montana (talk | contribs) (Add note about leading antislash, thanks ilbinek) |
||
(97 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{RV|type=command | ||
| arma3 |= | |game1= arma3 | ||
|version1= 0.50 | |||
| | |arg= global | ||
| | |eff= global | ||
| | |gr1= Sounds | ||
| Plays positional sound with given filename on every computer on network. | |descr= Plays positional sound with given ''filename'' on every computer on network. | ||
| | |s1= [[playSound3D]] [filename, soundSource, isInside, soundPosition, volume, soundPitch, distance, offset, local] | ||
|p1= [ | |p1= filename: [[String]] - see [[Arma 3: Sound Files]] for available file names or {{Link|#Example 3}} to use mission files | ||
| | {{Feature|important| | ||
Since {{GVI|arma3|2.10|size= 0.75}} the file name can start with a leading backslash {{hl|'''\'''a3\...}}.<br> | |||
However a leading backslash must '''not''' be used for an '''addon''' sound file. | |||
}} | |||
| | |p2= soundSource: [[Object]] - the object emitting the sound. If ''soundPosition'' below is specified this parameter is ignored | ||
| | |p3= isInside: [[Boolean]] - (Optional, default [[false]]) - [[true]] to simulate a sound played inside a building or similar | ||
| | |p4= soundPosition: [[Array]] format [[Position#PositionASL|PositionASL]] - (Optional, default [0,0,0]) position for sound emitter, overrides ''soundSource'' | ||
{{Feature|informative|If a following parameter has to be used, simply use <sqf inline>getPosASL _soundSource</sqf> for ''soundPosition'' instead of <sqf inline>_soundSource</sqf> for ''soundSource''.}} | |||
{{Feature|important|This parameter also takes [[Object]] but their [[Position#PositionAGL|AGL]] position is used instead of [[Position#PositionASL|ASL]] resulting in sound source being underground if they're above ground, always use [[Position#PositionASL|PositionASL]] instead.}} | |||
| | |p5= volume: [[Number]] - (Optional, default 1) sound volume. A value greater than 5 gets capped | ||
| | |p6= soundPitch: [[Number]] - (Optional, default 1) | ||
* 1.0 → normal | |||
* 0.5 → Darth Vader | |||
* 2.0 → Chipmunks | |||
| | |p7= distance: [[Number]] - (Optional, default 0) how far the sound is audible, in meters. {{hl|0}} means no maximum distance | ||
| [[ | |p8= offset: [[Number]] - (Optional, default 0) offset in seconds. Same as with [[playMusic]] | ||
|p8since= arma3 2.00 | |||
|p9= local: [[Boolean]] - (Optional, default [[false]]) if [[true]] the sound will not be broadcast over network | |||
|p9since= arma3 2.06 | |||
| | |r1= [[Number]] - id of the sound (0..65535) (was [[Nothing]] before {{GVI|arma3|2.12|size= 0.75}}) | ||
| | |||
|x1= <sqf>playSound3D ["A3\Sounds_F\sfx\blip1.wss", player];</sqf> | |||
| [ | |x2= <sqf>playSound3D ["A3\Sounds_F\sfx\blip1.wss", player, false, getPosASL player, 1, 1, 0];</sqf> | ||
| | |x3= <sqf>playSound3D [getMissionPath "mySound.ogg", player]; // to play a mission directory sound</sqf> | ||
|x4= Sound file extension must be specified even if a config entry has none: | |||
<sqf> | |||
< | playSound3D ["A3\Sounds_F\sfx\alarm_independent", player]; // no sound | ||
playSound3D ["A3\Sounds_F\sfx\alarm_independent.wss", player]; // alarm | |||
</sqf> | |||
|seealso= [[say3D]] [[playSound]] [[say2D]] [[say]] [[createSoundSource]] [[setRandomLip]] [[getMissionPath]] [[playSoundUI]] | |||
}} | |||
{{Note | |||
|user= Killzone_Kid | |||
|timestamp= 20140926091800 | |||
|text= 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. | |||
}} | |||
< | {{Note | ||
</ | |user= Killzone_Kid | ||
|timestamp= 20141108214800 | |||
|text= 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 this command develops the same bug with first person view as [[createSoundSource]] and [[say3D]]. If ''soundSource'' 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. | |||
}} | |||
{{Note | |||
|user= R3vo | |||
|timestamp= 20201007122400 | |||
|text= The sound will be distorted according to the {{Link|https://en.wikipedia.org/wiki/Doppler_effect}} when passing by the sound source quickly. | |||
}} | |||
{{Note | |||
|user= Hypoxic125 | |||
|timestamp= 20230514135752 | |||
|text= Wait for sound to end: | |||
< | <sqf> | ||
private _sound = playSound3D ["A3\Sounds_F\sfx\blip1.wss", player]; | |||
waitUntil { soundParams _sound isEqualTo [] }; | |||
</sqf> | |||
}} | |||
</ | |||
Latest revision as of 20:54, 28 May 2024
Description
- Description:
- Plays positional sound with given filename on every computer on network.
- Groups:
- Sounds
Syntax
- Syntax:
- playSound3D [filename, soundSource, isInside, soundPosition, volume, soundPitch, distance, offset, local]
- Parameters:
- filename: String - see Arma 3: Sound Files for available file names or Example 3 to use mission files
- soundSource: Object - the object emitting the sound. If soundPosition below is specified this parameter is ignored
- isInside: Boolean - (Optional, default false) - true to simulate a sound played inside a building or similar
- soundPosition: Array format PositionASL - (Optional, default [0,0,0]) position for sound emitter, overrides soundSource
- volume: Number - (Optional, default 1) sound volume. A value greater than 5 gets capped
- soundPitch: Number - (Optional, default 1)
- 1.0 → normal
- 0.5 → Darth Vader
- 2.0 → Chipmunks
- distance: Number - (Optional, default 0) how far the sound is audible, in meters. 0 means no maximum distance
- since 2.00
- offset: Number - (Optional, default 0) offset in seconds. Same as with playMusic
- since 2.06
- local: Boolean - (Optional, default false) if true the sound will not be broadcast over network
- Return Value:
- Number - id of the sound (0..65535) (was Nothing before 2.12)
Examples
- Example 1:
- Example 2:
- Example 3:
- Example 4:
- Sound file extension must be specified even if a config entry has none:
Additional Information
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 Sep 26, 2014 - 09:18 (UTC)
- 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 Nov 08, 2014 - 21:48 (UTC)
-
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 this command develops the same bug with first person view as createSoundSource and say3D. If soundSource 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.
- Posted on Oct 07, 2020 - 12:24 (UTC)
- The sound will be distorted according to the Doppler effect when passing by the sound source quickly.
- Posted on May 14, 2023 - 13:57 (UTC)
- Wait for sound to end: