Jump to content
Halford.T

3D sounds JIP compatibility

Recommended Posts

Good afternoon all.

 

I am seeking some help with a mission that i am creating using 3D sounds. I have made some progress so far with getting this to work, however i need to get it to work in a Multiplayer Dedicated Server environment with JIP compatibility. Have been browsing these forums and googling the topic, but have not found anything that will necessarily applicable to what i am trying to achieve.

 

Currently i am able to get the following script to work in an objects initialization field, this does seem to work on dedicated but does not work with JIP.

 

playSound3D ["addons\Russianrachatter.ogg", rabbit, false, getPosASL rabbit, 30, 1, 20]

(Example Syntax: playSound3D [filename, soundSource, isInside, soundPosition, volume, soundPitch, distance])

 

I have chosen playSound3D as it seems to have the appropriate functionality for my scenario.

 

As you may see above, i have referenced a sound file that i have included in a custom made mod (specifically for sound effects) - within this mod i have the sound files and a config.cpp which contains the classes referencing the files under CfgSounds. See below:

Spoiler

 

#include "BIS_AddonInfo.hpp"
#define _ARMA_

//Class config.cpp{
class CfgPatches
{
    class HalfcockSFX
    {
        units[] = {};
        weapons[] = {};
        requiredVersion = 0.1;
        requiredAddons[] = {};
    };
};

class CfgMusicClasses
{
    class SFXStealth
    {
        displayName = "SFX_Stealth";
    };

};

class CfgMusic
{
    class Covert
    {
        name = "Stealh Covert";
        sound[] = {"addons\Covert.ogg",2,1};
        theme = "Custom";
        duration = "257";
        musicClass = "SFXStealth";
    };
    
};

class CfgSounds 
{
    sounds[] = {};
    
    class SKadikoy
    {
        name = "Russian Radio Chatter";
        sound[] = {"addons\Russianrachatter.ogg", 2,1};
        titles[] = {0,""};
    };
    
};

 

Is there any way of making what i am doing here compatible for JIP?

 

Thank you.

Share this post


Link to post
Share on other sites

I had similair decision. Try using say3D and remoteExec

Share this post


Link to post
Share on other sites

That one should work.

 

[nil,_TargetUnit,"loc"+"per",rSay,[_SoundName,5,1]] call RE; 

Best regards.

Share this post


Link to post
Share on other sites
22 hours ago, CreativeProduct said:

That one should work.

 


[nil,_TargetUnit,"loc"+"per",rSay,[_SoundName,5,1]] call RE; 

Best regards.

 

Am trying to follow this however it has some parts that i am not familiar with. What is "rSay"? 

On 3/17/2017 at 7:19 AM, M1ke_SK said:

I had similair decision. Try using say3D and remoteExec

 

[player, "_SoundName"] remoteExec ["say3D",-2,true];

 

I found this, it works to an extent and seems to have JIP compatibility, however i am not sure how to control the volume nor the maxDistance within the script.

Share this post


Link to post
Share on other sites
13 minutes ago, LT.Halford.T said:

[player, "_SoundName"] remoteExec ["say3D",-2,true];

 

I found this, it works to an extent and seems to have JIP compatibility, however i am not sure how to control the volume nor the maxDistance within the script.

 

From wiki (https://community.bistudio.com/wiki/say3D)

syntax:

from say3D [sound, maxDistance, pitch]

 

[player, [_SoundName, _distance, _pitch]] remoteExec ["say3D",-2,true];

 

Share this post


Link to post
Share on other sites

M1ke_SK thank you very much for your assistance so far, i am almost there with this one!

 

[player, [_SoundName, _distance, _pitch]] remoteExec ["say3D",-2,true];

 

The above does work, but not yet in the fashion i intended, therefore i tried the following:

 

[sds1, ["ATC", 10, 1]] remoteExec ["say3D",-2,true];

 

If sds1 was left as player, the player would be the sound source, hence i named an object (portable radio) as variable "sds1", this makes the object the sound source. "ATC" is the class name defined in cfgSounds and works, giving say3D the path "addons/ATC.ogg" does not. (just pointing that out for others trying the same thing)

 

What i am stuck at now is being able to successfully define the distance and pitch, "[_VariableName, [_SoundName, _distance, _pitch]] remoteExec ["say3D",-2,true];" does not seem to recognize both _distance and _pitch, the script defaults to a distance of 100m (as it says on the wiki) 

Share this post


Link to post
Share on other sites

I created thread a while ago. Seems to be the same problem?

 

 

Share this post


Link to post
Share on other sites

Yes i believe you are right, i'm actually testing something with playsound3D, might have a JIP compat within Zeus, will feed back results soon.

Share this post


Link to post
Share on other sites
On 3/20/2017 at 5:28 AM, LT.Halford.T said:

Yes i believe you are right, i'm actually testing something with playsound3D, might have a JIP compat within Zeus, will feed back results soon.

Were you able to find a solution? Im trying to do the same thing where a concert is playing at the begining of the mission and I need JIP's to be able to hear it as well. 

 

------------------------------------------------------

 

NVM, I found a syntax that works 

 

[mic, ["speech1", 10000, 1]] remoteExec ["say3d", 0, true];    <-------- will play "speech1" at a distance of 10000 from object mic for all clients on a server.

Edited by Yipfrr
Solution foudn

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×