ACCESS_VIOLATION crash when I load a USD with an instancer into Unreal

Using UE 5.0.2.

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000008

UnrealEditor_OmniverseUSD!AOmniverseStageActor::LoadPointInstancer() [D:\w\583008d1b9ecd47d\Engine\Plugins\Editor\NVIDIA\Omniverse\Source\OmniverseUSD\Private\OmniverseUSDInstancedMesh.cpp:240]

I have a simple USD scene that I create in Houdini/Solaris which instances a mesh using an Instancer node.

It loads directly from Houdini into Unreal no problem using the USD stage actor.
It also loads directly into Create no problem.

But If I save the USD asset inside of Create and then try to open it as an Omniverse asset inside of Unreal, I get the above error. It appears to crash while accessing the instanced mesh, but the USD code looks okay.

def PointInstancer "instances"
    {
        float3[] extent.timeSamples = {
            1: [(-5.5, 0.01345557, -5.3011947), (5.5, 0.7325513, 5.3011947)],
        }
        int64[] invisibleIds = []
        quath[] orientations = [(1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0), (1, 0, 0, 0)]
        point3f[] positions = [(-3.4359438, 0, 2.7392242), (-2.2048647, 0, -4.7936935), (2.6355336, 0, -4.9539795), (0.36534286, 0, -1.6610166), (-3.4167025, 0, 3.9202833), (-0.9028075, 0, -3.8969533), (0.2643391, 0, -0.32291245), (3.4301891, 0, -2.0194268), (4.616756, 0, -2.8053594), (1.057684, 0, -2.6242151), (1.4554325, 0, -0.5958126), (1.558186, 0, 0.7364918), (-5, 0, 1.115936), (-3.5630622, 0, 1.4745075), (2.7923415, 0, 3.0985863), (-0.93357813, 0, -1.163372), (-3.3259015, 0, -2.8263881), (-1.7606543, 0, 1.0182967), (4.3769636, 0, -0.28279808), (-3.4283128, 0, 0.26391563), (-5, 0, 2.5093918), (-0.8667339, 0, 0.18210892), (3.3108065, 0, 0.677956), (3.8359323, 0, 2.0175107), (-2.0145626, 0, -1.8857147), (-3.574787, 0, -4.618615), (-3.2379608, 0, -1.4006965), (-4.1640415, 0, -0.9287505), (3.506727, 0, -3.813889), (0.47842112, 0, -3.7084358), (2.176818, 0, -3.367339), (-5, 0, -0.54029834), (-4.8708043, 0, -2.1746294), (-2.1981661, 0, -0.4067618), (-2.1533093, 0, 2.1785138), (2.383239, 0, 1.7780203), (5, 0, 1.6067035), (-2.040151, 0, -3.2626429), (-0.6331642, 0, -2.5869784), (2.0425766, 0, -1.7888538), (1.1022401, 0, 2.435142), (4.415732, 0, 3.4940908), (-5, 0, 3.8174095), (1.2038499, 0, -4.8683405), (0.90124726, 0, 3.8587418), (-0.6352073, 0, 2.4930322), (-1.6322618, 0, 3.54438), (2.8696249, 0, -0.5998618), (-2.783827, 0, 5), (2.8297024, 0, 4.5674863), (-0.51155823, 0, -5), (-4.677467, 0, 5), (0.10804196, 0, 1.1879126), (-4.952522, 0, -4.248496), (4.618088, 0, 4.910402)]
        vector3f[] primvars:P (
            interpolation = "varying"
        )
        vector3f[] primvars:P.timeSamples = {
            1: [(-3.4359438, 0, 2.7392242), (-2.2048647, 0, -4.7936935), (2.6355336, 0, -4.9539795), (0.36534286, 0, -1.6610166), (-3.4167025, 0, 3.9202833), (-0.9028075, 0, -3.8969533), (0.2643391, 0, -0.32291245), (3.4301891, 0, -2.0194268), (4.616756, 0, -2.8053594), (1.057684, 0, -2.6242151), (1.4554325, 0, -0.5958126), (1.558186, 0, 0.7364918), (-5, 0, 1.115936), (-3.5630622, 0, 1.4745075), (2.7923415, 0, 3.0985863), (-0.93357813, 0, -1.163372), (-3.3259015, 0, -2.8263881), (-1.7606543, 0, 1.0182967), (4.3769636, 0, -0.28279808), (-3.4283128, 0, 0.26391563), (-5, 0, 2.5093918), (-0.8667339, 0, 0.18210892), (3.3108065, 0, 0.677956), (3.8359323, 0, 2.0175107), (-2.0145626, 0, -1.8857147), (-3.574787, 0, -4.618615), (-3.2379608, 0, -1.4006965), (-4.1640415, 0, -0.9287505), (3.506727, 0, -3.813889), (0.47842112, 0, -3.7084358), (2.176818, 0, -3.367339), (-5, 0, -0.54029834), (-4.8708043, 0, -2.1746294), (-2.1981661, 0, -0.4067618), (-2.1533093, 0, 2.1785138), (2.383239, 0, 1.7780203), (5, 0, 1.6067035), (-2.040151, 0, -3.2626429), (-0.6331642, 0, -2.5869784), (2.0425766, 0, -1.7888538), (1.1022401, 0, 2.435142), (4.415732, 0, 3.4940908), (-5, 0, 3.8174095), (1.2038499, 0, -4.8683405), (0.90124726, 0, 3.8587418), (-0.6352073, 0, 2.4930322), (-1.6322618, 0, 3.54438), (2.8696249, 0, -0.5998618), (-2.783827, 0, 5), (2.8297024, 0, 4.5674863), (-0.51155823, 0, -5), (-4.677467, 0, 5), (0.10804196, 0, 1.1879126), (-4.952522, 0, -4.248496), (4.618088, 0, 4.910402)],
        }
        int[] protoIndices = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
        rel prototypes = </World/instances/Prototypes/suzanne>

        def Scope "Prototypes"
        {
            def Xform "suzanne" (
                instanceable = true
                kind = "component"
                add references = </World/Flattened_Prototype_1>
            )
            {
                matrix4d xformOp:transform:transform1 = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0.37300342321395874, 0, 1) )
                uniform token[] xformOpOrder = ["xformOp:transform:transform1"]
            }
        }
    }

I tried various fixes like directly referencing the USD file instead of the primpath, but the result is the same inside of Unreal.

1 Like

Thanks for reporting this issue. I took a quick glance at the code and I wonder if you you added a scales attribute array if that fixes it? The Unreal Connector shouldn’t crash here, but if you could try that out it will help.