Build a Kiosk - Max
This use case shows how to build a kiosk based on pipeline process.
Kiosk I
This use case shows how to build a kiosk based on duplicated spheres along bezier paths.The build steps are:
- Step 1: Load the initial scene containing the bezier paths. See othonielInit
- Step 2: Create 4 spheres width different colors. See othonielInit
- Step 3: Update form the scene the paths defined in the process. See othonielPath
- Step 4: Duplicate spheres along the 5 paths. See othonielPath
- Step 5: Animate the camera with a Circle Motion and render the result. See othonielRender
These steps are defined into a unique pipeline process. See pipelineOthoniel
result
Pipeline process
<Process id="pipelineOthoniel" type="pipeline">
<Exec processId="othonielInit" unique="true">
<Var name="u" type="sequence" value="1-4"/>
<Var name="color" type="sequence" main="false">
<Param name="value">130;17;91</Param>
<Param name="value">173;20;220</Param>
<Param name="value">74;142;222</Param>
<Param name="value">196;182;176</Param>
</Var>
</Exec>
<Exec processId="othonielPath" mode="updatePath" active="false"/>
<Exec id="path1" processId="othonielPath" unique="true">
<Var name="path">path1</Var>
<Var name="u" type="sequence">1-20</Var>
<Var name="ratio" type="ratio">u</Var>
<Var name="copy" type="random">
<Param name="trunc">1</Param>
<Param name="min">1</Param>
<Param name="max">4</Param>
</Var>
<Var name="scaleX" type="random">
<Param name="min">1</Param>
<Param name="max">1.4</Param>
</Var>
<Var name="scaleY" type="random">
<Param name="min">1</Param>
<Param name="max">1.4</Param>
</Var>
<Var name="scaleZ" type="random">
<Param name="min">1</Param>
<Param name="max">1.4</Param>
</Var>
</Exec>
<Exec copy="path1">
<Var name="path">path2</Var>
<Var name="u" type="sequence">21-40</Var>
</Exec>
<Exec copy="path1">
<Var name="path">path3</Var>
<Var name="u" type="sequence">41-60</Var>
</Exec>
<Exec copy="path1">
<Var name="path">path4</Var>
<Var name="u" type="sequence">61-80</Var>
</Exec>
<Exec copy="path1">
<Var name="path">path5</Var>
<Var name="u" type="sequence">81-116</Var>
</Exec>
<Exec processId="othonielRender" active="false"/>
</Process>
Init process: load scene and create the 4 spheres
<Process id="othonielInit" type="3d">
<Input creationId="othoniel"/>
<Object create="object" name="sphereRef$u">
<Param name="class">sphere</Param>
<Param name="radius">7</Param>
<Param name="material.class">Arch___Design__mi</Param>
<Param name="material.refr_weight">0.2</Param>
<Param name="material.diff_color">color($color)</Param>
</Object>
</Process>
Scene viewport: the 5 bezier paths
Path process: update path and duplicate the spheres
<Process id="othonielPath" type="3d">
<Object copy="sphereRef$copy" name="sphere$u">
<Param name="scale.x">$scaleX</Param>
<Param name="scale.y">$scaleY</Param>
<Param name="scale.z">$scaleZ</Param>
<FuncParam name="pos-rot" type="path" id="32">
<Param name="path">$path</Param>
<Param name="ratio">$ratio</Param>
</FuncParam>
</Object>
<Path name="path1" type="bezier">
<Point name="0" in="-0.677333;1.54087e-005;0.677338" out="-11.7525;1.29263e-005;14.3679">-0.677333;1.54087e-005;0.677338</Point>
<Point name="1" in="-22.8278;1.04438e-005;28.0584" out="-38.0052;2.83161e-006;76.1022">-28.0154;7.84195e-006;44.4797</Point>
<Point name="2" in="19.2477;-3.07653e-006;112.007" out="16.1081;-1.25394e-005;170.09">17.4415;-8.52054e-006;145.422</Point>
<Point name="3" in="-13.2275;-1.63692e-005;204.523" out="21.311;-2.19587e-005;238.83">6.40449;-1.95463e-005;224.024</Point>
<Point name="4" in="40.4489;-2.26643e-005;241.169" out="65.7013;-2.38764e-005;241.808">65.7013;-2.38764e-005;241.808</Point>
</Path>
<Path name="path2" type="bezier">
<Point name="0" in="202.337;-132.617;-1.85228" out="202.337;-140.563;10.2816">202.337;-132.617;-1.85228</Point>
<Point name="1" in="202.337;-148.508;22.4156" out="202.337;-141.309;71.3344">202.337;-146.047;39.136</Point>
<Point name="2" in="202.337;-104.546;75.6987" out="202.337;-107.686;133.782">202.337;-106.352;109.114</Point>
<Point name="3" in="202.337;-153.469;165.663" out="202.337;-118.93;230.55">202.337;-133.837;202.545</Point>
<Point name="4" in="202.337;-101.291;241.169" out="202.337;-76.0384;241.808">202.337;-76.0384;241.808</Point>
</Path>
<Path name="path3" type="bezier">
<Point name="0" in="389.31;-2.582e-005;-1.85226" out="405.909;-2.13966e-005;5.69083">389.31;-2.582e-005;-1.85226</Point>
<Point name="1" in="422.509;-1.69731e-005;13.2339" out="437.686;-7.06915e-006;61.2777">427.696;-1.35879e-005;29.6552</Point>
<Point name="2" in="376.872;-9.74137e-006;95.7043" out="380.012;1.95617e-007;153.787">378.678;-4.02462e-006;129.119</Point>
<Point name="3" in="411.449;8.21333e-006;193.748" out="376.91;8.58757e-006;228.056">391.817;8.42605e-006;213.249</Point>
<Point name="4" in="357.984;5.93248e-006;241.169" out="332.731;3.33165e-006;241.808">332.731;3.33165e-006;241.808</Point>
</Path>
<Path name="path4" type="bezier">
<Point name="0" in="202.337;123.49;-1.85226" out="202.337;127.611;11.1018">202.337;123.49;-1.85226</Point>
<Point name="1" in="202.337;131.732;24.0559" out="202.337;146.91;68.1756">202.337;136.92;39.136</Point>
<Point name="2" in="202.337;106.277;92.882" out="202.337;109.417;150.965">202.337;108.083;126.297</Point>
<Point name="3" in="202.337;131.257;165.663" out="202.337;96.7187;230.55">202.337;111.625;202.545</Point>
<Point name="4" in="202.337;92.1637;241.169" out="202.337;66.9112;241.808">202.337;66.9112;241.808</Point>
</Path>
<Path name="path5" type="bezier">
<Point name="0" in="332.229;-43.0208;241.735" out="332.229;36.2128;241.735">332.229;-3.40398;241.735</Point>
<Point name="1" in="273.029;68.3933;241.735" out="127.269;68.3933;241.735">200.149;68.3933;241.735</Point>
<Point name="2" in="68.0688;36.2128;241.735" out="68.0689;-43.0208;241.735">68.0688;-3.40399;241.735</Point>
<Point name="3" in="127.269;-75.2013;241.735" out="273.029;-75.2013;241.735">200.149;-75.2013;241.735</Point>
<Point name="4" in="332.229;-43.0208;241.735" out="332.229;36.2128;241.735">332.229;-3.40398;241.735</Point>
</Path>
</Process>
Render process: animate camera with a Circle Motion and render
<Process id="othonielRender" type="3d">
<Object name="camera">
<Param name="target.pos">80;0;40</Param>
<Motion coord="pos" frames="1-100/11">
<Path type="circle">
<Param name="center">80;0;40</Param>
<Param name="axe">0;0;1</Param>
<Param name="radius">350</Param>
<Param name="begin">0</Param>
<Param name="end">180</Param>
</Path>
</Motion>
</Object>
<Render>
<Param name="creationId">outputOthoniel</Param>
<Param name="resolution">1920;1080</Param>
<Param name="frames">1-100</Param>
<Param name="camera">camera</Param>
</Render>
</Process>
Specifications: Process