Jungle Bridge - Max
This use case shows how to build a bridge based on pipeline process.
Bridge I
This use case shows how to build a bridge based on duplicated objects along a path.The scene steps are:
- Step 1: Load the scene. See bridgeInit
- Step 2: Duplicate the step, vertical and border objects along path1. See stepPath
- Step 3: Do the same for path2 and path3. See stepPath
- Step 4: Animate the 2 teapots along the path2 and path3. See animTeapotBridge
- Step 5: Animate the camera along the pathCam and render the result. See animTeapotBridge
These steps are defined into a unique pipeline process. See pipelineBridge
result
Pipeline process
<Process id="pipelineBridge" type="pipeline">
<Exec processId="bridgeInit"/>
<Exec processId="stepPath" mode="updatePath" active="true"/>
<Exec id="path1" processId="stepPath" unique="true" active="true">
<Var name="path">path1</Var>
<Var name="u" type="sequence">1-25</Var>
<Var name="ratio" type="ratio">u</Var>
<Var name="localTrans" type="random">
<Param name="min">0;-4;-1</Param>
<Param name="max">0;4;1</Param>
</Var>
<Var name="scaleStep" type="random">
<Param name="min">1.0</Param>
<Param name="max">1.2</Param>
</Var>
<Var name="scaleBorder" type="random">
<Param name="min">0.8</Param>
<Param name="max">1.2</Param>
</Var>
<Var name="stepRot" type="random">
<Param name="min">0;0;-5</Param>
<Param name="max">0;0;5</Param>
</Var>
<Var name="verticalRot" type="random">
<Param name="min">0;-8;0</Param>
<Param name="max">0;8;0</Param>
</Var>
</Exec>
<Exec copy="path1" active="true">
<Var name="path">path2</Var>
<Var name="u" type="sequence">26-60</Var>
</Exec>
<Exec copy="path1" active="true">
<Var name="path">path3</Var>
<Var name="u" type="sequence">61-95</Var>
</Exec>
<Exec processId="animTeapotBridge" active="false"/>
</Process>
Load scene
<Process id="bridgeInit" type="3d">
<Input creationId="bridge"/>
</Process>
Scene viewport: ground, trees and the 3 path used to build the bridges
Scene viewport: the reference object: step, verticale and border
Duplicate reference objects along the path
<Process id="stepPath" type="3d">
<Object copy="stepRef" name="step$u">
<Param name="scale.y">$scaleStep</Param>
<FuncParam name="pos-rot" type="path" id="17">
<Param name="path">$path</Param>
<Param name="ratio">$ratio</Param>
<Param name="local.translate">$localTrans</Param>
<Param name="local.rotate">$stepRot</Param>
</FuncParam>
</Object>
<Object copy="verticalRef" name="verticalLeft$u">
<FuncParam name="pos-rot" type="path" id="18">
<Param name="path">$path</Param>
<Param name="ratio">$ratio</Param>
<Param name="local.translate">0;24;0</Param>
<Param name="local.rotate">$verticalRot</Param>
</FuncParam>
</Object>
<Object copy="verticalRef" name="verticalRight$u">
<FuncParam name="pos-rot" type="path" id="19">
<Param name="path">$path</Param>
<Param name="ratio">$ratio</Param>
<Param name="local.translate">0;-24;0</Param>
<Param name="local.rotate">$verticalRot</Param>
</FuncParam>
</Object>
<Object copy="borderRef" name="borderLeft$u">
<Param name="scale.z">$scaleBorder</Param>
<Param name="scale.y">$scaleBorder</Param>
<FuncParam name="pos-rot" type="path" id="20">
<Param name="path">$path</Param>
<Param name="ratio">$ratio</Param>
<Param name="local.translate">0;24;33</Param>
<Param name="local.rotate">0;90;0</Param>
</FuncParam>
</Object>
<Object copy="borderRef" name="borderRight$u">
<Param name="scale.z">$scaleBorder</Param>
<Param name="scale.y">$scaleBorder</Param>
<FuncParam name="pos-rot" type="path" id="21">
<Param name="path">$path</Param>
<Param name="ratio">$ratio</Param>
<Param name="local.translate">0;-24;32</Param>
<Param name="local.rotate">0;90;0</Param>
</FuncParam>
</Object>
<Path name="path1" type="bezier" id="24">
<Point name="0" in="-17.4021;5.05555e-005;74.7041" out="30.4212;5.44785e-005;50.6247">-17.4021;5.05555e-005;74.7041</Point>
<Point name="1" in="80.81;5.66596e-005;45.2566" out="186.705;5.92554e-005;29.3237">133.757;5.79575e-005;37.2902</Point>
<Point name="2" in="249.949;5.91685e-005;29.9576" out="346.781;5.59755e-005;54.2379">298.365;5.7572e-005;42.0978</Point>
<Point name="3" in="386.121;5.32367e-005;69.7898" out="433.492;4.7441e-005;134.319">433.492;4.7441e-005;134.319</Point>
</Path>
<Path name="path2" type="bezier" id="25">
<Point name="0" in="67.9901;-668.579;238.124" out="132.79;-585.828;115.968">67.9901;-668.579;238.124</Point>
<Point name="1" in="189.802;-451.871;145.086" out="325.667;-219.329;142.944">257.734;-335.6;144.015</Point>
<Point name="2" in="326.371;-184.385;48.9726" out="437.927;-41.2615;77.3729">437.927;-41.2615;77.3729</Point>
</Path>
<Path name="path3" type="bezier" id="26">
<Point name="0" in="3.92027;-717.58;253.64" out="0.921089;-612.519;148.469">3.92027;-717.58;253.64</Point>
<Point name="1" in="19.4244;-469.045;101.959" out="-10.3249;-243.114;82.8599">4.54977;-356.079;92.4093</Point>
<Point name="2" in="-53.1365;-228.065;30.7466" out="-58.7229;-46.6872;59.1469">-58.7229;-46.6872;59.1469</Point>
</Path>
<Path name="pathCam" type="bezier" id="27">
<Point name="0" in="58.2922;-421.325;131.016" out="150.146;-330.723;131.016">58.2922;-421.325;131.016</Point>
<Point name="1" in="221.729;-180.855;134.187" out="317.901;100.285;142.645">269.815;-40.2853;138.416</Point>
<Point name="2" in="413.717;304.904;150.601" out="460.621;422.095;156.39">460.621;422.095;156.39</Point>
</Path>
</Process>
Animate teapots along path2 and path3, the camera along the pathCam and render the result
<Process id="animTeapotBridge" type="3d">
<Object create="object" name="teapot1">
<Param name="class">teapot</Param>
<Param name="radius">15</Param>
<Motion coord="pos-rot" frames="1-100/11">
<Path ref="path3" id="28">
<Transform name="translate">0;0;4</Transform>
</Path>
<Velocity frames="1-100">
<Param name="begin">0.9</Param>
<Param name="end">0.1</Param>
</Velocity>
</Motion>
</Object>
<Object create="object" name="teapot2">
<Param name="class">teapot</Param>
<Param name="radius">15</Param>
<Motion coord="pos-rot" frames="1-100/11">
<Path ref="path2" id="29">
<Transform name="translate">0;0;4</Transform>
</Path>
<Velocity frames="1-100">
<Param name="begin">0.1</Param>
<Param name="end">0.9</Param>
</Velocity>
</Motion>
</Object>
<Object name="camera">
<Motion coord="pos" frames="1-100/11">
<Path ref="pathCam" id="30">
<Transform name="translate">0;0;10</Transform>
</Path>
<Velocity frames="1-100">
<Param name="begin">1</Param>
<Param name="end">0.3</Param>
</Velocity>
</Motion>
<Motion coord="target" frames="1-100/11">
<Path ref="pathCam" id="31">
<Transform name="translate">0;0;2</Transform>
</Path>
<Velocity frames="1-100">
<Param name="begin">0.9</Param>
<Param name="end">0.2</Param>
</Velocity>
</Motion>
</Object>
<Render active="false">
<Param name="creationId">outputBridge</Param>
<Param name="resolution">1920;1080</Param>
<Param name="frames">1-100</Param>
<Param name="camera">camera</Param>
</Render>
</Process>
Specifications: Process