TCB curve controls.... WTF?

Started by paulcurtis, January 11, 2022, 09:41:01 AM

Previous topic - Next topic


So on the animation curve editor i have the keys and i can see the TCB components at the bottom, for each key. However i cannot find any reference to what the value ranges are and how they are support to work because they are working unlike any other TCB i have ever used.

For example C is continuity, a higher value of this should smooth the curve either side and flatten it - but actually it doesn't at all. A value of 10 will simply break the curve.

I have to assume 0 is the point of flatness, negative breaks up, positive breaks down.

So if i want a curve that is flat for 50 frames and then moves up higher i cannot find a way to do this. I have a key at 1 of 100, a key at 50 of 100 and a key at 100 of 500 for example. How can i get the line from 1 to 50 flat?

What am i missing?!


Kevin Kipper

Hi Paul,

In your example, select keyframe 1 and set its Tension to 1.  You will have a flat line between keys 1 and 50.

The whole curve should be set to TCB.




Thank you Kevin, can you explain what the T, C and B are actually doing, because T seems to only affect the horizontal direction?

If you look at the below, these are just 3 keys from a wider animation. The first key has 1 for T and everything else are 0.

So why isn't the second key smooth?

If i set the second key to T=1 then that is smooth but the next key isn't, because there's an angle there setting T=1 for the 3rd key just flattens it out.

This isn't what Tension is in other curves AFAIK

I just need to wrap my head around what is happening because the motion is all wrong.



Kevin Kipper

Hi Paul,

As a long-time Lightwave user I'm very familiar with modifying curves via the TCB controls in its graph editor in order to fine tune animations, so I sympathize with you and appreciate your questions.

The most important thing to understand about Terragen's TCB controls is that for a given keyframe only the curve's outgoing chord is affected.  That is to say, the segment of the curve from the current keyframe to the next keyframe. 

It may also help to think of the TCB values in this way.  The tension value affects the speed the item moves along its path.  The continuity value is how abrupt a change in direction is, i.e. sharp, hard, or smooth, etc.  The Bias value controls the direction along the path through the keyframe, allowing an item to undershoot or overshoot the key.

In the following example images, note how the curve reacts to the TCB values when the current keyframe and next keyframe are either the same value or different values.  (Keyframe values for frames 12 and 24, and frames 26 and 48 are the same).


I'll also post a TCB comparison video in the Animation section.,29782.0.html

Fun with TCB
  • You can select all the keyframes in the animation editor window by clicking once in an empty area of the pane to set the program's focus, then pressing "CTRL A" on your keyboard.
  • You can select multiple keyframes and modify all their TCB values at once.
  • If you require a keyframe to have both an ease in and ease out, you'll need to duplicate the current keyframe one frame later.  For example, if you want to ease into frame 24, and then out of it, you'll need a keyframe at frames 24 and 25 with the same value.  Frame 25's Tension should be set to a positive value in order to ease out from the keyframe.



Really appreciate the reply. I will experiment some more. Good note about it only affecting the outgoing curve, i hadn't picked up on that.

Is there a reason why the curves are done like this and not bezier or similar? This TCB approach just appears to create discontinuities pretty much all the time which really isn't useful for animation. I'm not aware of anything else approaching it in this way (my usual suspects are Nuke, Houdini, Modo, Resolve etc,.)

The sample video is great but only shows from two keys, i suspect if you had a number of keys then these bumps and continuity issues would be quite obvious.

It actually seems safer to keep everything zero and just add lots of keys around curves and areas to shape them so the curve flows naturally through them.

Is this what everyone is doing?


Kevin Kipper

Hey Paul,

I'm not sure what the reasons behind the TCB implementation were at the time the animation module was released, but know that improving the animation module to include better control over curves is on the list of feature improvements.

According to what I've read in the Curve Editor documentation, the approach seems to be to manually add keyframes to the curve.  I realize this is not ideal.

Personally, for animations that are more than a few keyframes, I prefer to create the animation in a third party 3D package, like Lightwave, then export the motion file as a CHAN file, or an FBX. 

My workflow is something like this:
  • Create the animation in Lightwave, and if necessary, bake out the animation to null objects.
  • Check baked keyframes to see if they need Euler rotations fixed, and if so in Lightwave run the RH_Euler_Filter plugin on the item.
  • If exporting to an FBX file, I often delete any unnecessary items from the scene.
  • If exporting to a CHAN file, I can simply select the item in Lightwave and run the script.

In my experience, the CHAN file works flawlessly, while I sometimes have to swap the FBX channels around, i.e. Heading and Pitch, etc.


Hi Kevin,

Thanks again. Well i certainly would put my vote to having a rethink of this! I too am considering having to do path work elsewhere and import - right now it's just not controllable enough for any kind of artist directable result.



I have been using Terragen for 2 weeks now and the title here really hits it.

I have been trying to create a fly throughs featuring moving imported vehicle objs. These have reflection materials so made sence to render all in terragen (which ended looking great too) rather than have to export reflection maps for each frame and re-render.

I ended up adding many keyframes with 0,0,0 settings. So same conclusion after many headaches.

For anyone coming here in the future. I suggest adding more than you really need while drafting out to save effort while making revisions.

I think having better curve control would be a very worthwhile update.