Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

Oculus Avatars Crashes UE 4.24.1, How to Make it Work?

I started a new project using the public version of UE 4.24.1 from the Epic launcher, and did a vanilla setup of the Oculus Avatar SDK per the setup documentation.

I copied the code for the LocalAvatar class pretty much verbatim from the Oculus-VR github repo. After running the project it crashes with the stack trace below, which doesn't seem to have anything to do with what I'm doing. This same setup works in 4.23.1, and if I take that working 4.23.1 project and update it to 4.24.1 I encounter the same crash.

Has anyone got the Avatar SDK working in UE 4.24.1? How can I fix this? Does it work in the sample project with the latest Oculus/UE distro built from source?

CRASH STACK TRACE:

Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Containers/Array.h] [Line: 614] Array index out of bounds: 2 from an array of size 2

UE4Editor_Core!AssertFailedImplV() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:105]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:455]
UE4Editor_Engine!DispatchCheckVerify<void,<lambda_360768f400fab54e29d427536ddf31f0> >() [d:\build\++ue4\sync\engine\source\runtime\core\public\misc\assertionmacros.h:168]
UE4Editor_Engine!FGPUBaseSkinVertexFactory::FShaderDataType::UpdateBoneData() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gpuskinvertexfactory.cpp:294]
UE4Editor_Engine!FSkeletalMeshObjectGPUSkin::ProcessUpdatedDynamicData() [d:\build\++ue4\sync\engine\source\runtime\engine\private\skeletalrendergpuskin.cpp:613]
UE4Editor_Engine!FSkeletalMeshObjectGPUSkin::UpdateDynamicData_RenderThread() [d:\build\++ue4\sync\engine\source\runtime\engine\private\skeletalrendergpuskin.cpp:396]
UE4Editor_Engine!<lambda_bcdfe8981c912d846fa86c038246d06d>::operator()() [d:\build\++ue4\sync\engine\source\runtime\engine\private\skeletalrendergpuskin.cpp:310]
UE4Editor_Engine!TGraphTask<TEnqueueUniqueRenderCommandType<`FSkeletalMeshObjectGPUSkin::Update'::`2'::SkelMeshObjectUpdateDataCommandName,<lambda_bcdfe8981c912d846fa86c038246d06d> > >::ExecuteTask() [d:\build\++ue4\sync\engine\source\runtime\core\public\async\taskgraphinterfaces.h:847]
UE4Editor_Core!FNamedTaskThread::ProcessTasksNamedThread() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:686]
UE4Editor_Core!FNamedTaskThread::ProcessTasksUntilQuit() [d:\build\++ue4\sync\engine\source\runtime\core\private\async\taskgraph.cpp:583]
UE4Editor_RenderCore!RenderingThreadMain() [d:\build\++ue4\sync\engine\source\runtime\rendercore\private\renderingthread.cpp:340]
UE4Editor_RenderCore!FRenderingThread::Run() [d:\build\++ue4\sync\engine\source\runtime\rendercore\private\renderingthread.cpp:471]
UE4Editor_Core!FRunnableThreadWin::Run() [d:\build\++ue4\sync\engine\source\runtime\core\private\windows\windowsrunnablethread.cpp

Answers

  • yibbleyibble Posts: 46
    Brain Burst
    edited January 8
    I've hit the same issue too. I found that disabling avatar components except for the hands seems to be a functioning workaround to at least allow me to continue to develop. I did this on my first pass, so it could be any of the components -- EnableExpressive, EnableBody, or EnableBase -- or a mix of them.

    I.E.

    // FIXME: Had to disable EnableExpressive, EnableBody, and EnableBase to get preview running.
    UPROPERTY(EditAnywhere, Category = "Avatar|Capabilities")
    	bool EnableExpressive = false;
    
    UPROPERTY(EditAnywhere, Category = "Avatar|Capabilities")
    	bool EnableBody = false;
    
    UPROPERTY(EditAnywhere, Category = "Avatar|Capabilities")
    	bool EnableHands = true;
    
    UPROPERTY(EditAnywhere, Category = "Avatar|Capabilities")
    	bool EnableBase = false;
    
    UPROPERTY(EditAnywhere, Category = "Avatar")
    	bool UseCombinedMesh = false;
    


  • brainbug4000brainbug4000 Posts: 2
    NerveGear
    edited January 15
    I also could not makke it to work, even not with hands only enabled. The crash goes away with above approach, but the hands still do not show up for me. Only somes distorted bones of the controller-meshes.

    Any chance to get an update for 4.24 ? I can unfortunately not go back to 4.22 as I need some features of 4.24 :/


  • yibbleyibble Posts: 46
    Brain Burst
    Hi @brainbug4000,

    With my above suggestions I get a distorted OG Touch controller model wrapped in avatar flesh in Unreal's VR preview, but if I package the project, all seems well with proper avatar hands.

    I'm holding out for 4.25 before I release a build to my testers because 4.24.1 also has a Material Instance issue in Post Processing Components, which is affecting my vignette effect.
  • brainbug4000brainbug4000 Posts: 2
    NerveGear
    Hi @yibble

    ah that is interesting. When it works in a packaged project, it can not be much, I'd think.
    I am also waiting for 4.25 or a patch which would sort out the issue(s).
    Fingers crossed :) .

    I find it a bit odd that the avatars do not work with the current unreal engine build.

    Lower priorities I guess...



Sign In or Register to comment.