PDA

View Full Version : Bezier spatial curves tied to temporal ones?



Sebasvideo
01-30-2014, 12:10 AM
This is obviously a beginner question, but with the mess of manuals and addendums I couldn't find much about it.

I'm doing a simple camera animation for one of the sample projects in the 11.5 content, a scene called HDRI Spheres, and I wanted to use spatial bezier curves to avoid unnecessary extra keyframing. However I'm find an odd behavior I haven't seen in any program. I see the camera path in the viewport, but I can't do anything with it in there. On top view, clicking right on the plus sign simply selects the object behind it, which is the floor.

So I can't find a way to apply a spatial bezier curve from the viewport, but the interesting thing is that if I set bezier curves in the graph editor, which is supposed to be only temporal, it also sets spatial curves for the selected keyframes. As I'm changing the bezier curve on the graph editor, I can see the spatial curve changing in the viewport.

This is really bizarre, and I'm sure there has to be a way to untangle the two, because all the TV shows and things I've seen over the years made in Lightwave would look really weird if the two types of curves were directly tied to each other. I imagine there may be some situation where it may be useful to somebody, but I can't think of any.

Either way, how do I disable this, and how can I edit the spatial curve in the viewport?

Thanks

meshpig
01-30-2014, 01:43 AM
I think you might be confusing the graph editor's "temporal" splines with animation paths. Spline Control is the 11x tool for such things but it no longer requires a curve object.

raw-m
01-30-2014, 03:53 AM
It's been a real pain in LW before Spline Control. If you already have your path mapped how you want it an alternative maybe to add a null and copy your Cameras motion to it, then on the Camera add DP Kit's Nodal Motion and point it to the null. The scalar inputs will give you a nice smooth path along the path.

RebelHill
01-30-2014, 06:32 AM
There's no such thing here as a spatial curve vs a temporal one.

Curves in the graph editor represent the position/rotation of an item against time... that's it. As has been mentioned, you can use spline control... where the Z axis represents distance traveled along the spline, thus the rate of change you key/curve on that Z axis becomes the speed along the spline path.

Sebasvideo
01-30-2014, 07:53 AM
I think you might be confusing the graph editor's "temporal" splines with animation paths. Spline Control is the 11x tool for such things but it no longer requires a curve object.

No, that's my point, I'm not confusing them. One thing is a temporal curve, as they are in the graph editor, and a different one is a spatial curve, which you modify to make the keyframed object, camera, etc move along the animation path in different ways, so if you want the camera to travel from point A to B in a rather circular motion, you modify the bezier curves on the viewport. That's the way it works in most applications.

To illustrate my point I took a couple of screenshots. In the first one, I set all the keyframes to linear just to make it easier, so you can see they are linear in the graph editor and the animation path is also linear, which got that way right after I made the keyframes linear in the graph editor:

119730

Then I selected the channel Camera Position Z, converted the first two keyframes to bezier and extended the handles. That is obviously intended to modify motion speed, it starts slowly, speeds up and then slows down again before arriving to the second keyframe. The problem here is that at the same time that I'm modifying the temporal curves, the spatial curves change along with it, which means they are linked:

119729

This is a really odd behavior. In no program I ever used, even in After Effects, keyframe animation behaves this way. There's a clear difference between a temporal curve and a spatial curve. Reading the other replies I would think Lightwave is designed with these linked curves, but it doesn't make any sense to me. Converting these two keyframes to TCB Splines doesn't make it much different, in fact it gives me less control, because these splines can't be extended to make for smoother ins and outs. But the thing is with TCB Splines, the temporal curves still affect the spatial ones:

119733

As for raw-m's suggestion, I'm trying to find a way that is LW native, not through the help of a plugin, because this is something that every other program I used has. I'm trying to learn more Lightwave to determine whether to keep it or sell it, but if in Lightwave spatial curves are tied to temporal ones, that's it for me. But I really hope they're not because it just doesn't make any sense.

RebelHill
01-30-2014, 08:00 AM
One thing is a temporal curve, as they are in the graph editor, and a different one is a spatial curve,... That's the way it works in most applications.

Its the same as LW in maya max, si and mb... motion channel curves are spatial, drawn against time. Thats all.

Sebasvideo
01-30-2014, 08:20 AM
Its the same as LW in maya max, si and mb... motion channel curves are spatial, drawn against time. Thats all.

I don't get this. If in LW, Maya, etc, temporal curves were tied to spatial ones, almost every movie and TV show with CGI I've seen in the past ten years or more would look really weird. Let's say you're animating a car along a street. The car is stopped and you need it to go straight and then stop again, but obviously the car doesn't start going at 35 mph all of a sudden, it starts slowly and builds up speed. It also doesn't go from 35 mph to 0 in one frame, it stops gradually. So you position the car at point A, then move the slider to let's say thirty seconds later and then move the car object to wherever you want to position it. Then in the graph editor you set the two keyframes to bezier and extend the curves so the car starts slowly and gradually builds up speed to get to 35 mph and then modify the curve in the second keyframe to have it stop gradually. However, spatially, the car needs to move in a linear way from point A to B. But the way it works in LW when you modified the handles for the temporal curves, the spatial ones also got modified, which means that the car will not travel in a linear way, but it will make a weird curve at the beginning, travel diagonally along the street and then make another weird curve as it gets to the end.

I hope I explained this in a clear way. I'm sure this can't be this way. I've seen tons of movies and TV shows with CGI and I can see bezier curves applied to motion, but they don't affect the motion path at all.

Mastoy
01-30-2014, 08:27 AM
You cannot control the handles of a motion path (even if it is set as "Bezier" in the graph editor) in the viewport. This is how Lightwave works.
The closest thing to such a workflow is the path tool (Ctrl + y), it lets you move the keyframes of the selected object directly in the viewport, but you can't tweak the motion with the usual bezier handles, they're just not there.

pinkmouse
01-30-2014, 08:27 AM
I think you're getting confused. There is no such thing as temporal or spacial curves. The curve you see in the graph editor is exactly the same as the curve in the layout window, just split into it's constituent parts, and shown relative to frame number. It's the same thing.

Sebasvideo
01-30-2014, 08:32 AM
I think you're getting confused. There is no such thing as temporal or spacial curves. The curve you see in the graph editor is exactly the same as the curve in the layout window, just split into it's constituent parts, and shown relative to frame number. It's the same thing.

You mean there is no such thing in Lightwave or in any application? Because I can tell you that at least in Modo and in After Effects you do have a clear difference between spatial curves or temporal ones. Please read my post above the car animation, I'm sure this can't be this way, maybe I'm not being clear enough.

RebelHill
01-30-2014, 08:46 AM
The car is stopped and you need it to go straight and then stop again, but obviously the car doesn't start going at 35 mph all of a sudden, it starts slowly and builds up speed. It also doesn't go from 35 mph to 0 in one frame, it stops gradually.

Lets assume we're working at a rate of 1 fps for this... (and the car is only moving forward on the Z).

At 0... stopped.
At 1... is at a few cm on Z. (currently moving at a speed of a few cm per sec).
At 2... we have it now a couple hundred cm on Z (its reached 100 and some odd m/s speed).
At 3... Its over 1m on Z (its now several hundred cm per sec).
etc, etc.

The speed at which something is travelling is just the result of how much space in moves through in how much time.... If you change somethings spatial position by ever increasing amounts with a fixed time step, u get acceleration... If the amount of positional change that occurs between any 1 time and the next is the same for every time step, you have constant speed. Its that simple. There is no separation between a space curve and a time curve, because the 2 are plotted AGAINST one another... Your motion curves (for each channel) represent transformation on a space time PLANE.

What you're talking about is more along the lines of the already mentioned spline control...

You have 1 spline (which is controlled in the viewport, NOT the graph, and which is distinct and different from the items motion path)... This sits as a "path" through space (of itself... internally) has no time axis. You can then attach an object to this path, ad animate its distance traveled along that path WITH time.

pinkmouse
01-30-2014, 08:51 AM
Is this the kind of thing you mean?

119738

Sebasvideo
01-30-2014, 09:00 AM
There is no separation between a space curve and a time curve, because the 2 are plotted AGAINST one another... Your motion curves (for each channel) represent transformation on a space time PLANE.

What you're talking about is more along the lines of the already mentioned spline control...

You have 1 spline (which is controlled in the viewport, NOT the graph, and which is distinct and different from the items motion path)... This sits as a "path" through space (of itself... internally) has no time axis. You can then attach an object to this path, ad animate its distance traveled along that path WITH time.

I think I may know what you mean here, that the longer you extend the bezier curve, it will somehow modify space because the object will be at a certain point at a different time depending on how much you extend the curve. If the handle is very short, it will be in a certain space faster than if you extend the handle much farther, in which case it's going to take longer to get to the same point in space. This is not a problem it's how it's intended to be. However, if you see my set of screenshots above, you'll see that modifying the handles for the first frame of the camera doesn't mean that the camera will take longer to get to the same point in space; it means that the camera will travel on a different path. That's my point, this doesn't make an ounce of sense, setting an object to travel at variable speeds between keyframe A and B shouldn't mean that the object is going to zig zag as is clearly the case in my camera animation in the screenshot above.

dee
01-30-2014, 09:07 AM
Because I can tell you that at least in Modo and in After Effects you do have a clear difference between spatial curves or temporal ones.

It works the same in After Effects, but here you have an additional Speed Graph. If you click Separate Dimensions in the graph editor and modify just one channel you get the same effect as in LW.

Mastoy
01-30-2014, 09:12 AM
I think it also has something to do with Coordinate system : The curves in the graph editor are always in world space.
When you tweak the Position.Z curve of your camera in the graph editor, you do it in the world space, not in the camera space. So you can't have a ease-in/ease-out movement unless you tweak ALL the curves (X, Y and Z)

Sebasvideo
01-30-2014, 09:15 AM
Is this the kind of thing you mean?

119738

Exactly! In your scene, if I play with the bezier handles, it will change how fast or how slow it starts going, it will not change the motion path. It will not make it slide to the sides or anything, the car will keep going in a straight line. The only way that I can modify the path is by moving the handle downwards to where it's shaped like a U, which makes the car go backwards before speeding up, but this is the same for every other app.

So here is my question, why is it that in the HDRI sphere's project when I move the handles for the camera, it adds a curve to the motion path as well?

RebelHill
01-30-2014, 09:17 AM
you'll see that modifying the handles for the first frame of the camera doesn't mean that the camera will take longer to get to the same point in space
No... why would it?? Your TIMELINE represents time, and your KEYFRAMES represent positions at given times. If you want to change the amount of time it take an item to move between 2 positions, the you need to change the keyframes TIME... not the motion taken between keyframes.


it means that the camera will travel on a different path.
Yes... because when you plot a graph of position vs time... Changes to the curve on the position axis obviously affect position... changes on the time axis change the time.

Mastoy
01-30-2014, 09:18 AM
Exactly! In your scene, if I play with the bezier handles, it will change how fast or how slow it starts going, it will not change the motion path. It will not make it slide to the sides or anything, the car will keep going in a straight line. The only way that I can modify the path is by moving the handle downwards to where it's shaped like a U, which makes the car go backwards before speeding up, but this is the same for every other app.

So here is my question, why is it that in the HDRI sphere's project when I move the handles for the camera, it adds a curve to the motion path as well?

See my previous post : the example scene of Pinkmouse works because the car is heading to the World Z+ axis. In this case, the world space and the car space are the same.

Sebasvideo
01-30-2014, 09:22 AM
It works the same in After Effects, but here you have an additional Speed Graph. If you click Separate Dimensions in the graph editor and modify just one channel you get the same effect as in LW.

It most definitely does not, I did a lot of projects in After Effects and I can tell you without a doubt that the two are not tied. In fact, right clicking on any keyframe will show you an item called Keyframe Interpolation, and when you choose it you get a small dialog that has three settings, the first two being "Temporal Interpolation" and "Spatial Interpolation". When you go into the AE graph editor, you modify the temporal interpolation, and in the composition window you can modify the spatial interpolation, and the spatial curves can be totally different from the temporal ones in the graph editor. Which is the way it's supposed to be, modifying one shouldn't affect the other. Like I said, you may want an object or the camera to travel in a straight line, but start and stop slowly.

pinkmouse
01-30-2014, 09:34 AM
Is this what you mean?

I've added a badly animated camera, (with its own curves in the graph editor).

Sebasvideo
01-30-2014, 09:35 AM
No... why would it?? Your TIMELINE represents time, and your KEYFRAMES represent positions at given times. If you want to change the amount of time it take an item to move between 2 positions, the you need to change the keyframes TIME... not the motion taken between keyframes.

Yes... because when you plot a graph of position vs time... Changes to the curve on the position axis obviously affect position... changes on the time axis change the time.


Yes, absolutely, that's the way it works. LOL It seems that we are speaking in completely different languages.

JoePoe
01-30-2014, 09:46 AM
If you want a straight line, your Beziers in X and Z need to match.
(or at least compensate for each other).

http://forums.newtek.com/attachment.php?attachmentid=119743&d=1391100300

dee
01-30-2014, 09:50 AM
When you go into the AE graph editor, you modify the temporal interpolation, and in the composition window you can modify the spatial interpolation, and the spatial curves can be totally different from the temporal ones in the graph editor.

That's what I meant with " but here you have an additional Speed Graph.". The Speed Graph controls the temporal interpolation and the Value Graph contrlos the spatial interpolation. In LW there's only the spatial interpolation built in, you can get temporal interpolation with DPKit mentioned in post #3.

Sebasvideo
01-30-2014, 09:50 AM
See my previous post : the example scene of Pinkmouse works because the car is heading to the World Z+ axis. In this case, the world space and the car space are the same.

Thanks Mastoy, you solved the riddle. I knew this couldn't be so weird. Like you said, in Pinkmouse's scene the car is moving in the Z axis. What I didn't realize immediately was that in my HDRI Sphere scene, the camera was moving diagonally, therefore in two axis (axises?), X and Z, and therefore, moving or extending only one handle in the Z channel was going to change the motion path because I wasn't changing the X handle for that keyframe at the same time. If I select both channels in the graph editor, and I extend the two handles to exactly the same length, then the camera still travels in a linear fashion but diagonally.

I knew I was doing something wrong or skipping a setting somewhere. Thanks everybody for your help :)

Sebasvideo
01-30-2014, 09:53 AM
If you want a straight line, your Beziers in X and Z need to match.

http://forums.newtek.com/attachment.php?attachmentid=119743&d=1391100300

Exactly! I guess I realized the same thing as you were posting this, thanks for your help anyway.

Sebasvideo
01-30-2014, 09:56 AM
In LW there's only the spatial interpolation built in, you can get temporal interpolation with DPKit mentioned in post #3.

What do you mean? The graph editor has temporal interpolation. In Pinkmouse's scene with the car, if I extend the handles in the first keyframe horizontally, then in the middle keyframe really long, and in the last keyframe extend it but not so much, the car will start slowly, then speed up, slow down to a crawl, then speed up again, then slow down gradually before getting to the last keyframe. That's temporal interpolation, no DP kit. Did I miss something?

JoePoe
01-30-2014, 10:00 AM
No problem.

The "matching" is only really good for a 45 deg line.
I added a disclaimer in my post that for other angles the beziers need to compensate for each other and not necessarily be the same.

Different angle in image below.... beziers at 0,0 are different lengths.

dee
01-30-2014, 10:10 AM
What do you mean? The graph editor has temporal interpolation. In Pinkmouse's scene with the car, if I extend the handles in the first keyframe horizontally, then in the middle keyframe really long, and in the last keyframe extend it but not so much, the car will start slowly, then speed up, slow down to a crawl, then speed up again, then slow down gradually before getting to the last keyframe. That's temporal interpolation, no DP kit. Did I miss something?

With the DPKit-solution you can have a extra curve for speed, which IMHO is better for more complex pathes.

Sebasvideo
01-30-2014, 11:16 AM
With the DPKit-solution you can have a extra curve for speed, which IMHO is better for more complex pathes.

When you say extra curve for speed, you mean in the speed graph editor? So basically there is no way to adjust handles directly in the viewport? I'm getting how it works now, it just seems pointlessly complicated as opposed to Modo and After Effects. I want bezier handles to adjust motion in time, and then motion handles to adjust the space through which the object or camera goes.

meshpig
01-31-2014, 01:09 AM
You mean there is no such thing in Lightwave or in any application? Because I can tell you that at least in Modo and in After Effects you do have a clear difference between spatial curves or temporal ones. Please read my post above the car animation, I'm sure this can't be this way, maybe I'm not being clear enough.

Yeah but they're Paths in the 2D sense where "spatial" is a relative term. Anyway, Spline Control presents fewer problems.

Sebasvideo
01-31-2014, 06:13 AM
Yeah but they're Paths in the 2D sense where "spatial" is a relative term. Anyway, Spline Control presents fewer problems.

Splines might be OK for some things but not for everything, but still, splines are only in the graph editor, not on the viewport.

tischbein3
01-31-2014, 10:12 AM
splines are only in the graph editor, not on the viewport.
Makes me wonder how hard it would be to actually create a tool wich does it...

Sebasvideo
01-31-2014, 01:35 PM
Makes me wonder how hard it would be to actually create a tool wich does it...

The problem is that this should be part of the program. I can't believe that Modo is the only 3D program that has simple spatial bezier handles that you can modify from the viewport. I jus tried a simple 3 keyframe camera movement that would have taken me a minute in Modo or even After Effects, which is a really crippled program for anything 3D, but still has spatial keyframes with bezier handles that you can modify directly in the working space. In Lightwave I get a linear path, which is fine, but then to make the middle keyframe smooth I have to go into the graph editor and modify channels separately and start messing around until I get the result I want.

It should be much simpler than that, like it is at least in Modo and After Effects, temporal keyframes in the graph editor, spatial keyframes in the viewport. Lightwave has a Path Tool, and the only thing you can do with it is move keyframes around. Nobody at Newtek thought that it might be a good idea to add the capability of modifying bezier handles with it?

JoePoe
01-31-2014, 01:53 PM
The problem is that this should be part of the program. I can't believe that Modo is the only 3D program that has simple spatial bezier handles that you can modify from the viewport. I jus tried a simple 3 keyframe camera movement that would have taken me a minute in Modo or even After Effects, which is a really crippled program for anything 3D, but still has spatial keyframes with bezier handles that you can modify directly in the working space. In Lightwave I get a linear path, which is fine, but then to make the middle keyframe smooth I have to go into the graph editor and modify channels separately and start messing around until I get the result I want.

It should be much simpler than that, like it is at least in Modo and After Effects, temporal keyframes in the graph editor, spatial keyframes in the viewport. Lightwave has a Path Tool, and the only thing you can do with it is move keyframes around. Nobody at Newtek thought that it might be a good idea to add the capability of modifying bezier handles with it?

SabasV,

I think LW is closer to what you are wishing for than you may realize.
If you use the new spline control in Motion Properties you have the spacial in-viewport control (yes no Bezier handles but you can really push things around easily.... watch Jen (http://www.youtube.com/watch?v=kHAtN-gpyh8)).
Once you have spline control doing its thing, then the Z channel in the graph editor becomes a temporal control, with Bezier.

So it's just like what you are describing in Modo. The only difference is the no handle, but equally flexible, spline manipulation in the 3D viewport itself.

richhelvey
01-31-2014, 01:53 PM
Note that in After Effects, at least, you CANNOT use bezier splines to control the spatial keyframes in the viewport if you've separated the dimensions, the way Lightwave works.

Sebasvideo
01-31-2014, 02:37 PM
SabasV,

I think LW is closer to what you are wishing for than you may realize.
If you use the new spline control in Motion Properties you have the spacial in-viewport control (yes no Bezier handles but you can really push things around easily.... watch Jen (http://www.youtube.com/watch?v=kHAtN-gpyh8)).
Once you have spline control doing its thing, then the Z channel in the graph editor becomes a temporal control, with Bezier.

So it's just like what you are describing in Modo. The only difference is the no handle, but equally flexible, spline manipulation in the 3D viewport itself.

I hope so, I'll watch that video in a bit and see what it's like.

Sebasvideo
01-31-2014, 02:40 PM
Note that in After Effects, at least, you CANNOT use bezier splines to control the spatial keyframes in the viewport if you've separated the dimensions, the way Lightwave works.

I never had to separate dimensions in After Effects. Granted, doing anything 3D in AE is just awful, even more so if you have to work with Element 3D, which is a superb plugin, but Adobe doesn't give 3rd party developers access to have their plugins interact well with their 3D environment, so developers have their hands tied and have to work with pseudo 3D.

JoePoe
01-31-2014, 03:04 PM
I hope so, I'll watch that video in a bit and see what it's like.

It can be used for so much more too. This one (https://www.lightwave3d.com/learn/article/siggraph-2013-lightwave-116-spline-control-live-demo/) shows quite a bit more of it's capabilities. :thumbsup:

Sebasvideo
01-31-2014, 05:43 PM
It can be used for so much more too. This one (https://www.lightwave3d.com/learn/article/siggraph-2013-lightwave-116-spline-control-live-demo/) shows quite a bit more of it's capabilities. :thumbsup:

Having watched the short video and part of the other one, I'll tell you this: it is a really cool feature, and I'm trying to think of a creative exercise to use it on. However, I would prefer to also have the bezier handles on the viewport like Modo and AE, and I assume several other programs. I'm not saying "instead of" this spline method, because it certainly has its advantages, but to have both.

When I saw the first video it got me wondering if maybe this could be used to animate the trajectory of a car, especially turning a corner the right way, but it's a different topic so I'll post another thread about that.

Sebasvideo
01-31-2014, 08:04 PM
The one thing I'm having trouble grasping about the spline control is keyframing the rotation of the camera. For example, in the CameraFollowsSplineControlTrack.lws project from the 11.6 content, the camera follows that almost circular path, but it's also always pointing in the direction of the path. So if instead I want it to keyframe a rotation, in the Motion options I set all the heading and pitch rotation to Key Frames, since Bank was already set that way.

I'm trying to make the camera roughly look towards the center of the circle. So for the first keyframe I set the camera to 90. I move the cursor to frame 58, where the camera is at Node 3, roughly one quarter of the way. So I want to keyframe the H channel to 180. As soon as I start moving the H rotation control at the bottom left corner, suddenly the camera moves back in the path about 0.80 meters. So now, the frame at which the camera passes by Node 3 is 79. So I keep moving the cursor and get to frame 97, where the camera is around node 5. My intention then would be to turn it to 270. Well, as soon as I start moving the H rotation to get to 270, the camera jumps back all the way to almost node 1.

Now if I start playing, the camera gets 2.5831 m along the path, then goes back to 111.5932mm while rotating in the direction I keyframed (except that it is on the other side of the path) and from frame 97 to 120 it travels really fast along the whole path.

So there must be something I'm missing here, can someone give me a small tip of what it might be? I know another solution would be to use the target feature like the other camera project in the content, but I'm curious as to why if I want to keyframe rotation the camera suddenly moves back in the path.

dee
02-01-2014, 04:51 AM
Because it creates positional keyframes which destroys the motion. So you need to open Graph Editor and delete at least the z keyframes between the first and last. You could work with autokey set to Modified but even then the camera jumps to anothe position when rotating. Better have a look at nodal motion.

And do yourself a favor, don't expect things to work in LW as in other software. ;)