Timing Charts

Ideas, enhancements, feature requests and development related discussion.

Timing Charts

Postby dcuny » Fri Feb 08, 2008 10:16 pm

sascha wrote:Still, keep in mind that the kind of animations that can be done with that is rather limited. You can't even create a simple "bouncing ball" animation, because it requires access to the tangents of the motion curves.

If you're talking about being able to control acceleration and deceleration, you're right. You could only do this by adding more keyframes.

But there would still be motion curves behind the scene, and JPatch would choose to automatically ease in/ease out between keyframes, so you'd pretty much get what you wanted by default.

A bit off topic... I was reading in Keith Lango's blog some time back that he didn't thing motion curves were really that good of a mechanism for representing acceleration curves in the first place. I've wondered if there's a better way to work with motion curves. For example, if you had onion skinning on, you could see the arcs directly on the screen. Instead of fiddling with the motion curves, there could be a floating widget which could be user to control the amount of ease in/ease out of the curve. I'm thinking of something like the "old style" timing charts that animators would put on their keys, to indicate to the inbetweener the spacing of the action:
Image
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Progress Report?

Postby sascha » Sat Feb 09, 2008 9:59 am

I like the idea of displaying the arcs (a kind of poor man's onion skinning, but I think it's actually more than that). Manipulating the arcs directly in the 3D view is tricky though, if not impossible. When bone rotations are involved, drawing the arcs is easy (basically solving the forward IK problem), but for manipulating the arcs directly you'd need IK. So, if IK is on, this could work (for single IK chains, not for the entire model), if there's no IK, no chance. But still, showing the arcs might be a nice idea. You could modify the tangent for ease-in/out in the motion-curve editor, and directly view the result as the arc (and the per-frame positions on the arc) is updated in realtime.
You once wrote about a tool written by an ex Pixar employee that focuses on arcs, I couldn't find the link anymore though.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Progress Report?

Postby dcuny » Sat Feb 09, 2008 7:46 pm

sascha wrote:I like the idea of displaying the arcs (a kind of poor man's onion skinning, but I think it's actually more than that). Manipulating the arcs directly in the 3D view is tricky though, if not impossible.

But you don't want to adjust the arcs, you want to adjust the spacing along the arcs. There's a subtle (but important) difference. Reflex was the program I was talking about earlier:
Reflex Website wrote:
Adjust the Spacing Visually
Another powerful aspect of Motion Paths is the ability to see and change the Spacing. Typically slow ins and outs need to be adjusted using a curve editor, but with Reflex you just select a path "bead" and group the spacing near a knot. Gaps in the spacing that would cause a glitch in the animation are easy to spot and fix.
Image

Note that they are only adjusting the spacing of the knots along the arc, not the actual curve of the arc.

As for the problem of manipulating the 3D arc, that's been solved since the 1940's. Check out page 47 of The Animator's Survival Kit and you'll see how the 2D arc was gradually transformed into the classical 1D timing chart. In the same way, I think it would be easier to adjust the spacing of a 3D arc by using a 1D timing chart than trying to fiddle with it in 3D space. So when the user picks a bone, I'd have the timing chart appear off to the side, just like it does for a 2D animator.

Most of the time, the user would probably want to choose some default, and just tweak it a bit. Here's the most common combinations:
Image
Once they choose a default set of spacing, they could tweak the position of the knots by dragging them on the timing chart.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Progress Report?

Postby sascha » Sat Feb 09, 2008 9:19 pm

Ok, agreed. There could be some tool that allows adjusting the slope of the tangent (i.e. the velocity) - there could be immediate feedback by displaying the frame spacing on the arc.
they could tweak the position of the knots by dragging them on the timing chart.

Nothing against old school animation, but that's a little drastic. It's like using an abacus when we've got a calculator at hand. Computers can compute cubic curves, so there's no need to approximate that using a timing chart. There's nothing wrong with using other tools than motion curves, but some techniques used for classical animations simply aren't applicable to 3D. There are no bones in 2D animation, for example. 2D animators have to deal with perspective projection by hand (there's also an example of how to space e.g. telegraph masts in a perspectively correct way in the Animators Survival Kit - a Job that's better left to the computer in the 3D case). Don't get me wrong, I think that learning from 2D animations is a good and important thing, but there are limits, and I wouldn't stretch the applicability of 2D techniques to 3D too much.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Progress Report?

Postby dcuny » Sat Feb 09, 2008 10:48 pm

sascha wrote:Nothing against old school animation, but that's a little drastic.

I'm not suggesting that motion curve editing be done away with, just that they can be tweaked with this sort of control. Considering that animators have (and continue to) use them, there must be something right about them. I think part of it is that it's a better mapping. Motion curves show velocity, while timing charts show position.

Given the alternative - sliding the knot around on a 3D curve - I think a timing chart is far simpler. Although sliding a knot around on a curve isn't as bad as it might initially look, because you can't really move a knot around freely in 3D space - you can only reposition it forward and backward on the curve. That is, you'd probably store it as a "tweak" value instead of a keyframe.

Really, the majority of people don't even need that - the only want to adjust the ease in/ease out of a curve.

But I still think timing charts are (potentially) a useful tool.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Timing Charts

Postby dcuny » Sat Feb 09, 2008 10:52 pm

I've split this topic from the Status thread, because it was off topic.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Timing Charts

Postby sascha » Sat Feb 09, 2008 11:24 pm

Motion curves show velocity, while timing charts show position.

No. A motion curve controlling the position of an object shows just that: its position. But with bones things are a lot more complicated: The motion curves in this case will control the rotation angles, and the influence of the rotation angles of several bones (e.g. spine, shoulder, upper arm and lower arm) on some object (e.g. the hand) is not trivial. It's still straight-forward to compute though, but it's difficult to exactly control the hands position by modifying some joint angles - that's the job of IK after all.
So I agree, as long as IK is used, you can directly control the position of something like a hand - and thus you can also control its velocity. Whether the GUI representation is a motion curve or an arc in 3D doesn't matter, and I fully agree that the arc view would be a nice addon. But without IK (and I think this will generally be the case), things are a lot more complicated. You could still draw the arc (by solving the forward IK problem for a set of frames), but you won't be able to control it - not even ease-in, ease-out. The reason for that is that the hands position isn't controlled by a single motion curve, but by several curves controlling the shoulder, upper arm and lower and (and probably even more bones). If you'd decide that you want the hand to ease in or out of some position, how would that translate to the underlying bone rotations? Without IK there's no way of doing that.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Timing Charts

Postby dcuny » Sun Feb 10, 2008 12:39 am

Ah, I see what you're getting at. :?

I agree.

Personally, I'm not that interested in using this tool to move something to a particular position. I want it to control the relative velocity of the animation - the ease in and ease out. The problem is that, while a curve is ideal (in the mathematical sense) for seeing the change of velocity over time, the timing chart is more intuitive for me.

So providing a timing chart with an ease in and ease out knob would probably be enough to make me happy. I couldn't adjust a particular frame, but I'd have control over the overall motion. That wouldn't get me the "favor" option, but it would be pretty close.

Yeah, yeah... Or I could just learn to use the motion curves. ;)
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Timing Charts

Postby sascha » Sun Feb 10, 2008 9:02 am

There's still one problem remaining: I can't see how the ease in/out translates to bone rotations, especially when multiple bones are involved. To make things more complicated, there could be e.g. 4 bones involved, but for a particular keyframe only two of them have keys associated. So I doubt that this will work for bone rotations at all. IK is a different thing: You'd directly control the (e.g. hand-)target 's position, so it's easy to plot its arc, and also to directly manipulate it. For FK, it's also possible to plot the arc, but I think it's too complicated to allow direct manipulation - you'd have to access the curves to tell JPatch exactly what to do. You could still see the effect on the arc in realtime.
If you're not happy with that, you'll have to tell me how to implement your idea :)
How should it work e.g. for a simple shoulder-elbow-hand FK system. There are (at least) 5 DOFs involved, 3 for the shoulder rotation, 1 elbow bend and 1 lower arm twist.

If you're interested in the velocity - the tangents (1st derivatives) of the motion curves are equivalent to the velocity. I could even add an option to plot the 1st derivatives (or even the 2nd, which correspond to acceleration). In case of bone rotation, they're equivalent to angular velocity (or angular acceleration respectively) - you could even manipulate the derivatives directly.
Image
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Timing Charts

Postby dcuny » Sun Feb 10, 2008 10:12 am

sascha wrote:There's still one problem remaining: I can't see how the ease in/out translates to bone rotations, especially when multiple bones are involved.

All right, you've almost convinced me of the folly of my ways. But who said they had to involve multiple bones? ;)

It would certainly be nice if it could work for multiple bones, but you've made a pretty compelling argument that it wouldn't work.

So make the timing chart just an alternate view of the what's in the graph. What's displayed on the chart would depend on what mode you're in. For example, if you're working with the bouncing ball and dealing with translating it, when you select the root bone, you get a timing chart for the relative speed of travel. If you're in rotation mode, you see the relative change in rotation - how quickly the rotation changes from one keyframe to the next.

Think of the ease in and ease out as controlling the steepness of the motion curve, since that's exactly what it does. It's just an alternate representation of the motion curve. One displays a curve, the other spacing. Remember, not all of us a math geniuses. I've only dabbled with calculus, so I have trouble even remembering what a derivative is. :P
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Timing Charts

Postby sascha » Mon Feb 11, 2008 9:43 pm

I'm not a math genius. But I also think that most people know what position, velocity and acceleration means and have a good grasp of how they're interrelated - even if they probably can't express it in mathematical terms. So there are three things JPatch could do:
1) Allow the display (and manipulation) of the derivatives in the motion-curve editor.
2) For curves that control position, optionally show them in the 3D viewports, together with their tangents (also optionally). The tangent vectors in the 3D viewport translate to velocity.
3) This isn't directly applicable to curves that control bone rotations, but in this case, the arcs and the frame-positions still give a feeling of velocity - although not directly manipulatable.
sascha
Site Admin
 
Posts: 2792
Joined: Thu May 20, 2004 9:16 am
Location: Austria

Re: Timing Charts

Postby dcuny » Tue Feb 12, 2008 3:28 am

sascha wrote:Allow the display (and manipulation) of the derivatives in the motion-curve editor.

I'd have to play with that to see how useful it is.

For curves that control position, optionally show them in the 3D viewports, together with their tangents (also optionally). The tangent vectors in the 3D viewport translate to velocity.

I think this would be a valuable addition.

I'm wondering what sort of editing Reflex allows on the 3D curve. The description says "group the spacing near a knot".

As you pointed out, you really can't control the position of the individual keys. Being able to "group the spacing" means that you can adjust the slope of the curve.

So the sorts of "glitches" that they're talking about are probably related to the acceleration going out of one key frame not matching the acceleration going into the next keyframe. That's what they mean by "Gaps in the spacing that would cause a glitch in the animation are easy to spot and fix." By visually displaying the spacing, you can make sure that the two are well matched, instead of suddenly accelerating or decelerating.
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am

Re: Timing Charts

Postby dcuny » Thu Feb 14, 2008 1:36 am

I ran across this video showing 3D motion curves in MotionBuilder. They've got a Dynamic Editor tool for fiddling with motion curve without having to go into the F Curve Editor. So I'm not the only one who'd prefer not to fiddle directly with the curves.

Or as Keith Lango likes to call it, the Spaghetti Box(tm). ;)
dcuny
 
Posts: 2902
Joined: Fri May 21, 2004 6:07 am


Return to Development

Who is online

Users browsing this forum: No registered users and 2 guests

cron