Change Skeleton Asset of Animation BP

Hiya,
Is there any way to change the skeleton associated with an animation blueprint? It feels like there should be a way, but I can’t seem to find it.

I’m trying to switch one of our assets to use a different skeleton and it seems like it would be easier to change the skeleton and fix errors in the BP than create a new BP with the new skeleton and copy everything over.

Just curious if this functionality exists.

1 Like

Sorry for bumping, but still curious if anybody knows if this is possible/impossible. Just wanna know if I’m wasting my time on this.

Alternatively if there’s a way to make a skeleton agnostic animation BP for the logic side of things that could serve as a parent for other BPs with specific skeletons.

1 Like

Same question here. I wish to reuse an AnimationBlueprint with another skeletal mesh.

1 Like

Bump, I also want to reuse an anim BP for a different character.

1 Like

update - yes, it is possible!

Just tried this with two charcters set up for animation retargetting (open each mesh, pick the skeleton tab, press “retargetting manager” and select humanoid, then match up bones)

With this done, I can right click and animation BP and retarget it - though I did still have to fix the bone names after.

---- old answer below —

Perhaps not an answer - but I found it fairly quick to copy everything over into a new BP

Copying the state machine at its lowest level seemed to copy everything else with it - except for the event graph.

The slowest bits were
-changing all the bone references, but this probably needs to be done anyway
-re-creating all the variables (very happy to have found I can right click on a node whos var is missing and create from there, though it does sometimes require re-adding and wiring to work correctly)

1 Like

The best thing you can do without retargeting and copying everything over is to write your own c++ class from UAnimInstance class. In that class you will write all your logic from EventGraph.
This way you still have to copy state machine and anim graphs.

There are tutorials on how to do that:
Animation Blueprint, Set Custom Variables Via C++
Animation Blueprint, Implement Custom C++ Logic Via Tick Updates

1 Like

this is surreal…
why is there no way to change the skeleton?
are you guys creating new anim bps from scratch every time you work with a new skeleton??
that’s duplicated code and it’s time consuming… and absurd.

3 Likes

This is a comment, but you have posted as an answer? Regardless, as mentioned in my answer above, you can use the retarget manager/system.

The retarget system is more like a desperate last resort, not a solution. Probably the actual solution is to share the skeleton across as many creatures as possible, and waste time and duplicate code for the others. In my case I was looking for a way to exchange skeletons with 1 click. Which means I have to bypass the entire animation system, and build something custom.

Import the same animations as new assets on the different skeleton, delete old animation as desired.

1 Like

In the latest versions of Unreal, this is done by rmb-ing the content browser’s skeleton>retarget to another skeleton.

Real time retargetting is not the same kind of functionality as assigning an animation to a skeleton. It’s slow, inefficient, and overkill. It’s like taking an Airbus 747 to work, when you could just walk 20 min.

Are you blaming me, or Epic’s tool? I’m providing a solution to the question, that’s the point of the Answer hub. If you are still having issues, you can also rmb the skeletal mesh>skeleton>assign skeleton. This also allows to copy over the bones from the existing/old skeleton. I’m not even an expert in the animation pipeline, but was able to figure all of these out. I wasn’t satisfied with the current collection of answers to this question.

Nobody is blaming you JA, if there’s a problem that’s indeed Unreal’s workflow. I just pointed out that retargetting is not a good, efficient solution for a Skeleton Change.

Poor mans solution (highly recommend you backup before doing this).

  1. Close Unreal Editor
  2. Go to the Folder where the mesh was located (the one you want to move away from)
  3. Delete it. (Soft delete ie let Windows recycle bin be your “shelf” - lets live dangerously :wink: )
  4. Load Unreal Editor
  5. Double Click on your Animation Blueprint. You should now be prompted to select a new skeleton.
  6. Select your skeleton… pray and hope your animations match and you don’t get compile errors because bare in mind, your Anim Bp’s are probably referring to specific animations if its one thats already been worked on).
  7. Save your BP Anim… Close Unreal Engine
  8. Restore your prev mesh back
  9. Victory Lap.
3 Likes

Apparently there’s a way to just change the skeleton in UE5, I don’t know if it’s a new thing.

Just open the AnimBP and click “class settings”, then in “Class Options->Advanced” you’re gonna find “Target Skeleton”. Change that and voilà!

Bear in mind, you’re not gonna be able to compile unless you replace all the animations in the AnimBP, but that’s normal. You cannot expect the system to recognize what animation is the exact match of a specific one on another skeleton.

Hope this helps,
Toodle-loo!

17 Likes

Thanks! :slight_smile: I also had to restart the engine, if anyone has the same problem still.

Cheers Mo

I can’t find the classSettings…

You just need to close and reopen the ABP

Here it is:

7 Likes

I am a bit late, but DUDE, you saved me from hours of struggling, THANK YOU SO MUCH!