CS777 Project 1 Developing Maya Plug-ins for motion related projects Kyungsuk David Lee
Objectives Simplify the process in doing various motion related research Understand Maya’s architecture Create custom objects and commands that do what we want Modify custom object attributes using Maya’s user interface Get interactive response from Maya
Types of Maya Plug-ins Command Plug-ins Temporary objects Undo/Redo easily ex> group –empty –name UW –parent Wisc Dependency Graph Plug-ins Creates a node that stays in the scene Need to a mechanism to respond to changes in the environment ex> TransformNode
DAG Hierarchy (Directed Acyclic Graph) 2 Types of nodes Transform Nodes Shape Nodes DAGPath is needed to specify an object that is instanced example) |Transform1|Transform3|Leaf Object names can be reused as long as the same name does not appear on more than one DAG node with a common parent
Using Hypergraph to see DAG Hierarchy
Dependency Graph Nodes Stays in the scene and affects each other DAGNodes are also a type of Dependency Graph Node Does not have to be acyclic Uses plugs to communicate with each other
DG Node Attributes & Plugs Each node can contain static and dynamic attributes Plugs are used to connect the attributes that affect another Does not have to be acyclic between nodes Shouldn’t have cycles in the graph of affected attributes Push and Pull system to update the effect of changes
Using Hypergraph to see Dependency Graph
LoadBVH & LoadPlants Command Implemented in MEL Loads a BVH file into Maya Loads foot plant information from a file that is in a specific format We don’t need to use BVH files but the structure of a skeleton should be in UberSkeleton format for use with FootSkateSolver
FootSkateSolve Command Takes the currently selected DAGNode and if it has the proper hierarchy, does foot skate solving in ways described in Lucas Kovar’s paper. Limb stretches are done by joint scaling Commands can be easier to implement in MEL (Maya Embedded Language)
FootPlantLocator DG Node A Locator Node is a transform DAGNode that visualizes our custom object in ways we like Locator Nodes are not renderable Can be transformed using Maya’s UI ex> FootSkatePlant, Camera
FootSkateSolverNode A Dependency Graph Node that stores the original motion and could possibly do interactive FootSkateSolving interactively Connects the translate attributes of all the FootPlantLocators to its internal attributes by using plugs