Mirror Animation System Plugin

This looks great, will definitely pick it up later.

The mirror table in the example project worked great, thank you. As a suggestion I would recommend adding the settings you used to generate it to the documentation or as a default option for creating a mirror table from a biped skeleton.

This looks awesome - I need it today! :wink:

any word on availability?

Maybe you should put it on itch.io or gumroad?

Its on the store!

Hi there Hethger,

Firstly, fantastic looking plugin, I was actually going to spend time creating something pretty similar to this about a year and a half ago! Nice to see someone has gone ahead and made this very useful tool.

Secondly, a quick question before purchase:
Our skeleton is a pretty standard setup, but has some additional bones for items on the characters back such as a backpack and hanging tools. I assume the mirroring table allows customise it as such allowing for us to just mirror the bones we want to (For instance the body) and then theoretically, the child bones should keep their same animation. I assume this is possible?

Also, this should also allow us to continue using the same animation blueprint, but just flip the one animation within the state machine using this system?

Cheers!

If I can get it working, this will be indispensable :slight_smile:

I’ve just sent you a support email to try and troubleshoot some issues I’m having.

Hello Hethger,
I have a question about your system ^^
I’m working on a martian creature witch had 3 legs :

martien-4.jpg

The tree legs are disposed around the center with an angle of 120° between each of them but for animation purpose, I choose one of them as the forward one (in purple), and the 2 others are the left and right ones (red and green) :

martien_rig_03.gif

I will need to make him walk in 4 directions : forward and backward (the purple leg is the forward leg.
And straffing to the left and the right.
In my configuration, I have a symmetry on the forward axe but no symmetry on the other axe.

Can I use your system to mirror the forward walk animation into the backward one ?
What happen to the purple leg when I’ll mirror the left animation into the right one ? This leg will not be in the mirror table because it is build ON the symmetry plane but it will need to be mirror too if it go cross the symmetry plane during the animation…

This looks great. My only question involves a character I’m using. Essentially he has some sprouts growing out of his head (he’s a potato). His bone structure is symmetrical except for his sprouts. Am I able to mirror an animation but ignore certain bones? Essentially mirror the pose, but ignore the sprouts?

Update 04/11/2017:

Last update includes version for UE 4.18 along some improvements and fixes on all versions:

-Fixed a display bug that ocurred in the Mirror Table editor which involved undoing a removal or addition of a bone to the mirror table which caused all of the bones to display blank.

-Now using the Mirror Table from skeleton you don’t need to specify that the substrings are prefixes or suffixes, as it now accepts substrings that can be anywhere on the name of the bone (example of this is: " Finger_Left_01", with “Left” being the substring).

-Added a class icon and thumbnail for the Mirror Table asset.

Responded to you in the plugin’s Marketplace page but in case any more people are wondering the same thing. The Mirror Table holds a list of the bones you wish to mirror, so you simply leave out the ones you wish to stay the same.

I purchased the plugin but am having a major issue. There is some serious warping going on. The pose seems to be mirrored, but the mesh itself e getting messed up

Hey LuLima, with 4.19 version comes a bugfix that could resolve the issues you are having, so please try testing that version once it is available.

If the problem persists contact me at Hethger@gmail.com with the details on how you are trying to mirror your character.

I’ve been using your Mirror animation plugin for a while and it’s been working well. Up until this point I’ve been using it to mirror specific animations and save those as assets. Now however I want to use it in my animation blueprint using the “mirror” node to mirror animations on the fly depending on what the player is doing.

This works fine and looks like this:

If I select my mirror table asset in here, everything works as expected.

The problem is if I then save and close the editor, or stop visual studio running. The next time I boot up the editor or game via visual studio or otherwise, I see these messages in the log:

And the anim blueprint looks like this:

Worse still is that the mirror table asset itself appears to be non functional and if I re-add the mirror node, it doesn’t accept the previously acceptable mirror table asset. I cannot open the table asset, and see this error:

The asset does exist in the folder and should be fine.

Experimenting shows that if I have two mirror tables, each the same, and select one in the mirror node and save, then exit, I get the same issue. But when I re-add the node upon load, I can swap it to the other mirror table asset and it works fine, but the original is corrupt. If I then repeat the process, the original becomes fine, but the second one becomes corrupt and un-usable.

Any help would be hugely appreciated, this is causing a hold-up in my development. I am using UE version 4.21.1 if that helps and the plugin appears to be up to date.

Seems to be an issue similar to one mentioned in this post: https://forums.unrealengine.com/deve…de-c-templates

It esentially comes down to the loading phase of the plugin’s modules. However no one else has reported having this problem.

To make sure whether this is the issue or not:

-Go to the plugin’s folder (if you intalled it through the launcher it’ll be under “…\UE_4.21\Engine\Plugins\Marketplace”)

-Open the MirrorAnimationSystem.uplugin file using Visual Studio

-Change all lines with:


"LoadingPhase": "Default",

to


"LoadingPhase": "PreDefault",

-Save and try to reproduce the issue you were having, if it continues try changing that line again for:


"LoadingPhase": "PostConfigInit",

-If it persists change the line back to default and I’ll look into what could be happenning.

Cheers.

That fixed it. Thanks a bunch for the help and the amazingly quick support.

For anyone curious about the plugin, I’d fully recommend it - works a treat and is totally fit for purpose.

Hey ! Great plugin, we use it everyday at studio.
But, we have one problem : we have a lot of animation, sharing the same skeleton, to mirror. But the “Choose mirrortable” pop for each animation… Is any way to enable “batch mirror” ?

Got it in, check out the documentation for more details, but it is straight forward to use.

1 Like

Hi,

can I ask for a help? I spend already half a day trying to make that Mirror table, but I have almost zero success. I have a custom skeleton based on Many (Character Creator 3+) and while I was able to mirror the root, pelvis and spine with the same settings as your Many Mirror table asset shared on Dropbox, the thighs and all other twin bones fail.

If I use the Mirror CS node, it does the thighs correctly but it fails to match some of the bones and hence sets them to zero location (stretching them to the root) and one of the hands just hangs in the air.

Anyway, my Mirror node thigh_l and thigh_r bones in world position seems correct, but they have different world rotation compared to the Mirror CS node. And because of that, the calf and twist bones down the chain get relocated in other place and… basically whole bone chain after the thighs is screwed. However I play with the table settings I don’t find an way to make it work!

I’m testing out on previously retargeted animation and the non-mirrored pose is correct. Also the non-retargatted, but mirrored (Manny table) animation works fine.

P.S. Ok, one day later I’m convinced that that there is something with the twin bones. Whatever combination of mirroring, flipping, rotation and translation I do there is no way it works.

P.S. Several hours later and I’m already sure that this plugin is quite limited of what types of skeletons it can handle. At best I was able to mirror with precision of +/- 5 degrees per bone. And at some cases, toes for example, it is impossible to mirror them. Most notable, the bones need separate rotation offsets on their own, not just one for the whole pair.

Component space mirroring is the only solution, but is a bit slower and has issues with some bones which contain the left / right substring in the middle.

FINAL: Yep, neither local or component space Mirrors were able to handle my skeletons. There are issues with the automatic finding of bone names too. I’m currently writing my own solution for mirroring.