I saw your post on my thread, so since you asked… I’ll give some of my theory about creating moves. I’ll try not to ramble on about things too much…
The way I approach it is basically to break it down, to understand the move in stages. So as simple as, what does the capsule need to do, even regardless of the skeletal mesh animating in any way. That can make or break a move from it’s foundation.
The move is pretty much always gonna depend heavily on the animation though. What I do there is break it down to find what needs to be separate and what can be done in one go. With aerial moves I find you need to figure your air motion out first, which is actually based on manipulating the capsule directly. I’m sure as with most things, there’s more than one way to skin this cat, but I find that controlling the capsule there through gravity and pushing it into directions manually, works quite well. The biggest reason for this is so any given move can be performed in any given location or situation and function within the games real physics. If it’s all pre-animated, you can’t do that.
So, for example, my jump up attack move needs to work on various heights. If I stand on a wall, jump up and attack and go slightly forwards, the fall will be much greater than if simply doing it from the ground. So the “stages” in the move needs to function regardless of this. So a move like that is broken up into sections, the jump, the air motion and the landing. You’ll see in Ninja Gaiden the same sort of effect with jump moves. The “in air” has basically any length it’ll work, you can jump off a building and do a jump move and it’ll function as expected.
How I control the capsule is with the jump, it’s simply jumps, but as you engage the move, I do lower gravity, since my gravity is much higher than the engine default, I do lower gravity for a smoother up motion, throw the character up, negating any current Z velocity, then do real heavy gravity so the down motion is much quicker, then hitting the ground, the 3rd stage kicks in and the move plays the final animation and resets gravity… etc.
So, the whole “up / down” motion is purely engine controlled and the rest is animation. I’ll mention that root motion can be a factor as well. Though I don’t use it in any of my moves, it is also possible to use that in some cases. The reason I did not use it is because in most cases I want to be able to take control of player motion earlier, than what the attack animation actually allows. With root motion the animation has to play through for this to happen. I have basically one move that uses root motion, which is my dodge move, the cartwheel you may have seen in the videos. That’s all root motion driven, it’s all purely animation.
Anyway, with the move you’re talking about, jump up and spin… etc. I see similar control on that. Jump up, maybe through gravity control the “float”, negate any velocity… etc. Make the guy float basically through code. Then deal with the move through animation. All I can suggest is to break it down and start to experiment with it. Have maybe some simple animation to plug in and test with. I guess I’ll mention here as well that timing is kinda important. Your animation timing, when a move is “active” for doing damage… etc. The feel of it, how snappy is it… all this stuff has great impact on how the game feels. So that you’ll find as you work on it. I had a fair amount of trial and error on that in my moves, some more so than others.
Having moves cancel out… etc. That you just need to set up the events that can do it. Based on how you apply animation, through states or through montage, you would then just set it. So through states you would set booleans to cancel out a move and through montage you would call the current montage and stop it and then it’ll return to it’s normal states. I use montage by the way, I find it easier to deal with for attacks and stuff like that, that kind of interrupts general looping animations.
Anyway, I guess that’s basically the way I approach it. You can pretty much take any move and break it into sections and build out a complete move based on certain criteria for what happens when.
Hope this helps… in some way. I don’t try and tell you … do this or that, but this is all my own theories and approach to things. There’s always multiple ways to do it and this is just my way.