I'm trying to make a more natural and fluid animation for my idle states in first-person weapon models. Everything that i tried looks very stiff and repetitive... i mean, i can detect the patterns and the loop.
Does anyone recommend any technique for this? Do you guys use some kind of random natural noise in the curve, like perlin, or do you base your animation on top of an algorithm like the Lissajous curve?
Replies
As far as pop when looping, make sure the 1st and last key frame are exactly the same. check your animation curves and make sure the in/out tangents on the 1st/last keyframe are smooth. For playback, drop the last frame so you aren't playing the same frame twice (another contributor to popping loop).
Some people add "dirt" using noise, or manually. Max has noise controller for that; Maya can do the same with node editor. I'm not convinced it makes any visual difference so far.
Realistically, I find my idles to be on average anywhere from 90-360 frames, depending on what I'm doing, and then I'll go in with a bunch of fidget animations and hook them up to break the repetitive nature of the idle.
A super large cycle could work, but realistically you can also achieve the same effect with smaller animations chained together randomly and periodically.
I dont think I'd throw noise in at the maya/max level, but in engine I've seen it used before to decrease accuracy, for gameplay reasons handled by code. Not really used to break up a repetitive nature of an animation however.
If you go with the long one, try to stay away from big and distinctive movements. You can put those in randomized loops instead. If you go for a short-loop approach try to just make the character breathe. On 30 fps a 180 long animation is enough for 2 breaths (I think). You can also keep it very structural;
1 (start pose) -> 45 (full breath out) -> 90 (full breath in, same as start), then use the same loop for 90 -> 180. Having 2 loops gives you some room to put in smaller follow-through details and a general swaying or side-to-side movement.
Also, if you can see the loop very clearly, have you checked the tangent splines?
you could get away with a shorter 90 frame animation and then have another 90 frame animation with some "noise" and have it mess with the base animation on an additive layer ez
I've taken the lazy way out a few times on a current project and made around ~300 frame long idles, but then I've got layers in motion builder to help me out with randomizing the base layer animation a bit