Cheetah3D learns walking!!

During the last two years, I've been planning to begin a project about realistic human animation, but I wasn't able to find any software package designed in a way that a single person could create a complex animation.
Wow this sounds really interesting, is it for a show reel?

I really need mouse motion capture for turning my ideas into reality, because I think that's the only way for making it possible that a single animator could animate several characters in a short time.
Is mouse mocap the same as manually keying a frame?

Andrew:)
 
fused said:
Wow this sounds really interesting, is it for a show reel?
No, it's for my own art, made in my spare time, which I'd be happy to distribute if I achieve the kind of results that I wish. But, no, I'm not creating a demo reel, because I'm not interested in getting a job in the animation industry (ten years ago I dreamt of working in the industry, but that's not the case anymore, and I wouldn't like to change my job at all).

fused said:
Is mouse mocap the same as manually keying a frame?
Andrew:)
No, what I understand by "mouse mocap" is to record the motion of your mouse, and use such recorded motion for automatically creating animation of different parameters, without needing to manually define the animation curves.

In few words, the goal is to get as close as possible to how a puppeteer does his job. You know, puppeteers can express feelings and tell stories with just the motion of their hands, and "in real time". They don't need to work with bezier curves. So, in my opinion, their "traditional technology" is more advanced than our computer tools, because they can create animated art "in real time", while we can't.

Of course, a mouse has only 2 freedoms of motion (X and Y), so it's more limited than the controls of a puppet (which often have many wires). However, there's a workaround for this, and it's to do the job "in layers".

When I say "layers" I mean that you don't need to capture every parameter at the same time. Instead, you can record the motion of a few things, while you see the already created animation playing (this means that mouse mocap has to work in a way similar to what we know as "full duplex mode" in audio editing applications, ie: record while you play previously recorded material).

For example, imagine that we want a character to sit down in a sofa, and then change her expression into deep sadness, while the camera changes from an american shot to a close-up, staring at her face and we see a moving light lighting her face (the lights coming from a car outside, which is leaving the house).

If I had the "software that I need", I'd do this scene in the following way:

1 ) Create keyframes for the action of sitting down. This will mean to manually adjust the skeleton, perhaps using IK. In this moment, the animation between keyframes isn't important, just the poses are important.

NOTE: Whenever I say "keyframe" in this post, I'm referring to a keyframe which we don't know when will happen (ie: a keyframe whose position in time is still unknown).

2 ) Define "2D zones" over the viewport, and associate each zone to each of the poses that we created.

3 ) Adjust the camera so that it has a good general view of the character and the sofa.

4 ) Press the "Rec button for mouse mocap". This is like if the director said "Action!". Then, depending on the distance from the mouse to each 2D zone in the viewport, a mix of the poses of the nearest 2D zones is assigned to the skeleton. This is like if you were animating a puppet.

(more than one "take" can be recorded, like in a real movie, and you can choose later the "good takes" and discard the bad ones)

5 ) For maximum expressivity, I suppose that it should be possible to correct the mouse motion as a "mass with inertia", so that it stabilizes your manual motion for avoiding undesired shaking and getting smooth motion instead (although it should be adjustable because other times you might wish the natural shakiness).

6 ) Now we create keyframes for the camera, because the camera will move with the character during the action, and will end with a close-up of the character face.

7 ) Assign 2D zones to each of the keyframes of the camera.

8 ) Press "Rec mouse mocap". Now there's a difference, because the animation begins to play the action of sitting in the sofa that we just recorded (actually we'll need to first select the "good take" if we recorded several takes).

9 ) While the character sits, we move the mouse, and depending to the distance to the 2D zone of each of the camera keyframes, the camera position is calculated as a mix of the nearest zones.

(we can record several takes, of course, and compare the results)

10 ) Now, if we play the animation, we see the both motion of the character and of the camera

11 ) Now, the lights of the car (we don't see the car, but the moving shadow of the window frame on the character's face).

12 ) Create a couple of keyframes for the light, and assign 2D zones for them. This step needs some care because we need to make sure that the shadow of the frame is projected on the character.

13 ) Press "Rec mouse mocap" again, but make sure that the current camera is the camera that we recorded the motion for.

14 ) The animation plays, and now we see our character moving, and the camera moving too.

15 ) Don't move the mouse until the camera arrives to the final position of the close-up of the face. Then, move the mouse so that the lights move from the initial keyframe to the last one (NOTE: For this step to be really successful, the OpenGL preview should support real-time shadows, because otherwise it would be a bit difficult to imagine the real position of the shadow).

16 ) Finally, the facial expression. It has to change into deep sadness. We select some expression morphs, and assign them to 2D zones.

17 ) Press "Rec mouse mocap" again. When the animation plays, it's almost finished, we have everything except the facial expression, which we're creating now when we move the mouse as the animation plays.

18 ) Voila, work done! Let's go to the next scene! :)

Now try to do all this work with the techniques that current 3D apps use (which, btw, are techniques from the 80s, and haven't improved since then)

ces
 
Last edited:
Oh. My. Effing. God.

Nice one!!!

Right, now you've got that sorted, can you get to work on my Area Render tool?;) ;) ;) ;) ;) ;) ;)
 
Really looking forward to this! I think I can speak for most Unity users saying that they are really looking forward to this, too.

-Jon
 
aarku said:
Really looking forward to this! I think I can speak for most Unity users saying that they are really looking forward to this, too.

Thanks, I'm happy to hear that.

Bye,
Martin
 
Hi Ces,
that is an really interesting approach. But the first thing which I get in mind is that you will end up with many many keys. Like in motion capturing. Fine tuning such a animation could therefore become a very painful. I think it has a very good reason why most animation movies are still done with traditional animation technics. I think only two or three movies were completely done with motion capturing.

In general you probably want the possibility to bind a float parameter to a position on the screen. Maybe configureable via drag and drop. The float parameters could by morph weights or spline positions etc. Did I understand that right.


Bye,
Martin
 
Martin said:
Hi Ces,
that is an really interesting approach. But the first thing which I get in mind is that you will end up with many many keys. Like in motion capturing. Fine tuning such a animation could therefore become a very painful.
I don't consider the idea that the program generates a lot of keys that can be fine-tuned by the user. In fact, I was supposing that the (automatically generated) animation curves were hidden from the user.

Martin said:
I think it has a very good reason why most animation movies are still done with traditional animation technics. I think only two or three movies were completely done with motion capturing.
I don't like traditional mocap (ie: suits and such), because it needs more effort that if you shot the movie with real actors, and it's also less expressive. On the other hand, I like to get inspiration from puppeteers.

Martin said:
In general you probably want the possibility to bind a float parameter to a position on the screen. Maybe configureable via drag and drop. The float parameters could by morph weights or spline positions etc. Did I understand that right.
If that implies that I could use the mouse for interpolating objects positions, skeleton poses, morphs weights, etc, then yes, you understood it right. However, note that if I want to interpolate the position of a sphere from point A to point B, I can't set position B as a keyframe, because I don't know when will the sphere arrive at B... it depends on how fast I move the mouse.
 
BTW:
Hi.
The next advanced step in animationfilm making is featured in the upcoming "monster house" and called Performance Capture; motion and emotion (facial expression) will be recorded. But of course you will need very talented actors. So if this is becoming a new standart for charakteranimation, it will only make sense to me for cartoonlike and fantasy creatures and could hardly beaten by a "traditional" way of making an animation.
With kindest regards
Frank
 
frank beckmann said:
BTW:
Hi.
The next advanced step in animationfilm making is featured in the upcoming "monster house" and called Performance Capture; motion and emotion (facial expression) will be recorded. But of course you will need very talented actors. So if this is becoming a new standart for charakteranimation, it will only make sense to me for cartoonlike and fantasy creatures and could hardly beaten by a "traditional" way of making an animation.
With kindest regards
Frank
I resist to believe that the only option to "traditional CG animation" (ie: keyframes interpolated with manually-tuned beziers) is body mocap, no matter if facial expression is also captured or not.

Both techniques are very unefficient:

-Keyframes+beziers requires a lot of time-consuming human work for converting the original idea into a mathematical representation as a curve (that's the main reason why it takes so many animators and so much time to make a 100% CG full-length feature movie).

-Body mocap requires big "real" sets for recording the action, as well as trained actors in that field. It makes me ask the question "Why are you doing a CG movie if you already have real sets and real actors?".

In conclusion, I can't use any of them for doing what I've in my mind. I know for sure that technology will evolve, and I believe that the real future of animation won't be in any of these two techniques. But I need that future now, not a decade from now.

BTW, I think that Machinima creators share my views, and find the same limitations as me: They use game engines and related realtime techniques as a workaround to the fact that current CG software can't be used efficiently for complex storytelling if you don't have a team of >20 animators.
 
Last edited:
Btw, an already available solution for mouse motion capture is "Capuccino" (in the MOCCA module of C4D).

I didn't see it in action, but my first impression from its website is that they didn't put much effort in developing it (they offer it as a way of creating rough animation that can be refined later).

To make things worse, it seems that Capuccino directly captures objects motion "as is" (as you drag them). That's not very useful... I was thinking in an approach closer to those japanese dancing arcade machines (you know, those that have pads that you press with your feet following the rhythm of the music)... instead of using the feet, I'd define 2D zones in the viewport and I'd track the mouse distance to the nearest ones.

Maybe if I can get some time this year I can write my own mouse mocap tool (with FBX export so that I can import the animation from Cheetah3D).

However, I'm still unsure about my time availability this year. If it's like this last year, forget about it :(
 
Last edited:
Hi,

project messiah has these small rects to interpolate between parameters. They have six degrees of freedom if you use a three buttom mouse. But I'm not sure if they record in real time.

ces said:
I was thinking in an approach closer to those japanese dancing arcade machines (you know, those that have pads that you press with your feet following the rhythm of the music)... instead of using the feet, I'd define 2D zones in the viewport and I'd track the mouse distance to the nearest ones.

Sounds more like a game.;) But the idea is really not bad, especially if you consider that game pads have lots of buttons (10) and analog joysticks (2) today. So much more degrees of freedom than a normal mouse. If you work in combination with the buttons you can get 40 degrees of freedom. That's more than you probably can handle.;)

ces said:
Maybe if I can get some time this year I can write my own mouse mocap tool (with FBX export so that I can import the animation from Cheetah3D).

I'm still working on the basic tools. So I guess that I couldn't add such a feature in the near future. Since your animation approach is sitting on top of the normal animation tools.

Bye,
Martin
 
Martin said:
Hi,

project messiah has these small rects to interpolate between parameters. They have six degrees of freedom if you use a three buttom mouse. But I'm not sure if they record in real time.
Thanks for telling me about that, I didn't know of it.


Martin said:
I'm still working on the basic tools. So I guess that I couldn't add such a feature in the near future. Since your animation approach is sitting on top of the normal animation tools.
Don't worry! You're doing a great work! Also, don't forget that my ideas fall into "experimental field", which is experimental by definition :) ...it can work, but can also fail.
 
Hi,
I have morphing up and running. I've added a small movie to the first post of this thread. Please check it out.:D

Bye,
Martin

P.S. Please be aware that the UI isn't finished.
 
Martin said:
P.S. Please be aware that the UI isn't finished.
Do you plan to implement that morphs could be childs of Folder objects? That would make it a lot easier to manage them.

fused, regarding Animation Master, I knew it supports mouse mocap, but the online manual doesn't tell much about it, so I assume that it does something similar to C4D's Cappuccino (ie: record directly the motion of objects as you drag them). If it was more powerful, I suppose they would explain it in the website with more detail...

Btw, it seems that MotionBuilder does support using both the mouse and the keyboard as input devices for motion capture, and that you can also write your own input device drivers. However, its price is too high (I believe Alias had a "lite" version which was more affordable, but it seems Autodesk doesn't support it anymore: they've just the full version and the "personal learning edition" -which can't save FBX, so it's useless- )
 
Last edited:
Eta?

As no one is asking the question, I'm sure there isn't an answer; but I'll give it a go anyway.

I'm at a crossroads. I LOVE Cheetah3d! Intuitive and simple. Aqua at its best.
However, I really need the FBX feature soon and I am stuck between waiting this out or going with something else. I've tried the dim3 Inspire, but its really not a favored solution. I'd prefer to go with one package, if I can avoid it.

Is this something you think will be released within the next 3 months?

Can't hurt to ask.
 
Hi,
my goal is to have a beta of the character animation features by christmas. But I can't promise if I could reach that goal. Since software development could be quite unpredictable.

Bye,
Martin
 
Back
Top