社区问答

欢迎来到 Audiokinetic 社区问答论坛。在此,Wwise 和 Strata 用户可互帮互助。如需我们团队直接提供协助,请前往技术支持申请单页面。若要报告问题,请在 Audiokinetic Launcher 中选择“报告错误”选项(注意,问答论坛并不会接收错误报告)。我们内部设有专门的错误报告系统,会有专人查看报告并设法解决问题。

要想尽快得到满意的解答,请在提问时注意以下几点:

  • 描述尽量具体:比如,想达到什么样的目的,或者具体哪里有问题。
  • 包含关键细节:比如,Wwise 和游戏引擎版本以及所用操作系统等等。
  • 阐明所做努力:阐明自己为了排除故障都采取了哪些措施。
  • 聚焦问题本身:聚焦于问题本身的相关技术细节,以便别人可以快速找到解决方案。

+2 投票
Is libSceAudio3d enabled by default with the UE4 plugin?  If not, what steps are necessary to get it enabled?

It's pretty clear that HRTF is not working in our game, and our log output appears to corroborate it:
>AK Error: Could not find plugin dynamic library SceAudio3d

I've been digging around and it seems like SceAudio3dSink needs to enabled and registered, but it doesn't appear to be registered by default (nor even included as part of the integration process for UE4).  Am I on the right track here, or there is something else we're missing/doing wrong?

Thanks,

Jared
分类:General Discussion | 用户: Jared N. (120 分)
We were running into the same issue as well. We were able to patch around the SceAudio3d prx not loading by making sure the "/app0/prx" folder was included in initSettings.szPluginDLLPath and that the SceAudio3d.prx file got coped into <GameName>/Build/PS4/prx.

#if PLATFORM_PS4
    FString PluginDLLPath(TEXT("/app0/prx/"));
#ifndef AK_SUPPORT_WCHAR
    AkOSChar * pszPluginDLLPath = TCHAR_TO_ANSI(*PluginDLLPath);
#else
    AkOSChar * pszPluginDLLPath = 0;
    CONVERT_WIDE_TO_OSCHAR(*PluginDLLPath, pszPluginDLLPath);
#endif
    initSettings.szPluginDLLPath = pszPluginDLLPath;
#endif

But then wwise still doesn't appear to open the 3d audio port like it does when you run the 3d audio sample from the SDK PS4 SDK (ORBIS SDKs\4.000\target\samples\sample_code\audio_video\api_audio3d\).

Rain 3d audio console output:

19:40:43 [audiod/a3d] port.cc:212 - Notified of creation of shm /audio3d-port-0x65-0 of size 379456
19:40:43 [audiod/a3d] morpheus.cc:225 - MorpheusPluginPortOpen...
19:40:43 [audiod/a3d] sparkuplus.cc:184 - SparkUplusPluginPortOpen - S3DA_CPU_OPTIMIZED (0)...
19:40:43 [audiod/a3d] iothread.cc:46 - IoThread (MorpheusIo) iHandle=0 started.
19:40:43 [audiod/a3d] sparkuplus.cc:184 - SparkUplusPluginPortOpen - S3DA_CPU_OPTIMIZED (1)...
19:40:43 [audiod/a3d] devel.cc:195 - DevelPluginPortOpen
19:40:43 [audiod/a3d] iothread.cc:46 - IoThread (SparkUplusIo) iHandle=-1 started.
19:40:43 [audiod/a3d] iothread.cc:46 - IoThread (SparkUplusIo) iHandle=-1 started.
19:40:43 [audiod/a3d] iothread.cc:46 - IoThread (NetworkIo) iHandle=-1173159408 started.
19:40:43 [audiod/a3d] iothread.cc:84 - IoThread (MorpheusIo) detected connection.
19:40:43 [audiod/a3d] module.cc:309 - sceAudiodA3dModuleNotify!
19:40:43 [audiod/a3d] devel.cc:84 - Connecting to 10.0.0.221...
19:40:43 [audiod/a3d] morpheus.cc:311 - Setting up Morpheus for Legacy mode
19:40:43 [audiod/a3d] process.cc:110 - Output via plugin 0
19:40:43 [audiod/a3d] devel.cc:98 - Connecting to 10.0.0.221... failed with error 0x3d!
19:40:43 [audiod/a3d] process.cc:267 (throttled) - No data!
19:40:43 [audiod/a3d] process.cc:129 (throttled) - No data!

By comparison, our game's 3d audio console output:

23:35:15    [audiod/a3d] event.cc:187 - --> SceAudiodA3dEventWorkModeParam(4 0)
23:35:15    [audiod/a3d] morpheus.cc:561 - sceAudiodA3dMorpheusNotify, bAttached=1 bLegacyMode=0
23:35:15    [audiod/a3d] module.cc:307 - FORCE sceAudiodA3dModuleNotify!
23:35:15    [audiod/a3d] morpheus.cc:321 - Setting up Morpheus for Native mode

I can get the logging I would expect if I manualy open the 3d audio port:

#if PLATFORM_PS4
    {
        // Load audio3d Module
        int32 Ret = sceSysmoduleLoadModule(SCE_SYSMODULE_AUDIO_3D);
        checkf(Ret == SCE_OK, TEXT("sceSysmoduleLoadModule(SCE_SYSMODULE_AUDIO_3D) failed: 0x%x\n"), Ret);
        // Initialize Audio 3D
        Ret = sceAudio3dInitialize(0);
        checkf(Ret == SCE_OK, TEXT("sceAudio3dInitialize failed: 0x%x\n"), Ret);
    }

    SceAudio3dOpenParameters sParameters;

    sceAudio3dGetDefaultOpenParameters(&sParameters);
    sParameters.uiGranularity = 1024;
    sParameters.uiMaxObjects = 32;
    sParameters.uiQueueDepth = 1;

    SceAudio3dPortId uiPort;
    int iRet = sceAudio3dPortOpen(SCE_USER_SERVICE_USER_ID_SYSTEM, &sParameters, &uiPort);
    if (iRet) {
        UE_LOG(LogInit, Warning, TEXT("sceAudio3dPortOpen() failed: 0x%x"), iRet);
    }
#endif

We have the "SCE Audio 3d bed" setup in our wwise project config, but no dice so far.

Please sign-in or register to answer this question.

...