Funny Grass - Maya
This use case shows how to animate grass based on pipeline process.
Grass I
This use case shows how to animate grass based on animated cones.The scene steps are:
- Step 1: Create 40 cones. Each cone has a specific height, position, color, and animated bend deformater. See grass1
- Step 2: Create a ground (cylinder) and animate the persp camera. See grass1
- Step 3: Duplicate these 40 cones into 500. See grass2
- Step 4: Render the result. See grass2
These steps are defined into a unique pipeline process. See pipelineGrass
result
Pipeline process
<Process id="pipelineGrass" type="pipeline">
<Exec processId="grass1" single="true" exec="true">
<Var name="u" type="sequence" main="true">1-40</Var>
<Var name="height" type="random">
<Param name="min">10</Param>
<Param name="max">14</Param>
</Var>
<Var name="rot" type="random">
<Param name="min">0</Param>
<Param name="max">360</Param>
</Var>
<Var name="pos" type="random">
<Param name="min">0;10;6</Param>
<Param name="max">360;20;6</Param>
</Var>
<Var name="color" type="random">
<Param name="min">0.05;0.05;0.05</Param>
<Param name="max">0.1;0.8;0.1</Param>
</Var>
<Var name="begin" type="random">
<Param name="min">-40</Param>
<Param name="max">40</Param>
</Var>
<Var name="end" type="random">
<Param name="min">-40</Param>
<Param name="max">40</Param>
</Var>
<Var name="repeat" type="random">
<Param name="trunc">1</Param>
<Param name="min">1</Param>
<Param name="max">4</Param>
</Var>
</Exec>
<Exec processId="grass2" single="true" exec="true">
<Var name="u" type="sequence" main="true">41-500</Var>
<Var name="copy" type="random">
<Param name="trunc">1</Param>
<Param name="min">1</Param>
<Param name="max">40</Param>
</Var>
<Var name="pos" type="random">
<Param name="min">0;10;6</Param>
<Param name="max">360;20;6</Param>
</Var>
</Exec>
</Process>
Create 40 cones with specific properties, create the ground and animate persp camera
<Process id="grass1" type="3d" delegate="maya">
<Param name="reset">1</Param>
<Object create="object" name="grass$u">
<Param name="class">polyCone</Param>
<Param name="radius">0.5</Param>
<Param name="height">$height</Param>
<Param name="pos">cyl($pos)</Param>
<Param name="subdivisionsAxis">10</Param>
<Param name="subdivisionsHeight">10</Param>
<Param name="bend$u">deformer</Param>
<Param name="bend$u.type">bend</Param>
<Param name="bend$u.highBound">6</Param>
<Param name="bend$u-handle.rotateY">$rot</Param>
<Param name="bend$u-handle.translateY">0</Param>
<Param name="material">blinn$u</Param>
<Param name="material.class">blinn</Param>
<Param name="material.color">$color</Param>
<FuncParam name="bend$u.curvature" type="sinus" frames="1-100/31">
<Param name="begin">$begin</Param>
<Param name="end">$end</Param>
<Param name="mirror">true</Param>
<Param name="repeat">$repeat</Param>
</FuncParam>
</Object>
<Object create="object" name="ground">
<Param name="class">polyCylinder</Param>
<Param name="radius">22</Param>
<Param name="height">1</Param>
<Param name="poly.subdivisionsAxis">40</Param>
<Param name="material">blinn1</Param>
</Object>
<Object name="persp">
<Param name="pos">46;26;40</Param>
<Param name="rot">-22;45;0</Param>
<FuncParam name="pos" type="segment" frames="1-100/2">
<Param name="begin">46;26;40</Param>
<Param name="end">47;42;0</Param>
</FuncParam>
<FuncParam name="rot" type="segment" frames="1-100/2">
<Param name="begin">-22;45;0</Param>
<Param name="end">-42;88;0</Param>
</FuncParam>
</Object>
</Process>
Duplicate these 40 cones into 500 and render the result
<Process id="grass2" type="3d" delegate="maya">
<Object name="grass$u" copy="grass$copy">
<Param name="pos">cyl($pos)</Param>
</Object>
<Render>
<Param name="creationId">outputMaya2</Param>
<Param name="frames">1-100</Param>
<Param name="resolution">1920;1080</Param>
<Param name="camera">persp</Param>
<Param name="default.gammaCorrection">2</Param>
<Param name="default.currentRenderer">mayaSoftware</Param>
</Render>
</Process>
Specifications: Process