Enabling omni.anim.skelJoint crashes the app

Hi, I figured out why your assets are crashing and mine aren’t. It’s because I ran the .usda exporter on a later internal version of a Kit app, which has some updated extension that either fixed this issue specifically or just exports them in a way to prevent crashing in this case. The latest version of this app is not in Isaac 4.1.0, so exporting these assets in Isaac 4.1.0 leads to a different usda file, leading to the crash.

Digging, will report back.

-H

If its a code change in a python file included in the container you can just private message me the diff and I will apply it.

While there are multiple differences in how the usdas are exported / flattened, there is a key api schema that affects whether or not mine crashes on Isaac 4.1.0.

the broken usda just has this for one of the prims:

def Skeleton "Worker" (
    kind = "subcomponent"
)

and the fixed one has this:

def Skeleton "Worker" (
    apiSchemas = ["OmniSkeletonAPI"]
    customData = {
        int TransformMode = 0
    }
    kind = "subcomponent"
)

It’s possible that changing this on all of your usdas will fix the crash. It’s also possible that there are other api schemas affecting other assets so this interim workaround will not generalize for you.

Still digging for a more general solution / workaround.
-H

Manually making the change in the worker did help, but…

The other actorcore assets have a different definitions:

def Skeleton "Uniform_M_0002" (
    prepend apiSchemas = ["SkelBindingAPI"]
)

do you think I could somehow transform this into the “fixed” version?

the other ones still crash? send me one over and let me try if it does

give me the link to the .usd weburl, NOT the exported one

one sec…

I’ve sent you the link on private message. It’s a copyrighted file so I can’t just share it here.

On your exported usda file of this, change L175:

                def Skeleton "Uniform_M_0033"
                {

to this:

                def Skeleton "Uniform_M_0033" (
                    apiSchemas = ["OmniSkeletonAPI"]
                    customData = {
                        int TransformMode = 0
                    }
                )
                {

which fixes it in this file. i’m hoping the issue can be solved by you downgrading or upgrading an extension in your ext manager, still digging.

H

It worked. I have one more example with a slightly different schema.

Sending over on private chat…

Actually I managed so patch it myself, by modifying SkelRoot and Skeleton nodes so they look the same as previous examples.

Marking as solution for now. I still need to test if all animations etc. work well with this patch.

sounds good hopefully i’ll find the more general soln soon.

Having issues with animations … need to gather more data

2024-08-23 17:59:53 [21,020ms] [Error] [omni.replicator.core.ogn.python._impl.nodes.OgnModifyAnimationTarget] No animationSource relationship on /Replicator/SampledAssets/Population_7ff0280a/Ref_Xform_0/Ref/RL1861600185104/Uniform_M_0002_002/Uniform_M_0002_001/Uniform_M_0002/Uniform_M_0002

Could it be that with the manual change now the replicator animation bits are lost? The path above seems fine.

The non-patched assets can use animations fine (skeljoint disabled to mitigate crash).

The patched assets cannot have an animation set via replicator (skeljoint enabled thanks to patch)

Its working! I made a typing error in code.

                    def Skeleton "Uniform_M_0002" (
                        apiSchemas = ["OmniSkeletonAPI", "SkelBindingAPI"]
                        customData = {
                            int TransformMode = 0
                        }
                    )

@hclever sorry to say but this workaround is not helpful enough. After the patch the app doesn’t crash, but also you cannot traverse the skeleton and reference it in graph or scripts.

image

image

agg_helmets is a prim I put under the Head bone.

Prior to patch I am able to navigate:

image

Ok! sorry to hear that. I’ll look into this.

I’ve tried to find a sync versions with the app i had it working in and this still did not ID where the issue is. So I’m still digging.

Im not able to navigate it in the way you are with the prim prior to patching. I just opened one of your usds directly and I see this in the stage. I dont see the OmniJoints prims?