Skip to main content

Creating Custom Templates Again Part 4-The roots the radicals!



Setting Up The Root Component



Before we begin, one thing I noticed in the file, is that under the Root Component Group, there is another null called "Root". This is a mistake. It is meant to house our bind joints. So go ahead and rename it to "Bind".

    Alright, time to make our first component. This is gonna be a long one so strap in. So, the first step to making any character template is you must first define the character. So to do this, we need to make a null and we can call it anything you want, it really doesn't matter. I have called mine "Character_grp" for absolutely no good reason, it seems fitting. 


    Next, right click on it and add a Character Component tag from the Rigging Tags menu. This should add the tag for you and bring it's attributes up in the Attribute Manager(AM). If you are not already, click the 'Tag' tab in the AM. From there you should see an attribute called 'type'. Switch that puppy over to be 'Character'.You can change the character attribute to be whatever you want, but it doesn't actually make a difference. I believe it mostly changes what icon you see when you select the template from the drop down. Lastly, give it a name that you like(I did 'Tutorial Spine' and then choose Character>Character Builder>Save Character Template As. Call it whatever you like. 

Look, Ma! We made it!

    So doing that save command will save our template into you user preferences folder. It will make a folder called 'characters' if it does not exist already, and then save your file inside of there. It does this because the Applications folder or Program Files folder can be on lockdown depending on the OS I believe. So the user prefs it is.  The component tag we added and set to Character type is what gets us an item in the Character Object's Template dropdown. Without the Character type tag, there'd be no template. Test it out now you should see it in the drop down like the picture above.

    In order to have clickable buttons to build components, those need to be set up. So let's make the Root component now. Under the Root Component you should see 'root_con+' and 'Bind'. The root controller is what all our subsequent controllers will live under so we can quickly grab and move our character. The bind group is where all of the joints responsible for skinning our object will live. IMPORTANT NOTE: Neither of these things are required. This is how I like to work. At the end of the day, we're just making a component. Whatever your component is, do as you see fit.

    Right click on the Root_component object, and add a Component Tag. You can choose whatever type you want so long as it is one of the blue components I mentioned here. I'm just leaving it as None for now. The Name field is what it will show up as in the Object Manager when you build the component. The Display Name field is what the text on the button will be.You can leave one or both blank If Name is blank, it will use the object's name in the Object Manager. If Name isn't blank but display name is, it will use the same as Name. My advice is to just set the name and that's it. In this case, I just called it 'Root'. Save the file via 'Character>Character Builder>Save Character Template'

    Now, if you were to test this, and select your template from the Character object's template drop down menu, you'll notice your component button is not there. Why not? Because in order to be associated with the template, it needs to be underneath the character's definition. So it's an easy fix. Just take 'Root_component' and put it underneath the 'Character_grp' object, Save it via the Character menu and try it out.

I am an adult. I was testing some things with my go to trusty variable name. I renamed it to 'Root' later

   If you were feeling bold and clicked your component button, you might be surprised to find that it actually worked. And you might feel like a real badass now. In this instance, the reason why it worked and brought everything in for us is because: The component will naturally bring in all of it's children. That's an important note to make(hence why it's underlined). You might remember in Part 2 I talked about the various steps for making a component. The first step was the Build step. We made it have a button, and we brought in all the stuff needed for that component. You would normally do that in the Include tab. But because of it naturally bringing in all it's children we didn't need to specify.  And then the Insertion step we skipped because: By default, The Insertion mode is set to always be buildable at any point. Even though it does these things for you, I think it's still best practice to go through and manually define these things. So we will do that now.

    Firstly, in the Tag tab again, we should define our 'Main Controller'. What this defines, is when your character object is in animate mode, and you click on the component object in the Object Manager, under the hood it will be selecting whatever you put in this slot. If you leave it blank, it will just do the object that has the Component tag. In this case, that would be our 'Root_component' object. I don't generally recommend selecting the component object in the OM and moving it, so putting something in here is kind of a moot point, but I still do it because...just in case. So drop the root_con+ into that slot. If we had objects that had User Data in this component, we'd add all of them into the User Data slot. That about wraps it up for the Tag tab. The Transform section on the bottom allows you to basically offset your component each time you make one. This is useful for like fingers, etc.

    Now let's jump into the Include tab. This tab is super simple and easy. Basically drag and drop all the objects that pertain to your component(suddenly our grouping bits come in a bit handy). Just drag and drop all the stuff into here. There's a little icon you can click to tell it to include all of an object's children so you dont have to manually select every single object.There are some other options and attributes in this tab, but honestly, you probably will never have to change them. And then the Two red icons, also probably never gotta change them. I've used the puzzle piece before, but I don't think I've used the arrows. For some use cases, you can maybe check the help docs. But like I said, 99.9% of the time, you will just be populating that objects list and moving on.

That little icon to the right of the 

    Jumping to the Insertion tab now, this tab let's us control when we can create a component(ie when the button becomes visible in the AM during building a character), where the component gets placed or inserted and also how often can you create a component. As I said before, if this is empty, it just assumes you want to be able to build this component any time, anywhere. No matter what component is selected. For this, I don't want that. The root should only be able to be made once, and in this instance, I want it to be the first and really only thing you can create. The reason for that is because all bind joints need to go under the group I made for them. If that group isn't there, where would they go?(answer, anywhere else I choose really but whatever). 


    So click the Add button. This will create what I call an 'Insertion Rule'. When you click on it you will see what the picture above shows you. These defaults are what is used if there is no rule specified. The Parent attribute determines when the component can be made. IE when which component is selected in the Object Manager. The Insert attribute says where to insert the component. Whatever object has this Character Component Tag is what you are placing. Then the Allow section let's you specify if you can only do one, or multiple, etc. 

    So for our needs, this root component only should be the first thing we make and only one. So for Parent, choose 'Character'. That means only if I have the character object can I make this component. Some of the other options that are useful are Type(ie I can only add this to arm components), Only(I can only build it if I have X component selected), and Name. Name is good if you want to mix and match across template files. It basically says 'Alright, if the component I have selected is named 'Spine' Then I can build this.90% of the time, I am deliberate with my components and so I mostly just use Only. We will showcase that and more of this when we get to the spine Component. Simply setting the parent to Character is enough for now.

    We've set it to build and insert properly. The other two steps were adjusting and assigning. For this component, adjusting will be easy. Go to the Adjustments tab. We just need to specify a handle. Nothing fancy. We will get into that on our next component. So for now, unfold the Handles group, and drop the root_con+ into the Objects list. This will make the root_con+ an adjustment handle. If you're feeling bold, you can color to be object. But do what you want. I'm going to just because.

Quite possibly the easiest Adustments Tab you'll ever do.

    The next thing to do is all the assignment steps. In this case, it's only the Selection tab. This tab is very easy like the Include. It's just a link list. This defines all the things that would be keyframed when you restrict keyframes to that component(or the character). This is typically all of your controllers. So grab root_con+, and layout_con+ and put them into the Objects list. 

    For all intents and purposes, our component is done. It builds, adjusts, it's limited when and where it can be inserted, etc. The last thing I would do is to tag our controllers as controllers. You might be thinking, "Didn't we just do that in the Selection tab?" Sort of. That is defining what gets keyframed. Technically that doesn't need to be a controller to be keyframed. Tagging controllers does two things: 1. Defines what would be visible in the viewport when you change the visibility settings of the character object. 2. Defines what would be visible in the Object Manager when you set it to display controllers.

    To do that, select both the root_con+ and layout_con+, right click and add another Character Component tag. In the Tag tab, set the type to be 'Controller'. Now, if you needed to insert this controller somewhere else(which we might need to do with the spine component), you could set Insertion rules for it as well. In this instance, we don't need to do anything else. 

    Save your component from the Character menu and you're first component is done! Our next component will build upon all of this and expand even further some elements like adjustments, and inserting multiple components.

Here's a file where you should end up at the end of this post.: https://www.dropbox.com/s/k7ncv3nye5gamjo/spine_component_tutorial_part_4_end.c4d?dl=0

    

Comments

Popular posts from this blog

Creating a Custom Template Again Part 5-Spine Building and Inserting

    Since the last chapter, I made some tweaks to things. Use this file for a starting point. Your Object Manager should look like this:     Here's the list of changes: 1. Added a Rig null to the root component(will get into why I did this later in this post). 2. Added a parent to the hips_con+ called hips_algn(will get into why later in this post). 3. Added spine_rig_elements null and put the spine_spl and spine_01_bnd under it(will touch on this in the post). 4. Cleaned up the neck's orientation values to follow the rest of the spine. 5. Froze all necessary things that needed to be frozen.6. Added some adjustment rules to the root component that might not be necessary, but just to be safe I added them. We will get more into adjustments and rules in a later post. Sorry about that. This particular component is an evolution. In addition to teaching you about the settings of the Component tag, I am trying to make a completely functional template that maybe I ...

Creating a Custom Template Again Part 6-Let's be a chiropractor and get adjusting Part 1

    Picking up from where we left off, we have a spine component that builds and places everything where it needs to go. This is terrific. Now, we get into some of the meat and potatoes of making our components/templates. Adjustments! After all, the biggest perk of creating your own template is the ability to resize it easily and intuitively to any character. Let's make it so!