23
CIS682 Maya Internal Structure

CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

Embed Size (px)

Citation preview

Page 1: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Maya

Internal Structure

Page 2: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Programming Interfaces

• MEL - Maya Embedded Language– Scripting language– Interpreted– Fast prototyping, slow execuation

• C++– Powerful, fast– Class libraries

Page 3: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Maya Architecture

Page 4: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Dependency Graph (DG)

• Data flow model– Data manipulated by series of operations– Pipeline– Push-pull model

• DG - heart of Maya– Data and operations represented as nodes– Network of nodes to perform task– Add functionality by defining new node

Page 5: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

The Scene

• Entire 3D graphics state - the DG– Models– Animations– Textures– Lights– cameras

• Programming interfaces hide much of DG complexity

Page 6: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Data Flow

• Nodes

• Attributes - properties of a node

• Input/output

• Compute function

time nurbsSphere1NurbsSphere1_translateX

Page 7: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

NODE

node

input

output

Compute()

Page 8: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Node attributes

node

size(float)

node

pointA (compound)

x (float)

y (float)

z (float)

Page 9: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Nodenode

points (array)

[0] point compound

[1] point compound

[…] point compound

x (float)

y (float)

z (float)

x (float)

y (float)

z (float)

Page 10: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Node

Custom attributes can be addede.g., mass, velocity

Window->Attribute editorAttributes->Add Attributes

Page 11: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Connecting attributes

Window->General Editors->Connection editor

OR

MEL: connectAttr sphere.tx cone.ty

Driven keys as explained by technical group

Page 12: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Compute Function

• Output = compute(input0, …, inputN)

• Input and output attributes are LOCAL

• Black box

• Interface: input and output attributes

Page 13: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Dependent Attributes

• Volume = compute(sphereSize)

• attributeAffects( sphereSize, volume)

sphereVolume

sphereSize (float)

volume (float)

Page 14: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Time

• Example of node that only holds data• Current time in time node named time1• Moving frame slider or click on Play sets time

time

outTime (time)

Page 15: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Connecting Nodes

• Connect nodes by connecting node attributes

• Attribute can only connect to attribute of same type

• Maya handles flow of data; node not ‘aware’ of connections

• Connections: one-to-many mappings

• When connections broken, node retains value

Page 16: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

DAG nodes

• Directed Acyclic Graph

• DAG nodes form Shape-Transform hierarchy

• DAG nodes are in DG - they are DG nodes

– Some DAG nodes connect to non-DAG DG nodes

– Some DAG nodes may not be connected to any non-DAG nodes

• Maya shows either DAG hierarchy or connected DG nodes, not both simultaneously

Page 17: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

DAG and DG nodes

time animCurve

transform

transform

shape

Page 18: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Shape Nodes

• Meshes

• NURBS curves and surfaces

• Springs

• Camera

• Lights

• Particles

• Etc.

Page 19: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Transform Nodes

• Shape node can’t exist without a transform node

• Shape node holds the data

• Transform node transforms from objects space to world space

nurbsSphere2

nurbsSphereShape2

Page 20: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Dependent Attributes• attributeAffects( width, areaOfTop)• attributeAffects( depth, areaOfTop)• attributeAffects( areaOfTop, volume)• attributeAffects( height, volume)

boxMetrics

width (float)

depth (float)

height (float)

volume (float)

areaOfTop (float)dependent

Page 21: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Transform Hierarchy

Page 22: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Node Hierarchyhead

torso

leftArm

headShape

torsoShape

leftArmShape

rightArm

rightArmShape

leftArm

leftArmShape

rightArm

rightArmShape

Page 23: CIS682 Maya Internal Structure. CIS682 Programming Interfaces MEL - Maya Embedded Language –Scripting language –Interpreted –Fast prototyping, slow execuation

CIS682

Animation

Baking simulationsRecord out put of expressionsMakes each frame a single frame

Handling complexity• Layers• Groups• Reference & proxy files

Expressions – expression editor

Connecting attributes