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.
So with my new job I have been working a lot more in Maya. I can’t necessarily say I enjoy it just because I’ve been working non-stop in CINEMA 4D for the last…6 years? Anyway, I’m making my rounds with it, and I’m learning to get by with it. One of the things that’s really nifty is the ease of being able to isolate what you are looking at. In Maya, by default, if you select something and press SHIFT+I it will hide everything but that object. Nifty. However, for all that niftyness, you still gotta either go into the menu and turn it off, or deselect everything and hit the shortcut again. So I thought I could probably use that in C4D. So I made a little python script that does this.
In a nutshell, select your object(s) run the script. Boom, only those are visible. Run it again, everything is back to normal. If you hold CTRL and run the script, it will include any children of whatever you have selected. The other nice thing is that it should preserve all of your existing layers(see, internally, it’s doing this magic through layers), so when you de-solo everything, your layers are back as they should be. No Muss, No Fuss.
Well, maybe a little fuss. I think if you solo something that is being animated via a deformer, if the deformer isn’t active, the animation wont be either. You don’t lose your animation, it’s just not capable of scrubbing your animation until you deSolo. I think that may be a limitation.
Anyway, do what I did. Map it to SHIFT+I, and CTRL+SHIFT+I(did you know you can do two shortcuts for one command? Awesomeness) and use it at your hearts desire. Feel free to donate via the pay pal on the right if you feel inclined. Otherwise, enjoy.
I have news. BIG news. News that ends one thing but begins another…
I’ve been selected to be part of the Walt Disney Animation Studios Talent Development program. I got a call on Friday, and could not believe it, and Monday afternoon, I found out I was offered a spot. The program is a 3-6 month paid mentorship/internship. It’s basically 3 months of mentoring, and if you do well, you get another 3 month period, and then if their is space at the end, potentially a job.
I’m surprised. I’ve wanted to be in Animated films for many years, and when I went to Disney’s Inspire Days back in 2010, that is where I wanted to go, so to be able to go there, is kind of mind blowing, even if it is just for 3-6 months. However, joining the program means I have to leave my current position at MAXON.
The whole thing is bittersweet. I want to work at Disney, but my whole professional, post-college career has been MAXON, so making that jump is weird, and sort of scary in a way.
I just wanted to say thank you to MAXON, namely Paul and Rick for giving me an internship back in 2005. Then for hiring me after the internship. Thanks to both of them and Kai for getting me a job in 2008 again. The shit hit the fan that year economically, and having a job out of college was pretty huge. Thanks for trusting me to handle some trade shows here and there, and for just trusting in me to get things done. I know a lot of my growth in rigging is due to Kai being there every day for me to pester with questions. Pretty much 100% of my python knowledge is because Rick let me pester him with questions. Without those two, I wouldn’t be where I am in this industry. I am who I am because of their mentoring. And Paul has been one of the most understanding, and helpful bosses ever. That is the Babb way, helping others when they can, and they’ve helped me out a lot, and taken me in as part of the family, and my fiance as well(although, she was more in the family first then I joined in).
The rest of the MAXON crew, thanks for the fun memories. I’ll always remember staying late after work for some sporting competitions. I can say that I’ve drawn blood and had blood drawn from playing air hockey. Never thought that happened, but I’ve seen it happen first hand. I was also a part of the destruction of that air hockey table. Then playing a REALLY stupid looking/sounding game, but all we had were balloons, and we made it work. Then the ping pong. A lot of that is due to mine and Andy’s competitive nature. So thanks for that Andy. It was a blast.
Thanks MAXON. You always Thank you for everything. I wish you all the best. I’m sure I’ll see you guys around.