Showing posts with label homework. Show all posts
Showing posts with label homework. Show all posts

Friday, 16 March 2012

Shuttlecock drop test V1

Poking around on myUCA, I found the reference videos that were very kindly posted up. My own set of shuttlecocks have actually arrived now, so I'll be able to shoot my own footage to use, but I thought it might be helpful to practice animating a basic drop of a shuttlecock before I get into throwing them around.


Analysing the video, I was able to break it down somewhat and figure out the main timings:


It's actually quite a tricky one to plot in thumbnails. I got a bit confused somewhere along the way - started out alright with the first graph by just showing a few of the poses and a few scribbled notes, but the second graph started to get a bit confusing where I started trying to get in more of the exact motion. I started by sketching it all in one place then halfway through started spacing it out (mostly cause I didn't have enough room on the left. Didn't occur to just sketch it going in the opposite direction) - it's fine for purposes of checking the poses but it doesn't make much sense in terms of what the shuttlecock is supposed to be doing. I should have refined it further and made a clearer, more final chart that makes sense to look at before trying to animate. Perhaps that's where I went wrong.

But anyway, looking at the video reference, the shuttlecock drops very quickly to start (weighed down by the tip), taking about 9 - 10 frames to fall. It hits the ground, tip-first and bounces back up again, slowly sagging to the side as it does. It doesn't bounce very high, and it pauses for a couple of frames but continues rotating slightly before it starts to fall. It lands on its side and the tip strikes the table/ground which causes it to bounce back up. The feathers of the shuttlecock hit the table as well which knocks the tip back forward - so you get a sort of wave effect as it rises and falls.

Bearing all this in mind, here's a first attempt:


This is mostly just a first draft, nowhere near complete yet - as always, little more than keyframes with no fcurve or timing alteration. That will all come once I've got the basis of the motion sorted out.


Just to review what I've got so far, the drop itself as the shuttlecock enters the screen is far too slow. It's only 10 frames, as per the diagram, but I don't think I really dropped it from high enough. If I increase its starting height then it should speed it up quite nicely.

It doesn't really bounce high enough after striking the ground, making it seem quite heavy. All I'll need to do is just increase the height of its peak and it should be a bit better.

The last problem is the bounce at the very end as it comes to a stop. I don't know if it's the timing, or some mistake in the keyframes, or even if it just looks weird because it's bouncing on the spot - but it seems to be a bit of a kink as it bounces off the table. I really can't put my finger on it - it's weird, when I step through it frame by frame, it actually looks fine, so I wonder if it's just in the spacing or timing?

After tweaking that, I plan to spread things out so that the shuttlecock bounces across the floor rather than up and down in a straight line - see if that helps things any - and then start looking at altering the curves and timing to give the shuttlecock a sense of weight. In accordance with the video I'd like to delay the shuttlecock at the peaks of each bounce for just a couple of frames and keep it rotating as it hangs in the air.




The process of animating the shuttlecock so far was pretty simple. Using the reference video posted on myUCA, I simply went through frame-by-frame, identifying key poses for the shuttlecock and simply replicating them within Softimage using the rig controls.



The shuttlecock rig is quite nice because it only has two controls - rotation and position - but I do find it very difficult only being able to view keyframes for one set of parameters at a time. This makes offsetting and re-timing things quite tricky as I need to keep flipping back and forth between each rig control to check the location of other keyframes.

I think the biggest mistakes I made in terms of workflow were not planning properly and also animating the shuttlecock bouncing in place rather than mimicking the motion in the video and having it go across the table. You'd think I'd have learned from the bouncing ball exercise that that's a bad idea!...

Nonetheless, I'll give it another shot!

Sunday, 26 February 2012

Post-tutorial wall bounce amendments

Following Jon's (very helpful) critique on Friday I amended my first wall jump exercise!

We both agreed that my ball hit the peak of its stretch on the drop a little too early, and he also pointed out that my ball remained in the squashed position once it began the jump, which looked a bit weird — it needed to stretch as soon as it left the ground. There was a similar issue with the landing — the ball squashed before it even hit the ground.


My first amendment was better, but the ball was still stretched on the drop a little too early, and Jon commented that he felt the drop itself was perhaps a bit slow. I do think that the speed of the jump and fall is a little too uniform, so on my next amendment I made an attempt to speed it up slightly by reducing the number of frames between the highest and lowest points and slightly altering the fcurve.


The faster speed seems better to me, but I think the stretch is still too early! It also seems to me like the ball comes down a little too quickly — I may try increasing the ball's delay at the peak of its jump, or just slow down the beginning of the drop a little.

I also went back and tried to correct the same squashing/stretching issues in my other bounce, the one with multiple jumps:


Something still seems at odds to me about this one, but I'm not quite sure what it is exactly. I think that maybe the ball hangs in the air a little too long on the first (and smallest) bounce, or maybe that it doesn't hold its initial downwards/preparatory squash long enough. The ball's squashes on each impact with the ground are also quite quick/sudden, so maybe I need to look at holding the squashes on-screen for just a little bit longer?

Thursday, 23 February 2012

Softimage - interpolation experimentation V2

A slightly more complex experimentation this time. I wanted to try and have the ball move in a semi-realistic fashion down a steep slope, rolling along the bottom of the curve and up the other side. Almost like a skate ramp - the ball would of course lose momentum as it begins the steep climb, so it probably wouldn't quite make it to the top before it rolls back down again.

Maybe viewing the video will make more sense...!


Looking a little shoddy thus far, but I think I can tweak it to fix it up a little. I cheated a little on animating the ball itself, but seeing as this is mostly an fcurve exercise I think I can get away with it! I drew the path using the bezier knot tool as described in one of my earlier posts. I tried to keep the angle of the slopes relatively consistent so that it would have an equal distance to travel on both sides. I then just set the curve I'd drawn as the ball's motion path by selecting the ball and using Create > Path > Set Path. The ball then locked itself to the first bezier knot point and the animation is automatically set to follow the path using a splined interpolation - a relatively lifeless speed and not at all realistic. 

Opening the animation editor reveals that the ball's speed and motion is controlled by fcurves! (I didn't screenshot it, sorry!) So I set to work tweaking and messing around with it.

The curves for this one are a little convulted, but I'll do my best to try and explain them...


The first thing I did was activate the animation ghosting for the ball so I could get a clearer picture of how my timing was without needing to play it back every time. This allowed me to much more accurately tweak my curves as I was able to see immediately after adjusting them how it would effect the animation.

Originally, the ball was a little too 'sharp' on the curve at the bottom. It followed the shape almost exactly so I needed to round it out a little bit so it didn't jump too sharply on the corner. I simply added a couple of keyframes either side of the lowest position at the bottom of the path and dropped the Y position a little, so that it remained on the bottom of the curve a little longer.



Starting from the first keyframe, I wanted it to slowly accelerate out of the highest point and pick up speed as it dropped down the slope, hence the sudden spike in the curve. I wanted it to keep a continuous speed as it turned the corner and uses the energy gathered from the sharp drop to propel itself up the other side. Gravity would be pulling down on the ball all the while, causing it to gradually drop in speed as it nears the top of the slope, eventually pulling it back down and causing it to roll back up the other side.

There's a very wide curve on the top keyframe that keeps the ball at its current level before gradually beginning its descent which rapidly escalates into a steep drop, increasing the speed of the ball. 

I think that I've sort of got the effect I was going for - it's getting there, at least. I think that the ball probably hangs in the air too long at either side of the curve, so I need to reduce the width of that curve so that it drops a little sooner. This might also allow me more time to adjust the acceleration so that the increase in speed is a little more gradual. I think that it gets too fast too soon as it falls from the right side. Conversely, I think it's too slow in picking up speed on the initial drop from the left side - simply shifting the width of the curve so that it's a little more equal on both sides should rectify that.

I also think that it stops too suddenly as it returns to the starting position, almost as if it's hitting an invisible ceiling. I'd like to add a little overshoot to that, so that it flies up a little further before dropping back down. Tweaking the curve so that it extends slightly below the final keyframe should give me that result.

Hopefully that all makes sense...!

Softimage - fcurve interpolation experimentation

More experimentation with interpolation and fcurves. Another set of three balls, each with the exact same keyframes, but with different timing as defined by their fcurves.


(Magical looping Vimeo version coming as soon as it gets processed!)


The first ball is a fairly standard example of slow in/out - the ball starts at a high speed and rushes out of the starting pose, gradually losing speed and slows in to the ending pose. It slowly retreats back out of this pose and slowly picks up a bit of speed as it makes its way back across the scren.


Looking at the animation ghosts for this ball reveals the movement in more detail. The spacing between each frame reveals the ball's gradual deceleration into the end pose. I've found that looking at the ghosts as I'm working has helped me to get a better grip on how the slope of the curve is altering the timing without needing to play it back.


The second ball appears almost cautious as it very slowly creeps out of the starting position then suddenly rushes forward to the ending position, leaping back and inching slowly back to the start. The movement is indicated by the curve's very gradual incline for the first few frames, suddenly spiking upwards as it draws towards the right side of the screen. It comes back almost as fast as it entered, slowing down again as it reaches the starting position.


The third ball is, again, a fairly standard slow in/out. I just wanted to play around with the unified slope orientation option mostly - it looks almost identical to the first ball, but the difference speed at either end is slightly less extreme and there is a little more of cushioning between the start and end points.

Softimage - fcurve interpolation types

In an attempt to better understand the fcurve editor, I'm going to be doing some far more basic examples of how the curves effect the timing/speed. To start with, looking at Softimage's preset interpolation types:


The three balls all have keyframes set at the same points. Although they reach the start and end points at exactly the same time, the way in which they reach those points is very different. In other words, the speed is the same, but the timing is different.

The first ball uses the default "spline" interpolation. Each keyframe will be connected by a smooth curve or "spline" (tried looking up what a spline actually is, but it made my brain hurt), eases into or out of each keyframe, creating very smooth and organic animation.


The curve shows how the ball gradually accelerates out of the starting position, then gradually slows into the second keyframe (the highest point on the graph represents the furthest distance travelled). It then slows out of that pose and comes back in the opposite direction, easing back into the starting position.


The second ball uses the "linear" interpolation type, which as the name suggests is a constant rate of motion with no "cushioning." Objects with a linear interpolation will have their keyframes connected by straight lines, terminating in sharp points at each keyframe, representing a constant speed and sudden changes at each into and out of each keyframe. The result is very mechanical and robotic, potentially useful in animating cameras or lights where such organic motion as offered by spline interpolation isn't always needed.

This ball's rate of motion is steady and unchanging. It starts and ends at exactly the same speed with no acceleration at all. The change of direction is very sudden and sharp with no cushioning from one keyframe to the next.


The last ball uses a "constant" or "stepped" interpolation which keeps the keyframe's current values (position, rotation etc) stationary until the point of change, at which point it will "pop" or "snap" straight to the next one with no in-between movement. This is primarily useful for blocking out the keyframes of an animation without any pesky inbetweens, making it easier to check that the flow from pose to pose is correct. It could also be useful for camera or lighting cuts!

You can see from the graph that the ball's x position remains at the same level until frame 25, where it suddenly snaps upwards to the far right of the screen (highest point on the graph). Again, it remains in this position until frame 25, where it suddenly pops back to the lowest point on the graph - the starting position.

It's mostly the spline interpolation I'm interested in at this point. I certainly understand the principle of how it works, I think it's just going to take a lot more practice to get my brain used to interpreting the curves as speed and movement. I'm going to use the same setup as above - three balls moving at the same rate - but altering the fcurve for each one so that I can better compare the results and, hopefully, start to understand how certain timings "look" as a curve.


Saturday, 18 February 2012

Fcurve experimentation - ramp roll V1


Setting myself a couple of little exercises to try and get to grips with Softimage's keyframes and fcurve editor. I decided to try what I thought would be a fairly simple task - get a ball rolling down a ramp before slowing to a halt. It was trickier than I thought.

I didn't know of any better way to get the ball to roll down the ramp other than to manually keyframe it every few frames to ensure it stuck to the surface of the ramp - if left to its down devices, Softimage would have simply allowed the ball to take the most direct route to the next keyframe - levitating the ball away from the ramp, or cutting straight through it, etc. This caused a few problems with the fcurve editor as each new keyframe places a new point on the curve, so adjusting the angle became a case of having to ensure that the curve ran continuously through each point. That meant a lot of handle adjusting and balancing.

It's looking really dodgy so far. I had trouble figuring out how to get the ball to accelerate on the ramp and slow to a stop at the end - it sort of does that, but it stops far too suddenly and the ball speeds up upon exiting the ramp. It should be easy enough to fix, once I've played with the curves a little more.

Wall bounce homework V2, take 3


Added some more bounces towards the end as the ball loses its energy, also tweaked the fcurves in a similar fashion to the last exercise to give the impression that the ball is throwing itself upwards with more force with each successive bounce.

I'd foolishly only been viewing it in RT playback whilst I was tweaking the curves, so now seeing it at true speed in an external video player has flagged up a lot of issues with the timing. Looks to me like the ball hangs in the air just a bit too long and it drops a bit too slowly as well. I could either re-adjust the overall timing using a region, as before, or I could slightly alter the fcurves to rectify this. I'll probably experiment both ways and see what happens!

Just for added excitement, here's a quick snap of what my curves for the y position looked like:


Looking at the curves I can definitely see that the ball lags too long on the first bounce. It's a very wide curve, so I'll shrink that one down just a bit and see about adjusting the slope of the ball's descents from each jump.

Wall bounce homework V2, take 2


Slight alterations made to the first bounce. In addition to increasing the height of its peak, I increased the time it took to reach that point by a couple of frames. This gives it enough time to reach the peak and start its descent with less of the sudden snap that it had before.

I think it's looking a little better, but hopefully some timing tweaks made by the fcurve will improve it even more.

Friday, 17 February 2012

Wall jump homework V1, take 2

I've dived once more into the terrifying waters of the fcurve editor and emerged very wet, very cold, and not necessarily any braver for it!

I attempted to alter the function curves to add a little more personality to the ball's jump, as well as re-timing a few of the keyframes using the dope sheet, in accordance with the changes made by the fcurve editor.

It took me a fair bit of tinkering to figure out how to alter the curves to best effect, but I think I finally have something fairly decent:


The overall result gives the impression of a ball leaping into the air to catch a glimpse over a very high wall.

The first thing I did was speed the whole thing up by using the dope sheet's "region select" tool to squash all the keyframes together a little more.


With the tool selected, simply drag a selection over the keyframes you want to re-time.


Then, holding shift, drag the handles on either side of the region and drag left or right to reposition/re-time all the selected keyframes. I think you can actually reverse keyframes using this tool as well, if you drag the region far enough in the opposite direction!

I reduced the overall duration of the animation from 41 frames to about 35; the result is just slightly faster but it adds a little more energy to the ball's bounce.


Once I was happy with the timing I switched over to the fcurves editor to alter the speed/timing of the ball's jump by adjusting the slope of the y axis' curve. By selecting "isolate curve" under the view menu you can temporarily hide out all the other curves and view only the curves of the selected parameters. Probably not necessary in this case but is tremendously useful if you have a more complex animation with a lot of curves all over the place.


I didn't get screencaps of all my curve alterations (there must have been at least 50 billion) but this was the one I ended up with. 

The large, sweeping arc at the top represents the ball's delay at the peak of the movement. it moves gradually more slowly as it reaches the height of the jump and remains relatively airborne for a few frames before gradually beginning its descent, picking up speed as it nears the ground.

Huh. Typing that out made much more sense than it did as I was trying to understand it in my head.

It's kind of embarrassing how long it took me to figure it out; it's a relatively simple idea and I mostly understand the principle of it, I think it's just a bit deceptively mathematical and my brain is having trouble getting to grips with it. I find that I'm having massive trouble reading these curves and graphs as speed and timing - my brain just won't process it. I think I've managed to whittle it down to a basic understanding of "the steeper the slope, the faster the movement," but when I start thinking about inverted curves I start to get confused again. 

I'm hoping that it will start to get easier and more natural with practice. I've never been mathematically gifted and anything vaguely resembling numbers tends to frazzle my brain more than I care to admit.


Anyway! I then went back to the dope sheet and altered some keyframes in accordance with the new timing of the ball's ascent and descent. I shifted the stretch poses as it rose and dropped a little further along, so that they would reach the peak of their stretch at a slightly later point (giving them enough time to squash into the next pose without appearing too sudden), as well as off-setting the squash at the top of the movement so that it occurred one frame later. The result was a tiny bit of overlap as the ball reaches the height of its jump and the bottom continues upwards to catch up, 'squashing' it at the top of the movement.

I'm still not at all comfortable with my use and understanding of the fcurves. I'm going to start a few more tests and try to get some different results - applying the curves to a variety of personalities/types of bounce etc. should hopefully give me more of an idea as to how the angle and slope of the curves effects the animation.

Thursday, 16 February 2012

Slide homework V3, take 5


And here it is with tweaked timing on the roll across the table. I have nothing else to say about it, other than the fact that this is the angle it looks best at. Viewing it from the front reveals how terrible the rebound off the ring is! So I'm cheating and covering it up.

Slide homework V3, take 4

Still messing around with this one, trying to get that recoil off the ring just right. It's trickier than I thought!

   

It's kind of random, but I ended up looking at the above video for an idea as to how the ball might react on collision with a solid object. It looks like it actually keeps spinning in pretty much the same direction, so I tried to emulate that in the animation:



I'm still finding it quite difficult to get the timing on the rebound just right - the ball always seems to delay right before changing direction and no matter what I do, I can't seem to fix it. This was my best attempt. I guess I'm not quite getting the hang of manipulating keyframes! I did manage to reduce the delay slightly but that caused the ball to shoot off way too fast which I wasn't able to easily fix, given the relatively small amount of frames between the ball's position at the ring and the edge of the table.

I sped up the exit from the slide/entry to the table a bit but now, looking at it, it seems way too fast - a very sudden change in speed from the ball's descent down the slide. I'm going to tweak that once more to try and get a more consistent speed and then call it a day. 

I'm actually a bit more pleased with the rotation of the ball now, though - I had it change direction on the drop to the floor as it bounces away and it seems to have worked fairly nicely. One small success!

Slide homework V3, take 3

Made a brave attempt at altering some of the timings. Most notably the ball drops with significantly more weight than before - it certainly looks more like it's dropping rather than floating! I also attempted some timing adjustments on the exit from the slide, making it a little faster as it flies out the end and hits the table. I'm still not at all happy with the change in direction after hitting the ring - the physics feel totally off to me. I don't even have anything remotely ball-shaped to reference, and clips on Youtube are only so much help!

I've made some minor adjustments to the ball's bounces as it hits the floor as well, manually tweaking a few frames to give a slightly smoother arc. I've sped up each successive drop as well and brought the smaller bounces a little closer together to help give the idea that it's losing energy.


I can't quite seem to put my finger on why the recoil off the ring looks so off. It would certainly help if I had something to reference. I've got a slight feeling it might just be that the change in direction isn't quite sudden enough. It looks as if the ball hits the ring with a fair bit of speed, so it should probably fly off in the other direction a little more suddenly. Think I'm going to have to keep playing around with it.

I have actually added some rotation to the ball as well, but you can't see it owing to a lack of pattern or texture. I captured a version with the wireframe visible so you can actually see the rotation:


I actually prefer it without the rotation if I'm being honest - I think it's a bit distracting, but that might be because the rotation doesn't make any sense. I have absolutely no idea how colliding with the ring would effect (or is it affect?) the rotation of the ball, and as I said I've got nothing to reference. I went with my best guess and tried to just have it change direction to roll in the direction it's moving but that looks pretty clearly wrong to me.

I'd like to try adding a nicer rotation to the drop and bounce, as well as have it slightly teeter over the edge of the table just before it drops. I think in order for that to work I'd need to have a gradual deceleration after it hits the ring, so it approaches the edge a little more slowly.

But hey, it seems to be shaping up at least! 

Wednesday, 15 February 2012

Slide homework V3 update

Little update on the previous animation, I've plotted out the ball's drop from the table. It bounces a little as it rolls away - there's a minute amount of squash as it hits the ground, but I think it still needs a little tweaking. I think the arc of the bounce is getting there but the inbetweens need a little manual tweaking to get it smoothed out.

I rendered out a  couple of angles so you can see it a little better:




Bit of an issue as the ball goes down the slide - as you can see in the side view, it's a little too low and the ball clips through the bottom of the slide. Luckily that's simple enough to fix, just need to adjust the position on some of the frames.

There are a lot of timing problems with the last section - notably as the ball bounces off the ring. It's too slow and moves very uniformly - ideally, I think I need to speed up the ball's entry onto the table and have it knock against the ring with just a little more force. The ball could then lose energy as it rolls towards the edge of the table, pausing as it teeters on the edge, before dropping down. The drop itself also lacks any speed or weight - I've not yet adjusted the timing at all, so that will be my next task. After adjusting the timing on the drop I may need to tweak the squash as it hits the ground first time, depending on the speed of the impact. I don't imagine it's a very heavy ball, nor is it too much of a drop, so I don't think it should fall too heavily.

Regardless, it seems to be coming together! The rough motion is there, it's really just going to be about tweaking the timings and adding a bit of polish now. I plan to add rotation to the ball once I'm satisfied with the movement.