Questions et réponses de la communauté

Bienvenue sur le forum de questions et réponses d'Audiokinetic, propulsé par la communauté. C'est l'endroit où les utilisateurs de Wwise et Strata s'entraident. Pour obtenir une aide directe de notre équipe, veuillez utiliser la page « Tickets de soutien ». Pour signaler un bug, utilisez l'option Bug Report dans l'Audiokinetic Launcher. (Veuillez noter que les rapports de bug soumis au forum questions-réponses seront rejetés. L'utilisation de notre système de rapport de bug dédié garantit que votre rapport est vu par les bonnes personnes et a les meilleures chances d'être corrigé.)

Pour obtenir rapidement les meilleures réponses, suivez ces conseils lorsque vous posez une question :

  • Soyez précis : qu'essayez-vous de réaliser ou quel est le problème spécifique que vous rencontrez ?
  • Pensez à inclure les détails importants : incluez des détails tels que les versions de Wwise et du moteur de jeu, le système d'exploitation, etc.
  • Expliquez ce que vous avez essayé de faire : indiquez aux autres les mesures que vous avez déjà prises pour essayer de résoudre le problème.
  • Concentrez-vous sur les faits : décrivez les aspects techniques de votre problème. Se concentrer sur le problème aide les autres personnes à trouver rapidement une solution.

+1 vote
I fixed a bug where AkAudioDevice was registering non-local PlayerCameraManagers as default listeners causing multiple issues for listen server players when one or more clients are connected.

I was wondering if there is a public repository to submit a pull request or something so you can merge it in your codebase.

Thank you
dans General Discussion par Franco P. (110 points)

1 Réponse

0 votes

Hello, this issue was fixed in 2017.1.3 version of the plugin that came out last week.

WG-35104 Fixed: Do not create a listener on a dedicated server.

https://www.audiokinetic.com/library/edge/?source=UE4&id=whatsnew.html

par Noemie P. (Audiokinetic) (12.9k points)
That fix is not correct as it only solves the problem with dedicated servers but the problem persists with listen servers.

Instead of checking AsPlayerCameraManager->GetWorld()->AllowAudioPlayback() to decide wether you setup a listener or not for that player camera manager, you should check if the player camera manager owning controller is a local controller or not.

void FAkAudioDevice::OnActorSpawned(AActor* SpawnedActor)
{
    APlayerCameraManager* AsPlayerCameraManager = Cast<APlayerCameraManager>(SpawnedActor);
    if (AsPlayerCameraManager)
    {
        APlayerController* CameraOwner = Cast<APlayerController>(AsPlayerCameraManager->GetOwner());
        if (CameraOwner && CameraOwner->IsLocalPlayerController())
        {
            UAkComponent* pAkComponent = NewObject<UAkComponent>(SpawnedActor);
            if (pAkComponent != nullptr)
            {
                pAkComponent->RegisterComponentWithWorld(SpawnedActor->GetWorld());
                pAkComponent->AttachToComponent(SpawnedActor->GetRootComponent(), FAttachmentTransformRules::KeepWorldTransform, FName());
                AddDefaultListener(pAkComponent);
            }
        }           
    }
}

The actor owner for PlayerCameraManager will always be the owning controller, so you can cast it safely.

This way everything will work as expected. Dedicated servers won't have any listeners. Listen servers will have listeners only for its local players and clients will have listeners only for its local players.
Hey, thanks for the suggestion, I am reopening the issue so that our dev can look at this fix !
I'm happy to help!
...