II. Precautions: Non-Medical
- Not for Medical Care
- The author uses several software packages and programming languages to develop FPnotebook content
- For convenience, a dozen pages in FPNotebook are dedicated to quick notes on content creation
III. Technique: Viewport Navigation
- Mouse
- Alt-LMB: Tumble
- Rotate viewport around the selected object (in perspective view)
- Alt-MMB: Track
- Pan the viewport left, right, up and down
- Alt-RMB: Dolly
- Zoom in and out of viewport
- MMB scroll will also zoom, but with larger increments
- Alt-LMB: Tumble
- Frame Objects
- A
- Frame all objects in active panel (or shift-A to affect all panels)
- F
- Frame selected object in active panel (or shift-F to affect all panels)
- A
- Marking Menus
- Space Bar (single press)
- Toggle between single view and multi-view
- Space Bar (hold)
- All Menu Items displayed in screen overlay
- Click and hold to open a sub-menu
- Click and hold the central "Maya" button to change view
- RMB (click and hold)
- Context sensitive selected object related options (including sub-object selection)
- Shift-RMB (click and hold)
- Context sensitive manipulation tools for the selected object (e.g. mesh tools)
- Object creation menu, If no object is selected
- Ctrl-Shift-RMB
- Change orientation axis (Object or World) and Symmetry options
- Axis and Symmetry may also be changed from the modeling toolkit
- Space Bar (single press)
- Property Windows
- Ctrl-A
- Toggle between Channel Box/Layer Window and Attribute Windows
- Ctrl-A
- Display > Grid
- Typically set units to cm in preferences and design/build 1:1 with real dimensions
- Exception: Very large or microscopic scenes
- For buildings, set in meters
- Engineering Set-up (marks at 1 unit and 10 unit)
- Length and Width: 50 units
- Grid Line Every: 10 units
- Subdivisions: 10
- Consider changing grid lines color to black and subdivision color to dark gray
- Orthographic grid numbers: Align Edge
- Typically set units to cm in preferences and design/build 1:1 with real dimensions
IV. Technique: Object Selection and Manipulation
- Object and Component Selection
- LMB
- Selects object
- Ctrl-LMB
- Deselects object
- Shift-LMB
- Adds object to selection
- Shift-LMB and Drag
- Clones object
- LMB
- Component (Vertex, Edge, Face) Selection
- Shift-Double-Click (nothing selected before)
- Selects all components in the object
- Shift-Double-Click (adjacent component already selected)
- Selects an edge, vertex or face loop
- Shift-Double-Click (non-adjacent component already selected)
- Selects components between the two selected components
- Shift >
- Expand Selection
- Shift <
- Contract Selection
- Shift-Double-Click (nothing selected before)
- Tools
- Q
- Select Tool
- W
- Move Tool
- E
- Rotate Tool
- Hold down j-key when rotating object to constrain angle
- R
- Scale Tool
- Hold down Ctrl key while clicking an axis arrow, to scale in then other two, unselected, axes
- Other modifiers and pearls
- Arrow Axis Colors (Move, Rotate, Scale)
- Red, Green, Blue (RGB) = X, Y, Z
- Manipulator Size (use +/- keys to increase or decrease)
- Use with snapping keys (C, X, V) to constrain
- Ctrl-MMB moves selected vertices along their normals
- Set the Selection Constraints (Modeling Toolkit Window) to Angle = 1 degree
- Allows for selecting planar surfaces (face selection)
- Double click the tool in the left tool bar to open property window (e.g. reset and modify behavior)
- Alternatively, Hold down the Tool Shortcut Key (e.g. W) and LMB for marking menu options
- Axis orientation may be changed from object to world, normal...
- Vertices may be moved while constrained to surface (transform constraint, esp. with tweak mode)
- Analogous to creating objects or components on a live surface
- Tweak mode allows for single click selection and moving of components
- Step snap allows for movement in increments
- Preserve UVs allows for model minor modifications while simultaneously updating the UVs
- Arrow Axis Colors (Move, Rotate, Scale)
- Q
- Object and component selection
- F8
- Switch to and from object mode
- F9
- Select Vertex (or alt-F9 to select vertex face)
- F10
- Select Edge
- F11
- Select Face
- F12
- Select UV
- Other modifiers
- Switch between component selection types (vertex, edge, face) also with modeling toolkit, marking menu
- Change selection to other sub-component type (e.g. selected face to selected vertices)
- Ctrl-Click the sub-component type in the modeling toolkit
- Backface Culling (polygon menu)
- Turn off to select only the front faces
- F8
- Snapping (hold down with manipulation tools to constrain movement)
- C
- Snap to curves
- X
- Snap to grids
- V
- Snap to points
- J
- Incremental snapping (move, rotate, scale)
- D
- Toggle on and off object's pivot point manipulator
- May combine with snapping keys (C, X, V) to constrain
- C
- Miscellaneous
- Ctrl-1
- Isolate selection
- Ctrl-T
- Show transformation control (e.g. bend modifier)
- B
- Toggle on and off soft selection
- B+MMB
- Move the mouse left or right to decrease or increase the brush size
- Measure Tools
- Menu "Create > Measure" (e.g. distance, angle) will place locators and calculate measurements between points
- Ctrl-1
V. Technique: Organization and Hierarchy
- Organization and Hierarchy: Keyboard Shortcuts
- Ctrl-G
- Group selected objects
- P
- Parent selected objects under the last selected object
- Shift-P
- Unparent selected objects
- Ctrl-H
- Hide selection
- Shift-H
- Show Hidden Selection (when selected in outliner)
- Ctrl-G
- Organization and Hierarchy: Outliner
- MMB
- In outliner, MMB click and drag objects in and out of groups
- Shift-Click
- Select all objects between 2 clicks
- Ctrl-Click
- Add or subtract object from selection
- MMB
VI. Technique: Object Editing
- Object Editing: Keyboard Shortcuts
- Ctrl-D
- Duplicate selected object(s)
- Shift-D
- Duplicate and Tranform selected object (by same amount as prior duplication was manipulated)
- Duplicate Special (edit menu > duplicate special option box)
- Allows for duplication of objects AND their history (check "input graph")
- G
- Repeat last operation
- Ctrl-E
- Extrude
- Ctrl-D
- Object Editing: Modeling Toolkit
- Multi-cut Tool
- Do not forget to turn the tool off
- Ctrl + Multi-Cut Tool
- Insert Edge Loop
- MMB + Multi-Cut Tool
- Place cut midway between adjacent vertices
- Ctrl + MMB + Multi-Cut Tool
- Place edge midway between adjacent vertices
- Other modifiers
- For any selected modeling tool, a tool property window opens at bottom of the modeling toolkit
- Multi-cut Tool
- Smoothing and Harder Edges
- Bevel Tool (Modeling Toolkit)
- Select edges and click to create a beveled edge
- Insert edge loop (or Ctrl + Multi-cut Tool)
- Reinforces an edge (avoids smoothing an curvature at the site of the edge)
- Crease Tool (polygon tool)
- Select an edge or vertices and apply crease tool create a harder edge
- Harden Edge (mesh display menu) or Soften Edge
- Sets the normals to give a harder edge (or softer edge)
- Unlock normals first (otherwise will not work)
- Bevel Tool (Modeling Toolkit)
- Normals
- Reverse
- Flips the normals to face the opposite direction (facing outside or inside)
- Conform
- Corrects isolated faces that are facing opposite that of most other faces on the same surface
- Reverse
- Curves
- CV Curve Tool
- Among the easiest tools to lay down curve points
- Rebuild Curves
- Reset options, and select Curvature (will evenly space control points, while still maintaining curve)
- CV Curve Tool
-
Surfaces
- Revolve
- Will revolve selected curve around pivot point in specified axis (Y is default)
- Good quality polygon output setting: Polygon, quads, General, per-span (adjust U and V numbers)
- When output to nurbs, allows for animating the sweep angle attributes
- Partial output selection allows for animating what part of the curve is included in the revolve
- Revolve
- Component pearls
- Add Subdivisions
- Increase subdivisions for sculpting, randomize vertices (but does increase polycount/size)
- Increase using the shape node soon after creating basic polygon (avoid this method after deformations)
- Increase with "insert edge loop tool" which can add multiple evenly spaced divisions
- Keep the polygons as squares (instead of irregular rectangles)
- Adjust the number of edge loops using the attribute window even after creation
- Align vertices
- Select vertices and use the scale tool (in the desired axis) to align with one another
- Scaling selected components on multiple objects at same time
- Ctrl-MMB drag and each object's components are scaled independently
- Randomize vertices (Transform Tool)
- Select vertices, choose menu option "Edit Mesh > Transform Tool" and move the vertices
- In the tool options box, attribute window or channel box, increase the random attribute from 0
- Techniques to make areas of the mesh unique
- Select a group of vertices, shift-RMB > Average Vertices (modify iterations as needed)
- Add Subdivisions
- Booleans
- Two workflows to avoid messy geometry
- Add topology before boolean and each object has similar/aligned subdivisions OR
- Boolean objects and the then remesh and retopologize (much simpler)
- Boolean with Remesh/Retopologize
- Create the objects with booleans
- Select main object to be acted upon
- Shift Select object to cutaway (difference) or union
- Mesh > Booleans > Difference (or union or intersection)
- Repeat boolean operations as needed
- Delete History
- Recreate the geometry
- Mesh > Remesh (or on Poly modeling shelf)
- Creates triangles
- Increase collapse threshold to reduce geometry yet maintain shape
- Mesh > Retopologize (or on Poly modeling shelf)
- Create quads
- Reduce target face count yet maintain shape
- Mesh > Reduce (or on poly modeling shelf)
- Adjust percentage (default is 50%, which is typically adequate)
- Mesh > Remesh (or on Poly modeling shelf)
- Create the objects with booleans
- Two workflows to avoid messy geometry
VII. Technique: Viewport and Object Appearance
- Selected Object Smoothing
- 1
- Non-smoothed object display
- 2
- Smoothed with edges displayed
- 3
- Smoothed without edges
- 1
- Viewport Display
- 4
- Wireframe (unshaded)
- 5
- Shaded Display
- 6
- Shaded Display with texture maps
- 7
- Shaded, texture maps, and all lighting (no default lighting)
- 4
- Mesh Display - Object smoothing
- Modifies the model (unlike the viewport only changes), but does not increase geometry
- Menu: Mesh Display - Smooth Edges
VIII. Management: Customizing Shortcut Keys
- Ctrl-3
- Outliner Window
- Ctrl \
- Delete History
- Ctrl /
- Freeze Transformations
- Alt-X
- XRay display of selected objects
- Ctrl-Alt-X
- XRay display of entire scene
- Ctrl-0
- Align pivot to object center
- Ctrl-Alt 0
- Align pivot to world origin
IX. Management: Rendering Arnold
- Arnold GPU Rendering (beta)
- GPU rendering is much faster (up to 10 fold)
- Start by Pre-populating GPU Cache
- Arnold > Utilities > Prepopulate GPU Cache
- Modify Render Settings
- System Tab
- GPU Settings - Render Device: GPU
- Render Settings
- Auto-Detect Threads: Off
- Threads: -2
- With -2, Renderer will use all but 2 threads (cores)
- Could set number of threads to use with a positive integer
- Arnold Renderer Tab
- Faster rendering on GPU allows for increasing sampling and rays for higher quality rendering
- System Tab
- Render Window
- May need to resize window to eliminate artifacts
- Arnold Renderer Viewport Options
- Render >Save UI Threads > 2
X. Management: Rigging, Skinning and Animation
- Start with humanoid, symmetric model
- Scale model to the size of cube with height in cm (man 175 cm, woman 165 cm)
- Delete by type history
- Freeze transformations
- Skeleton > Quick Rig > Step-by-step
- Geometry
- Select all model geometry and click add (+) button
- Guides
- Polygon Soup
- Resolution 256
- Create/Update Guides
- User Adjustment of guides
- Move the guides (using front and side views) to correspond to joints
- Position one side (e.g. left) Shoulder, elbow and wrist and click the mirror to right button
- Position one side (e.g. left) hip, knee and anke, foot and click the mirror to right button
- Position the four thoracic and Lumbosacral Spine guides
- Position the cervical neck, clavicle and head guides
- Move the guides (using front and side views) to correspond to joints
- Skeleton and Rig Creation
- Skeleton and Rig Generation Defaults (T-Stance, Mirrored, skeleton and control rig)
- Click Create/Update
- Geometry
- Skinning
- Alternatives to skinning
- Parenting geometry to skeleton
- Setting geometry constraints to skeleton
- Increase Joint Size (Display > Animation > Joint Size)
- Combine Object geometry in preparation for skinning
- Select all model geometry
- In Modeling Setup, select Mesh > Combine
- Delete History by Type
- Bind Skin
- Select skeleton and model
- Click bind button in quick-rig dialog or in Rigging Setup, Skin > Bind Skin OPTIONS
- Joint Hierarchy
- Bind Method: Geodesic Voxel
- Skinning: Classic Linear
- Normalize Weights: Interactive
- Max Influences: 2
- Paint weights
- Right Click in viewport, Paint > SkinCluster > Paint Weights (object will appear black)
- Open the tool settings (right sided dialog)
- Display > Show Wireframe > Off
- Hide Skeleton to avoid selecting joints
- Select a joint (e.g. hand)
- Select Mode Approach (preferred)
- Change mode to selection
- Select vertices in orthographic view (top, front or side)
- Grow selection (>) to select entire influenced region
- Change mode back to paint and click the "flood" button
- Alternatively, Windows > General > Component Editor
- Click Smooth Skins
- Select the column of weights that reflects the selected vertices
- Set the column to desired weight (0 to 1)
- Paint Mode Approach (alternative)
- Set Weight type: skin weights and value: 1
- Paint operation: replace or add
- Paint areas distal to the joint white to indicate influence of that joint
- Skin > Mirror Skin Weights > options
- Default settings typically work for left to right body (YZ, positive to negative)
- Select Mode Approach (preferred)
- Alternatives to skinning
- Applying Motion Capture
- In Human IK window, select Character: None
- Import Sample or Motion Capture (e.g. from Rokoko Motion Library Window in Maya)
- Choose the character again
- Assign Source: Motion Capture Animation
- Right Click top left icon and choose Bake > Bake to Rig > Options
- Select all the joints in the Human IK Control (controls will outline in blue)
- Check Selected, All keyable and uncheck shapes, channels, control points
- Walk Cycle (e.g. 32 frames total)
- Contact Pose (frame 1 and 32)
- Select the ankle
- One ankle translated in front (e.g. left) and one in back (e.g. right) and set key frames
- Adjust the foot bend against the ground
- Rotate the hip (e.g. 10 degrees in X-Axis) so that the hip is rotated toward the front leg
- First frame and last frame should be the same (copy position from first to last)
- Opposite Pose (frame 17)
- Copy the left ankle (frame 1) to the right ankle (frame 17), repositioning the X-translate and set a key
- Repeat for the right ankle (frame 1) to the left ankle (frame 17)
- Rotate the hip the other direction (e.g. -10 degrees in X-Axis)
- Passing Pose (frame 9 and 25)
- Front foot translate Z curve should be a linear tangent
- Front foot (e.g. left) should be planted on ground with foot flat at frame 9
- Raise Hip to a point that the planted leg is still slightly flexed and set key
- Contact Pose (frame 1 and 32)
- In Human IK window, select Character: None
- References
- Bhaumik Patel (2017) Fast Animation and Rigging in Maya 2017, Udemy
XI. Management: MASH (procedural animation)
- Basic steps
- Create a base object (e.g. cube)
- MASH > Create (options)
- Choose Mesh to start with
- May change later to instance for more complicated, high geometry scenes
- Nodes created by default
- Waiter node (e.g. MASH1) is the main node to add other nodes
- MASH Distribute node (allows for various basic distributions of the object)
- Node structure may be viewed in Node Editor Window
- Nodes
- Random
- Randomizes the starting position, rotation, scale for objects
- Signal (previously Noise)
- Animates random position, scale, rotation changes
- May use a falloff object to control when and where the noise node is applied
- ID Node (multiple objects)
- MMB drag objects from the outliner into the MASH Repro node object list
- Add the ID Node in the MASH waiter
- Change the ID Node settings (e.g. randomize object selection)
- Color Node
- Will vary the vertex color for the different objects in the scene
- Choose a base color with an HSV value around 0.6
- In the random variation selectors choose 0.1 for hue, 0.2 for value or similar low values
- Arnold rendering of color
- In MASH Repro Mesh, check "export vertex colors"
- Assign Arnold Shader, and in Diffuse Color, set to aiUserDataColor node
- In aiUserDataColor, set Color Attr Name to "colorSet"
- Time Node (animate deformations)
- Create an object with enough geometry for deformation (e.g. cylinder with height 10, height segments 10)
- Deform > Non-linear > Bend with curvature of 90
- Select the animated base object (e.g. cylinder) and MASH > Create MASH Network
- Modify the distribution (e.g. grid, well spaced)
- Add Time Node
- Note, that MASH objects will not play animation until the time node is applied
- Set the animation start and end to match the object animation
- Set stagger frames (with or without random) OR
- Control the animation with falloff object
- Set strength mode to Animation Frame
- Right click in Falloff Object and "create new"
- Modify the scale and animate the position of the falloff object
- Delay Node (animate position)
- Create a simple base object and create a MASH network
- Change the distribute node to linear, with distance 0 for all settings (overlapped objects)
- Add a Signal Node to add a small amount of noise to the position
- Add Delay node, and right click within "Leader: Target" and choose "Create"
- Set Delay Mode to Follow the Leader (default)
- Animate the position of the MASH_delay_locator
- Adjust the MASH delay settings (time step ave, time variance and offset)
- Orient Node (e.g. flying cones)
- Create a simple cone and move up in Y so that its base rests on the XZ Plane/Grid
- Select the cone and Ctrl-G (to Group) to create a 0,0,0 translation
- With the cone containing group selected, create a MASH network
- Change the MASH distribute node to have no distance, scale or rotation in any axis
- Add a Signal Node for noise (with time scale at 0.1 to 0.2)
- Set playback speed to realtime
- Add an orient node with mode set to velocity
- Curve Node (e.g. square trains following a track)
- Create a closed curve (e.g. modified circle)
- Create a simple object (e.g. cube)
- Create a MASH network
- Change the distribution to 20-30 objects, and no distance, scale or rotation in any axis
- Add a Signal Node for noise
- Add a curve node, and MMB drag the nurbs curve (e.g. circle) into the input curves box
- Trails Node (e.g. tadpoles swimming)
- Create a simple object (e.g. cube), MASH network, distribute grid (e.g. 4x4x4), signal noise
- Set playback speed to "play every frame"
- Add trails node
- Replicator
- Creates multiple instances of a MASH network
- Random
- Texture Controlled Networks
- Create a simple object (e.g. cube), Mash network, distribute grid 8x8
- In distribute node
- Click strength map and assign either an image or built in pattern (e.g. texture)
- Black is hidden
- White is fully displayed
- Set the strength checkbox for scale, but uncheck position and rotation
- Set the Map projection access to Y
- Right Click in the MapHelper box and choose create
- Click strength map and assign either an image or built in pattern (e.g. texture)
- Text
- Create Polygon Type with big, bold font
- Type
- Geometry settings
- Increase Curve Resolution (e.g. 8)
- Filter colinear points
- Deformable Type
- Decrease edge divisions 10
- Max edge length 1
- Refine threshold 4
- Bevel
- Enable outer bevel
- Bevel distance 0.1
- Extrude offset 1
- Bevel divisions 3
- Geometry settings
- Select Type
- Delete by type > History
- Mesh > Separate
- Select all type polysurfaces, then modify > center pivot
- Select all type polysurfaces, then modify > bake pivot
- Moves world space coordinates into the transform attributes
- Select each letter polysurface individually, and press Ctrl-G to group each letter in its own group
- Maintains its transform, but the containing group has no transform
- MASH
- Select all type polysurfaces, and MASH > Create Mash Network
- Add Mash > Id node
- Mash Distribute > Select Distribution Type > Initial State
- Animation
- Add a Signal Node (and adjust the position, scale, rotation)
- Animate the random strength from 1 (max) at the start, and 0 at a later frame
- Add a spring node and adjust damping
- Add a Signal Node (and adjust the position, scale, rotation)
- Audio Node
- Set the number of animation frames to match the audio file length
- Create a simple object (e.g. cube) and create a MASH network
- Distribute node > grid with one row (e.g. distance 40,1,1 and gridXYZ 30,1,1)
- Add Audio node, and select position y as the animated property
- Drag or select an audio filename into the Audio Node > Filename
- Also import same audio file to scene and set timeline to play realtime (not every frame)
- Add a spring node to smooth out movement
- Add a color node (and set the color to a hue, saturation 1, value 0.6)
- Confirm output attribute > color per vertex is checked
- Assign a ramp (white at left, black at right) to strength map
- Set map projection axis to X
- References
- Pagano (2016) Maya Motion Graphics Workflow with MASH, Pluralsight
XII. Management: Scripts
- Precautions
- Quotes are back-ticks ( ` ) and not single quotes ( ' )
- Center World
- $obj=`ls -sl`;
- move -rpr 0 0 0 $obj;
XIII. Management: Export
- Export for Unity
- In Maya, use Blinn Shaders for exported models
- Maya units default to cm and Unity to meters
- Model may appear absent on unity import
- In project assets select object and in inspector > model scale factor = 100 (uncheck convert units)
XIV. Management: Medical Model Recipes
- Backdrop (cylcorama)
- Plane with enough resolution (e.g. 100x100)
- Bend modifier to curve upwards (deform > nonlinear > Bend)
- Cells
- Create a simple poly cube object without divisions
- Mesh > Smooth (2 divisions for simple cell surface, 4 divisions for complex cell surface)
- Object attributes, Mesh Smooth, check Mesh Smooth Preview
- Cell with rough surface
- Create cell as above
- Select all vertices (F7, drag select all)
- Shift-RMB > Transform Object (set random = 1)
- Move tool (W) - drag vertices small distance
XV. Resources
- Medical Animation with Maya (Emily Holden, Lynda.com)
- SciArtNow (Annie Campbell, Emily Holden, et. al.)
XVI. References
- Introducing Autodesk Maya 2016 (Dariush Derakhshani)