Hello, I have 2 Skeletal meshes (Mesh and Mesh2), the first has an animation blueprint set on it through the editor.
I’m trying to set the same animation blueprint to Mesh2 through C++ but I can’t get it to work:
//This gives an error, SetAnimInstanceClass expects UClass?
Mesh2->SetAnimInstanceClass(Mesh->GetAnimInstance());
What’s the proper way to use SetAnimInstanceClass? Mesh2 needs to use the same Animation blueprint as Mesh, is there a way to copy the one from Mesh to Mesh2?
Thanks!
Edit: I’m trying to achieve something similar to this, where Mesh2 is/moves identical to Mesh, and has a ‘shield’ material to look like a shield over the character.

On the C++ part: Mesh->GetAnimInstance()
returns the actual object
, not the UClass
. What USkeletalMeshComponent::SetAnimInstanceClass
expects is actually the TSubclassOf< UAnimInstance >
or in UAnimInstance::StaticClass()
That being said, I think you are looking for something else though. If I understand you correctly, you want to drive more than one mesh with the same animation data, right? Like a modular Pawn.
I think you are looking for USkinnedMeshComponent::SetMasterPoseComponent
Actually this article might help you.
Yes, and I’ve edited my post to further reflect that. I’m going to try out that article now, thankyou.
Edit: That article is horribly outdated, but this works perfectly
//.cpp constructor
Mesh2 = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Mesh2"));
Mesh2->SetupAttachment(Mesh);
Mesh2->SetMasterPoseComponent(Mesh);
Makes me wonder why this post I made a long time ago never got a straight answer when the solution is so simple. :s