Open RonYanDaik opened 1 year ago
This sounds very situational and it could probably be done with an addon with the right knownledge.
This sounds very situational
Idk. Every project I've been working on I thought that something like this would be very very handy.
I think creating a feature enhancement for this is possible if you're ok with using the godot humanoid profile. Are you ok with that?
Chiming in, because I need this feature in my project too, and wanted to write a similar proposal.
I think creating a feature enhancement for this is possible if you're ok with using the godot humanoid profile. Are you ok with that?
I'd actually love that! Not necessarily as an animation node, but maybe as a flag somewhere in the BoneMap, as it only relates to laterally symmetrical armatures.
I could think of at least a few more use-cases in context of animated 3d games:
As for "why not have it as an add-on", an argument like "Unity and Unreal have it out of the box" might not be the best, but they do. Coming from Unity background, I've spent considerable time looking for a way to do this in Godot without resorting to hacks or "just making flipped copies of everything", and turned out it just doesn't exist for now.
TL;DR: It's a pretty rare use case, but if it comes up, this enhancement would save users a ton of effort.
PS: I propose renaming this issue to "Adding means to mirror animations on symmetrical 3D skeletons" or something and adding an enhancement label.
@jmarceno I'm not sure the approach of negating X scale was intended to be a serious suggestion or not, but it brings a particular comic to mind... (http://www.mspaintadventures.com/newindex.php?s=6&p=003200)
For some specific games with perfectly symmetrical art, it could work as a workaround, but sprite flipping, as it were, is simply not acceptable as a general purpose solution for this problem.
Personally I agree completely with @Illauriel that this deserves to be solved at the engine level. At a minimum, there should be a reasonable workflow/pipeline for creating such mirrored animation that doesn't involve manually flipping animations or assets. Personally, I can see this being helpful for creating walk cycles such as sideways motion without needing to create double the number of animations for left and right.
This is a great addition! I work as a gameplay animator and the amount of work and assets we're able to cut by simply having a mirror node is huge. Start move, stop move, directional change, leans, attacks, climbing, jumping, falling, prop interaction, idle breakers, etc., plus anything that requires left and right foot versions (locomotion wise, its more or less x2 to most things). We use it everywhere because it solves multiple issues like less bloated systems, decrease the graphs footprint and project size, but it mainly halves the animator's work on affected features. Essentially, do you want to iterate on two animations or one? When you scale that to thousands of animations? No, a mirror node will do just fine :)
Describe the project you are working on
A 3D game with fighting animations.
Describe the problem or limitation you are having in your project
I would like to use one punching animation for both hands but don't want to create 2x copies of same animation but for opposite part.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
An animation node that you can add to the animation tree.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Adding a node that will seek through skeleton bones with same name and suffix _L _R and swap animation data between mirrored bones.
If this enhancement will not be used often, can it be worked around with a few lines of script?
I couldn't find a way to achieve this with script. (Maybe I could swap animation tracks names? I'm not sure.)
Is there a reason why this should be core and not an add-on in the asset library?
It additional node that improves quality of life.