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