120 likes | 139 Views
Simplify the process of motion-related research in Maya, understand Maya's architecture, create custom objects and commands, modify object attributes using Maya's user interface, and get interactive responses from Maya Types of Maya Plug-ins.
E N D
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
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
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