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:
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>