navigate site menu

Start learning with our library of video tutorials taught by experts. Get started

CINEMA 4D Essentials 8: Character Rigging and Xpresso

CINEMA 4D Essentials 8: Character Rigging and Xpresso

with Rob Garrott

 


CINEMA 4D Essentials with Rob Garrott is a graduated introduction to this complex 3D modeling, rendering, and animation program, which breaks down into installments that can be completed within 2 hours. Start this installment with a look at Xpresso, a scripting tool that allows you to speed up your workflow by automating control of rigs, animations, and menu commands. This course also covers the basics of character rigging, from binding joints and geometry to adding movement with CMotion.
Topics include:
  • Linking objects to points in Xpresso
  • Creating a data slider to control a spline wrap
  • Controlling multiple objects with a single slider
  • Understanding the traditional character animation workflow
  • Using the Character object for building and applying rigs

show more

author
Rob Garrott
subject
3D + Animation, Video, Motion Graphics, Character Animation
software
CINEMA 4D R14
level
Beginner
duration
1h 8m
released
Sep 28, 2012

Share this course

Ready to join? get started


Keep up with news, tips, and latest courses.

submit Course details submit clicked more info

Please wait...

Search the closed captioning text for this course by entering the keyword you’d like to search, or browse the closed captioning text by selecting the chapter name below and choosing the video title you’d like to review.



Introduction
Welcome
00:04Hi! I'm Rob Garrott.
00:05Welcome to CINEMA 4D Essentials:
00:06Character Rigging and XPresso.
00:08In this course we'll start off with an introduction to creating relationships
00:11between objects and parameters using XPresso.
00:14Then we'll use custom-made data sliders to drive animation.
00:18We'll also look at the character object, which is used to create controls
00:21for your 3D characters.
00:22Finally, we'll get a character movie using the CMotion object.
00:26So let's get started with CINEMA 4D Essentials:
00:28Character Rigging and XPresso.
Collapse this transcript
Using the exercise files
00:00If you're a Premium Member of lynda.com then you've got access to the exercise
00:03files for this course.
00:05I'm working with them on my desktop and the files are organized in the
00:08subfolders that go with each chapter.
Collapse this transcript
1. The Xpresso Scripting Tool
Introducing Xpresso
00:00Have you ever been interested in learning scripting, but have been afraid of all that code?
00:04Do you like the pick whips in After Effects for linking layers and parameters?
00:08Well, if you answered yes to those questions, then you're going to love XPresso.
00:12XPresso is about establishing relationships between objects or parameters.
00:17To illustrate that, let's create a very simple relationship here.
00:20I'm going to add a cube to a scene and move it on its negative X axis, and let's
00:25add a pyramid to the scene.
00:26What I want to be able to do is to have this pyramid drive the rotation of this cube.
00:32The first step in our process for creating the relationship with XPresso is
00:35to add an XPresso tag.
00:37Let's right-click on the pyramid and go to CINEMA 4D tags, and then XPresso.
00:42When I let go, I get an XPresso Editor that pops up here, and then I also have
00:47this little XPresso tag on my object.
00:51It's good form to put the XPresso tag on the objects that you're going to be controlling.
00:55In theory though, XPresso tags can exist just about any place in your scene.
00:58Now I'm going to bring the XPresso Editor down just a bit, and let's actually
01:03make the window smaller so we can see the whole thing and bring it down right here.
01:07Now what I want to be able to do is drive the rotation of the cube with the
01:10rotation of the pyramid.
01:12Now what I need to do is to get my nodes for each of these objects here in the X group window.
01:18So let's take the pyramid and drag it over here and I get this little rounded
01:22rectangle, and let's drag the cube and drag it in.
01:25Now I get a rounded rectangle for that.
01:27Now these are called nodes.
01:28And if I expand the node outward a little bit, and I'll do that for each of
01:32them, the size doesn't really matter.
01:34It's just a question of being able to read the contents of the node.
01:37Now you may have noticed that there is colors here in the XPresso Editor window
01:41and those colors are very important.
01:43The node system in XPresso is designed around the idea of inflows and outflows.
01:47On the left-hand side is blue, and those are inflows.
01:49On the right-hand side is red, and those are outflows.
01:52If I click on each of these colors you see I get properties, and these properties
01:56will change based on which side you click on, but also want type of object it is
02:01or node that you're using.
02:02This node, when I select it, has its own set of parameters, and for a basic object
02:08operator node, the only real parameter I can change is the reference.
02:11This tells me what object in the system it's referencing.
02:14So I want to establish a link between the rotation of the pyramid and the
02:18rotation of the cube.
02:19So let's go to the Pyramid and do Coordinates > Global Rotation > Global Rotation-H.
02:26That's around the Y axis.
02:28Let's enlarge the node just a little bit.
02:31Now what we can do to establish our link is take the outflow from this Global
02:35Rotation-H and link it to the inflow of the Global Rotation-H on the cubes.
02:39So when I click on this little circle here, and that represents the outflow for
02:43that parameter, and let's drag it across the blue.
02:46When I let go I get a list, and I can go down to Coordinates, and then go to
02:50Global Rotation > Global Rotation-H.
02:52So I've just linked Global Rotation to Global Rotation.
02:55Now you can link a lot of different things together, but there's always problems
02:59with the format of the information coming out.
03:02Rotation and rotation are expressed in the same way with degrees.
03:06If I were trying to link rotation to position that would be more problematic
03:10and I'd need to interpret that data with a node in the middle here.
03:13For now though, let's see what's happened.
03:15It looks like, visually, nothing's happened in the window.
03:17So if we go to the Pyramid and go to the Coordinate properties, if I scrub the
03:22Rotation-H you'll see that both objects now turn, so the rotation on the pyramid
03:25is driving the rotation on the cube.
03:29And you can have more than one element linked together inside the node.
03:32What I can do is go to the Pyramid, and let's add in Global Position-Y.
03:38If I click on that and go to Coordinates and do Global Position-Y, I want to
03:43link this Global Position-Y to the Global Position-Y of the Cube.
03:47What I want to have happen is I'd like for the Cube to always remain 10
03:51units above the Pyramid.
03:54No matter where it is in space I never want it to be able to come down below the Pyramid.
03:59I'll start off by going to the Cube and adding in, under Coordinates, Global Position-Y.
04:04Now if I were to just simply drag across Global Position-Y to Global Position-Y,
04:08it's going to look like nothing happened.
04:10That's because the cube and the pyramid are already on the same Y level.
04:14But you'll notice though, if I select the cube, I can no longer drag it up. It's locked.
04:18I can move it on X and Z, but I can't move it on Y, Cmd+Z or Ctrl+Z. That's
04:24because the position Y is being controlled by this linkage here.
04:27So what we want to do is to have this always be above the pyramid.
04:32So let's disable that, and we're going to introduce a new node in the middle here.
04:36Let's right-click in the XPresso window and go to New Node, and then
04:41XPresso, and then Calculate.
04:44All of these other menus that you see here are all about other elements that you
04:48can create within XPresso.
04:49You can create XPresso Hair nodes, MoGraph nodes, and Dynamics and
04:53Thinking Particles nodes.
04:54These are the general XPresso nodes, and I'm going to go to the Calculate
04:58function and add in a little bit of math.
05:00Now don't be scared, I stink at math, but this is going to be really easy to understand.
05:05And this math node has its own set of properties over here in the Attribute Manager.
05:10Now let's give ourselves a little bit more room to work.
05:13I'm going to use the 2 key on the keyboard and drag out just a bit.
05:16You notice as I zoom in and zoom out that the XPresso window zooms in with me.
05:20If I hold on the 1 key I can pan around the XPresso window.
05:24Now you look at the parameters for this Math Add Node, you'll see that we have a data type.
05:29These will be real numbers, and we can do a different type of math function.
05:33Add, Subtract, Multiply, Divide, and then something called Modulo.
05:37We're going to use a simple Math Add function, and these are the two values that
05:42we're going to add together:
05:43input one and input two.
05:44Input one is going to come from the Pyramid.
05:47We're going to take the Global Position-Y and drag that into this input field right here.
05:52When I make that connection it looks like nothing has happened.
05:55That's because this Math Add Node doesn't do anything until you send the output
06:00from it to another object.
06:01So what we want to do is to send the output from this Math Add Node into the
06:05Global Position-Y of the cube.
06:07When we do this, nothing happens.
06:10That's because in the Math Add Node, all we're adding is zero.
06:13So let's add some values here.
06:15The original position of the Pyramid is currently Y on zero-axis.
06:21So if we add 100 to the position of the cube in the Math Add Node, if we go in
06:27here and type in 100, you'll see that the cube has jumped 100 units up.
06:33That doesn't seem exciting until you go and start moving the Pyramid around.
06:36No matter where I move the pyramid, it's always going to say 100 units higher
06:41than the location of this axis.
06:44So if I make that say 300, then the cube will jump up here. And you can see as I
06:48move that around, no matter where I move it, it stays that way, and you can still
06:53move on X and Y, and you also still have the linkage for the rotation.
06:58Let's back out here just a bit so you can see everything going on.
07:03The Y position on the cube is still locked and I can't move it up and down, but
07:07I can still move it left and right on X and Z.
07:11So this is just literally touching the tip of the XPresso iceberg.
07:15Just keep in mind that XPresso is a scripting language.
07:18It can be as complicated as you want to make it.
07:20If you're a programmer and you love writing code, the XPresso Editor is going to
07:24be your best friend.
07:26But if you're not comfortable writing code, then you can still do a lot of
07:30really interesting things with XPresso.
07:31Now, I'm not a code writer.
07:32So in this chapter I'm going to be focusing on things that I know non-code
07:36writers are going to find useful.
Collapse this transcript
Linking objects to points with Xpresso
00:00The scripting language and nodes in XPresso allow you to control objects, but
00:04they also allow you to control the components that make up objects.
00:07What we're going to do is link the position of a point on a spline to the
00:12position of a sphere.
00:14It's an important idea that introduces you to the concept of a point index.
00:19In this scene, I have a very simple hierarchy for a spline wrap and a matrix
00:22object, and I built a hierarchy similar to this in the module on MoGraph.
00:26So if you're unfamiliar with this setup, you can take a look at that, and you'll
00:29see this exact same rig, except that I've made a train.
00:33But in this case, I've got a little train of spheres, and if I go to my spline
00:38wrap, you can see that if I adjust the Offset, the matrix object will move along the spline.
00:42Now you may have noticed that the spheres are not moving to the position of the
00:46matrix object right away, and that's because of the way the Object Manager
00:49evaluates the objects in the scene.
00:51So the fix for that is to hit the letter A on the keyboard, and that will cause
00:55everything to refresh for you.
00:58So let's rewind that back to 0, and then hit A on the keyboard to get it to
01:02redraw the frame again.
01:03So what I want to be able to do is take one of the points on the spline, and
01:08link it to the position of this sphere.
01:10Now the point that I want to link is the point that's right about here.
01:14If I click on the spline, this spline is set up as something called a cubic,
01:18which is a little bit like a hybrid between a Bezier spline and a B-Spline.
01:22If I go into Point Mode, you can see that I've got points on that spline and
01:27that the curvature of the spline passes through each of those points.
01:31That is the point that I want to link to the position of this large sphere.
01:35So wherever this big sphere goes, the point on that spline will follow it.
01:40Any object that's made up of points, edges, and polygons in CINEMA 4D has
01:44something called a Point Index Value.
01:46To see that Point Index Value, first you need to select the object.
01:49So I'm going to click on the spline. And underneath the Structure Manager, the
01:53Structure Manager shows you the composition of that object, and the Structure
01:57Manager is just a spreadsheet of numbers.
01:59And those numbers all represent the locations of the points on this spline.
02:04You can see on this spreadsheet, one of the points is highlighted, and that's
02:07number 2, and that is this point right here.
02:10If I click on one of these other numbers, you can see that I'm
02:12actually selecting points.
02:13So this is a great way to figure out which point you're trying to find.
02:17This point number 2 here is the point that I want to manipulate.
02:21So I need to remember that number.
02:23That's index value 2.
02:24The index always starts off at 0 and then it counts forward from there.
02:27So I want to address point number 2 on this spline.
02:32Let's go back to the Object Manager, and we're going to introduce an XPresso tag
02:36to the scene, and because the tag is going to be modifying the spline, I'm going
02:40to right-click and put the tag onto the spline.
02:43So let's right-click, and go to CINEMA 4D tags, and down at the bottom is XPresso.
02:47When I do that, the XPresso Editor pops up, and we're going to drag in the spline.
02:54And let's make the XPresso window just a little bit smaller, so we can see
02:57everything here, and drag that down.
02:59I'll hold down 1 on the keyboard to navigate.
03:03Now we also want to add in this big sphere, and we'll drag this over here.
03:07So the position on the big sphere is going to drive the position of that single
03:11point on the spline.
03:12So first, we have to find out where that point is, and there's a special node for that.
03:16Let's right-click any place in the XGroup window that's not on a node, and go to
03:20New Node, XPresso, and under General, we're going to grab the Point node.
03:25The Point node has some properties associated with it.
03:28Most importantly, it's got an Object field, and then Point Index, and then it's
03:32got Point Count and Point Position.
03:34Now if you wanted to find out the exact number of points in an object, then you
03:38could send this information out of this node, and that would work for you great.
03:42But what we care about right now is the Point Index.
03:45This point position is the outflow for the point position.
03:47That would be if we wanted to drive the position of the sphere with this point.
03:51But we're going to do the reverse of that.
03:53So we want to have the inflow position over here.
03:56So let's click on the blue side, and go to Point Position.
03:59That adds a third item over here.
04:01What we want to do is to feed the object information from this spline object
04:05into the object field here.
04:07This yellow band indicates that the node is miscalculating and it's
04:10miscalculating because it doesn't have an object to calculate with.
04:15So let's go to the spline and drag it up here just above that node, and send the
04:20object information from the spline object out to the inflow of this node here.
04:25Let's drag that over here just like that, and take that object and go right like that.
04:29So now you can see that the yellow has gone away, and that's because the Point
04:34node is calculating the information correctly.
04:37Now if you click on the Point node and you look at the Attribute Manager, you
04:40can see that there's a Point Index field.
04:43Right now, the Point Index is set to modify point 0.
04:46And if you remember from the Structure Manager, we want to modify point 2.
04:49So let's put in a 2 there.
04:52And when we do that, the point position is set to 0, 0, 0.
04:56It's moved our spline point from where it was to 0, 0, 0.
05:01So Index Point 2 is now moved to the world.
05:03What we need to do next is feed some information into this point position, and
05:08to do that, we need to have the big sphere.
05:10And so the big sphere, we want to use the position information here to drive
05:14this point position here.
05:16Click on the outflows and go to Coordinates, and then do Global Position for
05:21the big sphere, and then send this Global Position information into the point position here.
05:26When we do that, now we have this point stuck to the location of that sphere.
05:31Now this point over here moved when we first added the Point null. That's because
05:36it took point 0 and moved it to 0, 0, 0.
05:39So let's take this point and move it back over here, and then hit the letter A
05:44on the keyboard to get the frame to redraw correctly.
05:46Now if I go to point number 2 on the spline, and I try and drag up and down, you'll
05:51see that I can't, nothing happens.
05:53That's because the position of that point is being driven by the sphere.
05:56If I take the big sphere and drag it up and down, you see that the spline changes
06:00shape based on the position of that sphere.
06:03This technique is incredibly useful for a wide variety of applications.
06:06In this case, by linking that point on the spline to the sphere, that gives us a
06:09handle that we can actually animate for the spline itself.
06:13Rather than trying to animate an individual point, link the point to another
06:16object to animate that.
06:18It gives you much more control.
Collapse this transcript
Creating a data slider to control a spline wrap
00:00There are going to be times in your animation process where you're going to want
00:03to be able to control multiple objects, and you could use individual sets of key
00:07frames to control those multiple objects.
00:09But it's much better to have just one point of control.
00:12That's where Data Slider comes in.
00:14A Data Slider is a single point of control that can be used through Xpresso to
00:18control other objects.
00:20The first step in this process is going to be to create a null object that's
00:23going to hold our Data Slider.
00:25Let's go to the Primitives and add a null to the scene, and let's call this null, Sliders.
00:29Now you can put sliders on any object anywhere, but in this case, I want to
00:34make it really obvious where that slider is going to be, so it's easy for me to find later.
00:39Now in CINEMA 4D terms, this slider is something called User Data.
00:42If you click on the null object, down in the Attribute Manager, you'll notice a
00:45little menu item called User Data.
00:47If we click on that, there is an Add User Data and Manage User Data.
00:53Essentially, there is very little difference between these fields.
00:56I normally go to Manage User Data.
00:58When I do that, that pops up the Manage User Data field.
01:01Now this is a big blank window, and what it's going to ask me to do is on the
01:06left-hand side is to add data.
01:07When I add data, it gives me the word Data over here on the left, and on the
01:12right-hand side are the attributes for that data.
01:14So let's call this data something other than data.
01:16Let's call it Sliders.
01:17When I hit OK, you'll see that I now have a new User Data field over here on the
01:23right on the attributes for this null object.
01:25When I click on that, you can see there is a Sliders with a percentage.
01:29This percentage is the user data interface.
01:31Now that's not what we want to end up with.
01:33We want to have an actual Slider field instead of just a float field with a scrubber.
01:38Normally, I would not have hit OK right there, I would have modified this ahead of time.
01:43But I wanted you to see what the result was.
01:45So let's go back to the User Data.
01:47We can get there two ways.
01:49We can go back to the User Data and tell it to Manage User Data, or we can
01:53right-click right on the Slider and then go to User Interface, and then we
01:57want to Edit Entry.
01:58When we edit entry, that pops us back into the Manage window and now we can see
02:02our Sliders interface over here.
02:03So the interface that we want to create is something called Float Slider.
02:08When we do that, you can see down here at the bottom of the window, this is an
02:12example of what the interface will look like.
02:15And the Default value is whatever the value will be when the object is at rest.
02:19So we'll leave it at 0%.
02:21Down here in the field, we can change the units.
02:23We can make it be percentage, or real values, or degrees.
02:27We're going to leave it on Percent for now and the Step is going to be 1%. That's fine.
02:32You can actually change that to be tenths of a percent or in groups of 10%.
02:36The important thing is to put in a Step value that gives you enough control for
02:39the type of animation you're going to be doing.
02:42The limits for minimum and maximum are how much range the slider has.
02:47By default, the slider goes from 0% to 100%.
02:50I could change this to 500%, and I'll tab over.
02:53Don't hit Return, otherwise that will be like hitting OK down here.
02:56You can see that now my slider goes all the way to 500%.
02:59If I change this to 100%, you can see that my slider maxes out at 100%.
03:05That's going to be fine for what we want to have here today. So let's click OK.
03:10And now, you can see that on our User Data field on the null, we now have a slider.
03:14This slider doesn't do anything yet though, and that's where Xpresso comes in.
03:17Now we want to use this slider to control the Offset parameter on this spline wrap.
03:24We could set up a manual link with Xpresso to do that, but there's a really cool
03:28feature called Set Driven Keys.
03:30If I go back to my slider object, and right-click on the word Sliders here under
03:35the User Data, and I can go to XPressions and then Set Driver.
03:41Now what happens when I do that is that CINEMA 4D is now waiting for me to
03:45do another right-click, and it's asking, what do you want to use this driver to drive?
03:49So if I go to my spline wrap, and then right-click on the Offset, and go to
03:55XPressions and then do a Set Driven (Absolute), that Absolute reference means
04:00that no matter where I put the Xpresso tag, it's always going to point back to
04:04that same spline wrap object.
04:06Now it still looks like nothing happened.
04:08But let's go to the Sliders null object, and adjust the value here on our slider.
04:13If we drag that to the right, you'll see that there goes the matrix object.
04:18Now I'm getting a weird redraw issue because of the screen recording software.
04:21So if I hit the letter A on the keyboard, you see my objects jump.
04:24Let's go ahead and animate the Sliders option.
04:27Let's drag that to the right, and then let's Ctrl+Click on that to set up key
04:31frame for that value at time 0.
04:35Then, let's drag forward in time, and you see that my screen reset itself back
04:39to the 0 percentage value.
04:41Let's make that 100%, and let's Ctrl+Click to add another key frame.
04:46Now when we hit Play, you see my object passing through the sphere.
04:52Now I have an Xpresso link between the point on the spline and the sphere.
04:56If I take that big sphere and move it around, you'll see that my spline will
05:00redraw itself based on the position of that sphere, and now my objects will pass
05:03through that sphere at that location.
05:05So that's a really simple example of how to Use User data to control a
05:09particular parameter on an object.
05:11In this case, we used the User Data to control a single parameter, but in
05:15the next movie, we'll use that User Data slider to control multiple
05:18parameters on different objects.
Collapse this transcript
Controlling multiple objects with a single slider
00:00In the previous movie, we created user data that contained a slider that controlled
00:04the Offset function of the spline wrap object here on our scene.
00:07What we're going to do in this movie is to duplicate these objects and show
00:11how to create a single slider and show how to use that single slider to
00:15control multiple objects.
00:18This is the scene file as we left off in the previous movie, and I've got a
00:22Slider's Null Object here, and there's a User Data field on here with the slider
00:26on it that is animated from 0 to 100 percent.
00:31So what we want to be able to do is to duplicate the relationship of the matrix
00:35object in the spheres on the spline, but leave the big sphere alone.
00:38We want to have just one big sphere and multiple copies of these objects
00:42traveling through it.
00:43You'll see why in just a moment.
00:45Before we do that though there's a very important thing we have to fix on the
00:49XPresso tag for this spline wrap.
00:52When we used Set Driven Keys to create the relationship in the previous movie,
00:56we told it to do an absolute reference, but it only does an absolute reference
01:00for half of the equation.
01:01Let's see what that means.
01:03If I double-click on this XPresso tag, I now get the XPresso Editor, and it looks
01:08like I only have two nodes in here, but it's a little bit tangled up right now
01:12so I have to untangle my nodes.
01:14So let's take the Range Mapper and drag it down here, and drag the Sphere over
01:18here, and drag the Sliders over here.
01:20Now you can see this whole relationship.
01:23This Range Mapper node is automatically placed when you use Set Driven Keys, and
01:27what a Range Mapper does is interpret data between two different nodes.
01:32It can interpret data in a lot of different ways.
01:34In this case, it's basically a straight pass-through, but we're going to
01:37use this Range Mapper node in a little bit later to control the speed of our objects.
01:42So if we look at the Sliders node, and in the Attributes for the Slider node, you
01:48see in fact it does have an Absolute Reference.
01:50And this was created when we right- clicked and did the Set Driven Absolute.
01:53Now if you look at the Sphere spline wrap node and you click on that, you can
01:57see that that one is set to be a Relative Reference.
02:00That means if we move this tag off the object, it won't work.
02:03So what we need to be able to do is to move this tag any place in the scene.
02:08So I'm going to set the mode from Relative Reference to Absolute Reference.
02:12What that will do is now no matter where we put this tag, it will always point
02:15back to this same spline wrap object.
02:17Objects in CINEMA 4D have something called an Object Index and that index is
02:21independent from the name.
02:23So now that we've fixed that very important element, what we need to do is to
02:27make copies of this relationship.
02:29Let's twirl close the Blobby uber object.
02:31And I'm going to hold down the Control key and drag down.
02:36That's going to create a Blobby uber.1.
02:38It looks like nothing has happened.
02:39That's because we now have two in exactly the same position.
02:42So let's go into Point mode if you're not there already, and then twirl open the
02:46Blobby uber.1 and let's grab the spline that's in there.
02:50Let's move the points around a bit.
02:52Let's close the XPresso Editor for just a moment, and let's grab the points on
02:56this side of this spline and I'll move them over here.
02:58You can see that I in fact now have two splines.
03:01Let's take these points and move them over here.
03:04I'm grabbing the axis band.
03:06It doesn't really matter where you put them.
03:08This is going to be a very abstract sort of element and I'm just going to be
03:12kind of roughing these in.
03:14Then I want to take this last point, and there's a very tight bend here.
03:18I'm going to go twirl open this one and grab the spline and grab this point here
03:22and just drag it out to soften that curve.
03:25Now you can see that when we scrub through we've got two sets of these spheres
03:29traveling through that central sphere.
03:31Let's do one more copy.
03:34Twirl close the Blobby uber.1.
03:36You want to make sure and select the actual object first and then hold down the
03:41Ctrl key and that makes Blobby uber.2.
03:44Let's move the points on the spline for Blobby uber.2 and let's move those up. Sounds good.
03:50I'll take that and move it up there.
03:52Take that point, move it up here.
03:55Take both of those points and move them at the same time up here.
03:59Let's move them closer in, too.
04:00I think that's better.
04:04So now when you hit play, you can see that we've got three sets of these spheres
04:09traveling through that central location.
04:10Now right now all these spheres are traveling at the same speed in the same
04:14direction, approximately, because the splines are the same lengths.
04:17What we want to do is to reverse one of them.
04:20Now the one I have selected is just as good as any other.
04:23You can see that the spline direction is set to go from white to blue along the X axis here.
04:29So let's right-click and do Reverse Sequence.
04:32That changes the point to start over here now and flow back the other direction.
04:37Watch what happens when I hit play.
04:38The spheres are now flowing the other direction.
04:40I think that's good.
04:42I didn't want to have everything flowing the same way.
04:45Now let's take a look at what that's done to the XPresso.
04:48Each time we copied the Blobby uber group, it made a new copy of the XPresso tag as well.
04:55And each of those XPresso tags, because of the Absolute References, are all
04:58pointed back at the same sliders.
05:00That's why the animation still works, because this information from this slider
05:04null is still driving each of these spline wraps.
05:07So what we want to do is to rename the spline wraps, because it's going to get
05:11very confusing since they're all named the same thing.
05:14So let's call this first one 01 wrap and then let's go ahead and call the next one 02 wrap.
05:22Let's call this next one 03 wrap. Here we go.
05:27Now that we've named those, it will be much easier to identify them when we get
05:32into XPresso to clean things up.
05:33It's bad form to have the XPresso for all three of these spread out amongst so many objects.
05:38We're going to do ourselves a favor and clean up this XPresso a bit.
05:42So to do that, we need to have a single XPresso tag that's going to contain the
05:45XPresso for each of these.
05:47I'm going to right-click on the Sliders, and then go to CINEMA 4D Tags, and then XPresso.
05:53That's going to give me a new XPresso Editor.
05:55Now let's start by going to this spline wrap number 01 and double-click on that.
06:00That shows us the XPresso Editor for that spline wrap.
06:03Let's grab all of these nodes, then go to Edit and Cut.
06:07Next thing we want to do is make sure we're going to paste this down in
06:11the right location.
06:12Let's double-click on this XPresso node up here, the one that's on the Sliders null.
06:17We double-click and you can see now we're in this node on that object.
06:21If you want to make double sure, you can close the XPresso Editor up and then
06:25double-click on that to make sure you're in the right place.
06:28Now let's go to Edit and then Paste that down again.
06:32Then let's scrub through the animation to make sure that everything is still working.
06:34And you could see it is still working, so we haven't messed anything up.
06:38And there's our 01 wrap reference, and we can move these down here.
06:42So there's the Sliders null reference, here's a Range Mapper for 01, and then
06:45there is the 01 itself.
06:48Let's repeat that process for 02.
06:51Now we no longer need the XPresso tag on 01 so we can delete that.
06:55Let's go to the 02 node, and there's our 02 wrap.
06:58Let's grab all those nodes, and then go to Edit > Cut those nodes, and then on this
07:04one here paste that down into the window.
07:07So let's click away from those guys and then hit Edit and then Paste.
07:11And let's drag those down here.
07:14You can see we're having multiple nodes and multiple relationships all in the
07:17same XPresso Editor.
07:18Let's verify that everything still works.
07:21You can see, yes, it does.
07:23Let's repeat that process one last time.
07:25We'll delete the 02 XPresso tag, because we don't need that one anymore, and
07:29then go down to the 03 XPresso tag.
07:32Double-click on that, and then take these nodes, and then go to Edit > Cut.
07:39Then scroll up and open up that Sliders XPresso, and then paste it down, Edit > Paste.
07:46I'll hold down the Shift key to select multiple nodes, and let's drag those down here.
07:51You can see now if we back out a little bit, we've got all of these nodes and
07:55relationships in a single XPresso Editor, much more clean.
07:58So let's go back and delete that errant tag now.
08:00That one is just an empty tag.
08:01You can see if we double- click on it nothing's there.
08:04Delete it from the Manager.
08:06Now what we can do is to go back to our Sliders null and clean things up a bit here.
08:11We don't need to have a reference for each of the sliders.
08:14We can actually use one reference of the sliders to control all of these Range Mappers.
08:20So let's resize all of these nodes and I'm going to drag to the left to resize
08:24each of those nodes.
08:26Zoom in just a bit and I'll hover my mouse over there and just give myself a
08:30little bit more space to work.
08:32Let's delete two of these sliders references.
08:35Select these bottom two and then hit the Delete key.
08:39And that's going to break the Range Mappers.
08:41If we go back and move our animation you see that two of the objects don't move anymore.
08:45What we can do though, is use this single Sliders null and take multiple
08:49connections out of this port.
08:51That's one of the really cool things.
08:53You can just click on the Sliders output and drag down and put it back into the
08:57input and now that same Sliders null is controlling that Range Mapper as well. Drag through.
09:03You can see that there it's working.
09:04Let's fix the last one.
09:06Drag that down and put it right on top of there, and now we've got three Range
09:11Mappers being controlled by a single slider.
09:14That makes things a lot easier to keep track of from an XPresso standpoint.
09:19Now what we want to do, if we hit play you'll see that all those guys are
09:24all travelling at the same speed.
09:25So what I want to do is to vary the speed a little bit.
09:29I can do that actually two ways,
09:31I could change the lengths of the splines, so a spline that's longer will have an
09:35object that's traveling faster on it, and a spline that's shorter will have
09:38objects that are traveling slower.
09:39But I'd rather control that numerically.
09:41I want to keep these splines all about the same length.
09:43So if I go into the Range Mapper node, and bring up the Attribute Manager a
09:47little bit so we can see better, the way the Range Mapper node works is it
09:51interprets data from one node to another.
09:53The Inputs, Upper and Lower, represent how much information is coming into the input field.
09:59The Output, Upper and Lower, relates to how much data is flowing out.
10:03So when the input is on 0, the output is also on 0.
10:07When the input is on 100, the output is on 100.
10:11So if I want to have spline wrap 01 travel a little bit faster, what I can do is
10:16tell it, instead of being 100% when these sliders are at 100, tell it to be 110%.
10:21Now watch what happens when I hit play.
10:23One of them is traveling, it goes actually beyond the spline, it's this guy right here.
10:28It's also traveling a little bit faster.
10:31Let's use that same technique to slow things down.
10:33Let's stop playback for a second and go to Range Mapper.
10:36Again, for this number 02, and let's slow that one down.
10:40The way we do that is by having it go not as far.
10:43Let's change that to 90.
10:45Now when we hit play, you see that one of them is going as little bit slower and
10:50it also doesn't quite reach the end of its path.
10:54So now they don't all hit at exactly the same time.
10:56That feels a lot better.
10:58Let's close the XPresso Editor and stop playback.
11:01Now we get down to the nitty-gritty.
11:03Why did I do all this?
11:04We're going to create a little abstract shape, and the object we're going to use
11:08to do this is something called a Metaball.
11:10If you click and hold on the Modeling Objects, down here in the bottom left, the
11:14Metaball object has this weird, interesting icon.
11:16What it does is it takes both spheres and splines that you place under it and
11:20creates a smooth skin around those shapes.
11:25I'm going to start off by taking the Metaball and dragging it down below Sliders.
11:29Then let's take Blobby uber and place it under the Metaball and watch what
11:32happens when I do that.
11:33I get this new shape that's based on both the shape of the spline and the shape
11:39of the spheres that were underneath it.
11:41Now one of the bad things about the Metaball is you can only put spheres and
11:45splines under there, but you can still create some really cool stuff.
11:48Now when we hit play look what happens.
11:51I get this weird blob traveling along an even longer weird blob.
11:56Let's go ahead and add in the others as well and let's take the Blobby uber
12:00and drag it into the hierarchy, and drag Blobby uber.2 and drag it into the hierarchy.
12:05You can see each time we do that, we get this weirdness.
12:08Let's do the last thing and add the big sphere into the hierarchy as well, and we
12:12get this nice bulge in the center.
12:14Let's rewind back to zero and hit play.
12:16The animation is going to playback too slow.
12:19So let's stop playback and let's give it a chance to speed things up.
12:24On the Metaball in the Object Properties there's something called an Editor
12:27Subdivision and a Render Subdivision.
12:30This controls how accurately the Metaball is drawn here in the Editor window and
12:35how accurately it's going to be drawn in the Renderer.
12:38Now if I hit Shift+R on the keyboard and render something to the Picture
12:42Viewer, the shapes that I have here are incredibly smooth compared to the rough
12:47shapes that I have here.
12:48And that's because of that Render Subdivision.
12:51Let's close up the Picture Viewer, and you can see that the Render Subdivision is 5.
12:55A very important gotcha with the Metaball is never put the Editor Subdivision
12:59below the Render Subdivision.
13:00You always want it to be higher.
13:03To speed things up here in the Editor window I'll make the Editor
13:05Subdivision higher than 40.
13:06Let's bring it up to, say, 60.
13:09Our shape is going to get a little more coarse, but now though we can see we can
13:12scrub through it a lot easier.
13:14It's not going to be chunking anymore.
13:16The Hull Value controls how tightly the Metaball object is conformed to the
13:21objects underneath it.
13:23So let's take the Hull Value and go up.
13:25It's counterintuitive.
13:26The higher the Hull Value, the tighter the object is.
13:29Let's bring that down a little bit.
13:30You can see that we get a little more definition on our central blob.
13:34And don't worry that this chunkiness is going to go away when we render.
13:37You can see that we've got weirdness going on. Those will be still smooth.
13:41But now we can scrub through and we get a definite bulge in the transition area,
13:45and I really like that.
13:46Let's zoom in on that.
13:47Let's rewind back to 0 and hit play, and this is not playing back at real-time.
13:54We'd want to make a preview movie of this.
13:57Let's hit Option+B or Alt+B on the keyboard, change it from Full Render to
14:01Software Preview, and let's see how these guys are traveling.
14:05I'll leave it at 320,
14:06so it's a nice small render and it should go pretty quick.
14:09You'll see the Calculating Preview is down here in the Infos field.
14:12I'll hit Play here, and that's going to cache the frames first.
14:18So hopefully you got an idea for how you could use XPresso techniques to
14:21control your animation.
14:23Remember, this is just the tip of the iceberg, and this kind of organic shape
14:27could have been done without XPresso, but with XPresso it becomes a whole lot easier.
14:32I'm going to put a rendering of this smooth organic shape into the
14:34Exercise Files folder.
14:36That way you can see what the final result looks like.
Collapse this transcript
2. Character Rigging Basics
Understanding the character animation workflow
00:00The process for creating character animation can be as complex as the movie
00:03Toy Story, or as simple as bouncing a cube around the floor.
00:06And no matter what approach you're taking, the steps that you go through to
00:10create your character are going to be pretty much the same.
00:13You're going to need to have a character, that involves designing it,
00:16modeling it, and texturing it. Then you're going to have to build controls
00:19for that, called a rig.
00:20Then you'll have to bind that rig to the character, and then you'll need to animate
00:24and render and composite.
00:25This chapter is all about taking a look at the controls in CINEMA 4D for
00:29generating the character rig and binding it to your character, and also some
00:32other uses for the character controls in C4D.
00:34I've got a very simple character here and these colored boxes that you see are
00:39the actual controls for the rig.
00:41And if I click on that, you can see that it's named L Arm and it's got (L_IK_Arm <Controller>) after that.
00:48That tells me that this is the controller object for his left arm, and if I click
00:51on it, and I can drag it around, you can see that that allows his arm to move.
00:57I can also click on his torso and have him squat up and down.
01:01I can move it back and forth.
01:03I can also rotate it.
01:04I'll hit R on the keyboard to bring up the Rotation Tool and you can see I can
01:09rotate it and have him twist.
01:10Now I'm getting some issues with the side of his face here.
01:14That's based on the binding of the rig, and talk about that process later on in the chapter.
01:18CINEMA 4D has some special controls that allow for a much easier process in
01:22generating your character rig and binding it to your mesh.
01:24However, the character animation process can be pretty intense.
01:27The key is to have a clear image in your head what it is you're trying to
01:30accomplish and then making the controls do what it is that you need to do.
01:33And that's always the trick.
01:34There are some handy tools in C4D, like CMotion, which allows you to add motion to a character.
01:40Let's click on this little checkbox right here next to the CMotion object and activate it.
01:44And you'll see that when I do that my character disappeared, that's because
01:47I'm at Frame 81 on the timeline and I've already add animation, and he's
01:51walked past the camera.
01:52Let's rewind back again and then hit Play on the keyboard.
01:56And you'll see that our character walks back.
01:58Now, the motion on the character and his arm is going through there, and that's
02:02because of me moving the character before I added the CMotion.
02:07If I go back and undo a few steps and then turn on the CMotion, now you can
02:12see that that fixes it.
02:13And this is part of the troubleshooting process that you'll go through when you
02:17make your characters.
02:18Creating rigs is an intensive and rewarding process, but it involves a lot of deep
02:22thought and troubleshooting along the way.
02:24Sometimes your rigs are going to be very simple and will go together quickly,
02:27and other times your rigs are going to take a lot of effort.
02:30I can't stress enough how important it is to have a clear picture in your head
02:34when you start the character animation process.
02:36If you go in with a clear picture, on paper, in your head, then you'll have a
02:39much better time with the process.
Collapse this transcript
Exploring joint hierarchy
00:00The process of creating character animation in computer revolves around the idea
00:04of kinematics, and there's two types.
00:06There's forward kinematics and inverse kinematics.
00:08Forward kinematics is the simplest of the two and it is a lot like stop motion
00:13animation where you rotate each joint one at a time.
00:15Inverse kinematics involves a process of creating something called an IK Chain
00:18that allows you to control a series of joints with a single object.
00:22Let's take a look at the first type, forward kinematics.
00:24I am in an empty scene here and I'm going to navigate to the right-hand view.
00:29And I'll bring the ground plane down a little bit and we're going to make a
00:33joint chain right here in this area.
00:35Under the Character menu is the Joint tool, and the way the Joint tool works is
00:39that you have to hold down the Control key when you click.
00:42And I'm going to click up here once, and then I'm going to click out here to make a joint.
00:47And you saw that when I did that that I got a Root null object and then
00:51these two Joint objects.
00:52And I'm going to hold down the Control key one last time and click right down
00:56here near the center of the world.
00:58Now these joints are all parented together, but this is not an IK Chain, this in a FK Chain.
01:02And what I mean by that is, if I switch back to the Rotation tool, if I want to
01:07try and make this arm bend I have to go to the top Joint and do a rotation, and
01:12then I have to go to the bottom Joint and rotate it here.
01:15Let's hit Ctrl+Z or Cmd+Z to undo that until our joint chain is back to
01:19its original position.
01:20Let's take key frames now for the coordinate properties on these joints.
01:23So the first two joints are what I'm going to worry about.
01:26The bottom joint at the very tip of the chain I'm not going to be concerned with it at all.
01:31So these two joints, I want to set rotation key frames, and that's the key to
01:35forward kinematics, is that it relies entirely on rotation information.
01:38So let's go to the Coordinate Property for these two joints.
01:40And I'm not going to set a key frame on position,
01:43I'm going to set a key frame on rotation.
01:45So let's Ctrl+Click on the gray dot and click on the R column and then Ctrl+Click.
01:50That will set the key frames all at once.
01:52And now we can go forward in time.
01:54Let's say in Frame 20, I want the top shoulder joint to rotate up this way and
01:58then I want the second joint to rotate up this way.
02:01And then I'll set key frames for both.
02:03I have to remember to click on both of those guys and hold on down the Control
02:07key and click again.
02:08Now you can see that between those two frames I've got this kind of movement,
02:12so my arm is raising. And that is forward kinematics.
02:15That's all there is to it.
02:16You're simply doing stop motion animation by setting key frames and
02:19rotating your joints.
02:20Now let's take a look at inverse kinematics.
02:22I'm going to Undo my joint chain and get rid of the key frames until my key
02:26frames are all gone. There we go.
02:28And you can double check each joint by looking to see if there's any key frames there.
02:32And now I want to create something called an IK Chain.
02:35To do that, there's a special command.
02:36If I click on the top joint here and go to the Character menu and to the
02:41Commands, I'm going to create an IK Chain.
02:43When I let go you can see three things happen.
02:45First, I've got this green line drawn in the scene, then I've got this
02:49Joint.2.Goal null over here, and I've got this tag called IK Expression.
02:54And this IK Expression tag tells CINEMA 4D that this is a chain of objects, and this
02:59chain of objects should be controlled by this goal object.
03:03Once you've created an IK Chain, you no longer rotate the individual joint, you
03:07move the goal object.
03:08And so if I hit E on the keyboard to get the Move tool, this Joint.2.Goal now controls them.
03:14And you can see it's a much more intuitive way to move your joints.
03:18Now this raises some issues and it has some problems all its own, but for a lot
03:22of what you do, inverse kinematics will get the job done.
03:25I've got a concrete example to take a look at.
03:27Let's go open the Window menu.
03:29I've got Mech-arm.c4d open already and this is in the Exercise Files.
03:33What I want to do is to create an IK Chain that's going to allow me to
03:37control this Mech-arm.
03:38Now what I've got set up here is a pivot hierarchy.
03:40I've got a Main pivot and an upper arm, and an elbow pivot, and a lower arm, and a
03:45scoop pivot, and a scoop all by itself.
03:47And let's get out of Edge mode and into Object mode.
03:50And let's switch to the orthographic view.
03:52This time we'll go into the front view.
03:54So what I want to do is create my IK Chain in the same location as those joints.
03:58And so what I'm going to do is to deselect everything, and then I'll go to the
04:02Character menu and go to Joint tool.
04:04And I'm going to approximately click right in that area.
04:07Now in order to do this I think I'm going to turn on snapping.
04:10And if I go to my Snap options, I'm going to enable snap, and then what I'm going
04:15to do is click and hold on that, and I want to snap to access.
04:18And so when I enable access snap, what's going to happen is when I move in to
04:22this view you can see my cursor will snap to that location.
04:25Now I'm going to hold down the Control key and click on that Main pivot, that's
04:29going set a joint and a root, then I'm going to go up here and go to the elbow
04:34pivot and Ctrl+Click there.
04:35And then I'll go down to the scoop pivot.
04:38Let's zoom in to make sure that we're actually hitting that guy.
04:41There we go, and then Ctrl+Click there.
04:43Now what I end up with is an IK Chain that lines up perfectly with each of the
04:47joints of my mechanical arm.
04:48Now, the beauty of a mechanical process like this is that you don't have to do any binding.
04:53It can be a simple parenting process.
04:55Let's create our IK Chain first.
04:56So you select the top joint in the chain, and then go to the Character menu, and
05:00go to Commands and say Create IK Chain.
05:02And so now we've got our goal object and I'll hit E on the keyboard to get the
05:07Move tool, and you could see that our IK Chain is working fine.
05:10Now what we need to do is to parent up the parts of our mechanical arm to the
05:15different parts of the chain.
05:16So let's back out here.
05:17The way I have the chain built here for the mechanical arm gives you a clue to
05:21how we're going to parent things up.
05:23So let's call this first joint Base.
05:25Let's call this second joint Elbow.
05:26Let's call the last joint Tip.
05:28Now what I'm going to do is take the parts of my mechanical arm and parent them
05:32to the different objects.
05:33The scoop pivot is going to get parented to the tip object.
05:37The elbow pivot is going to get parented to the elbow object.
05:40Now this is very important.
05:42You don't want to break the IK Chain, if I put this into this location here, I've
05:46now broken the IK Chain.
05:47I want to be careful about that.
05:49I'm going to take the tip and drag it up here.
05:52That may change the hierarchy here, and you can see that these guys are now peers
05:56with one another underneath the elbow.
05:57Then I'm going to do the same thing for the Main pivot and parent it to the Base
06:02and then reorient the hierarchy so that my joints are still in a line.
06:05Now when I move this Joint.2.goal object, if I move that around, you can see
06:09that the parts of my mechanical arm follow.
06:11Now my snapping's still on and that's creating some weirdness in the movement.
06:15Let's undo the snapping and switch back to the perspective view.
06:18And you can see now as I move this around my mechanical arm is looking great.
06:22The interesting thing about joints is that they don't render.
06:24And so if I hit Cmd+R or Ctrl+R on the keyboard you can see that my Mech-arm
06:29is intact and the joints aren't visible.
06:31So that is a basic overview of the process of creating an IK Chain, and this
06:35is probably character animation at its most simple, and it's really easy to understand.
06:38We're going to move on through a situation in the next movie where we're binding
06:42the joints to the geometry instead of just doing a simple parenting.
Collapse this transcript
Binding joints and geometry
00:00In the previous movie we looked at IK, Inverse Kinematics, in terms of a very
00:04simple example where we parented mechanical arm parts to a chain.
00:08In this movie we're going to take a look at a more human form example where we
00:12have to actually bind the joints to the mesh.
00:14So this is an arm mesh, and if I click on that and go into Polygon mode you can
00:18see that it's made up of points and polygons, and it's a pretty nice looking
00:22arm, I wish my arms looked like that.
00:24What we want to do is create a Joint Chain with Inverse Kinematics and then bind
00:28that joint chain to the arm so that it will move.
00:31When you have a non-segmented character like this, meaning a continuous mesh,
00:34you have to use something called Binding in order to get the mesh to move with the joints.
00:39So let's get out of Polygon mode and back to Model mode.
00:42And let's switch over to the right-hand view.
00:44Now we'll create a joint chain.
00:45Let's go to the Character menu and go to Joint tool.
00:48And you have to hold down the Control key, and let's click to create some joints.
00:52We're going to click up here in the ball of the shoulder, and then right about
00:56here near the elbow, and then right about here in the wrist.
00:59We're going to ignore the hand for now.
01:01We're not going to create fingers and everything.
01:03This is going to be just a simple example.
01:05Now you can see that our joint chain got created as a child of the arm.
01:09That's because I had the arms selected when I Ctrl+clicked on the screen.
01:13So let's unparent that right now and drag that out of the hierarchy.
01:16So now the root is above the arm object.
01:18Now we're ready to create our IK Chain, so click on the top most joint, and then
01:22in the Character menu go to Commands > Create IK Chain.
01:25And there's our Joint.3.Goal.
01:26Let's hit E on the keyboard to get the Move tool, and then we can now move that IK Chain.
01:32But you can see that the arm does not go with it.
01:35Now for testing purpose,s let's add some Key Frames to the position of the Joint.3.Goal.
01:40I'm going to make sure my Time Setter is at time 0, and then on Joint.3.Goal,
01:44let's make a Position Key Frame.
01:46The rotation doesn't matter anymore because we're using Inverse Kinematics.
01:49Only the position of this Joint.3.Goal matters.
01:52So let's Control+click on the Ps to make a Position Key Frame.
01:56Now let's go forward in time, say, 30 Frames, and let's move the joint goal up
02:01and then hold on the Control key and set another Key Frame.
02:04So now, from Frame 0 to Frame 30 you can see that our move goes up.
02:09And this is a great way to test your bind to see if it's working by setting
02:12some simple Key Frames.
02:14Let's rewind back to zero now, and now we're ready to bind our arm to the Joint Chain.
02:18The way this process works is that you have to select the arm mesh, and then you
02:23have to select all the joints that you want to bind to it.
02:26So let's hold down the Shift key and click up on the top one.
02:30And you can see that it selected the arm and everything in between that and the joint.
02:34Now I can go to Character, and go to Commands, and tell it to bind, and when I do
02:39that I'm going to get two things:
02:40a Skin Object, that's a child of the arm, and this Weight Expression Tag.
02:44Both of these objects are absolutely necessary to make the binding happen.
02:48Let's see what actually did happen.
02:49Let's scrub forward in time, you can see that our arm moves now, and it moves really well.
02:55If we switch out to the Perspective View, you can see that our arm is looking
02:59really cool, it moves up from that hanging position.
03:02Let's deselect that and take a look at that animation one more time.
03:06There is some issues right here with folding in the crease of his elbow, but
03:09other than that the bind looks pretty good.
03:11Binding is a term that describes something called a Weight Map and how it's
03:15applied to the points in your object.
03:18If I double-click on this Weight Expression Tag, that takes me into something
03:22called the Weight tool, and I can now start painting my weights.
03:25My arm turned black, that's because it's waiting for me to select a joint to
03:29review the weighting of.
03:30So if I click on the first joint in the chain down here in the window, I can
03:34now see the weighting.
03:35This red weighting indicates the weight of this joint that's being applied to the skeleton.
03:40You can see it fades off as it hits the forearm.
03:42When I look at the joint.2 that is colored green, you can see the color here
03:46corresponds to the color that you see in the View Port.
03:49joint.3, the tip, has nothing on it, and that's normal for an IK Chain.
03:53The first two joints get all of the weighting and the last joint is ignored.
03:57It's really there to hold the chain together.
03:59Now let's take a look at what happens when we modify the weights.
04:02We got a pretty good weight map before, but we're getting a little bit of folding.
04:06So let's navigate forward to where we're getting that folding and we can see it really well.
04:11And if we go into Joint.2, let's zoom in on that area.
04:15Let's rewind back to zero and take a look at the polygons that are
04:18being deformed there.
04:19I think what I want to do is to add in these guys right here, and so what I'll
04:24do is click on Paint on my arm object, and so let's move down here a little bit
04:29so we can see better.
04:30As I paint through there you can see that, as I move over a point, the mesh gets a
04:35little bit more green.
04:36And that's because I'm weighting this joint for that area.
04:40And now when I move forward in time to see if that's working a little bit
04:43better, you can see that's cleaned up the mesh.
04:45We're getting a little bit of folding but it's not nearly as bad as it was before.
04:49Now if I select both joints together, you can see that there's a blending area, a
04:53place where it blends from red to green, and this is the normalized area.
04:57In my opinion, by far the hardest part of the character rigging process is
05:00the binding process.
05:02It is really where the black art comes in.
05:04It is a magical process that requires one part artist and one part scientist to
05:09get it going correctly.
05:10What you have to do is to look at the blending between the joints and then
05:14figure out how you can balance the difference between those two joints to smooth things out.
05:19So when I click on both joints and paint, you're going to see that's it's going
05:23to start to smooth and blend them out.
05:25As I move up and highlight the mesh up here, it starts to normalize out and
05:30blend those joints together a little bit more.
05:32As I move around the back side here I'll do the same thing and just create a
05:35smoother transition between those.
05:39Now let's go down a bit on here, we're creating more of a blend in that area. There we go.
05:45Now let's move forward in time and see what that does.
05:48You can see that I've actually made things worse, and that is part of the
05:52issue with binding.
05:53It is a magical process, and when I thought I was doing it right, it turns out
05:57when I test it, I didn't do such a good job at all.
06:00So if we go back and Undo, let's move back to time zero and Undo, Cmd+Z or
06:04Ctrl+Z, until we see our joints go in again.
06:07Now I've deselected them, that's how I know I'm back to where my Joint Chain was
06:11and I can move forward again.
06:13And you can see that I've got that crease there.
06:15This is a case where we probably need to look at our object in terms of its
06:20smoothness. And if we go to the arm object and take a look at the geometry,
06:24now let's get out of the Weight tool by clicking on the Move tool,
06:27and we can see that if we go into Polygon mode that our polygons are fairly
06:31large, there's not a lot of resolution in this model.
06:34Let's add a HyperNURBS object to the scene, and bring it down in the hierarchy
06:37and make the arm a child of the HyperNURBS.
06:39That's gong to give me a much smoother arm if I select that mesh.
06:43And let's change the Display mode, let's go out of Polygon mode to Model mode,
06:46and change the Display from Gouraud to Gouraud with lines.
06:49You see now I have a much higher density mesh.
06:52If I click on the arm you can see that the HyperNURB mesh is translating down to this geometry.
06:57So now let's scrub forward in time and take a look and see what that does.
07:00You can see that that smoothes it out quite a bit.
07:03So this should give you a really good overview of the process for binding a
07:07Joint Chain to a mesh.
07:08Just keep in mind that you're going to have to do a lot of testing and a lot of
07:12modification over this process.
07:13But with a little patience, you can get a great result.
Collapse this transcript
Using the Character object for building and applying rigs
00:00In the previous releases of CINEMA 4D, MAXON introduced something called the
00:04Character Object, which is an amazing tool set for building and applying rigs.
00:09The Character Object has a set of rigs that are premade into it that can be
00:13applied to a wide variety of models.
00:15This greatly simplifies the process of making a rig.
00:18Now I've got a simple character here, and he's a bipedal character, and it's a
00:23combination of a single mesh and some other additional meshes that are all
00:28merged together into one polygon object.
00:30And if we zoom in on there you can see that he's got a little bit of gap
00:34between his shoulders and the top of his torso, and he doesn't have a neck,
00:37and that's really by design.
00:38You don't have to design your models this way.
00:40They can have necks and shoulders and that sort of thing.
00:43I just liked to way this looks and so that's how I did it.
00:47Now if want to be able to make this guy walk across the floor I need to create a rig for it.
00:52And normally this would be a long, drawn-out process, but the Character object
00:55really simplifies that.
00:56So let's start off by adding a character object to the scene, and the Character
01:00object has Object Properties and Display Properties.
01:02We're going to focus on the Object Properties for now.
01:04The coordinates we're going to leave at the center of the world right underneath
01:08our character, and then when we click on the Object Properties there's four tabs:
01:11Build, Adjust, Binding and Animate.
01:12These are roughly the order that you're going to be creating your rig in.
01:16So now we're in the Build mode, and we need to start building our rig.
01:20And if you look under the Templates pull-down there's a whole bunch of templates
01:23here, and there's a variety of them.
01:25I'm going to be using Advanced Biped.
01:27And the Biped Rig has a few additional issues with it that make it unsuitable
01:30for a lot of situations.
01:32The Advanced Biped Rig is much better made.
01:34The thing to keep on mind about all of these presets, these templates, is that
01:38they were made by artists, and really what the Character tool is, is a method for creating rigs.
01:44The programmers at MAXON spent a lot of time pre-building these rigs for you so
01:48that you wouldn't have to.
01:50And so the controls that make up these rigs are easily accessible from the
01:53Character tool, but the Character tool simplifies the process of applying them.
01:57So I'm going to leave Advanced Biped selected and then down under Components is Root.
02:02Anytime you hear the word Root in terms of character rigging it means the top
02:06most part of the skeleton hierarchy.
02:07So let's click on Root and add it to the scene.
02:10You see it's childed to the Character Object, and then on the Root Object we've
02:14got a new component here and it says Spine (IK/FK Blend) and it's asking us, "Do
02:19you want to add a Spine (IK/FK Blend)?"
02:21We say yes, we do, we click that, and we're going to get a Spine.
02:24Now when the Character tool creates the Advanced Biped rig, it's basing it on
02:28approximately six-feet tall.
02:30So your character is approximately six-feet tall.
02:32I've built this guy approximately six- feet tall, it's 182 centimeters roughly,
02:37and that translates out to about 5.9 feet.
02:41Now you can make your characters any size you want, the important thing is
02:44you'll have to resize the rig afterwards.
02:46So we're creating the rig now and then we'll resize it later, and that's in the adjust phase.
02:51So now what we want to do is we want to start adding things.
02:54We don't need eyes for this character, we do need arms though.
02:57And if I click and hold on that, I've got two choices:
03:00IK/FK Bendy and IK/FK Only.
03:02I'm not going to do a Bendy rig right now.
03:04Bendy allows for very flexible stretchy arms and we're not going to need
03:08that for this character.
03:09I'm just going to do IK/FK Only.
03:10And when I add that I get an Arm Object.
03:14That's created a left arm.
03:16Now what I need to do is create a right arm.
03:18So to do that I'll go back to the spine object and then do Arm (IK/FK Only).
03:24Now the object already knows that it has a left arm, so it created a right arm for me.
03:28Now you can see that the controls in the scene are getting much more complex, we're
03:32building on top of this rig one step at a time.
03:35Now we want to add legs.
03:36So let's go back to the Spine Object, and we're going to build the legs off this.
03:41Now I could do the legs one at a time like I did before but I'm going to hold
03:45down the Control key and go to Leg (IK/FK Only), and when I let go I'm going to
03:50end up with two legs right in position.
03:52Now that's a much faster way to do it.
03:55So that's all the pieces of the Character Control that I'm going to need.
03:59You can see I've got a lot of different Control Objects, but none of them are
04:03in the right place.
04:04Now I can move to the next phase, which is Adjust.
04:06Let's click on the Adjust button, and you can see that our objects have all changed.
04:10Now we've got these little handles here.
04:12We want to make sure and leave Symmetry turned on.
04:15Now if your character is asymmetrical, like it's a Hunchback of Notre Dame or
04:18something like that and it's lopsided, then you can uncheck Symmetry and move
04:21things around by hand.
04:22But my character is perfectly symmetrical, so I'll leave that turned on.
04:25Now we can start to move these parts.
04:27So let's start with the legs, and I'm going to switch to a four-way view.
04:31Now what I'll be doing is zooming in on things.
04:34And I'm going to select them in the Perspective View and then do some movement
04:38in the Orthographic Views.
04:39So now I can take that and drag it down.
04:41So I've selected this left leg component.
04:44And I'm going to move it down.
04:45You can see the whole leg group moves.
04:47Now what I want to do is to put that left leg object right into the character's
04:52hip, and then once I've got that, I'm going to now switch and select the left leg
04:57at his knee, and then I'm going to use the Axis Band for that and move it into
05:02the position on the knee.
05:03You can see that it stretches out, and that's actually stretching the rig out.
05:06Let's zoom in on that area.
05:08I'm going to put that right on his knee, right there. And now we can grab the
05:12next one, which is this left leg, and that's his actual ankle, and I can move this
05:17down. You can see that takes all the foot controls with it.
05:20Let's bring that down and put that right about even with the
05:23floor, approximately.
05:24Then I could take this little controller, which is for his heel, and let's push
05:27that in and tuck it in right there.
05:29Now what I want to do is to get them lined up along the X-axis.
05:32If I switch to the Perspective View you can see that the joints are outside of
05:36his knee mesh, and we want to get those in position over here.
05:39So let's just click on one, and then in the Front View this time, we'll back out
05:44a little bit and go down to his legs and then just move that over.
05:47Let's take the hips and move them in just a bit, switch to the Move tool and then
05:52just drag that in down a little bit. There we go.
05:55We might need to make some adjustments here on the knee.
05:58Let's grab that one and move it up here.
06:00I'm using the Axis Band to move that. Pretty good.
06:02Now that we've got his legs positioned we can focus on the spine.
06:06Let's switch back to the Perspective View and orbit up here just a bit.
06:09And we're going to start off by grabbing his hips.
06:12We can move those up into position, about there.
06:17Then we can grab his chest and move that.
06:20And you see when we move that, the arms go with it.
06:23And I'm going to move up right about here, put that right about in the middle of
06:27his chest, and then we can grab his neck and put that down.
06:31You notice I'm using the Access Bands when I move that, I'm going to put that right there.
06:35Everything is still lined up because I'm using those Axis Bands.
06:38Now I can focus on his actual shoulders and arms.
06:41So this arm, this top one, this collar, I'm going to move up on Y right into
06:46position here. Then I can take the shoulder object and move that up so
06:51it's even with this arm.
06:53Let's do this in the four-way view so we can really see what's going on.
06:56Zoom in that way, and let's drag that up so it's right in the center roughly, and
07:01then in the top view let's zoom way in.
07:04There we go. And then I'm going to grab the Axis Band for that and drag it right across.
07:11That's looking pretty good.
07:13Now his elbow should come back just a little bit, and then his wrist should go
07:19forward to about where his wrist would be, which is right about there. Not bad.
07:24So you can see that we've got that all lined up on all the axes. Now we can focus on his neck.
07:30So if we go forward here, his neck's going to come up just a bit right, to the
07:35base of his skull. And I think the tip is pretty good.
07:38So those are the adjustments that we're going to need.
07:41And let' back out, hit H on the keyboard. And now we can move on to the next
07:46phase, which is Binding.
07:47And in the Binding phase I'm going to click on the word Binding, and it's
07:51asking for an object here.
07:52And the object it's asking for is the mesh, What mesh do you want to bind this rig to?
07:57And so I'll take the SPACEDUDE mesh and drag it right on into that field,
08:01and when I do that it automatically generates a Skin object along with a Weight Expression.
08:05And you saw in the last movie, the Weight Expression controls how the joints in
08:09all of these chains are bound to the actual mesh.
08:12Now I've created this character so that I knew it would be easy to bind up.
08:16And I think we've got a pretty decent bind, and so we can move on to Animate.
08:20When I move to Animate, this is where we can check to see how the bind is doing.
08:24Let's get in here and move things around.
08:26Before we start to move things around though, I want to simplify the display.
08:30Let's zoom in here.
08:31You can see that we can actually see all of the joints and splines and all the
08:35little things that make up that.
08:36We really only want to see the controllers.
08:38And so we go to the Display Options, and we're going to go to the Viewport > Visible
08:42and change it to show us only the controllers.
08:45And now it hides everything except for the actual controller objects.
08:47So now I can click on his arm and then move it around.
08:51You can see I have a great looking bind.
08:53Those are the basis of using the Character object.
08:55Keep in mind that the Character object is really a system for building rigs.
08:58If you're an experienced character rig builder then you can create and build
09:01your own custom rigs with the Character object.
09:03You don't have to rely on these presets.
Collapse this transcript
Creating character movement with CMotion
00:00With the fully rigged character you're probably asking yourself, "Well, how do I make it move?"
00:04The CINEMA 4D CMotion Object, which is part of the Character options, allows
00:09you to do just that.
00:10It's a method of creating procedural motion for your characters.
00:13Now it's not nearly as nice as actually hand animating your character but it's a
00:18great way to get quick motion in a scene.
00:20Let's say you're an architect and you're trying to populate a scene with
00:23people in the background.
00:25The CMotion Object let's you apply walk cycles to your characters very fast and
00:29then makes subtle adjustments to them to make them a little bit different.
00:32So let's select our Character object here. And in the Character Object under the
00:37Object Properties, we're in the Animate section of the Object Properties, and
00:41there's this great looking button here that says Add Walk.
00:44Let's go ahead and do that. Boom.
00:46As soon as I do that, my character's arms and legs have changed position.
00:49You can see that his right leg in a step position, and his left leg is down, and
00:54his arms are straight down.
00:55Let's hit Play and see what's happened.
00:57You can see that my character is actually walking, it is that simple.
01:01We've added motion to this character just with one click.
01:03Now there are some issues here.
01:05One of the bugs in the interaction between the CMotion Object and the actual
01:09character rig that was created with the Advanced Biped Rig in the Character
01:13Object is that when you first add the CMotion, it makes the hands point straight
01:18down like this. And so if you see, the controllers are way down here.
01:22There's my controller.
01:23So what I want to do is to make an adjustment.
01:26If I click that guy I can't actually move it.
01:28That's because the position is being controlled by the CMotion Object.
01:32So what I need to do is to go into the CMotion Object, then modify it.
01:36So let's click on that, and thinen the CMotion, under the Object Properties,
01:39let's raise that way up, is a whole bunch of stuff, and really what this is,
01:44is a listing of all the controls that were modified when I added the CMotion Walk Cycle.
01:49In here are these little actions and these actions are a lot like the text
01:53animators inside of After Effects.
01:55They allow you to add procedural motion to objects and then control that
01:58motion with graphs.
01:59What I'd like to do is to find the left arm, left IK Arm Controller in this listing here.
02:06And so let's scroll down until we see that.
02:10And there is the right arm IK.
02:13If I select that you can see I've grabbed that one.
02:15So let's start there, in the left arm, well, it should be right after it.
02:19In fact there it is right there, left arm nb control that stands for
02:22Non-bendy Controller.
02:23So let's start with the right arm and what we want to do is adjust the vertical
02:27height of the right arm.
02:28So let's orbit around so I can see that.
02:30And let's go to the vertical height and start to scrub that. And we scrub it to
02:33the right until the arm comes up.
02:35And as it comes up and meets the arm object, you can that it'll bend in the arm
02:40in the right directions, it's no longer pointing straight down.
02:42As we scrub through the animation you can see that our arm is moving in a much
02:47nicer way, it's not dragged straight down towards the floor.
02:49Now what we can do is repeat the process for the left arm.
02:52So we grab the left arm IK NB controller and then adjust the
02:57vertical height straight on up, and now it's up there.
02:59It doesn't matter that it's exactly the same height. We want it to feel a
03:03little bit different.
03:04And that's looking great.
03:05Let's back out so we can see our character moving. Let's hit play.
03:10It's not bad.
03:11Now the Stride Option allows you to control how big a step the character is taking.
03:15Right now it's about 80 centimeters.
03:17Let's increase that Stride length, let's crank it way up.
03:20You'll see that our character is going to be doing this crazy move, and the key
03:25to remember is that that Stride Value is non-destructive.
03:27So if I bring that back down to 80, then our character will be moving pretty much
03:32the same way that he was before.
03:34And that's really the beauty of the CMotion Object, is that it's
03:36completely non-destructive.
03:37So the Time Function will make him actually walk faster.
03:40Let's bring that down to 15 or so and hit play.
03:43And you see that he's picked up his pace.
03:46Now what we want to do is not have him walk in one location.
03:49We want to have him walk off his mark. And let's rewind back to zero, and that's
03:53where the walk pull-down comes in.
03:55It defaults to static, which means he'll walk in one place.
03:58We can also do a line, which he'll just walk out in a straight line.
04:02Let's hit play and you'll see him take off. And there he goes.
04:05Let's rewind back to zero.
04:06You can also do Path, and with Path you need to add in a spline.
04:10So let's go into the Top view and draw out a spline for our objects.
04:14Now I normally use a B-Spline when I do this.
04:16So let's grab a B-Spline.
04:17I'll just draw out a spline.
04:19And I'll have it nice and curvy, in fact, let's curve it around here and have
04:23him go out that way, okay.
04:25So now I've got this path for him to walk on, and when I switch back to the
04:29Perspective View, I can go to the CMotion Object and drag this spline into the Path Field.
04:33And he's going to jump to the starting point of that spline.
04:36Now when I hit play, he's going to take off and go around that path.
04:42Now I don't have quite enough frames for him to make it all the way around
04:46that path, and so what I need to do is to rewind back to zero and let's adjust our preview range.
04:51Right now we're looking to 90, let's change that to 300, and then expand that
04:55outward, and then we'll hit play again. You'll see him go around there.
04:59Now you can see that one of the things that's happening is as he passes through
05:02that cycle, and when he gets to the end, he just kind of does this little dance.
05:07As he passes though the loop there, you can see his arms are doing weird things.
05:11If I scrub backward in time there's a spot where his arms kind of lag behind him.
05:15And what's happening there is that I have too tight a path on the curves here.
05:19So what I'm going to do is to grab that and let's move it out just a bit and
05:24expand it so that he has a little bit more room to walk in that path.
05:28Do the same thing over here, let's grab that one and move it out just that way
05:33so we got a nice, big, curve for him to walk through.
05:36Let's rewind back to zero and that should help to fix our object nicely. There we go.
05:41That's getting little bit better.
05:42So the CMotion Object allows you to modify these default walk cycles, and the
05:48way you do that is by adding something called an Action.
05:50And there's a whole bunch of different actions here and we're going to do a lift
05:54position Y this time, and we're going to put that on his torso so that he
05:58bounces up and down as he walks.
06:00So if I click on his torso you can see that nothing happens, I can't control it.
06:04I need to use an Action to do that.
06:07So we're going to add a (Lift P, Y) and we're going to add that to his torso object.
06:11So let's find his torso here in the hierarchy, and there it is, Torso
06:15Controller, so I'll select Torso Controller, and then when I add (Lift P, Y)
06:20that's going to add that to his torso.
06:23So you can see when I added it, it looked like nothing happened, and here's our
06:27Lift (P, Y) right here.
06:28What we want to do is tell it how much it needs to lift up. And if we adjust that value,
06:34the slider's a little bit small so it's sometimes hard to scrub here, we're
06:38going to get a very big value with a little bit of scrubbing.
06:41So I'm going change that numerically from 2 to, say, 4. Let's double it.
06:44Let's actually make it a little bit higher. Let's call it 8.
06:47So now when we hit play you can see that he's bobbing up and down in one spot.
06:52That's because he's already hit the end of his spline.
06:54So when the animation cycles back around again, he's going to walk through
06:57his complete cycle.
06:58So let's hit stop and take a look at the interface for that.
07:02You can see that the Lift (P, Y) is an oscillating cycle, and the Lift field
07:06controls how big that cycle is.
07:07Variation introduces a little bit of randomness into the cycle, and if we crank
07:11that up - let's rewind back to zero again and hit Play.
07:14So now he's not going to go up and down the exact same distance each time.
07:18Let's increase a hundred percent variation.
07:20You can see now he's really not doing it.
07:22Let's take this from 8 centimeters down to 4 so he's not quite so bouncy. There we go.
07:28That's starting to feel a lot better. So let's recap.
07:31The CMotion Object allows you to add procedural animation to the controls that
07:35were built with the Character object.
07:37The important thing to remember is that you're not limited to the walk
07:40cycle that you get there.
07:41You can modify it in a dizzying number of ways.
07:44By tweaking those values you can really change the character of your
07:47character's walk.
Collapse this transcript
Conclusion
What's coming next?
00:00I hope you've enjoyed CINEMA 4D Essentials:
00:01Character Rigging and XPresso.
00:03In the next course, CINEMA 4D Essentials: Particles and Dynamics, we'll take a look
00:07at the two different particle systems in CINEMA 4D,
00:09the Basic Particle Engine and Thinking Particles.
00:11Then we'll examine how the dynamics can be combined with Thinking Particles to
00:16create some really cool effects.
Collapse this transcript


Are you sure you want to delete this bookmark?

cancel

Bookmark this Tutorial

Name

Description

{0} characters left

Tags

Separate tags with a space. Use quotes around multi-word tags. Suggested Tags:
loading
cancel

bookmark this course

{0} characters left Separate tags with a space. Use quotes around multi-word tags. Suggested Tags:
loading

Error:

go to playlists »

Create new playlist

name:
description:
save cancel

You must be a lynda.com member to watch this video.

Every course in the lynda.com library contains free videos that let you assess the quality of our tutorials before you subscribe—just click on the blue links to watch them. Become a member to access all 104,069 instructional videos.

get started learn more

If you are already an active lynda.com member, please log in to access the lynda.com library.

Get access to all lynda.com videos

You are currently signed into your admin account, which doesn't let you view lynda.com videos. For full access to the lynda.com library, log in through iplogin.lynda.com, or sign in through your organization's portal. You may also request a user account by calling 1 1 (888) 335-9632 or emailing us at cs@lynda.com.

Get access to all lynda.com videos

You are currently signed into your admin account, which doesn't let you view lynda.com videos. For full access to the lynda.com library, log in through iplogin.lynda.com, or sign in through your organization's portal. You may also request a user account by calling 1 1 (888) 335-9632 or emailing us at cs@lynda.com.

Access to lynda.com videos

Your organization has a limited access membership to the lynda.com library that allows access to only a specific, limited selection of courses.

You don't have access to this video.

You're logged in as an account administrator, but your membership is not active.

Contact a Training Solutions Advisor at 1 (888) 335-9632.

How to access this video.

If this course is one of your five classes, then your class currently isn't in session.

If you want to watch this video and it is not part of your class, upgrade your membership for unlimited access to the full library of 2,025 courses anytime, anywhere.

learn more upgrade

You can always watch the free content included in every course.

Questions? Call Customer Service at 1 1 (888) 335-9632 or email cs@lynda.com.

You don't have access to this video.

You're logged in as an account administrator, but your membership is no longer active. You can still access reports and account information.

To reactivate your account, contact a Training Solutions Advisor at 1 1 (888) 335-9632.

Need help accessing this video?

You can't access this video from your master administrator account.

Call Customer Service at 1 1 (888) 335-9632 or email cs@lynda.com for help accessing this video.

preview image of new course page

Try our new course pages

Explore our redesigned course pages, and tell us about your experience.

If you want to switch back to the old view, change your site preferences from the my account menu.

Try the new pages No, thanks

site feedback

Thanks for signing up.

We’ll send you a confirmation email shortly.


By signing up, you’ll receive about four emails per month, including

We’ll only use your email address to send you these mailings.

Here’s our privacy policy with more details about how we handle your information.

Keep up with news, tips, and latest courses with emails from lynda.com.

By signing up, you’ll receive about four emails per month, including

We’ll only use your email address to send you these mailings.

Here’s our privacy policy with more details about how we handle your information.

   
submit Lightbox submit clicked