When using Passthrough Skeletal Mesh Component, how does one set the requested AnimInstance?

With the standard non-passthrough flow you set the AnimBP on the SkeletalMesh node itself. With the passthrough SkeletalMeshComponent node I see no place to set the AnimBP. While I can set this manually in my Blueprint once customization is completed, it would be preferred for it to flow through automatically like it does in the standard flow.

Am I missing something?

Thanks!

[Attachment Removed]

Steps to Reproduce
Place a Passthrough SkeletalMesh Component.

Set the Skeletal Mesh on the node.

Look for a place to set the AnimBP that should be set on the resulting component.

[Attachment Removed]

Hey there,

Yes, this is currently not available with passthrough meshes, partially because it’s not implemented yet (the node is experimental) and partially because that node goes through a separate generation flow.

I’ve logged an issue that you can follow here: https://issues.unrealengine.com/issue/UE-361790.

If you need this, you would want to modify and adapt the properties in CustomizableObjectNodeSkeletalMesh.h, and the procedures in GenerateMutableSourceMesh.cpp to CustomizableObjectNodeComponentPassthroughMesh.cpp and GenerateMutableSourceComponent.cpp, respectively. The main bit to look at would be:

/** Adds Tag to MutableMesh uniquely, returns the index were the tag has been inserted or the index where an intance of the tag has been found */
int32 AddTagToMutableMeshUnique(UE::Mutable::Private::FMesh& MutableMesh, const FString& Tag)

as that is what is used to add the metadata once gathered.

Dustin

[Attachment Removed]

Thanks for that info. I’ll look at getting that working here.

Another oddity I’m seeing with the Passthrough skelmesh node is related to the UCustomizableObjectPrivate::GetMinLODIndex.

There doesn’t seem to be an entry in the LocalModelResources->MinLODPerComponent for the component created by the SkeletalMesh passthrough node.

The ensure triggers, and then we fall back to using 0. Just curious if this is another piece of missing functionality, or if I’ve got something set up wrong on my end.

			const FPerPlatformInt* PlatformInt = LocalModelResources->MinLODPerComponent.Find(ComponentName);
			if (ensure(PlatformInt))
			{
				MinLODIdx = PlatformInt->GetValue();
			}

[Attachment Removed]

This might be a bug, but before I log it, can you check that CPU Access is turned on for your passthrough mesh in the skeletal mesh asset? Mutable works on the CPU, and we don’t normally store access to that data. This is the same thing if you wanted LOD data for Niagara VFX.

Dustin

[Attachment Removed]