Join Rob Garrott for an in-depth discussion in this video Part 2: Houdini project breakdown, part of Artists and Their Work: Conversations about Mograph, VFX, and Digital Art.
- Why don't we start off by having you walk through the Houdini project a little bit, then we can talk a little bit about who you are and where you came from. - Yeah, so this started with a game called Katamari. I don't remember the full title of the game, but one of my son's games. Basically, if I remember, it's a very small little person rolling a ball - And you have to pick up junk. all through the world, everything sticks to it, and it goes to the scale. This is what I love about the game is, I mean, you start off, I think, you're just absolutely tiny rolling along picking up paper clips and whatnot, and in the same level you might end up rolling over and picking up nuclear submarines in the ocean.
I've just never seen that scale in a game. So I wanted to try to figure out how to make a Katamari ball in Houdini without using any dynamics, without using any, just using math, just using as a way to understand matrix math. And this was the initial experiment was just a ball rolling along, and my son, who's nine years old, thought it would be great if it was a chocolate ice cream cone gathering sprinkles and that maybe it could be a factory and there was something in the hood at the top that was making it roll along.
So it's a simple, you know, no fancy rendering. It's just gL, but it's industrial scale dynamic parenting of unmask by the thousand that runs quick and-- - It runs very quick actually. - And no dynamics. So yeah, just the gL capture on disk, but yeah, so that's that guy there. Let's turn everything off to begin with, and I'll sort of run through how the process I did putting it together if you like.
- Absolutely. - Just start off in Houdini, quickly model together a, just a simple, simple box, give it a color, and some of the nice controls in here with Houdini is, when I'm using Houdini I don't do a lot of scripting even. I know there's a lot of very technical Houdini users, but with myself it's mostly expressions. I keep things as simple as I can, giving things like a wide minimum so I'm able to change the actual scale, and it's all just going to stay on the ground for me.
And then the ice cream cone, I wanted to have it always as it was actually rolling along. I wanted it to be rolling in the direction it was going. For this little guy, I just drew a simple path for it to roll along here. In Houdini there's a little carve stop here that over time... - Excellent, just revealing the spliner. - Yeah, it's just a delete along the length of the curve here, and that's what I used for my timing and my animation.
So the path and the animation's sided separately, and broke that into a bunch of points, and I'm getting the just direction along the path, grabbing a normal for that. So I'm basically just getting, putting normals along the actual length of the curve, and then on the other side here, just grabbing a rest position for the sphere, where it is in the scene before it moves. A little bit of technical stuff in here.
It's basically just this note here, just for the roll of the ball. And this nasty mean expression, which I literally just looked up on the net, and this gave me the rotating of the, just gave it the right amount of rotation. - Based on the circumference of the object? - Circumference of the object, exactly, which I'm grabbing, and then this little arc length, which just grabs the length of-- - Curve, excellent. - So the nice thing is I can scribble any curve in, or any animation and the ball will happily keep rolling.
- Excellent. - And you can see the ball's rolling along here and properly rotating. And then for the dynamic parenting of all the little sprinkles, I just added a attribute, which stores on, where are we here? In a detailed view you can see it just basically knows what frame. All of the points have a little attribute. And then I transfer that attribute onto the sprinkles.
So with the frame that the ball rolls onto a sprinkle and runs into it, - Mm, I see. - it transfers a certain little distance away from the ball, it's just always transferring onto the sprinkles if they're close enough, and it transfers on that frame and goes frame 48. - So it's behaving like a constraint tag would in a character rig, for example, where you have a character pick up a cup, and you transfer the position on this frame to the cup on the next frame. - Exactly, yeah. And it'll, if I change my animation, it's just reading based on the distance.
- Excellent. And then how are the sprinkles being generated themselves? Are they placed onto the surface with a particle emitter? - This one's just a straight scatter, but basically I'm just grabbing the top sheet of all the polygons here. So here it comes in as a, just bring in the slab itself, just grab the top polygons, scatter certain number of points over the whole thing, 1,500 in this case, give them IDs so I can have something constant to delete against so I don't have to worry about changing point counts as it goes.
And this is something I do like about Houdini in here is I can do things like go in and bypass up the chain here, and go for troubleshooting and see, okay, well there's the effect of just my random rotations. - That's one of the interesting things that I find about Houdini and Nuke as well is the idea of notes. You know, I've spent most of my life, and most of my professional life, working in layers as the metaphor, and notes are coming on strong in terms of just ideology behind them.
- Yeah, I do, and I notice this, I'm not a compositor myself, I can fumble my way through Nuke, but I always find it neat when you're looking over the shoulder of someone using a note based program, whatever it is, is that everyone's flow of their scene file is different, and it's sort of a nice map for people having an option to think how they will. I mean, none of us think the same, and people's scene files will be, you know, really different. I mean, for me, I like my little color schemes here, and these mean something for me.
Other people, that's not going to be their thing. So the key is basically right here. I have a delete note here that's deleting all of the pieces that aren't, have their attribute of the frame number. I'm asking it, please delete all of the pieces whose attribute is not the current frame number, which is frame 66.
If I turn off that bypass and I jump back here, we can see the pieces are just close enough to the ball for me to just deal with those guys separately. And then what I do is, those rest attributes that I stored way, way earlier on how is the ball moved both in position and rotation. And this is where I wanted, because I don't use any dynamics here, is I wanted to learn what is the math using these things called matrices, which I didn't pay enough attention in school to learn at the time, but what you can do with those is you can reverse that.
So if you imagine the ball's rolling along, that I can take at the moment that it would touch and I want to attach it, that I can go take the ball, take off its rotation, send it back to the origin of the scene, and take the little bits that I want to stick to it, and put them where they would be if the ball was just at the origin and not moving at all. What that allows me to do is I've then parented, I can have motion that's moved the piece to where the ball is without the rotation applied.
When I re-apply the motion and rotation, now it's going to go with the ball continuously. So that's the base of the effect. Everything else is just, we'll bring a final one up here again. But the effect, because it doesn't use any dynamics, it's just using that understanding of the math and how to remove and add back on rotations and everything, and dealing with it all on a per piece basis.
That could be, you know, 50,000 polygon cars instead rolling onto... It doesn't care that it's a ball. It could be a skyscraper, or a, who knows? Whatever the shot called for, and it wouldn't care if a train was, you know, it doesn't have to be a flat grid or anything. Yeah, it's just another little technique or trick. You know, I did this for fun at home just to try solve a problem. But it usually seems within six months or a year some project will come up, this will solve some part that I would not have time at work to RND without knowing how long it would take, or if I could solve the problem.
So I find this stuff really useful. Just keep playing, you know?
- Nick Campbell, motion graphics artist, photographer, and entrepreneur
- Marc Potocnik, designer and 3d artist
- Tim Clapham, VFX artist and educator
- Alan Torres and Stephen Morton (Cantina Creative), design and visual effects artists
- Aaron Limonick, concept artist
- Mike Lowes, 3D animator and technical director
- Lorcan O'Shanahan, motion graphics artist
- Scott Keating, 3D artist and illustrator
- Clear Menser, visual effects artist
- John Robson, motion graphics artist and filmmaker
- Grant Miller, VFX supervisor
- Tomasz Opasinski, creative director and movie poster artist
Watch for fresh insights into the careers and creative processes of these working professionals.