Thursday, March 19, 2015

Day 11 - Procedural Animation

Intro to CHOPs

Today I started on the next step - procedural animation tutorial. I started to explore on the CHOPs functions and I find it quite fun and interesting! :D I'm being taught how to create this springy ball. As there's quite a lot of steps, I've also take note down so that I can still refer back and know how to do in the future. Basically, I'll have to set up the scene first so I'll create a sphere, changing the primitive type to polygon and frequency to 4. Next, I'll drop a "rest" node down so as to prevent the displacement or texture from shifting later on. Continuing, I'll add a UVtexture and transform node. After that, I right-clicked on the transform > translate node and go to motion effects >noise. This is the first time I'm using this node.


Next, I'll dive into the motionfx node whereby I'll have to change the Noise>type to harmonics


It will look something like this...


I've also learned that at the noise1 node > channel > sample rate, we can increase the sample rate to get more smooth animation going on.


I've also moved on to add a "lag" node to make it look more naturally. I exited the motionfx and went back to the previous level, adding in a pointwrangle node for the normal. I wrote down the expression as @N = @N;
Then after that, I want to create some sphere beside the main sphere, so I created a scatter node and change the point to 50. Then I'll add another pointwrangle node to adjust the number of points I want to stay beside the main sphere. I added this expression: @P += @N*1.1;
However, I wanted to make a controller for that so that it will be easier for me to control how many points I want. So I went to "edit parameter interface" and added a float by naming it to ball_disp and change the range from 0 to 5. After that, to make the float work, I'll change the previous expression from @P += @N*1.1; to @P += @N*ch("ball_disp");
and so now I'll have a controller to adjust the points. 
After that is to create sphere to replace the points so I'll add in a copy and sphere node. Changing the radius of sphere to 0.1 each. To see the current result, I'll add in a merge node and merge the xform1 and copy1 so this is how it will look.


Moving on, I'll add a null and channel node before the copy1 node area and also add a new chop network.
Then, I dived into the chop network and create a "geo" and null. The null I'll link it to the upper network. I've also switch the geometry>method to animated. After that, I went back to the channel that I previously created and select the path to the chop that I created. After that, I went back to my chopnet_springy_ball network and added a math and noise.


Then I adjust the settings accordingly and I added another lag node. Then I added some of the expressions:
0.2 + fit(rand($C*143.2),0,1,0,.2)
0.1 + fit(rand($C*143.2),0,1,0,.1)



Next I've added a spring function, changing the damping constant to 10. After that I'll have to combine the current network so I went back to springy_ball and added a merge. I merged the channel1 and scatter together. So next I'll 
continue by adding an "add" node and I selected the polygons>by group and change N to 50. Then adding a resample node, going to the segments to change to 50 also. After that I merged the resample and merge1. I'll have to create the wire to link the small sphere and main sphere together so the steps will be the same too.




I've adjusted the settings of the wire network accordingly and this is the final result of my springy ball.


For the wire network, I've added extra nodes such as the slope, trigger and additional math node. I think that this exercise is quite fun as I get to do some procedural animation and using the CHOPs network for the first time. I'll move on to the next exercise.

No comments:

Post a Comment