Sound Occlusion always originates from actor instead of componet

Hi there,

It seems like a bug in the UFMODAudioComponent but I want to ask if there are other reason for it.

Inside UFMODAudioComponent::UpdateAttenuation() you will find this code:

// Use occlusion part of settings
if (OcclusionDetails.bEnableOcclusion && bApplyOcclusionParameter)
    static FName NAME_SoundOcclusion = FName(TEXT("SoundOcclusion"));
    FCollisionQueryParams Params(NAME_SoundOcclusion, OcclusionDetails.bUseComplexCollisionForOcclusion, GetOwner());

    const FVector &Location = GetOwner()->GetTransform().GetTranslation();
    const FFMODListener &Listener = GetStudioModule().GetNearestListener(Location);

    bool bIsOccluded = GWorld->LineTraceTestByChannel(Location, Listener.Transform.GetLocation(), OcclusionDetails.OcclusionTraceChannel, Params);

It always grabs the owning actor location as a start for the line trace.
It is possible via anim notifies, via PlayEventAttached or in the component itself to attach it on a bone. The component is properly moved with it and updated. but the trace always starts from the actor position.

I checked in our current used version 2.02.18 but that code is the same also in newer versions.

I have fixed for use but maybe it is worth changing it for future verisons

cheers Stefan

Thanks Stefan. This issue is already in our tracker and we should have a fix for it soon.