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:
- build-street-2 : build the scene in LD or HD
- anim-street : animate the Truck along a path
- anim-camera : animate the camera (3 animations)
- set-light : lighting setting (day and night setting)
- render-street : render the scene (snapshot and animation)
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:
- anim-vehicle: This process animates the Truck, based on a Path. See Motion Overview & Motion Path & Maya 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:
- anim-camera-1: This process animates the camera along a segment Path. See Motion Overview & Motion Path & Maya Process
- anim-camera-2: This process animates the camera, based a segment Path and a static target. See Motion Overview & Motion Path & Maya Process
- anim-camera-3: This process animates the camera along the Truck Path. See Motion Overview & Motion Path & Maya 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:
- render-street-anim: This process renders the animated scene. See Maya Process
- render-street-snapshot: This process renders a scene snapshot. See Maya 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>