Snowman
Maya Pattern Animation
For my planning of this animation snippet, I decided to base it on frosty the snow man. I wanted the patterns to change color and move as his hat floats in the wind until the hat lands on his head. Once the hat lands on his head the change of color and pattern stop.
Inspiration
Breakdown
For the model I decided to go for a simple snowman with characteristics of Frosty, also to add to the story I wanted it to be before that hat was on him and as soon as the magical hat lands on frosty the pattern stops.
Once I applied the pattern on the bowtie I spent the next few renders looking on how to adjust the settings properly.
Continuing the adjustments on the bowtie pattern
Once I applied the pattern on the bowtie I spent the next few renders looking on how to adjust the settings properly.
Adding the custom pattern shaders on my model and adjusting them properly.
Modeling
Custom Shader Application
Reflections & Displacements
Adjust reflections and procedural noise displacement to areas needed.
I adjusted the spectacular gain and reflection scale to get an appropriate reflection.
I added a procedural noise displacement to the ground to get a floor ground close to what I wanted.
I added a noise displacement to the snow of the snowman to get a compact snow like appearance.
I adjusted the spectacular gain and reflection scale to get an appropriate reflection.
The animation and notes on this page explains how I used my custom shader written in the RenderMan Shading Language in Maya in order to animate it. I decided to animate my shader as patterns in the snow, bowtie, and the pipe.
Adjusting lighting and testing pattern animation.
Lighting & Pattern Tests
Adjusting the light settings to get a more appropriate look.
I adjusted the cross patterns and rendered to test out their movements.
Adjusting the light settings to get a more appropriate look.
Snippets of Code Examples:
#include "cross_pattern.h"
/* Shader description goes here */
surface
cross_pattern(float Kfb = 1.0;
float right = 0.6;
float top = 0.70;
float left = 0.8;
float bottom = 0.90;
float Lside = 0.2;
float Rside = 0.6;
color pat = color(1.0,1.0,1.0);
color bg = color(0.0,0.8,0.8)
)
{
color surfcolor;
cross_pattern(right,top,left,bottom,Lside,Rside,pat,bg,surfcolor);
/* STEP 1 - set the apparent surface opacity */
Oi = Os;
/* STEP 2 - calculate the apparent surface color */
Ci = Oi * Cs * surfcolor * Kfb;
}
// pattern.h
// a place for storing functions that create patterns.
// vsfx319/shader_src/pattern.h
// A barebones version of a typical function
void cross_pattern(float right; /* [default 1.0] */
float top; /* [default 0.6] */
float left; /* [default 0.70] */
float bottom; /* [default 0.8] */
float Lside; /* [default 0.90] */
float Rside; /* [default 0.2] */
color pat;
color bg;
output varying color result)
{
result = bg;
if(t <= top && t >= right)
result = pat;
if(s <= Lside && s >= Rside)
result = pat;
if(s <= bottom && s >= left)
result = pat;
}