IK Retargeter is not retargeting IK bone information

I ran into this as well. I noticed if I add some virtual bones that have never existed in the original skeleton, they track correctly. But if I delete and readd virtual bones that did, they just refuse to track.

I’m working around this by deleting all virtual bones in my new skeleton, doing the retargeting, and readding the virtual bones.

This definitely seems like a bug. Maybe there’s some hidden data that is being brought over with the retargeted animation and is corrupting the virtual bones in the new animation.

This is without a doubt a serious and Major Engine Breaking Bug in Unreal Engine 5 right now…I did a hard retarget and even went so far as to delete the virtual bones from my Character’s before setting up IK Rigs for them…so I don’t think that’s the Cause.

This is what is happening on my Setup…

I delete all Virtual Bones.
I then setup the IK Rigs and do a hard retarget of the AnimBP
I then fix any additive animation issue’s caused by other bugs during the process
I then use Control Rig to fix the IK Foot and Hand Locations…so I know for a fact they are positioned properly
I then replace all of those animation in the AnimBP…
I then recreate the Virtual Bones…This is where issue’s start coming up

Once I have recreated the Virtual Bones…the Animations work fine…but after closing and restarting the Engine…all of a sudden absolutely none of my hand placement is working anymore…WTF!!! I Wonder…so after digging I come across the exact verbatim issue that this guy is suffering from…they aren’t pointing to the bones I specifically set them to follow…they are now pointing aimlessly into oblivion for no reason what so ever.

I should mention that It seems to stop for a minute if the next time I delete and restart, I give the virtual bones another name…eventually it comes back though…so I don’t know what’s going on

THIS IS A SERIOUS BUG, PLEASE GET IT TOGETHER AND FIX THIS NOW!

I had the same issue and setting the Translation Mode for the ik bones to Absolute fixed it.
I did an exact setup to the ik retargeter from ue4’s mannequin to ue5’s.

2 Likes

Yeah I tried that and can confirm it didn’t work for me, It’s 100% Predictable…I can fix Virtual Bones, Restart the Engine, and their back to how they were…broke…

In case you have issues with IK bone retargeting, I would highly recommend starting to watch my series.

ALS Secrets - UE5 Manny Integration + Git Workflow

Constraining bones is covered in this video, #9.0 Constraint Bones - UE5 Manny Integration - ALS Secrets
#9.0 Constraint Bones - UE5 Manny Integration - ALS Secrets - YouTube. At the time of writing this video is in sneak preview. :wink:

1 Like

This works for retargeting on UE4

The IK Bone constraints are broken (or I’m just stupid :slight_smile: ) I had similar question, and finally I have found how to fix this:

Look at the video in my answer, it has much easier solution to get the IK bones work.

I’m using RTG_UE4Manny_UE5Manny and my animation retargets all mess up the fingers like this (even the default jog animation). None of the solutions in the thread appear to work - even the “set recursively” trick from UE4 doesn’t work. Any ideas how to fix it?

1 Like

Did you already try to use IK goals for the fingers? I had some success getting hand poses working from a marketplace character that had a similar issue.

In case someone still has issues with unconstraint virtual and ik bones in Unreal Engine 5.

Here are two ways how I work around them.
A custom IK Rig based solver to constraint virtual and ik bones directly during the IK Retargeting process.

Or constraint those bones with a Blutility.

In case you want to play around with the tools feel free to check out the open source UE5 plugin TTToolbox v0.3. :wink:

Look at the video in my answer, it has much easier solution to get the IK bones work.

Which video? If you use the bone chains that did not really work for ALS as the locations are not properly constraint to the corresponding bones… :frowning:

There are extra finger bones in UE5 and the camelCase matching does not assign them properly by default. Try mapping all Metacarpal chains to None in the IK Retargeter.

I think I have finally found a decent workaround. The workflow is something like this:

  1. Add IK bones to your custom Skeleton (you can use the plugin from @tuatec)

  2. Create IK Rig for your custom (target) Skeleton, leave IK bones alone (you can still use the Full Body IK solver to make the animations fit)

  3. Retarget your animations

  4. Duplicate your IK Rig, remove Full Body IK solver and add Set Transform solver and Goal for each IK bone except the root. Expose Positions for all the new IK Goals.

  5. Create Animation Blueprint with IK Rig node and for each Goal position switch from Manual Input to Bone.

Now you only need to make sure to run these transforms before any other IK logic and it should work but I haven’t tested this yet. The IK bones are animated properly though:

Did you already try my custom solver for ik retargeting?

Or use the blutilities to constraint multiple animations. How show this here almost at the end of the video. :wink:

I am trying to use the constraints now. I think your solution is better since you don’t need any fixes in Animation Blueprint level which is quite hard to do properly with the ALS setup.

1 Like

So I’ve finally got back to animating and returned to this virtual bone problem. It would appear that whatever the issue was with the hand virtual bones was resolved in a patch since I no longer observed any problems with those bones (they behaved as expected). The feet were still not updating their positions. After tinkering around with virtual bones, I found out that a virtual bone created from the root to the foot would behave as expected. However my set up requires a virtual bone root, so a virtual bone made from the root that targets the root (VB Curves). It would appear that this bone (and possibly the VB ik_foot_root as well, that also targets the root) is responsible for preventing the updating of its children. I really don’t know how this information is handled under the hood, so this is as far as I’ve gotten with finding out what the issue is.

However there does appear to be a simple work around. Simply exporting the animation as a FBX file and reimport it will cause all virtual bones in the animation to update and behave normally. I’m guessing the animation obtained from the retargeting process isn’t saving quite right. So the steps to fix the virtual bone problem are:

  1. Open the animation
  2. Export Asset dropdown button → animation data (you don’t need the preview mesh)
  3. Save the animation anywhere you like
  4. Click the reimport animation button
  5. Select the animation you just saved
  6. The animation should update with all virtual bones fixed *
    *I did occasionally get a error when reimporting, something along the lines of improper alembic file. I’m not sure why this happens but all you have to do is open the animation you tried to reimport and reimport again, it always worked on the second try.
    *Also beware step interpolation animations, you may have to change the interpolation to linear, then export and reimport, then change interpolation back to step.

It was a bit tedious but it seemed to do the trick, I closed and reopened the editor and everything was still working just fine. I think it’s ultimately a bug but hopefully this workaround helps people in the meantime.

3 Likes

When you reimport the animations, does the editor trigger recompressing?

1 Like

Are you sure you saved the animations before checking the virtual bones? I noticed the constraints don’t work until you hit the save button :slight_smile:

1 Like

I also found that baking animation sequences from sequencer and control rig doesn’t export out the virtual bones.

It works though if I delete all virtual bones, reexport, then readd the virtual bones. I can do this for now as a workaround but definitely hope this gets fixed asap.

Thanks for your impeccable articulation through your troubleshooting Cipher, your solution is the only one online I’ve found that doesn’t involve reinventing a game engine and 25 year coding experience. ALS is the best :smiley:

[EDIT]
Yes, it is true that UE5 does not copy curves correctly. You have to highlight keys and change them from “linear” to “constant” in ALS animation curves.

I had a few animations flip bones and had to correct the animations manually, adding to the frustration of UE5 failing to retarget properly in the first place.