Now that I have a kid, I don’t have much time to work on my own projects. I still am doing freelance, and I am still working on The Ottoman short(which is coming along nicely, I will need to do a post soon for that). So my time dedicated to writing scripts and such is limited to when not doing some freelance, and after everyone else has gone to bed. However, sometimes the Mrs. takes the baby on an adventure without me, which leaves me some time to write scripts during the day instead of late at night. So a couple of weeks ago, my wife took him and some friends to Disneyland, which let me work on a variety of different things which was nice. About the last hour before she came home I was really bored and had finished all my other projects. So I took to twitter to take some scripting requests. David Brown(@smuzzler) wrote back with some script ideas that would make his workflow faster and easier(something I am all about). So I kept whipping up scripts and he kept requesting ones during my time crunch which I am calling a Script Jam. Below are the results of the Script Jam.
ToggleScripts This is a set of two Scripts that will toggle the traffic lights of CINEMA 4D’s visibility in the editor or renderer between red and gray(default). One script will toggle them all to the same value ignoring individual values. The other will toggle individually, so if Object A Is red and Object B is gray, the first script would set both to be gray, and the second script would toggle A to be gray and B to be red.
Toggle Line Display This script will toggle the display of a display tag of an object between lines mode and whatever your global display mode is. So instead of having to do a global setting, you have it on a per object level. The first time you run it it will create the display tag and set it to be lines. Then it will toggle between lines and whatever your global setting is set to.
In addition to those scripts, I have also been developing some scripts for Cineversity. As of right now, I have 3 different packs of scripts set to come out soon. The first went out just yesterday:
Those scripts allow for pickwalking a rig or walking around your mesh’s topology via its points and edges. So it has both modeling and animation/rigging advantages. The component side is quite exciting to me. It opens a lot of functionality elsewhere like this video below which is a preview of some more scripts I aim to put on Cineversity very soon.
Whoopsie daisy. It has been like…a year and a half since I’ve written on this blog. So much has changed. So let’s fill in the gaps and then maybe I will be able to update this more regularly…
Where I last left off, in terms of life on this blog, not just scripting, I had just come down from a really rocking August 2012, where I got married, and got kept at Disney. So that was pretty rad. It lead me to my first project at the studio which was the short “Get a Horse”. I was one of the Character TD’s on it and my job was rigging. I wound up rigging about 6 of the 15 or so characters including Clarabelle Cow, Jazkat, Old Goat, Piggle, Slowjoe, and Oswald. That was a lot of fun. Shorts at Disney are fun because it’s a smaller tight knit group operating while a bigger production operates. You feel like a indie studio or something like that. It was fun. And for a first project, working on an Academy Award Nominated project is pretty damn good. It’s hard to beat….but then I got my second project…
I worked on this small unknown entity called “FROZEN”. You probably haven’t heard of it. Around December of 2012, I was working on both Frozen and finishing up some rigs on Get a Horse. Unlike Get a Horse I was assigned to be doing “Technical Animation” or “Tech anim”. I had only done a few tech anim publicity shots at the end of Wreck-it Ralph, so this was an interesting and fun challenge that is quite different from Rigging.
Our department, the Character TD department has 3 main disciplines, which I think is really cool because it allows you to grow and expand in different areas. The first is rigging which a lot of people know about. Then there is simulation setup or sim rigging. This means building cloth rigs that can be simulated later on. These rigs pertain to the clothing and hair of characters. Both the rigging and sim setup is considered to be “front end” in terms of production pipeline. These are assets, that then get consumed in the “back end” of production which is usually working on the actual shots in the film. The 3rd discipline is a back end side of things, and that’s Tech Anim. Tech Anim takes the animation given to us from the animation department, and then we apply the simulation rigs to the animation, run simulations, clean up the simulations/animations, and animate if necessary. It’s a cool job, really.
So yeah, FROZEN was my first real dive into tech anim, and what a trial by fire. Not only did FROZEN have the most simulation of any show(every character, crowds included) had at least clothing, and some both clothing and hair. In addition to the sheer amount of clothing, the TYPE of clothing and hair was quite complicated. Lots of layers(Vest over shirt and over dress which is over petticoat which is over pants). Long ponytails that had to blow in the wind. Gloves. MY GOD THE GLOVES! NOT THE GLOVES! It seemed like every other shot someone was putting on or taking of their damn gloves. While it might not seem like much, it’s a major pain to simulate that.
The schedule was pretty tough towards the end, I worked on it from like December until late August. I think we did about…I dunno, 14 weeks of OT? Not really that bad, thankfully. Sadly there was like an 8 week stretch, and that starts to wear on you. But overall I think they handled it pretty well. So how do you surpass your first project getting nominated for an Oscar? Well, by having your second one actually win one. It’s pretty amazing to think about how I worked on the first Walt Disney Animation Studios film to win an Oscar(and how crazy is it that there werent any already? Aladdin, Mermaid, Beauty and the Beast? LION KING!? COME ON!). I’m so proud of that. I’m proud of the success of it. I’m proud of it all.
I’m also proud of my perfomance. For very little experience in tech anim, working alongside people with years of experience, I was able to complete 80 shots in the film. I think it was the most in the department which feels nice. But that doesn’t take into account complexity of shots or anything like that. The whole team busted their asses, and we all helped each other out which is a great part of the job, the team.
After FROZEN, I was on down time for a while. Just worked on some scripts and training and stuff before being assigned to my next position which is another rigging position. Turns out I may in fact miss out entirely on the next film, Big Hero 6(which looks great. I’m trying not to hear much about it because I’d like to see it fresh just like everyone else does). I’ve instead moved to rigging on the film after Big Hero 6, which is called Zootopia. It’s a lot of fun. I can’t wait for people to see it.
Outside of work, in the near 18 months since I last wrote, I have had a child. A little guy named Bennett Butler Bays(3 B’s just like me). He was born to us January 31st, and he is awesome. Babies are amazing things to watch and behold. Seeing how he grows, and comprehends more and more each day is wild to me. It definitely changes your life, but it is for a good way. Suddenly it’s pretty clear to me what’s really important.
I think that’s about it. Now maybe I will update the website and post more frequently.
So a buddy of mine, offered my services to write a script. Someone I’ve worked with in the past, was looking for a script to temporarily disable the phong tags in a scene. So I wrote a little script to do this. Simple to use.
To use: You can either work with an object selected or have nothing selected. If you have some objects selected, then it will only work on those objects’ phong tag. If nothing is selected it will work on ALL phong tags. This stores the old value in a User Data on the phong tag. To restore the phong angles, hold SHIFT when you execute the script and it will restore back to the previous angle, and remove the user data. Enjoy!
Hey everyone, I’ve gone forth and released a new plugin of mine called Marker Manager. There was a post about it not too long ago, but now it’s available for purchase here: http://c4dtools.net/marker-manager/
Please check it out, tell your friends, and if it looks useful to you, give it a purchase. Your support leads to more scripts and plugins I can work on.
Someone asked for a script that would basically make a selection traverse up the points. For instance, IF you had a spline and selected Point 10 and Point 20, when you run the script, you would then have 11 and 21 selected. So I spent a little time today and set it up to where you could go forward or backward. You can grab them below.
With the long holiday weekend, I got busy working on stuff. And I’ve gotten to the point where when I have to have a repetitive task, I script it out. Sometimes it takes longer than just doing it and being done, but long term it can save a lot of work. So I sat around and wrote a few scripts, some were suggested by David Lewandowski. Descriptions for each script below:
1. ASBake-This is a python port of a COFFEE Script that Adam Swaab wrote some time ago. David, wanted it ported to python. So here it is. Select objects you want to bake, Run the script, wait for the dialog. Bing Bang Boom.
2. Create Null Joint-This stemmed from making some Finger setups. Often you need multiple joints in the same spot, some to control other rotation axes, etc. The process for this is you can CTRL+Drag to duplicate the joint, make it a child of the original joint, delete the duplicate children, and set it to null(so that it wont bind). Not terribly difficult, but annoying. This script will take whatever joints are selected, create null joints, and properly make them the parent joint, and all that jazz. It’s undoable too which is nice.
3. Great Job!-Great Job stems from something written by Patrick Goski called P-Ray. It was a simple script that would give you motivational inspiration as you work. David, suggested it compliment some of your objects and or Material setups. So when you click it it will randomly compliment a random object or a random material. AND, if you don’t have either in your scene, it will complement your ability to create a new scene!
4. HideUnhideSelection-This script stems from me having to work in Maya every day. In Maya, if you want to hide an object, you press CTRL+H. To Unhide, you press SHIFT+H. Extremely handy. But in C4D, you gotta either click the dots twice, or you gotta select it, go in the basic tab, blah blah blah. It’s just clunky, and now Im used to it(same thing with the solo selected script, its just a part of my workflow now). The key to this, and yes it’s kind of stupid but whatever, The Hide Script needs to be a shortcut with CTRL and SHIFT. That’s how it looks for it. The Unhide portion needs to use just SHIFT. That’s the kicker. Otherwise it’d need to be two separate scripts, which I mean it could but whatever. Just deal with it .
5. ParentToLastSelected-This is another script based off of a workflow I have in Maya. To parent in Maya, you select objects, then the object you want to parent them under and press P. Simple right? To unparent, you press SHIFT+P. I didn’t deal with the unparenting here, because SHIFT+G in C4D does it sort of(just doesn’t unparent to the world which isn’t too bad. But anyway, This script, assign it to a shortcut. Select objects you want to be a child, and then select what you want to parent them under LAST. Run the script and enjoy.
You can download this AMAZING pack of scripts here: ScriptPack.
It’s been a while since I’ve posted. But I’d just like to recap what’s gone on lately. My time at Disney has been going swell. I’m learning a lot and having a blast. I love going to work every day. The Talent Development program is a 3 or 6 month program. I was fortunate enough to make it past the 3 month mark and so that meant I would get another 3 months to work there. Awesome. However, it was around early July I was told there was probably not going to be a spot for me or my coworker Mary(also did the Talent Development program with me), at the end of the 6th month(ie end of August). That was a shame. But I kept thinking there was a chance still so we just kept working hard.
So then August rolls around. A few different awesome things happened in August. First was Siggraph, and while it wasn’t necessarily awesome it was cool. I meat some contacts at other companies which was cool, plus I got to hang out with some of the MAXON folks. I would have gone more than one day, but I had other, bigger plans.
You see, I have been engaged for 18 months. And I was set to get married on August 10th(the Friday after siggraph.) So I had that stuff going on that week. I’m happy to report the wedding went off without a hitch. It was wonderful and all that jazz, just too short, and too much of a blur. We all had a great time. Here’s a picture from the wedding:
So after that awesomeness, we went on our honeymoon. This meant a week away from work which was nice(as vacations usually are) but not nice, because I was needing to focus on finding a new job. So there was a little bit of stress and anxiety the whole honeymoon. We went to the Bahamas, which was fun and relaxing. It’s beautiful there, but it’s hot as hell. We just relaxed in the warm pool, warm, beautiful ocean, and drank some nice bahamian beers and fruity drinks like Bahama Mama(libbys choice) and Strawberry Daqueri’s(my fruity drink of choice).
So when I got back from that, I got good news. Not good news, GREAT news, that my time at Disney would be extended! So I mean, Week 1 was awesome, Week 2 was awesome, then Week 3 we(Mary and I) found that news out. Then Later that week, I set the high score on Fix it Felix Jr and I felt like a badass. Of course Steve Weibe is at PAX and he probably just absolutely CRUSHED my score, but still. I was feeling good.
So I sit here on Labor Day weekend, so thankful. Thankful for my new wonderful wife. Thankful for our trip. And thankful for still having a job. Because I could have been sitting here today, unemployed, but I just managed to dodge that bullet.
So in the last part of this discussion, I had mentioned how the major problems of building a rig, reusing a rig, etc. etc. and sort of left it that CINEMA 4D R13 basically squashed those problems.
However, it didn’t solve every problem. Yes, it made it so upkeep on the rigs was simple and easy and only needing to be done once. However, it’s not a perfect solution. First of all, building a rig was significantly faster, which was a huge plus. But fitting the rig to the character still took some time. Somewhere around the 6-10 minute mark, and I think that may have not included the face rig(which at the time was not done). And because I didn’t trust the updating, that meant having to rebuild and adjust the rig for each change. So those minutes, can add up.
Damn fingers. Difficult to navigate around, place joint pivots, and they don’t even FING!
So there needed to be a way to sort of automate that rebuilding process. So what ended up happening was a few python scripts were made. They are actually several scripts. The first script, generates a null object for each handle which I define in the template file. So I only need to put my adjustments in once(so 6-10 minutes) and then I can run this script to generate the positions and orientations. Then there’s a series of scripts that go through each component(i.e. spine, legs, arms, hands, face etc.) and looks at the handles for that object, and snaps it the null. This is done using a suffix at the end of the name for the null object, making it easy to use python to search for each handle+the suffix. Then you just snappity snap it into place. Bing bang boom. 10 minutes adjusted down to like 30 seconds(including build time).
This alone was huge for me. Because I would make change after change after change, I was just dying from adjusting so much. I should kick my own ass for not automating the process sooner. In fact, If I could I would automate the build process as well, but presently, I do not know how to do that so 30 seconds will do.
This video shows how long it takes to build a rig
So now creating rigs, updating, building, and adjusting have all been streamlined a fair bit. Theres still a few little glitches(adjusting controller size is the current bugabooo), but it’s not incredibly easy to work on the rigs. The Character Object/Component Tag of R13 makes it easy. The modular design of it, allows me to build components as I need them. For instance, when the body and face were finished, we still found that we would need specific rigs for certain characters clothing(as we were not planning on simming everything). 3 of the four characters have some sort of jacket or poncho, or whatever. Each one different from the next.
Just a sample of some of the various components, and how some can be for specific characters
Well, what this means is I can build a jacket that’s specific to the Ottoman, or the Son, or the Wife, and I can choose when to build it. So when I’m building the Ottoman, I don’t need the Son’s jacket. So with the template and my scripts, once the rig is made, I generate the snap handles, and then building and adjusting it is easy too. The clothes essentially do not add any time increases for building and adjusting the rig which is nice. Well it adds maybe one second to build since its one more thing to click on.
So at this stage, the rigs are in a banging place. They are ready for the next great pipeline bottleneck: Skinning/Weight Painting/Binding, whatever the hell you want to call it. I call it a pain. But I’ll save that pain for another post…
A lot has already been said and shown regarding the art of The Ottoman short(http://www.the-ottoman.com/blog/). Concept art, models, textures, all have been shown and discussed, but nothing regarding the rigging action that has been going on throughout this short. I hope to do a series of posts discussing our rigging pipeline, in an effort to perhaps be of use for other groups or studios using CINEMA 4D and wanting to tackle some deep character work.
A little bit about my role with the project. I joined…shit I don’t really even remember, 2009 sometime if I recall correctly. I was just beginning Animation Mentor. I had met Dimos through a beta team, and since he’s a mentor at AM, we got in contact. This lead to me making some previs rigs that would make me cringe if I looked at them now. As time went on, I had a lot more time to work on the project and others, so I was given more things to do. Previs rigs lead to previs mech rigs which lead to the production rigs, which lead to the face rigs, which leads us to where we are now. I’ve done the vast majority of rigging on this project. As such, I want to share some of our pipeline.
With four characters to rig, that sounds pretty light by some standards. All four characters are more or less the same. Bipeds, five fingers, no toes, yadda yadda yadda. This meant they would all be very similar. More or less the same apart from some minor things. The Ottoman has a jacket that needs controls, the Son needs one, the Scorpion Driver has a goatee, the wife has dreadlocks. So they can all be based off the same rig with some minor differences between them on top of the base biped.
Now, when I began working on the production rigs, this was around R12, and was already taking way too long. I had to build four separate rigs, all based on more or less the same rig. I had slaved over the Ottoman rig. Getting it good and the sign off from Animators. It took a long time. And eventually, once that one rig was done, I blasted through the other 3 characters. When I say blasted, I mean I just locked myself in a room in a weekend, worked like all day on a character and rushed through them to get them done. Sounded good at the time…
Yeah, great, now, repeat all this 4 more times, by hand, that’s a good workflow aye? Nearly 2000 objects is hard to display.
Here’s the problem with this. Since all the rigs are based on the same thing. That means, when you find a bug in one, you got a good shot at a bug in the other ones. Then that means if you fix a bug in one, you gotta fix it in all other ones. Ontop of that, you have to make sure you built each one each properly, and you have to have some sort of solid system to maintain each bug, and be able to track it. Such a system, I sure as hell did not have.
And then Release 13 came out. And the world rejoiced.
But, then Release 13 came out. And with it, the character object. And while it wasn’t at all a surprise to me(since I was a beta tester, and had devoted nearly 2 years of work into that system) I knew that it was going to help solve these problems. What this system allows me to do, is make one template. This one template can be reused on each rig. This solves the biggest problems: 1. It’s easy as pie to rig each character. What took me a full day non stop going balls to the wall rigging(this is excluding weight painting mind you), has been condensed down to like 10 minutes. That’s insane in it of itself. 2. If there’s a bug in the rig, I fix it once in the template, and then it’s done. It can be propagated down to each rig. There’s an update feature in the Character Object. This was huge. It was huge for me, it was huge for this project, and it’s huge for any potential studio wanting to do character work. Make one template, reuse the hell out of it. This is standard are most studios.
For the Ottoman, we started with the Advanced Biped, which I made. However, it’s not as simple as that. We changed bits of business here, the hands are completely redone, there’s components for jackets and stuff, as well as a Face rig. So everything is much better, but things are still not perfect. But I set out to try to remedy that.