Learn how to use dynamic tags, spring objects, and connectors to create a bobblehead in this Cinema 4D tutorial!
Aside from Flamenco the dancing Chihuahua, is there anything more exciting than a bobblehead doll? Short answer... no.
In a fury of passion and excitement, EJ Hassenfratz, the instructor of Cinema 4D Basecamp, has put together a fun tutorial on how to create a bobblehead in Cinema 4D R16 and up.
The tutorial shows how to create the wobbly character using simulation tags and we're even throwing in a free model to practice with... Meet Cloud Boy Boi!
Springs and Controllers in Cinema 4D Tutorial
Here is the Bobblehead in Cinema 4D video tutorial. You can download the project file to follow along below the video.
Things You'll Learn in the Tutorial
There's a lot covered in the tutorial, so here's a quick overview of what EJ will be teaching you. Trust us, these techniques are going to get a warm welcome in your workflow.
1. HOW TO SETUP SIMULATION TAGS
When you start messing around with physics, Cinema 4D needs to know how each object will behave in the scene. That's where Simulation Tags come into play.
But, which tags should be applied to what objects? And, how do you get them to work together properly?
EJ starts off the tutorial by showing us how the Collider Body Tag and the Rigid Body Tag work together in order to simulate gravity and physics, laying the foundation for this adorable bobble head character.
2. USING A SIMULATOR OBJECT WITH GEOMETRY
Cinema 4D has a toolset that allows you to simulate dynamic objects. Luckily, for our bobblehead character creating needs, Cinema 4D has just the tool, the Spring Object.
The Spring Object in Cinema 4D gives you an array of options that allow you to connect two different objects, control how stiff it feels and much more.
There are a few helpful tips that you'll want to know about, like the Set Rest Length that EJ points out in the tutorial. Learning how to use the spring object is a great way to expand your workflow. Once you get to this stage, your character's head and body will be connected.
3. HOW TO USE A CONTROLLER WITH GEOMETRY
At this point, not everything is tied together properly. There are a few more things that need to happen to get the bobblehead to set properly. Let's get into controllers!
Controllers help you define parameters about how the geometry will work with one another. Getting this bobblehead to work can be a little tricky, but with some expert guidance, making sure the springy nature of a bobblehead can easily be obtained.
The Ragdoll and Slider Connectors that are available natively in Cinema 4D offer just the right control we need to get Cloud Boi all rigged up. The settings here are a little nuanced so that the combined controllers don't cancel each other out.
Once these are added, the Head and Body objects stay in line just right, so that the head comes back in alignment and sits in its proper resting position.
4. Straight Cache, Homey
You’ll notice a bit of lag with the spring as it follows the head. To fix this, we’ll cache our dynamics by clicking on the Head Rigid Body Tag and go to the Cache Tab.
Enable Include Collision Data, and hit the “Bake Object” button.
This will cache the dynamic simulation and you'll see this will fix the lag we had with the spring not precisely following the movement of the head!
Start Mastering Cinema 4D
Hopefully, this dynamic bobblehead tutorial gave you a good idea of the power of Springs, Connectors and how to use them in multiple use cases to create more cool dynamic setups!
If you're ready to climb the Cinema 4D mountain it's time to enroll in Cinema 4D Basecamp.
This class, led by EJ himself, is designed for artists with little to no experience in the software. The course will get you up to speed with all of the key aspects of Cinema 4D.
From Day 1 you’ll be learning best practices... no bad habits to unlearn later. The course features exercises and challenges based in the world of Motion Design projects.
Tutorial Full Transcript Below 👇:
EJ Hassenfratz (00:00): In this video, I'm going to be showing you how you can easily create a dynamic bobblehead rig inside of cinema 4d. We're going to have a lot of fun in this one. So let's check it out.
Music (00:12): [intro music]
EJ Hassenfratz (00:20): The dynamics engine inside of cinema 4d is not only powerful, but it's really easy to use. Not a built in is bobblehead rig. We're going to be using a couple of objects that you might not have ever used or heard of before. Those two things are called connectors and spring. So if this is new to you, this is going to be a really good demonstration as far as what those objects can do in the dynamic system. So do you want to follow along with the tutorial, be sure to download the project fellows, you can find the link in the description below. So let's go ahead and dive right in and build our bobblehead. All right. So here's our cloud boy character that we're going to bobblehead Ify here, and I'm just going to set the scene. Show what I have this project file is going to be made available to download.
EJ Hassenfratz (01:03): So check that out and you can pick it apart and all that good stuff, but basically for a bobblehead, we need the body and the head separating. Okay. So if you twirl down the body and on the head, no, you can see all of the objects that make up the head and the body. I'd like to group everything underneath their own little Knowles here. So their group and also have the body and all and the head and all that, all the objects that make up those two separate pieces are underneath. That's also important that the access center of your objects are kind of centered to the center of your head and your body. Okay? So it's just important for pivot points and stuff like that. As we start to build our bobblehead. So name is tutorial is bobblehead dynamics. So we're getting utilized dynamics to get this bobble-head effect.
EJ Hassenfratz (01:50): So to add dynamics to objects, we're going to go ahead and use two different types of dynamics. Okay? So our body, we don't actually need to have fall and have gravity and physics brought onto it. We just need it to be collided into, by the head. Okay. So what we're gonna do is on this body Knoll, I'm going to right click and I'm going to go down to simulation tags and I'm going to choose Collider body. Now this is going to make our object stay put, but allow it to be collided into and be recognized in the dynamic simulation are seen here. So I'm going to add Collider body. And there's a couple of settings that we need to change here. If we go to the collision tab here in our 21, the default values here are different than what you may have in older version.
EJ Hassenfratz (02:34): So I'm just going to cover what settings we need for this body. No, here. Okay. So in the collision tab, we have this inherent tag that says, okay, what do you want this tag to do to children? Objects are the children of the main object that you apply the dynamics tag to. And right now it's saying in the inherit tack, it's going to apply the tagged to the children. Now, if we go check out what other options we have here, we have this compound collision shape. And basically this is the one we want. Cause we just want all of those objects to be treated as one singular collided will into objects. So I'm just going to choose compound collision shape. And for individual elements, I'm just going to turn this off because I don't want the arms, the feet and the body to be recognized as individual objects and have like the arms fly off or anything like that.
EJ Hassenfratz (03:25): So I'm just going to turn the individual elements to off. And as far as the shape goes, the default in our 21 is static mesh. And basically this is a more accurate calculation that takes into account all the nooks and crannies of the actual geometry that we're using for the body. But the problem is, is that kind of slows down your viewport because it's a more intensive and accurate calculation. So what I'm going to do is just choose automatic in older versions of cinema 4d, automatic is the default shape that we'll use, and this is what we're going to use for this as well. It's less accurate, but it's way faster for playbacks. I'm going to choose automatic. And basically this puts like a shrink wrap around our character. So we get just enough detail that other objects can kind of collide into it. Okay.
EJ Hassenfratz (04:10): So I'm just going to twirl that up in our head. I'm going to right click and we want this to actually fall. So let me just move this up in the Y just we can give this some space to kind of fall down and I'm going to right click on the head and go back to the simulation tags. And instead of Collider body, we're going to add rigid body. And this is going to allow us to not have this object just be collided into, but we want this object to fall and have gravity effective. Okay. So I'm going to add my rigid body tag. And again, we're going to go into the collision tab and change some settings. So the inherit tag, again, we want this head to be treated as one single piece of geometry. So the eyes and the tongue don't kind of fly out.
EJ Hassenfratz (04:49): So what I'll do is change this inherit tag to compound collision shape. So the, all the objects that make up the head will be treated as one kind of fuse together object. Now for individual elements, we, again, don't want the dynamics tag to be applied to each of these individual objects. So I'm going to just change this to off turn individual elements off. So you can see with the rigid body tag, the shape is already set to automatic, so we don't need to change anything there. So this is great. Now let's just go ahead and we're going to go back to frame zero, and we're going to see the dynamic simulation by hitting play. Okay. So I'm going to hit play and it's going to take just a second to kind of calculate here, but the head's just going to kind of fall in, roll off.
EJ Hassenfratz (05:32): And if I go back to frame zero, we're going to keep doing that. Now the default frame range that you have in a project is 90. So what I did is I just upped this to 300. We can even go to 400 by just entering in a number, hitting enter, and then just dragging this little bracket to expand the play head. Now we have 400 frames to see this full simulation I'm just going to hit play and the hair just kind of rolls off. So not a bobblehead, that's a broken bobblehead actually. So I'm just going to go back to frame zero. We actually need to have this head stay in place. Okay. So what I'm going to do is in the force tab, we have the ability to allow the object, the dynamic object to follow position, follow rotation of the initial position in rotation that the objects at when the dynamic simulation starts.
EJ Hassenfratz (06:22): So frame zero, this is the starting point of our head. So if I want this to stay and try to maintain this position and rotation in the scene, I can up these values. So if I enter in like five for followup position and five for follow rotation, let's go ahead and hit play. And you see that kind of dips a little bit, but it's trying to maintain the position in rotation that it was initially at now. Here's what's cool. Bye. Go to my cloud boy parent know that has both the head and the body here. I can move this around. And since I'm moving both of my objects, that head is going to try to get back to the initial position and rotation that is right over the body here. Okay. So it's trying to get back. We have this little cool floaty head thing, which in itself is pretty cool.
EJ Hassenfratz (07:13): Dynamics is like my video game. Like I don't play video games, but I play the heck out of dynamics and you can see how fun this is. Okay. So we're kind of getting a bubble heady kind of effect here by just adding that fall position and rotation. So on this cloud, boy, now I'm just going to bring this back to its initial position. So I'm just going to click this reset PSR button. Now this is docked in our 21. If you don't have this doc in your version of cinema 4d, we can bring up reset PSR very easily. Let me just go ahead and hit escape to pause my playback there. And I'm just going to hold shift and see to bring up the commander. And here you can enter in any thing that you want. So any function or command. So I'm just gonna reset, just type in reset, and then P S R.
EJ Hassenfratz (08:01): And that's going to bring up that and I can just hit return and that will also reset PSR. So that's an easy way to do that shift. See commander is so useful. Okay. So we have this all set up. Let's go back to frame zero, and we have this head just kind of floating around with that fall position, fall rotation. So we don't have any spring movements just yet. So what we're going to do to add that springy movement is what's called a spring object. So what I'm gonna do is go into the simulate menu here, and I'm going to go to dynamics and we're going to be living with these two little objects here. And they're very, they're not very used. Uh, as far as my experience goes, they're kind of hidden. They got introduced, you know, 70 years ago or something like that to cinema 4d, but they're very, very useful and very powerful.
EJ Hassenfratz (08:49): So we're going to go ahead and just start by adding the spring object first. And this is going to allow us to define two objects that will have a spree relationship between those two objects. So again, all of these little objects in here rely on them being applied to dynamic objects. Okay? So between two dynamic objects, we're going to build a springing relationship. So let's just go ahead and drag and drop this spring object underneath the cloud boy, Knoll or appearance and all of our head and our body. And you can see that we have a type of spring that we can use. We can use linear or angular or linear and angular. Okay. So that means we can either there have Springs that just happened linearly, or we can have Springs added whenever there's any kind of rotational movements. So we'll get that rotational angular spring.
EJ Hassenfratz (09:38): So we don't want one or the other. We actually want both there's a bobblehead will spring up and down. And also if you rotate it, so I'm just going to go and choose linear and angular. And you can see, we have this little spring here, it's a little angular spring. And what I'm going to do is just define the objects that I want to connect together to build that spring, your relationship. So object a is going to be the body. That's going to be the anchored object. So I'm just going to drag and drop the body mil into object day. And then for object B, I'm just going to drag and drop the head. And you would see that when I drag and drop the head and the body, we not only have this angular spring, but we also have this coil spring, which is really cool.
EJ Hassenfratz (10:19): And you can see that this is really cool representation of what this spring object is doing. So we have this imaginary coil spring in this angular spring, that's kind of building that springy connection between these two dynamic objects. So let's go ahead and let's just hit play, and you can see that the head just kind of falls down. And if I select my cloud boy, parent null and move this around, we've got this cool kind of springy movement kind of, but you can see that the spring almost looks like it's too short. Now, when I clicked off of that spring object here, we no longer got that kind of cool little visual reference. So I'm going to want to see this just for demonstration purposes the entire time. So if I go to the display tab, I can say always have this guide visible the spring guides.
EJ Hassenfratz (11:09): I'm just going to check that on. And then when I de-select my spring object, we still see the little spring guide. So if I go back to frame zero hit play, you can see the spring kind of moving up and down with our visual guide there. So I'm just going to hit escape to stop that playback, go back to frame zero. We're going to be doing this a lot, going back to frame zero, to reset the dynamic stimulation. And let's go back to our spring object and kind of see what's going on here. So why does our spring just kind of fall? Well that's because of go to our object tab, we have a default wrestling. That's basically the rest length of our spring or linear spring. We have our linear spring values here and then our angular spring values down here. So we're just going to concern ourselves with this wrestling.
EJ Hassenfratz (11:55): And that's basically the default length of our spring. And right now a hundred centimeters, I think our head's actually floating way above a hundred centimeters. So what are you going to do instead of trying to guess what the distance between the main body part here, the, the anchor point here, you can see that's where the Springs connected here and the Springs connected to the head right here. Again, those are the anchor points again. That's why it's important to have aligned anchor points on both your head and your body there and see that if we go in, we go to our spring, we can actually hit this set rest length. So this is going to take the distance between the anchor point of your body and your head or object a and object B and reset that distance. So I'm going to set wrestling and you see that our wrestling jumped up to 246.5 to nine.
EJ Hassenfratz (12:46): It's very precise. And if we go ahead and hit play, now our head stays up because our spring is long enough before it was too short and brought the head down. So now what I can do is get my cowboy and I'll move this around. And you can see that we have a much longer length spring, and we get this cool springy movement, which is really, really nice. And if I move this around, you can see that the head is going to spring. Also rotationally. If I rotate this and we're going to get that springy movement, but you can see that the head while we have this really cool springy movement, uh, the heads just kind of go on all Willy nilly. And it's almost like this is a springy balloon versus a bobblehead. So I'm going to go and reset PSR again and go back to frame zero, and let's go and play with a few more settings here.
EJ Hassenfratz (13:34): So we have the stiffness value, which is basically the stiffness of the spring. So the stiffer the spring, the more fast oscillation that will get with that spring. So if I up the stiffness to about let's do seven, and we'll also adjust the stiffness in the angular spring as well, let's go ahead and hit play and see what we got here. So I'm going to go to my move tool and just move my cloud boy Knoll around. And you see that with that stiffer spring, a tighter spring, we're getting these really cool tight oscillations. Now also getting that rotational, uh, springiness, which is really nice. But again, our heads just kind of flying all over the place. So while we added really nice springy movement, we need to have our head kind of stay in place and be restricted as far as how it moves around.
EJ Hassenfratz (14:23): And, you know, we don't want the head to go below the body or anything like that. So again, I'm going to hit escape to stop the playback, go to frame zero and reset PSR on my main Knoll here. And let's go ahead and we have the springy relationship between the body and the head, but we need to build more relationships between these two objects, the body and the head to make the head be restricted. As far as where it goes, like we don't want the heads go all the way below the body. So we want to restrict how far it can rotate, uh, around. So for that, we're going to go back into our simulate menu and we're going to go to dynamics and we're going to use a connector object. Now there's my connector object. You can see immediately that there's a bunch of different types of connectors that we can use.
EJ Hassenfratz (15:09): So we can use a hinge, which is basically, if you think of a door hinge, you have that anchor point to the side of the door, and then the hands allows the door to rotate around that anchor point. Uh, we also have a bunch of different options here as well, but the one thing we're going to be concerned with first is this ragdoll type. Now what this ragdoll type allows us to do, you can see this little cone. And if I rotate around, you can see it's a ball and a cone in basically what this allows an object to do is rotate around this access point in only allows if those, like, if there was a ball and then a stick out here, and this stick could only bounce around and rotate based off this access center or pivot point and stay within that cone.
EJ Hassenfratz (15:54): It's almost like you put a cone on a dog. So the dog can't, you know, lick his back or whatever. It's kind of like the same thing, cone of shame, right from, uh, up. But what we're going to do is this cone is not facing the right direction. So we're just going to hit the R key to bring up our rotation. And we're going to highlight this access band here. I'm just going to click and drag and hold down the shift key to constrain this to increments of five degrees and just rotate this up 90 degrees. And then I can just go ahead and hit the, eeky get my move tool and just move this up. So right now our connector is a ragdoll. So let me just rename this to ragdoll. And let's just move this underneath that cloud boy, parent null there. And again, we need to build the relationship.
EJ Hassenfratz (16:37): We need to define the objects that we want to build that ragdoll connector relationship with. So our anchor is going to be the body. So we'll make that object a then for object B, we can make this the head. Now you're going to see that once I've placed the head in there, we got this stick here. So if I move this over, you can see that now we have this pivot point, but it also has this little stick that's kind of coming out of it. So you can see that the stick will be constrained within this cone. We can adjust that cone radius here as well. So that little stick will only be able to rotate around inside this cone. So let me go ahead and hit command Z to undo those moves, and let's go ahead and hit play and see what this ragdoll actually does.
EJ Hassenfratz (17:20): So if I hit play and select the parent and all the cloud, boy, Noah, move this around. Sometimes I need to go back to frame zero again, just so this works. Okay, there we go. It's working again and again, you're really not seeing the ragdoll guide anymore. So I'm going to go to display and check on always visible. And now you can see there's that stick and why our head is just kind of stuck. There is that our ragdoll is constricting the rotation of the head from this pivot to within this cone. Let's go back to frame zero and let's do this again. Selecting the cloud boy, no in a moving this around again, sometimes it doesn't work and you'd go back to frame zero and let's do this again. Now you can see that, that little stick rotating around and it's constrained within that cone.
EJ Hassenfratz (18:08): So I can rotate this as well. And you can see that the stick is like the head's almost on a stick and it's rotating from this pivot point and it's within that cone. So that's basically what a ragdoll is. So if you, if you consider this, you know, a character, you don't want arms as like a characters falling. You want the arms to rotate in intersect the torso. So this is kind of what this is doing. And again, sometimes when I move this, I need to go back to frame zero to activate this correctly. So this is a little gotcha. If you just keep going back to frame zero, this should work. And there we go. So we have our head restricted, but you'll notice that the ragdoll restricts the linear up and down movement of our heads. So we just lost that. Okay. So if I move this up and down, you can see that we're getting a little bit of spring, but not a lot of linear movement here.
EJ Hassenfratz (18:58): So I'm going to go back to reset PSR. Let's go back to frame zero, and we got everything back in their original position. So what I need to do is I need to build in the ability for my head to move up and down or slide up and down based on this little poll that we have coming from our ragdoll. So what we're going to do is use yet another connector. So if I go to my simulate dynamics connector, I'm going to make this a child of the club [inaudible]. And if we go to let's just since we're in the display tablets, just make that always visible. So we're always seeing that little visual guide and our viewport, and let's just go to our object tab here and for this type, we're going to want a slider. Okay. So if I choose slider, you can see that we just have this thick, that's currently impaling our character.
EJ Hassenfratz (19:45): And basically what this connector allows us to do this slider is allows an object to slide up and down on this little poll here. Okay? So I'm going to reset PSR on that connector, and you can see that this is not rotated the right way. So I'm going to hit the key to bring up my rotation tool and just rotate this again, holding the shift key to constrain this to increments of five degrees and just rotate it 90 degrees there. And now you'll see the stick is up and down. It's vertical now. So now what we can do is let's first rename this connector to slider. And again, we're going to define the objects that we want to build that relationship between. So we're going to again, have the body as the anchor and then the head as the object B. So now if I go ahead and I hit play, select that parent Knoll and move this up and down again, I need to go back to frame zero.
EJ Hassenfratz (20:39): Cause sometimes it just doesn't take. And now you're seeing whoops, we have no movement whatsoever. So what's going on. Let's go ahead and hit escape there. So what we just did is we have the rod doll and the slider working at the same time. And basically they're kind of canceling themselves out because we have the ragdoll limiting the movement in the rotation, but it's also limiting the head from moving linearly in our slider is allowing our head to move up and down, but not angularly or rotationally. So they're both allowing different things, but negating and not allowing different other types of movements. So they're kind of canceling each other out or head can't move at all. So let's go ahead and let's just see what the slider does standalone. So I'm just going to deactivate the ragdoll by clicking on this little checkbox and making an X to deactivate the ragdoll.
EJ Hassenfratz (21:34): And now we can just see what the sliders doing, and if I hit play and move this up and down, you can see, okay, we're getting that sliding springy movement. And that's basically what the slider is doing. But again, the slider is not allowing my head to move rotationally or angularly off the body. Okay? So that's what the slider is doing. So what we need to do once we hit reset PSR again, to bring everything back to normal and go back to frame, zero is we need to basically have the ragdoll on the slider work together. So the problem with the Randall is that it doesn't allow the head to move up and down. So maybe instead of having the ragdoll being anchored to the body, maybe we'll anchor it to the slider. So if we anchor it to the slider, the ragdoll should be able to move up and down, allow the head to move up and down and still constrict the angular movement of our head.
EJ Hassenfratz (22:31): So we can actually have connectors connected to other connectors. So we have connector inception going on here. So what we'll want to have is the slider as that anchor and it have it still attached to the head. And if we go to the slider, now you will notice that this actually updated automatically. So on the slider, the anchor is still the body, but now the object B that the body's connected to is that ragdoll. So let's go ahead and see what this does. So if I hit play, go to my club, boy, parent Knoll, and move this around again, we're going to have to Susan taking something to go back to frame zero, and there we go. And now you see that our ragdoll, that cone is sliding up and down on that slider, which is really cool. And then we just have that slider connected to the body.
EJ Hassenfratz (23:20): So the slider is allowing the ragdoll to move up and down on that pole. And then the ragdoll is limiting the angular movement of our head, which is really, this is exactly what we want. We want that combination ragdoll with that linear up and down movement. And we just did that by combining the red doll and the slider together. And again, if we really zoom in here and see what all these things are visually doing, it it's really, really cool. And now we have this really cool bodily head type of movement, which is really awesome. Okay. So if you go back to frame zero and hit reset PSR, let's go ahead and let's maybe tweak some things. So first thing we can do is we can go to our spring and maybe we want to offset the spring access center from being here and maybe have it down here and maybe have the object, a center of mass be right up here.
EJ Hassenfratz (24:18): So we can actually adjust an offset, the center of mass or where that spring starts and ends just right here. And we can also go and move this head up even more. If we want to and go to our spring and hit that set wrestling to take into account the further distance we move that head up and we can hit play. And now you can see that. Now we've got the head really moving around here, which is cool. Let's go back to frame zero, get reset PSR, and let's go to the spring and let's adjust where that rotational point or pivot will be. So instead of the center of mass, we can go and change this to offset. And here we have the ability to offset this point in the body and the head, if I go ahead and adjust this to offset and the attachment B here too, we can offset both where this will connect to the body in the head and offset an X, Y, and Z.
EJ Hassenfratz (25:14): So if I adjust this in the Y you can see I'm moving the bottom of that little visual spring there to be like the top of the head. And then I can go ahead and adjust this offset here. And instead of having the access point or the anchor point up here, I can move this down to right Ft, neck or at the base of the head. Okay. So now what we can do since we adjusted the offset, we're going to hit that set rest length because we move the length of that spring. So set rest length. Now let's set the 2 25 0.86, four. Let's go ahead and hit play. And now you can see what's going on here. So you can see that once we have this rotating too much, we can kind of get some crazy stuff going on. So maybe we don't want the head or the neck to be offset at all.
EJ Hassenfratz (26:04): So let's just reset this to center of mass and center of mass, but I wanted to show you that you can at least change that and offset that if you want, let's go ahead and just set that rest length again. And there we go. Now let's talk about some other settings here. We have the stiffness, so we can up that even more if we want to, but we also have the damping, which makes the spring oscillations kind of lose power faster or slower. So the higher, the damping value, the quicker, those little springy oscillations of secondary oscillations will come to a rest. So if you want very little, whoops, I'm just moving the spring. Let's just make sure we're moving that club boy head and go back to frame zero. You can see that there's very, there's like no oscillation whatsoever because we took it all away using the high damping value.
EJ Hassenfratz (26:55): But if we make this say five and five, where the linear and the angular go back to frame zero and move this cloud boy Knoll around, come back to frame zero. Again, you can see that we're getting these really good secondary oscillations, and they're really springing quite a bit. So you can always art direct death in control, how stiff you want your spring, and also how quick the damping or the oscillation of the sprain is kind of comes to arrest. Okay? So maybe we'll just choose a value of 10% for both those things. And again, we can also adjust the head here we go to head and move this down. We can maybe set this right about there. And all we need to do is once we move the head, just reset that rest length, and that we'll go ahead and update. And now we can use this again
EJ Hassenfratz (27:44): So you go back to frame zero reset PSR. You can see that we have all of these really cool guides, but if we go ahead and render though, you're not going to see, like, we have no visual spring there whatsoever. These are only the guides. So what we can do is we can go ahead and add an actual spring in here. So to do that, let's go in, just go to our spline tools. Let's grab a helix and let's place this underneath our little cloud boy, no aim. Let's change the plane to X Z. So it's facing upwards. And then let's change the start in end radius here to maybe let's see, let's move this on up. Let's move the access center of the start of this helix to right to where the neck is. Um, kind of have a little bit of overlap there.
EJ Hassenfratz (28:35): Let's have this be about 10 and let's do the N radius of 10 as well. No, this Heights way too much. So we can bring down the height there. And there's the top of our helix right there. Let's just move this up again. We want a little bit of overlap of the head and the neck. So we don't see any gaps when we add the springiness back in there, but let's go ahead and tighten this up a little bit. We can do that by adding more coils and adjust this N angle. And you can see now we're getting way more little coils in there, maybe up the start and end radius here. So we get even thicker kind of spring, some digging that think I like that quite a bit. So there we go. We have our spline again, that's not going to render, so let's create some geometry with it by using a sweep object and for a sweep object to make geometry based on this, he'll explain, we need to also define a profile spline.
EJ Hassenfratz (29:32): So we'll just create a circle spline, place this underneath the sweep, and then we'll place the helix underneath the sweep as well. So have this sweep and then the circle. And then the helix is a child of the sweep and the circle spline. The first blind here underneath the sweep is going to be the profile spline. So if I shrink this down, it's way too big. If I shrink this down, you can see that this circle is being swept along this helix in creating this little spring geometry here. So if we double click on our sweep, rename this spring, there we go. We have our nice little spring here. And one thing we can do is since we already know what all these sliders and ragdoll and Springs do, we can just select all these little connectors here by holding the shift key, go to display and just unchecking that.
EJ Hassenfratz (30:18): So now we don't see that cluttering up the viewport anymore, and we can now more clearly see our actual spring geometry here, which is really nice. Okay. So we go ahead. We hit play. We move this around. You can see that the spring is just stationary. So we need to be able to connect this to the head. We also need the spring to kind of change its height based on how high the head is moving up or down. Okay. And we also need this spring to kind of face and aim at wherever the head is. So it looks like the spring is connected so we can hit escape to stop playback, go back to frame zero reset PSR. So we're back where we started from. And let's go ahead and do a little bit of espresso. Now. I know I said the X word, but this is going to be one of the easiest ways to get into express.
EJ Hassenfratz (31:05): Okay. It's really not that hard because basically all we need to do is we need to link the height or the Y position of the head to kind of add on to or subtract from the height of this helix spline for this helix object. Okay. So what we're going to do to build that relationship between the position, why have our head in the height of the helix is we're going to right. Click on position wise. So not all of these, we're just going to select that. Y so we highlight the Y we're going to right click. You're going to go to expressions. We're going to say, Hey, position, why have this head Knoll be the driver to change values on this helix height? Okay, so that's set up, let's go to our helix in on the object tab, we're going to select this height word and right-click and go to expressions.
EJ Hassenfratz (31:55): And you're going to see that we have this set driven, available to us. So the driver is the position. Why have the head Knoll? And we're going to set driven relative to the value of height that currently exists. Okay. If we chose absolute, it would just be the same value of the head position, why we want to maintain the initial height we have here. So that's why we're choosing relative. So set driven relative. And once I do that, you're going to see these little icons change, and you want to see this espresso tag got added as well. So you can see that the position Y is linked to the height. If we double click, you can see that we basically with no node creation at all, just did a little bit of espresso. Go us, look at us. So it's not that hard. So we have the head position being remapped to control and adjust the height of the helix.
EJ Hassenfratz (32:43): Okay. So let's see what that actually means. So what I'm gonna do is going to go ahead, select the cowboy, no hit play, and move this up and down. Now, check out what's going on. Our spring is actually moving an oscillating because it's now kind of connected to the head. So if I go to, you know, the head's obviously moving up and down, but if I go to the helix, you can see it's already moving a little bit. Let's just go ahead and lock this little view of our helix. Cause either as a moving the cardboard, no, which is in turn, moving the wide position of the head. We're getting that change in height for the spring. And it looks like that spring is oscillating and moving around, which is really, really cool. Okay. So one problem we have is that the spring is not facing the head, so it's not rotating towards the direction of the head.
EJ Hassenfratz (33:33): So we need to fix that as well. So what we're going to do is go to our helix and we're going to say, okay, key links always aim your Y axis at the head. So how can we do that? We can do that by right clicking and going to rigging tags in creating a constraint tag. Now what the constraint tag allows us to do by unlock this little view here. So I can actually see other menus here. I'm going to go. And I'm going to say, okay, in the constraints, we have all these different types of constraints. Basically the only one I'm concerned with is this aim. Cause I just want to say, Hey, object, aim at another object. Okay. So I'm going to turn that on, check that on. And that's going to allow us to access this aim tab. And here's where I can define an object.
EJ Hassenfratz (34:17): I want this helix object to aim at and I can choose which axes that I want to aim at the object. So I want to aim at the head, but the axis I want to aim at the head is actually the positive Y okay, this is the green arrow here. So I'm gonna change the axis from positive Z to positive Y and then I'm just going to aim this Y axis at D head. So I'll just change that. And you can see that we had a little bit of a switch there. So now if I hit play and I moved the cloud Boyne all around, you can see that we're ever whoa, wherever the Y axis of the helix is, is going to be always pointing towards the head, which is really cool. So we got this cool little rotationally kind of thing, and now we've got this really nice springy movement, which is really nice.
EJ Hassenfratz (35:08): Okay. So one thing to kind of concern yourself with is sometimes when you're using constraints and you're using espresso, you have issues with the calculation in cinema 4d. So basically just like effects and after effects the top, most effects going to execute first and then everything below it. So right now we have this constraint looking at the head, but the head is down here. So any head movement is actually happening after this constraint tag. And this espresso tag is kind of doing its calculations. So to keep things organized, I'm just going to collapse this spring and move it below the head. So not a child of the head, but just below the head and the stack so that the head movement, the Springs, all the connector simulations will happen. And then the calculation of the constraints and the will tag can do its thing. So we should be able to get less issues and less lag going on there.
EJ Hassenfratz (36:01): Okay. So we got this going on. Now, one thing that with your setup you might run into is your head still kind of intersecting your body. Okay. And sometimes that might happen. And that's because you run into that issue. It's because on our slider, in our ragdoll, both of our connectors by select both of them, you'll see that by default, there is in ignore collisions checked on. Now we don't want to ignore any collisions going on here. We want those dynamic collisions. So I'm just going to uncheck that and that'll help us from having any issues there. And I'm just going to go ahead and move this around. And we've got this really cool bodily heady kind of movement going on, which is really, really nice. Now, one thing that might happen when you move too fast is that things might not calculate very nicely.
EJ Hassenfratz (36:53): You can see that the head just, if I'm really move fast, things are kind of wacky. So if you move dynamic objects very, very quickly, sometimes there's not enough calculations or dynamic calculations that send us forties kind of throwing at the dynamic simulation to keep it accurate. So if you run into any issues with the head, really going out of whack or anything like that, what we can do is go into the dynamic expert settings in up the calculations per frame. So there's more calculating power to get more accurate dynamics simulation. So when you have fast moving objects, that's going to calculate it way more accurately. So to get into your dynamic expert settings, we're just going to hit escape to stop the playback. I'm just going to hit command or control D and go into my project settings. And there's my dynamics tab there.
EJ Hassenfratz (37:42): And under the dynamics tab, we can go to experts settings. Now I upped these already, but the defaults are five and 10 for steps per frame, and maximum solver iterations per step. So I like to change these values on a value of like two to one. So you can see it's two to one right now. And if I go and use these lower, let's just throw some very low values in here and hit play. And let's move this really quickly and can see that we can get some really kind of wacky movements going on sometimes. So that's where going back into the dynamic settings and upping these values to say, you know, 15 and 30, that'll throw more calculation power at the dynamics. It we'll get much nicer, accurate simulations, which is really nice. Now I'm just, I've been creating this bobblehead by moving this cloud boy and all around, but what I could do, I suppose reset, and what's not move our cloud boy, and let's create an object that we can go ahead and kind of knock into the head to make it bounce around.
EJ Hassenfratz (38:45): So what I'll do is I'll just create a sphere. This will be our, let's make this, our knocker knocker, and, uh, we can then create image. And what we can then do is change this into a Collider body. So we can make this turn into a wrecking ball that we can bash the head, which we don't want to hurt our cloud boy here. So we're just going to gently knock into it. But what I'm going to do is just right. Click on our sphere and just like we added to the body, we're just going to change this to a Collider body. We don't really have to change any of your settings here. Okay. So what I'm going to do is I'm going to hit play, grab my little sphere here. I'm just going to blink, just kind of knock it knocking around. And we got this cool little bodily head movement.
EJ Hassenfratz (39:30): Now, if you wanted to have this as an animation and have this knocker kind of control this, and you can see that if we knock it too much, we get this little weird spinny thing. But if we knock this, you can see that if I render this, this fear is going to render. So what I'm going to do is just turn off this from rendering in our render, by clicking the bottom dot. So changes red. So it's hidden from render, but still visible in our viewport. Okay? So now we can move this around and kind of blank this now, what if we want to record the movement of this fear? Because we'd have to like key frame all these movements while there's a really cool setting instead of a four D that's like motion trace in after effects and what it's called in cinema 4d.
EJ Hassenfratz (40:17): I go to the character menu. What that thing is called is cappuccino. So we had espresso. Now we have cappuccino. We're going to be really caffeinated after this tutorial. And what cappuccino allows us to do is record the mouse movements in our viewport in it translates them to key frames. Okay? So you can see that we can record the position, scale and rotation of whatever we have here, but really we just need the position recorded of this fear. And what we can do is we can record the movement in real time. So I'm going to start real time in, as I move this around, you can see the play head at the bottom here starts, and you can see that that just recorded that movement. I just did right there. So let's go ahead and undo that command Z. And let's start this real time again, and I'm gonna move my sphere around and you can see that it's creating all these positional key frames. And I also have this bobblehead bouncing, which is really fun.
EJ Hassenfratz (41:18): We've got this really cool movement and all of those were translated to key frames. So all the movement I just did with my mouse cursor moving the sphere around on my viewport. They're all key frames now. So if I go to timeline, you can see there's my sphere and there's my position, key frames. Okay. So really, really cool stuff. So I'll hit play and see what that looks like. So there's our, there's our animation. So we can basically go ahead and just render that. Now, one thing that's kind of happening is that the head's kind of going really whacked out there for a second. So what we can do to kind of damp in all that stuff is go to our head and go to that force. And maybe we up that fall position and fall rotation, strength to 10. So this will kind of temper the movements a little bit.
EJ Hassenfratz (42:03): So the movements won't be as kind of out of control. So now we're getting a much more constrained kind of movement, which is nice. So the one thing you've probably noticed throughout this tutorial is that this spring is not really matched up to the movement of the head. It's kind of lagged you it's very subtle, but it's there. Okay? So we can fix this very easily by whenever you're done with your animation, whatever you want to do, the dynamic simulations looking good. We're going to go to that head dynamics tab. And we're going to go to the cash tab here. Basically what we can do now is just bake out that simulation. So it's not live, it's actually saved and it's cached. So I'm going to go in, make sure we check on this include collision data. Cause we do have collisions going on now.
EJ Hassenfratz (42:46): I'm just going to go and click this bake all button. Now it shouldn't take that long to catch that simulation, but watch what happens when this is baked and cashed, you can see that we no longer have that lag anymore. And this is looking much, much nicer. Okay. So right before you go to render, be sure you hash your simulation. Everything should be working really, really nice, right? So there you go. Pretty simple bobblehead rig, just utilizing dynamics and connectors in spring. So if you've never played with connectors in Springs before, they're so powerful and very versatile. So I recommend you go and check out more, check out the help menu in cinema 4d, because they can do quite a bit, but hopefully you have a lot of fun building your own bobblehead characters. And I can't wait to see bobbleheads everywhere. All right. So hopefully this tutorial gives you a good idea of the kind of power that is included in the dynamics engine.
EJ Hassenfratz (43:37): And hopefully it inspires you to create your own bobbleheads setups and kind of explore and experiment with connectors in spring. So if you want to keep up to date on all the happenings in the industry and send before D in particular, be sure to subscribe. And if you want to up your game to the next level, be sure to check out our courses page and see all of the courses we have available to you to reach your goals. So hopefully we see a lot of bobbleheads out there, be sure to tag us, always love to see everything on the Instagrams. And I can't wait to see you in the next tutorial by everybody.