Siggraph 2015 Rewind - Sekani Solomon: Cheating Dynamics with MoGraph and Thinking Particles
Share this video
Sekani Solomon of Imaginary Forces shows how he animated a dandelion for Dolby using Thinking Particles and MoGraph. Sekani chose to combine these two in order to create an animation they might appear dynamic but offerred him a higher degree of artistic control. Learn how to generate Thinking Particles from a MoGraph Matrix object, and control those particles both through Thinking Particles' nodal interface and with MoGraph effectors.
01:58 | Dolby Cinema |
---|---|
06:08 | Generate Thinking Particles from MoGraph Matrix |
07:42 | Cloning Geometry onto Thinking Particles |
08:49 | Adding Dynamic Animation to Particles |
12:04 | Using Effectors to control particles |
27:54 | Kendama |
33:16 | Motion System |
38:04 | Lighting and Rendering Progression (VRay) |
Transcript
- All right, how's it going guys? My name is Sekani Solomon, I'm a designer,
animator at Imaginary Forces. I want to give a big shout out to Maxon because this
is my first time at Siggraph. I'm super excited to go show you guys some cool
stuff. But before I jump into my presentation, let me just show you some of
the work that we do at Imaginary Forces.
♪ [music] ♪
All right. And that's basically what we do at the office. Okay, so today I'm going to
be talking about cheating dynamics with MoGraph. And I'm going to talk about one
project in particular that I had the opportunity to work on with the amazing
director Yance Mebass, but before I jump into that, let me play the spot for you
guys.
♪ [music] ♪
So this was a really fun one. This was a combination of different software
packages. We used both Maya and Cinema4D for a combination of shots, used
X-Particles and a bunch of different things. This was also a 4K stereoscopic
job, so it was very demanding on the software. So you know, we had to figure
out how to do stereoscopic in Cinema4D and also render at very high resolutions. So
the shot we're going to be looking at today is actually this guy. Let me load
this other clip, all right. So you're going to be taking a look at this shot
specifically, and because the theme of this presentation is faking dynamics with
MoGraph, when they first came to me to actually create this shot, I knew from the
forefront I didn't want to use dynamics. Dynamics is a little bit difficult to
control, it doesn't give me enough artistic direction. So I had to think of a
way of creating this thing without using any simulations, and that's where C4D
really came in because it's so flexible in the workflow that it gives you the
opportunity to create things in a non-typical fashion. So, you know let's
just jump straight into C4D. And so first I'm going to start by popping
over the original shot that was rendered for the final. This is the final render of
the scene. As you can tell there's a lot of stuff going on. But more or less what
we're doing here is that we're using thinking particles to build our base
animation that you can see right here, and then we're attaching objects onto these
particles, and then we're controlling them via MoGraph. So I'm just going to jump
into a build-a-file where I'm actually going to recreate and use the method that
I used, which is--It's funny also because after the fact, I discovered another way
of doing it that just used strictly mograph parameters, with no dynamics
needed. So lets just jump straight into it. So the first thing we want to do is
start attaching particles to this guy over here. And how we're going to do that,
we're going to use the matrix object. So we're going to set this to object, and
then we're going to select our bud and we already start seeing stuff happening.
We're going to switch this to surface, all right? And we already have stuff cloning
onto the surface. And then I'm going to rename our matrix object to "particles."
Boom. I'm going to drag this into this thinking particles little setup I have
here. But you know what, we don't want matrices, we want thinking particles, and
that's where the matrix object comes in, because it has that option right here. So
if I turn off the traffic lights, now I'm seeing particles cloned onto my bud, which
is exactly what we want. So step number two is that I want to
assign these particles to a custom group. And how we do this, we jump into simulate,
thinking particle settings, and because I'm going to be going back to this
particular tab, I'm just going to dock this right here. I'm going to right-click,
I'm going to go to add and make a custom group, and I'm going to call that guy
"particles." Let's make it red or something, you know something that really
stands out. And now, what's awesome about the matrix object, I can take this
particles group, put it right here, and instantly all these particles are assigned
to that group. And I could increase the count. And I have, you know fairly good
control over it. So now the next step is actually taking this geo of the tendrils
if you will, and cloning it onto that bud. So, and you know it's pretty simple. I'm
going to create a new cloner, I'm going to drag this down into this petals null, and
this has all the geo in it. I'm going to set my cloner to objects and I'm going to
drag that particle group into my cloner. So cloners have the ability to also clone
onto object groups, not just objects which is pretty cool. You want to change the
behavior to standard, because stretch acts a little bit funny. And as you can see,
the orientation just does not look right. So I'm going to rotate this maybe about
270 degrees, and okay cool, this is looking like what we want. And if we jump
back into our timeline, it's playing and it's more or less holding onto the bud,
exactly what we want. So the next step is how do we get these things to blow off? So
for anyone that's used thinking particles, you would know that you have to jump into
Xpresso to actually give it some actions or some animation. So let's do that.
I'm going to jump into Xpresso, and when you're dealing with thinking particles,
for it to communicate with any other node, you have to create a P Pass. Here we go.
So in that P Pass, you want to also assign which group you're dealing with. And here
we want to deal with all our particles group. So we want some wind, we want to
blow this guy off. So let's create a new wind node. Thinking particles, dynamic,
wind. And I'm going to attach this wind node to our particles. What you also have
to do is put a null object, which I'd already built, into our wind, so that it
has global coordinates. So now that we've done that... All right, so we have our
particles moving, but, ugh this does not look right. So let's keep on building this
guy. So if you want to mess with the settings, if you hit the wind node, you
have all these settings. So let's drop the strength down to about 50. What else?
Let's add a little bit of turbulence to it. So what that's going to do is just
reduce how much the wind is blowing. But now we want to stipulate the movements of
these tendrils; we want some to blow off, we want some to stay, we want to add it
and make it really feel dynamic. And that's when we start adding custom weights
to each particle. And how we do that, I'm going to copy this P pass, I'm going to
right-click, I'm going to create a new node called "P-Mass", attach it right
here, and now I have some new parameters. So when I add mass, it's adding mass to
these particles. And I can increase the variation right here, so now each one of
my particles has a varied mass. What I also need to do, I need to go back into my
wind and turn on the mass dependence so those particles know to have mass on them.
So now when I hit play, ah here we go. We see some blowing off, some are staying,
and it's beginning to feel a bit more natural, which is exactly, you know what
we want. And the really cool thing about this P-mass is that it has this over age
gradient, which allows you to determine across the timeline, how much you want
this mass to effect those particles. So with this gradient, it's effecting it,
it's effecting it, and then everything kind of blows off. Let's hit play. And
then everything kind of blows away. So what we've done here is that we've built a
base animation, but we want to go a couple steps further and make this feel even more
natural. If we go back to our reference, you know when we see things blowing away,
there's more randomness to it, things are rotating, so you want to go and add that
stuff in. And how we do this, because these clones, and I'm going to call this
guy "petals." Because these clones are being cloned with a cloner, it could be
effected by MoGraph objects, and with MoGraph you could just keep building
auxiliary animations and layers, which gives you so much more flexibility. So if
I go to mograph, effector, random...automatically just going to blow
everything away, we do not want that. I'm going to call this random effector
"spread," because I want it to spread when these particles blow off.
So for now I'm going to take the strength down. Actually I'm going to scrub in my
timeline, let's give it a little bit more strength, let's stay toward 15. I'm going
to reduce the strength. Okay, I see where it is in the timeline. I'm going to
increase the strength. I'm just, you know, this is where I get to preview how much I
want this to be randomized. And you know it gives you a little bit more artistic
control when you're doing this kind of thing. So you know, hmm, I think this is
beginning to look pretty good. Okay, but the problem is now, you know when it's
here, it's effecting it. And this is where the falloff parameter in our random
effector helps us. So I'm going to switch this to liner. I'm going to zoom out.
Okay. And what this allows me to do is add this... It's for the... Let me see how I
could explain this. It's like, have the random effector spread these tendrils when
it moves through this random effector. So the more it goes across, when it goes
across this field, it's going to start spreading. And see right now I have it
aligned the wrong way, I need to rotate this guy, and then move it here. I'll move
it here, and let me just turn off this camera for a bit so it feels less
distracting. So you know once its moving through this field, it's beginning to
spread. So initially, you know it's at rest. And
now when we hit play... And you know maybe I could just shrink this. I could shrink
this cloner, I mean this random effector so it effects a little bit more as it
passes through. I could increase the turbulence here for a little bit. Go back
to my camera, I hit play, and there we go, you know, it's spreading around nicely.
This is kind of what we want, so... And the cool thing about this, I could keep
building and building and building. So now I want to give it some more random
rotation as it's going through that field. And you know you could do it two ways; you
could add that rotation in the same random effector, but what I like to do, I like to
create a random effector for each step, so I can kind of keep track of what I'm
doing. So I could go into effector, random. Make sure it's connected to my
cloner object. Perfect. Put that in here. I'm going to call this guy "rotator."
Perfect. Now I'm going to add rotation parameter in our random effector, and I'm
going to use the same concept. I'm going to give this falloff and I'm going to
place this in the exact same area. So I'll make this linear. I'm going to copy all my
parameters from my spread, then I'm going to paste it here, and why is it not
pasting? Copy. So copy and, oh maybe paste identical.
Okay that works. That works. I'm just going to shrink this down...nice. So now
when we hit play, they're beginning to rotate as they go through. So you know and
I could just keep adding layer and layer and layer and really begin to customize
this thing. And also, another thing I want to speak about using this method is the
use of groups. If I jump back into my original file, you know I kind of went ham
on this thing, I really wanted a lot of control. So what I did, I made custom
groups and I applied it on specific parts of the bud. Just get rid of those
background dandelions, so our scene could chug a little bit less. Here we go. Yeah,
so you know if you look, so it's setup where it has a group here, then a group
here, and a group here, so they blow off in stages, and you know I just had a
little bit more control over that. In case you guys wanted to see my--the Xpresso
setup for this, you know it looks a little bit more complicated, but it's really just
the same thing. You know group one, you have the wind you have the p-mass, group
two so on and so forth. But you know what? Some of us don't like thinking particles,
some of us are just really comfortable using MoGraph. So how about we just ditch
thinking particles all together and lets build this thing with MoGraph straight up.
This is actually a method I started using after I built this and I was like wow,
this is what I should've used before. And it has so many applications that I just
keep on using it. So lets just build this guy straight up with MoGraph.
So we're just going to take our tendril slash petal over here and drop it into a
cloner. If I could find the MoGraph, okay. I'm going to go cloner, come down, going
to delete that. I'm going to set this, the mode to objects and then I'm going to drag
this bud so, you know it gets things moving a whole lot quicker. I'm going to
set this to surface, and I'm going to add a couple more. I'm just going to rotate
these guys 270 degrees. And cool. So now, let's just build this thing with straight
up MoGraph. So first thing we want to do, we want to use a plane effector, and what
that's going to do is tell us what direction we're going to be moving our
tendrils. So MoGraph, plane effector, let's bring this y parameter way down. And
by default it's going to effect all your clones individually and that's not what we
want. We want it to effect the entire group as a whole. So lets switch this to
objects, ah here we go. So we want this to move, let's say this way, and we want it
to move up a bit. Awesome. And I'm going to play this through, I'm going to wait
until the bud blows forward, I'm going to set a keyframe at zero strength and then
I'm going to go forward all the way down the timeline and I'm going to move it that
way. I'll probably bring it a bit lower down, like so. All right, that looks good
to me. So now when I hit play...or maybe I could
just move this up a tad. Just a tad more, right. And also you want to make sure that
all your keyframes are linear, because we don't want any ramping or anything like
that. Uh oh, I'll just need to turn this to automatic mode. That's weird. Oh, there
we go. I'm going to need to find my plane, go to the curves, and we're going to make
this linear. Okay, nice. Switch it back to standard. So now the tricky thing is, how
do we add random weight to each one of these clones? That's exactly what we're
going to do. Now this is the awesome part for me, this is the juice of it. If we
select these clones and we go back and we create a random effector, we turn off that
position parameter, and we move this weight transform slider. What we're doing
here is giving each clone custom weight. So now if I select my cloner and I go to
transform, display weight, we see that each one of these clones has a random
color, which symbolizes the strength of weight that each one has.
So now when I hit play, oh. See everything's not being stipulated, because
what's important is the order of operation when you're in your cloner object. So you
want to make sure that this random, and let's call it "weight" so we keep
everything really tidy, is on top. And let's call this one "mover." So you want
to make sure the weight is on top and everything else comes below. So I'm going
to hit play now. As you can see, everything is kind of being stipulated.
But you know, something's not right. This whole group over here is still moving
together. And it's cool because we have control over the distribution of weight
across all of our nodes. So if I go into my weight and I go into my minimum
maximum, and I just bring down this maximum parameter until I see everything
moving... Ah here we go. When we press play, then everything kind of moves in a
stipulated fashion. Awesome. So you know we have another problem, these guys aren't
really moving at all, and we want everything to blow off after a certain
point. Once again you know we have a lot of flexibility here. We could just animate
our minimum parameter over time, so you know it stays on here. So add a keyframe
to our minimum. You know at this point you want everything to be more blown off so we
could just move this slider and, you know there you go, we already started moving
things off. Perfect. Hit play again and... I think that's looking good. I think I
could start it a little bit earlier. All right cool, but you know this still
feels really static. And this is where we go about just building upon those layers
again. And the awesome part about using weights is that we don't need to use any
falloff anymore, we could just add those rotation MoGraph objects. In our cloner,
that we're cloning our petals onto...oh. Call this "petals." And you know let's
just go back again. Let's do a random effector and let's just bring this down.
Let's say 12 each parameter. And what's really nice about is that all you have to
do is animate this one slider. So I could be like okay, once everything starts to
move I could animate the strength across my timeline, and it you know it starts
spreading things out. You know and I can adjust this. And the cool part is if I'm
like, eh you know what, I want this to spread a whole lot more and you know I
already have things animated, all I have to do is go back into my parameters and
increase this. I don't need to re-keyframe anything, really. And you know there you
have a little bit more control over things, how things look. You know and it's
the same process, you know. I come in, I add like another random effector, I give
it rotation. Random, let's give it a little bit of rotation, here and here.
Let's animate that same strength slider, zero, let's say maximum about here. And
now when we press play, they're not only spreading... Actually we should have this
running down the entire timeline. They're also rotating.
And you know just adjusting where those keyframes are on the timeline and just
doing that kind of stuff gives you so much control, just using MoGraph. But you know,
and I'm going to show you also some really cool applications of where I use this
technique in another cool spot that I worked on. So, so this is like a little
fun project I did in my spare time. It's about this Japanese toy called a kendama,
which has a ken and a ball, and the point is to hit that ball on all four spots. So
for me I just wanted to make this as ridiculous as possible. I also wanted to
give a huge shout-out to Emily Jackson who's in the crowd who did the audio for
the piece, and Cooper Skinner who did the sound design. Those guys are amazing,
definitely check their stuff out. So I'll just play it.
♪ [music] ♪
Yeah, and my whole thinking behind this
piece is just, I'm going to make this as ridiculous as possible. And you know
there's a bunch of different places where I applied the technique that I just
demonstrated. For example all these leaves that are falling in the background, you
know that's all MoGraph. The way they're turning, they have like some natural
movement, that's all MoGraph. When these things all break apart, once again that's
all MoGraph. Basically, you know when these things break right here, that's all
MoGraph. All this breaking around the floor, these little shards over here, and
even this huge scene. There's a couple dynamic moves here, but generally it's the
same Mograph technique. So I'm going to jump into some of these files and show you
guys how I did all this trickery. Trickery. Okay. Which one should I do
first? Let's do this one. Okay. All right so this is our first file. You know he's
taking off, I really wanted it to feel energetic and ridiculous. If you watch
Dragonball Z, you kind of know that feeling. And you know how I went about
doing this, if I took off my camera. So I had a bunch of shattered pieces
underground. We can't see them. Maybe if I choose object mode but no, they're not
showing up. But yeah, we have a bunch of pieces that I
shattered. These are all little tiny pieces, and I put them in fracture
objects, because fracture objects allows you--allows MoGraph in fact to interact
with different pieces or different objects. And you know its just the same
setup. If you look at the effectors, you know each one of these has... Oh where's
my weight? Oh well. Each one of these have different weight parameters, each one of
these clones. And I have, if I could go into my MoGraph, I have this plane
effector that's just lifting them up off the ground. And then I have another
MoGraph effector that's giving them rotation. Then I have another MoGraph
effector that's doing the same thing. So it has a really a lot of practical uses,
even when you're doing something like... Let's see. I think this one was really
interesting. Yeah this one. As you can see there's a bunch of falloff parameters
here. And as we scroll through, and this is really simple, all that's happening is
that there's a random effector with falloff that's rotating these pieces
that's already on the ground as it's kind of sliding through. But the real trickery
I think that's happening is, with these little pieces that's flying out. If I jump
into my cloner over here, and I hit effectors, and if I turn off some of these
planes and I lift these guys up, I just have a line of little pieces on the ground
that are just kind of invisible. And as this guy's sliding through, the same thing
is happening. That plane effector is just moving these guys everywhere and just
revealing them and you know giving them some kind of movement.
And, yeah. Okay I have some time, so I could show you guys some other cool little
tricks, which I think are super helpful. So, anyone ever had a problem where they
animated something with a bunch of keyframes, and then they wanted to re-time
it or remap it right in C4D, but they just did not want to mess with keyframes?
There's actually a way to re-time stuff and time remap, just doing it like it's in
an editing software. It's pretty amazing. Okay, so say for instance we have this
cube. And this cube is going to go from left to right. And let's just pretend for
a second that this is a really, really, really complicated animation with a
gazillion keyframes that you just do not want to touch. So, what if I wanted this
to ramp up, slow down in the middle, and then speed back up at the end, before
touching any keyframes? The answer is motion systems. So if I go to animate, add
motion clip. You want to make sure to uncheck this remove included animation
from original object. So let's uncheck that. And you get this really awesome tag
here. If I go into my animation setup and I hit this button, now I have this really
awesome clip type thing. And now it's just more-or-less like you're working in an
editing software. If I hit cut and connect, hmm, it's in the middle. I'm
going to cut it here, I'm going to cut it here. This is the section that I really
want to drag out. And I'm going to move this back, stretch
this guy out, and I'm going to do the same thing for here. And then I'm just going to
play this back. Boom. And it's re-timed No touching of keyframes. But there's a catch
with this system. Say for example, you wanted to change the animation of this
cube. So I'm going to reanimate this, so... And let me just take this tag off
for two seconds. So I'm going to animate it, and I want this cube instead to move
up, move across, and then go back down. So this is the new animation that we have for
this cube. But when I reapply this motion systems tag, and this is what applies that
time remapping to your object, it doesn't want to comply, you know it just keeps
doing your original animation. And obviously that's not what we want. So what
you have to do is, let's create a new motion clip. Let's jump back into our
animation window. Let's call this "clip one." So when we create a new motion clip,
we get another motion source and then we have another timeline. So this timeline is
generated via the tag. So if I delete this tag, that new timeline disappears. So if
you wanted to keep the old edit that you did, use the old tag that you have. But
what we got now is this new motion source, which contains the new animation. So if I
delete the old motion clip and I use this one, let's call this "clip 2."
And see now it says no source. I need to select all these guys and drag clip 2 into
our source. Now we re-time with that new animation. Boom. And that's just a really,
there's a project in particular that I used this for, which I'm going to be
demonstrating at my presentation tomorrow, where it had a gazillion keyframes that I
just could not go in and reanimate. And you know the client was very picky and
they wanted it in a very specific way, so I had to use this method and it literally
saved my life when you're in a crunch. I have a little bit of more time. Let's see
what little behind the scenes cool stuff I could show you. Hmm. So for Adobe, I use
VRay if you want to see kind of like my development, lighting, texturing, when I
was creating and modeling this dandelion flower. You know these are just a couple
shots of me building it out, trying to see what works, what lighting works, that kind
of thing. This is basically some of the behind the scenes development. I could
show you some behind the scenes stuff in Kendama. I've actually been working on
this one for a couple months, because I have a full-time job, so its whenever I
just find some free time, you know I play around with stuff. This is, again done in
VRay for C4D. Oh. And after that phase I went through my
style and created some style frames, trying to figure out the look, the
lighting, the feel. And this is some of the stuff that I came up with. Okay. So
you know what, since I have some time, I'm going to show you guys my work in progress
reel. This is my personal reel. It's still a work in progress, but you know what I'm
just going to show it anyway. There's going to be a lot of black on the front
but just ignore that. So this is some of the projects I've worked on.
♪ [music] ♪
All right, and that's a wrap. If you want to find out anything more about
me check SekaniMotionDesign.com and thank you guys so much.