Вобщем начал разбираться со звуками и не все понятно именно с правильностью конфига и формата звукового файла для SoundShaders
Если с просто звуком бм все понятно
config.cpp
class CfgSounds {
class default {
name="";
titles[]={};
};
class C130FlySound : default {
sound[]= {
"MY_PARTICLES\sounds\C130FlySound",
1,
1,
1200
};
};
};
Файл со звуком C130FlySound.ogg - stereo, 44.1khz - те стандартно
Скрипт обьекта прост как 1 копейка
В конструкторе тупо создается звук на обьекте
И на клиенте чем ближе обьект к игроку тем звук громче итд итп - те все норм
class C130AirPlane extends House
{
private SoundOnVehicle m_SoundOnVehicle = NULL;
private string m_SoundType = "C130FlySound";
void C130AirPlane()
{
if ( GetGame().IsClient() || !GetGame().IsMultiplayer() )
{
m_SoundOnVehicle = PlaySoundLoop(m_SoundType, 1200);
}
}
void ~C130AirPlane()
{
if ( GetGame().IsClient() || !GetGame().IsMultiplayer() )
{
GetGame().ObjectDelete(m_SoundOnVehicle);
m_SoundOnVehicle = NULL;
}
}
}
А вот с SoundShaders затык
звук ogg mono/stereo, любая частотса дискретизации - пофиг
config.cpp
class CfgSoundShaders {
class Base_C130Fly_Loop_SoundShader {
range=1200;
}
class C130Fly_Loop_SoundShader : Base_C130Fly_Loop_SoundShader {
samples[] = {{"MY_PARTICLES\sounds\C130FlySoundExt",1}};
volume = 1;
};
};
class CfgSoundSets {
class Base_C130FlySoundSet {
sound3DProcessingType = "Vehicle_Ext_3DProcessingType";
distanceFilter = "softVehiclesDistanceFreqAttenuationFilter";
volumeCurve = "vehicleEngineAttenuationCurve";
volumeFactor = 1;
occlusionFactor = 0;
obstructionFactor = 0;
spatial = 1;
loop = 1;
positionOffset[] = {0, 0, 0};
}
class C130FlySoundSet : Base_C130FlySoundSet {
soundShaders[] = {"C130Fly_Loop_SoundShader"};
loop=1;
};
};
код класса
class C130AirdropPlaneEx extends House
{
private EffectSound m_Sound = NULL;
private string m_SoundSetType = "C130FlySoundSet";
void C130AirdropPlaneEx()
{
if ( GetGame().IsClient() || !GetGame().IsMultiplayer() )
{
bool play;
m_Sound = SEffectManager.PlaySoundOnObject( m_SoundSetType, this, 10, 10, true );
m_Sound.SetSoundAutodestroy( true );
if (m_Sound)
{
play = true;
}
Print("::: CLIENT: [MY_PARTICLES: C130AirPlaneEx]: Construct: " + this + ": m_SoundSetType: " + m_SoundSetType + ": m_Sound: " + m_Sound + ": GetSoundVolume(): " + m_Sound.GetSoundVolume() + ": play: " + play);
}
}
void ~C130AirdropPlaneEx()
{
if ( GetGame().IsClient() || !GetGame().IsMultiplayer() )
{
m_Sound.SoundStop();
m_Sound = NULL;
Print("::: CLIENT: [MY_PARTICLES: C130AirPlaneEx]: Destruct: " + this);
}
}
}
Обьект звка на клиенте создается - в логе это видно
Но на клиенте его не слышно
P.S.
Длина звукового файла 30 сек
расчитан на закольцованность без затыка
Кто знает что я делаю не так?
Сами файлы звков прилагаю
C130FlySound.rar