Truck in Street - Maya

  This use case shows how to build a street with an animated truck in different settings: resolution, lighting and animation.
Project Context
The pipeline involved steps are: modeling, lighting and animation. See
Pipeline Integration Overview
The artists tasks should be:
  • Step 1: First, the modeling artist creates the objects in low resolution
  • Step 2: With these low resolution objects, merged into the scene, the lighting arist can set the lights
  • Step 3: Like the lighting artist, the animation artist can make the truck and the camera animations
  • Step 4: The animated scene can be rendered for a pre-vis with lightings and animations combined
  • Step 5: The modeling artist has finished the hight resolution modeling
  • Step 6: The scene in hight resolution can be rendered again with all lightings and animations combined
The artists share the Assembler Project to create and update the process used: scene building, lighting setting, animation setting and scene rendering.
Demonstration
In this demonstration, the Assembler Project includes:
  • Two object resolutions: LD and HD
  • One Truck animation
  • Tow lighting settings: day and night
  • Tow camera animations
demonstration
Assembler Project
Process Groups:
Creation Groups:
process hierarchy
 build-street_2
 build-street_2_var
 build-light_var
 set-light-night
 anim-vehicle
 set-light-night
 set-light_var
 set-light-day
 set-light_var
 anim-camera-1
 anim-camera-2
 anim-camera-3
 render-street-anim
 render-street-snapshot
 build-street_2
The process group contains 3 process:
  • build-street_2: This pipe-process executes the build-street_2_var, build-light_var, set-light-night & anim-vehicle. See Pipeline Process
  • build-street_2_var: This var-process merge the objects: build1, build4, pattern, pappyTruck & vehicle. See input_hd & input_ld
  • build-light_var: This var-process creates the lamp shader, merges & positions the 5 lamps and assign them the shader. See Maya Process
To switch the resolution, the build-street_2 "group" Var has to change: "inputHD" or "inputLD".
process group: build-street_2.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<processGroup id="build-street_2">
     <Process id="build-street_2" type="pipeline">
          <Exec processId="build-street_2_var">
               <Var name="group">inputHD</Var>
          </Exec>
          <Exec processId="build-light_var">
               <Var name="group">inputHD</Var>
               <Var name="u" type="sequence">1-5</Var>
               <Var name="posX" type="sequence" main="false">0;40;80;120;160</Var>
          </Exec>
          <Exec processId="set-light-night" active="false"/>
          <Exec processId="anim-vehicle" active="true"/>
     </Process>
     <Process id="build-street_2_var" type="3d" creationGroup="$group" delegate="maya">
          <Input creationId="streetInit"/>
          <Merge>
               <Param name="creationId">build1</Param>
          </Merge>
          <Merge>
               <Param name="creationId">build4</Param>
          </Merge>
          <Merge>
               <Param name="creationId">pattern</Param>
          </Merge>
          <Merge>
               <Param name="creationId">pappyTruck</Param>
               <Param name="prefix">vehicle</Param>
          </Merge>
     </Process>
     <Process id="build-light_var" type="3d" creationGroup="$group" delegate="maya">
          <Object name="lampShader" create="shadingNode">
               <Param name="asShader">aiStandardSurface</Param>
          </Object>
          <Merge>
               <Param name="creationId">lightPost</Param>
               <Param name="prefix">light$u</Param>
               <Param name="pos.x">$posX</Param>
          </Merge>
          <Object name="light$unurbsToPo0">
               <Param name="shader">lampShader</Param>
          </Object>
          <Object name="light$unurbsToPo1">
               <Param name="shader">lampShader</Param>
          </Object>
     </Process>
</processGroup>
 anim-street
The process group contains 1 process:
The Path is a bezier curve defined in the 3d scene.
viewport: bezier curve
process group: anim-street.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<processGroup id="anim-street">
     <Process id="anim-vehicle" type="3d" delegate="maya">
          <Path name="road" type="bezier" update="true" id="0">
               <Point name="0" in="-69.32977524;0;86.59589546" out="-56.4009795;0;86.59589546">-69.32977524;0;86.59589546</Point>
               <Point name="1" in="110.7498798;0;85.98023852" out="156.3084934;0;86.59589546">146.4579823;0;86.59589546</Point>
               <Point name="2" in="171.08426;0;89.98200863" out="172.3155738;0;18.56580355">171.6999169;0;64.43224561</Point>
               <Point name="3" in="172.3155738;0;-13.14052888" out="172.3155738;0;-15.60315664">172.3155738;0;-15.60315664</Point>
          </Path>
          <Object name="vehicle">
               <Motion coord="pos-rot" frames="1-100/11">
                    <Path ref="road">
                    </Path>
                    <Velocity type="square"/>
               </Motion>
          </Object>
     </Process>
</processGroup>
 anim-camera
The process group contains 3 animation process:
process group: anim-camera.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<processGroup id="anim-camera">
     <Process id="anim-camera-1" type="3d" delegate="maya">
          <Camera name="camera">
               <Motion coord="pos-rot" frames="1-100/30">
                    <Path type="segment">
                         <Param name="begin">-40;0;86</Param>
                         <Param name="end">240;0;86</Param>
                         <Transform name="local.rotate">0;50;0</Transform>
                         <Transform name="local.translate">30;10;20</Transform>
                    </Path>
                    <Velocity type="square"/>
               </Motion>
          </Camera>
     </Process>
     <Process id="anim-camera-2" type="3d" delegate="maya">
          <Camera name="camera">
               <Param name="target">170;10;0</Param>
               <Motion coord="pos-rot" frames="1-100/30">
                    <Path type="segment">
                         <Param name="begin">-320;200;200</Param>
                         <Param name="end">160;10;120</Param>
                    </Path>
                    <Velocity type="square"/>
               </Motion>
          </Camera>
     </Process>
     <Process id="anim-camera-3" type="3d" delegate="maya">
          <Camera name="camera">
               <Motion coord="pos-rot" frames="1-100/30">
                    <Path ref="road">
                         <Transform name="local.rotate">0;00;0</Transform>
                         <Transform name="local.translate">10;10;50</Transform>
                    </Path>
                    <Velocity type="square"/>
               </Motion>
          </Camera>
     </Process>
</processGroup>
 build-street_2
The process group contains 3 process:
  • set-light-night: This pipe-process executes the set-light_var with the values for a night lighting. See Pipeline Process
  • set-light-day: This pipe-process executes the set-light_var with the values for a day lighting. See Pipeline Process
  • set-light_var: This var-process set the 2 Truck lights intensity, the sky lighting elevation, the lamps shader emission & color, and the 10 spotLights intensity. See Maya Process
process group: set-light.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<processGroup id="set-light">
     <Process id="set-light-night" type="pipeline">
             <Exec processId="set-light_var">
                     <Var name="u" type="sequence">1-5</Var>
                     <Var name="v" type="sequence">2-3</Var>
                     <Var name="intensity" main="false">1</Var>
                     <Var name="emission" main="false">0.4</Var>
                     <Var name="color" main="false">1;1;0</Var>
                     <Var name="elevation" main="false">0.5</Var>
             </Exec>
     </Process>
     <Process id="set-light-day" type="pipeline">
             <Exec processId="set-light_var">
                     <Var name="u" type="sequence">1-5</Var>
                     <Var name="v" type="sequence">2-3</Var>
                     <Var name="intensity" main="false">0</Var>
                     <Var name="emission" main="false">0</Var>
                     <Var name="color" main="false">1;1;1</Var>
                     <Var name="elevation" main="false">70</Var>
             </Exec>
     </Process>
     <Process id="set-light_var" type="3d" delegate="maya">
             <Object name="vehicleroadLight1">
                     <Param name="intensity">$intensity</Param>
             </Object>
             <Object name="vehicleroadLight2">
                     <Param name="intensity">$intensity</Param>
             </Object>
             <Object name="aiPhysicalSky">
                     <Param name="elevation">$elevation</Param>
             </Object>
             <Object name="lampShader">
                     <Param name="emission">$emission</Param>
                     <Param name="baseColor">$color</Param>
             </Object>
             <Object name="light$uspotLightShape$v">
                     <Param name="intensity">$intensity</Param>
                     <Param name="color">1;0.9;0.5</Param>
             </Object>
     </Process>
</processGroup>
 render-street
The process group contains 2 rendering process:
process group: render-street.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<processGroup id="render-street">
     <Process id="render-street-anim" type="3d" delegate="maya">
          <Render>
               <Param name="renderer">arnold</Param>
               <Param name="frames">1-100</Param>
               <Param name="creationId">output4</Param>
               <Param name="camera">camera</Param>
               <Param name="default.gammaCorrection">2</Param>
          </Render>
     </Process>
     <Process id="render-street-snapshot" type="3d" delegate="maya">
          <Render>
               <Param name="renderer">arnold</Param>
               <Param name="creationId">declare(snapshot.jpeg, snapshot, output)</Param>
               <Param name="resolution">355;200</Param>
               <Param name="camera">camera</Param>
               <Param name="default.gammaCorrection">3</Param>
          </Render>
     </Process>
</processGroup>
creation group: input.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<creationGroup id="input" path="input/street">
     <Creation id="streetInit" filename="street_init.ma"/>
</creationGroup>
creation group: input_hd.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<creationGroup id="inputHD" path="input/street/hd/">
     <Creation id="build1" filename="build_1.mb"/>
     <Creation id="build4" filename="build_4.ma"/>
     <Creation id="lightPost" filename="lightPost.mb"/>
     <Creation id="pattern" filename="pattern.mb"/>
     <Creation id="pappyTruck" filename="PappyTruck.mb"/>
</creationGroup>
creation group: input_ld.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<creationGroup id="inputLD" path="input/street/ld/">
     <Creation id="build1" filename="build_1.mb"/>
     <Creation id="build4" filename="build_4.mb"/>
     <Creation id="lightPost" filename="lightPost.mb"/>
     <Creation id="pattern" filename="pattern.mb"/>
     <Creation id="pappyTruck" filename="PappyTruck.mb"/>
</creationGroup>
creation group: output_ld.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<creationGroup id="output" path="output">
    <Creation id="output1" filename="output1.jpeg">
        <Info name="width">1920</Info>
        <Info name="height">1080</Info>
        <Info name="update">1529584169343;21/06/2018 01:29:29</Info>
    </Creation>
    <Creation id="output2" filename="output2.jpeg">
        <Info name="width">1920</Info>
        <Info name="height">1080</Info>
        <Info name="update">1529584661378;21/06/2018 01:37:41</Info>
    </Creation>
    <Creation id="output3" filename="output3/frame.jpeg">
        <Info name="index.list">true</Info>
        <Info name="width">1920</Info>
        <Info name="height">1080</Info>
        <Info name="update">1530441104547;01/07/2018 11:31:44</Info>
        <Info name="frame">1-100</Info>
        <Info name="indexList">0001;0002;0003;0004;0005;0006;0007;0008;0009;0010;0011;0012;0013;0014;0015;0016;0017;0018;0019;0020;0021;0022;0023;0024;0025;0026;0027;0028;0029;0030;0031;0032;0033;0034;0035;0036;0037;0038;0039;0040;0041;0042;0043;0044;0045;0046;0047;0048;0049;0050;0051;0052;0053;0054;0055;0056;0057;0058;0059;0060;0061;0062;0063;0064;0065;0066;0067;0068;0069;0070;0071;0072;0073;0074;0075;0076;0077;0078;0079;0080;0081;0082;0083;0084;0085;0086;0087;0088;0089;0090;0091;0092;0093;0094;0095;0096;0097;0098;0099;0100</Info>
        <Info name="frameToVideo">true</Info>
        <Info name="begin">1</Info>
        <Info name="end">100</Info>
    </Creation>
    <Creation id="output4" filename="output4/frame.jpeg">
        <Info name="index.list">true</Info>
        <Info name="width">1920</Info>
        <Info name="height">1080</Info>
        <Info name="update">1530806782326;05/07/2018 05:06:22</Info>
        <Info name="frame">1-100</Info>
        <Info name="indexList">0001;0002;0003;0004;0005;0006;0007;0008;0009;0010;0011;0012;0013;0014;0015;0016;0017;0018;0019;0020;0021;0022;0023;0024;0025;0026;0027;0028;0029;0030;0031;0032;0033;0034;0035;0036;0037;0038;0039;0040;0041;0042;0043;0044;0045;0046;0047;0048;0049;0050;0051;0052;0053;0054;0055;0056;0057;0058;0059;0060;0061;0062;0063;0064;0065;0066;0067;0068;0069;0070;0071;0072;0073;0074;0075;0076;0077;0078;0079;0080;0081;0082;0083;0084;0085;0086;0087;0088;0089;0090;0091;0092;0093;0094;0095;0096;0097;0098;0099;0100</Info>
        <Info name="frameToVideo">true</Info>
        <Info name="begin">1</Info>
        <Info name="end">100</Info>
    </Creation>
    <Creation id="streetLD" filename="street_ld.ma"/>
    <Creation id="streetHD" filename="street_hd.ma"/>
    <Creation id="snapshot" filename="snapshot.jpeg">
        <Info name="width">1920;355</Info>
        <Info name="height">1080;200</Info>
        <Info name="update">1531135174481;09/07/2018 12:19:34</Info>
    </Creation>
</creationGroup>