Welcome to Flanimate Power Tools Q&A, where you can ask questions and receive answers from other members of the EDAP Tools community!

Clean Up with non default position

Hi, I recently started using this add on and I'm loving it so far.

I have a question regarding the Clean Up command. I know that its purpose is to keep objects in their correct position on each frame, but if I'm moving (not only rotating) the object, then I can't use this command because it would put it in its default position for all the inbetweens and suddenly jump in the last frame to the position where I want it to be.

For example, I have an eye with a pupil, and the pupil can move freely inside the eye, but when I move the eye I don't want the pupil to go back to the center of the eye during the transition.

I'd like to know if there's a way of achieving this without having to put the pupil inside the eye symbol.

If not, I think the Clean Up command could be improved to achieve this by taking into account the offset of the object in the first and last frame. Here's an example:

Frame 0: Eye position (-1, 0), pupil position: (-0.5, 0.5) (relative position (0.5, 0.5), looking right and up)
Frame 10: Eye position (2, -2), pupil position: (1.5, -1.5) (relative position (-0.5, 0.5), looking left and up)

Frame 5 after Clean Up: Eye position (0.5, 0), pupil position (0.5, 0) (it got centered because of the Clean Up)

But taking into account the offset from its center in the first and last frame the correct position could be calculated, in this case it would be the eye position (0.5, 0) + (pupil's relative position at start (0.5, 0.5) + pupil's relative position at end (-0.5, 0.5)) x 0.5 (half way through) = (0.5, 0.5)

Does it make sense? Would it affect the performance of the command?
asked Jan 30 by ernespa

1 Answer

Hi Ernespa,

From your description I get the impression that the eyes of your character are rigged to the head externally.

This is not how it is supposed to be done.
Eyes should reside inside the head symbol.
 
Cleaning up eyes, pupils and other facial features is not the intended use of the Clean Up command.

Proper character setup is described here:
https://flash-powertools.com/character-rigging-for-flash-animation/

You can download any of our sample rigs and study how they are put together:
https://flash-powertools.com/tag/free-download/

Working with synced timelines is discussed here:
https://flash-powertools.com/advanced-smr-2-rig-architecture/



Also, head rigging is mostly the topic of the article on Transformers:
https://flash-powertools.com/create-transposer-objects/

and TransPoser:
https://flash-powertools.com/transposer-workflow/

Finally, here is an article about various efficient methods of organizing eye masks:
https://flash-powertools.com/masking-the-irises-in-flash/

Hope that all the above will give you a good idea how to approach facial animation.

Good luck!
answered Jan 30 by nick
Thank you, I missed some of those articles, but I used the eye-pupil as an example, I have other cases that are not face related and would benefit from a Clean Up like command that allows position change. For example, I have a slime character with tiny arms that move freely within his body, or outlined characters whose shoulders have to be in slightly different positions depending on the angle of rotation (they were not designed with this tool set in mind).

Is there any way to access the source code of the commands so I can make my own modified version of them? Or an API with utility functions so I can make a command from scratch?
I understand.

What you can do is run a synced timeline for the torso and tween the Magnet Targets to match the limb positions in the keyframes. Then Clean Up snapping will work as you want it.



Also to add: In most such cases you will only need to clean up the lower arm and hand, so if you select just these two and run the command, the operation will not affect the position of the upper arm in relation to the torso.
Those sound like two great ways to solve my problem. Thank you!

For the second one, I run the clean up command as part of a script for all keyframes in all the layers, can I somehow mark the layers where I don't want it to be applied? I could rename the layers so they start with an underscore and check that, but is there some other way to do it?

I run the clean up command as part of a script for all keyframes in all the layers, can I somehow mark the layers where I don't want it to be applied? I could rename the layers so they start with an underscore and check that, but is there some other way to do it?


Well... you should be able to come up with some layer naming convention that will let your script target only the layers that you would like cleaned up. Any prefix or suffix to the layer name will do, I think.

...