II. Precautions: Non-Medical

  1. Not for Medical Care
  2. The author uses several software packages and programming languages to develop FPnotebook content
  3. For convenience, a dozen pages in FPNotebook are dedicated to quick notes on content creation

III. Technique: Viewport Navigation

  1. Mouse
    1. Alt-LMB: Tumble
      1. Rotate viewport around the selected object (in perspective view)
    2. Alt-MMB: Track
      1. Pan the viewport left, right, up and down
    3. Alt-RMB: Dolly
      1. Zoom in and out of viewport
      2. MMB scroll will also zoom, but with larger increments
  2. Frame Objects
    1. A
      1. Frame all objects in active panel (or shift-A to affect all panels)
    2. F
      1. Frame selected object in active panel (or shift-F to affect all panels)
  3. Marking Menus
    1. Space Bar (single press)
      1. Toggle between single view and multi-view
    2. Space Bar (hold)
      1. All Menu Items displayed in screen overlay
      2. Click and hold to open a sub-menu
      3. Click and hold the central "Maya" button to change view
    3. RMB (click and hold)
      1. Context sensitive selected object related options (including sub-object selection)
    4. Shift-RMB (click and hold)
      1. Context sensitive manipulation tools for the selected object (e.g. mesh tools)
      2. Object creation menu, If no object is selected
    5. Ctrl-Shift-RMB
      1. Change orientation axis (Object or World) and Symmetry options
      2. Axis and Symmetry may also be changed from the modeling toolkit
  4. Property Windows
    1. Ctrl-A
      1. Toggle between Channel Box/Layer Window and Attribute Windows
  5. Display > Grid
    1. Typically set units to cm in preferences and design/build 1:1 with real dimensions
      1. Exception: Very large or microscopic scenes
      2. For buildings, set in meters
    2. Engineering Set-up (marks at 1 unit and 10 unit)
      1. Length and Width: 50 units
      2. Grid Line Every: 10 units
      3. Subdivisions: 10
      4. Consider changing grid lines color to black and subdivision color to dark gray
      5. Orthographic grid numbers: Align Edge

IV. Technique: Object Selection and Manipulation

  1. Object and Component Selection
    1. LMB
      1. Selects object
    2. Ctrl-LMB
      1. Deselects object
    3. Shift-LMB
      1. Adds object to selection
    4. Shift-LMB and Drag
      1. Clones object
  2. Component (Vertex, Edge, Face) Selection
    1. Shift-Double-Click (nothing selected before)
      1. Selects all components in the object
    2. Shift-Double-Click (adjacent component already selected)
      1. Selects an edge, vertex or face loop
    3. Shift-Double-Click (non-adjacent component already selected)
      1. Selects components between the two selected components
    4. Shift >
      1. Expand Selection
    5. Shift <
      1. Contract Selection
  3. Tools
    1. Q
      1. Select Tool
    2. W
      1. Move Tool
    3. E
      1. Rotate Tool
      2. Hold down j-key when rotating object to constrain angle
    4. R
      1. Scale Tool
      2. Hold down Ctrl key while clicking an axis arrow, to scale in then other two, unselected, axes
    5. Other modifiers and pearls
      1. Arrow Axis Colors (Move, Rotate, Scale)
        1. Red, Green, Blue (RGB) = X, Y, Z
      2. Manipulator Size (use +/- keys to increase or decrease)
      3. Use with snapping keys (C, X, V) to constrain
      4. Ctrl-MMB moves selected vertices along their normals
      5. Set the Selection Constraints (Modeling Toolkit Window) to Angle = 1 degree
        1. Allows for selecting planar surfaces (face selection)
      6. Double click the tool in the left tool bar to open property window (e.g. reset and modify behavior)
        1. Alternatively, Hold down the Tool Shortcut Key (e.g. W) and LMB for marking menu options
        2. Axis orientation may be changed from object to world, normal...
        3. Vertices may be moved while constrained to surface (transform constraint, esp. with tweak mode)
          1. Analogous to creating objects or components on a live surface
        4. Tweak mode allows for single click selection and moving of components
        5. Step snap allows for movement in increments
        6. Preserve UVs allows for model minor modifications while simultaneously updating the UVs
  4. Object and component selection
    1. F8
      1. Switch to and from object mode
    2. F9
      1. Select Vertex (or alt-F9 to select vertex face)
    3. F10
      1. Select Edge
    4. F11
      1. Select Face
    5. F12
      1. Select UV
    6. Other modifiers
      1. Switch between component selection types (vertex, edge, face) also with modeling toolkit, marking menu
      2. Change selection to other sub-component type (e.g. selected face to selected vertices)
        1. Ctrl-Click the sub-component type in the modeling toolkit
      3. Backface Culling (polygon menu)
        1. Turn off to select only the front faces
  5. Snapping (hold down with manipulation tools to constrain movement)
    1. C
      1. Snap to curves
    2. X
      1. Snap to grids
    3. V
      1. Snap to points
    4. J
      1. Incremental snapping (move, rotate, scale)
    5. D
      1. Toggle on and off object's pivot point manipulator
      2. May combine with snapping keys (C, X, V) to constrain
  6. Miscellaneous
    1. Ctrl-1
      1. Isolate selection
    2. Ctrl-T
      1. Show transformation control (e.g. bend modifier)
    3. B
      1. Toggle on and off soft selection
    4. B+MMB
      1. Move the mouse left or right to decrease or increase the brush size
    5. Measure Tools
      1. Menu "Create > Measure" (e.g. distance, angle) will place locators and calculate measurements between points

V. Technique: Organization and Hierarchy

  1. Organization and Hierarchy: Keyboard Shortcuts
    1. Ctrl-G
      1. Group selected objects
    2. P
      1. Parent selected objects under the last selected object
    3. Shift-P
      1. Unparent selected objects
    4. Ctrl-H
      1. Hide selection
    5. Shift-H
      1. Show Hidden Selection (when selected in outliner)
  2. Organization and Hierarchy: Outliner
    1. MMB
      1. In outliner, MMB click and drag objects in and out of groups
    2. Shift-Click
      1. Select all objects between 2 clicks
    3. Ctrl-Click
      1. Add or subtract object from selection

VI. Technique: Object Editing

  1. Object Editing: Keyboard Shortcuts
    1. Ctrl-D
      1. Duplicate selected object(s)
    2. Shift-D
      1. Duplicate and Tranform selected object (by same amount as prior duplication was manipulated)
    3. Duplicate Special (edit menu > duplicate special option box)
      1. Allows for duplication of objects AND their history (check "input graph")
    4. G
      1. Repeat last operation
    5. Ctrl-E
      1. Extrude
  2. Object Editing: Modeling Toolkit
    1. Multi-cut Tool
      1. Do not forget to turn the tool off
      2. Ctrl + Multi-Cut Tool
        1. Insert Edge Loop
      3. MMB + Multi-Cut Tool
        1. Place cut midway between adjacent vertices
      4. Ctrl + MMB + Multi-Cut Tool
        1. Place edge midway between adjacent vertices
    2. Other modifiers
      1. For any selected modeling tool, a tool property window opens at bottom of the modeling toolkit
  3. Smoothing and Harder Edges
    1. Bevel Tool (Modeling Toolkit)
      1. Select edges and click to create a beveled edge
    2. Insert edge loop (or Ctrl + Multi-cut Tool)
      1. Reinforces an edge (avoids smoothing an curvature at the site of the edge)
    3. Crease Tool (polygon tool)
      1. Select an edge or vertices and apply crease tool create a harder edge
    4. Harden Edge (mesh display menu) or Soften Edge
      1. Sets the normals to give a harder edge (or softer edge)
      2. Unlock normals first (otherwise will not work)
  4. Normals
    1. Reverse
      1. Flips the normals to face the opposite direction (facing outside or inside)
    2. Conform
      1. Corrects isolated faces that are facing opposite that of most other faces on the same surface
  5. Curves
    1. CV Curve Tool
      1. Among the easiest tools to lay down curve points
    2. Rebuild Curves
      1. Reset options, and select Curvature (will evenly space control points, while still maintaining curve)
  6. Surfaces
    1. Revolve
      1. Will revolve selected curve around pivot point in specified axis (Y is default)
      2. Good quality polygon output setting: Polygon, quads, General, per-span (adjust U and V numbers)
      3. When output to nurbs, allows for animating the sweep angle attributes
      4. Partial output selection allows for animating what part of the curve is included in the revolve
  7. Component pearls
    1. Add Subdivisions
      1. Increase subdivisions for sculpting, randomize vertices (but does increase polycount/size)
      2. Increase using the shape node soon after creating basic polygon (avoid this method after deformations)
      3. Increase with "insert edge loop tool" which can add multiple evenly spaced divisions
        1. Keep the polygons as squares (instead of irregular rectangles)
        2. Adjust the number of edge loops using the attribute window even after creation
    2. Align vertices
      1. Select vertices and use the scale tool (in the desired axis) to align with one another
    3. Scaling selected components on multiple objects at same time
      1. Ctrl-MMB drag and each object's components are scaled independently
    4. Randomize vertices (Transform Tool)
      1. Select vertices, choose menu option "Edit Mesh > Transform Tool" and move the vertices
      2. In the tool options box, attribute window or channel box, increase the random attribute from 0
    5. Techniques to make areas of the mesh unique
      1. Select a group of vertices, shift-RMB > Average Vertices (modify iterations as needed)
  8. Booleans
    1. Two workflows to avoid messy geometry
      1. Add topology before boolean and each object has similar/aligned subdivisions OR
      2. Boolean objects and the then remesh and retopologize (much simpler)
    2. Boolean with Remesh/Retopologize
      1. Create the objects with booleans
        1. Select main object to be acted upon
        2. Shift Select object to cutaway (difference) or union
        3. Mesh > Booleans > Difference (or union or intersection)
        4. Repeat boolean operations as needed
        5. Delete History
      2. Recreate the geometry
        1. Mesh > Remesh (or on Poly modeling shelf)
          1. Creates triangles
          2. Increase collapse threshold to reduce geometry yet maintain shape
        2. Mesh > Retopologize (or on Poly modeling shelf)
          1. Create quads
          2. Reduce target face count yet maintain shape
        3. Mesh > Reduce (or on poly modeling shelf)
          1. Adjust percentage (default is 50%, which is typically adequate)

VII. Technique: Viewport and Object Appearance

  1. Selected Object Smoothing
    1. 1
      1. Non-smoothed object display
    2. 2
      1. Smoothed with edges displayed
    3. 3
      1. Smoothed without edges
  2. Viewport Display
    1. 4
      1. Wireframe (unshaded)
    2. 5
      1. Shaded Display
    3. 6
      1. Shaded Display with texture maps
    4. 7
      1. Shaded, texture maps, and all lighting (no default lighting)
  3. Mesh Display - Object smoothing
    1. Modifies the model (unlike the viewport only changes), but does not increase geometry
    2. Menu: Mesh Display - Smooth Edges

VIII. Management: Customizing Shortcut Keys

  1. Ctrl-3
    1. Outliner Window
  2. Ctrl \
    1. Delete History
  3. Ctrl /
    1. Freeze Transformations
  4. Alt-X
    1. XRay display of selected objects
  5. Ctrl-Alt-X
    1. XRay display of entire scene
  6. Ctrl-0
    1. Align pivot to object center
  7. Ctrl-Alt 0
    1. Align pivot to world origin

IX. Management: Rendering Arnold

  1. Arnold GPU Rendering (beta)
    1. GPU rendering is much faster (up to 10 fold)
    2. Start by Pre-populating GPU Cache
      1. Arnold > Utilities > Prepopulate GPU Cache
    3. Modify Render Settings
      1. System Tab
        1. GPU Settings - Render Device: GPU
        2. Render Settings
          1. Auto-Detect Threads: Off
          2. Threads: -2
            1. With -2, Renderer will use all but 2 threads (cores)
            2. Could set number of threads to use with a positive integer
      2. Arnold Renderer Tab
        1. Faster rendering on GPU allows for increasing sampling and rays for higher quality rendering
    4. Render Window
      1. May need to resize window to eliminate artifacts
      2. Arnold Renderer Viewport Options
        1. Render >Save UI Threads > 2

X. Management: Rigging, Skinning and Animation

  1. Start with humanoid, symmetric model
    1. Scale model to the size of cube with height in cm (man 175 cm, woman 165 cm)
    2. Delete by type history
    3. Freeze transformations
  2. Skeleton > Quick Rig > Step-by-step
    1. Geometry
      1. Select all model geometry and click add (+) button
    2. Guides
      1. Polygon Soup
      2. Resolution 256
      3. Create/Update Guides
    3. User Adjustment of guides
      1. Move the guides (using front and side views) to correspond to joints
        1. Position one side (e.g. left) Shoulder, elbow and wrist and click the mirror to right button
        2. Position one side (e.g. left) hip, knee and anke, foot and click the mirror to right button
        3. Position the four thoracic and Lumbosacral Spine guides
        4. Position the cervical neck, clavicle and head guides
    4. Skeleton and Rig Creation
      1. Skeleton and Rig Generation Defaults (T-Stance, Mirrored, skeleton and control rig)
      2. Click Create/Update
  3. Skinning
    1. Alternatives to skinning
      1. Parenting geometry to skeleton
      2. Setting geometry constraints to skeleton
    2. Increase Joint Size (Display > Animation > Joint Size)
    3. Combine Object geometry in preparation for skinning
      1. Select all model geometry
      2. In Modeling Setup, select Mesh > Combine
      3. Delete History by Type
    4. Bind Skin
      1. Select skeleton and model
      2. Click bind button in quick-rig dialog or in Rigging Setup, Skin > Bind Skin OPTIONS
        1. Joint Hierarchy
        2. Bind Method: Geodesic Voxel
        3. Skinning: Classic Linear
        4. Normalize Weights: Interactive
        5. Max Influences: 2
    5. Paint weights
      1. Right Click in viewport, Paint > SkinCluster > Paint Weights (object will appear black)
      2. Open the tool settings (right sided dialog)
        1. Display > Show Wireframe > Off
        2. Hide Skeleton to avoid selecting joints
      3. Select a joint (e.g. hand)
        1. Select Mode Approach (preferred)
          1. Change mode to selection
          2. Select vertices in orthographic view (top, front or side)
          3. Grow selection (>) to select entire influenced region
          4. Change mode back to paint and click the "flood" button
            1. Alternatively, Windows > General > Component Editor
            2. Click Smooth Skins
            3. Select the column of weights that reflects the selected vertices
            4. Set the column to desired weight (0 to 1)
        2. Paint Mode Approach (alternative)
          1. Set Weight type: skin weights and value: 1
          2. Paint operation: replace or add
          3. Paint areas distal to the joint white to indicate influence of that joint
        3. Skin > Mirror Skin Weights > options
          1. Default settings typically work for left to right body (YZ, positive to negative)
  4. Applying Motion Capture
    1. In Human IK window, select Character: None
      1. Import Sample or Motion Capture (e.g. from Rokoko Motion Library Window in Maya)
      2. Choose the character again
      3. Assign Source: Motion Capture Animation
      4. Right Click top left icon and choose Bake > Bake to Rig > Options
        1. Select all the joints in the Human IK Control (controls will outline in blue)
        2. Check Selected, All keyable and uncheck shapes, channels, control points
    2. Walk Cycle (e.g. 32 frames total)
      1. Contact Pose (frame 1 and 32)
        1. Select the ankle
        2. One ankle translated in front (e.g. left) and one in back (e.g. right) and set key frames
        3. Adjust the foot bend against the ground
        4. Rotate the hip (e.g. 10 degrees in X-Axis) so that the hip is rotated toward the front leg
        5. First frame and last frame should be the same (copy position from first to last)
      2. Opposite Pose (frame 17)
        1. Copy the left ankle (frame 1) to the right ankle (frame 17), repositioning the X-translate and set a key
        2. Repeat for the right ankle (frame 1) to the left ankle (frame 17)
        3. Rotate the hip the other direction (e.g. -10 degrees in X-Axis)
      3. Passing Pose (frame 9 and 25)
        1. Front foot translate Z curve should be a linear tangent
        2. Front foot (e.g. left) should be planted on ground with foot flat at frame 9
        3. Raise Hip to a point that the planted leg is still slightly flexed and set key
  5. References
    1. Bhaumik Patel (2017) Fast Animation and Rigging in Maya 2017, Udemy

XI. Management: MASH (procedural animation)

  1. Basic steps
    1. Create a base object (e.g. cube)
    2. MASH > Create (options)
      1. Choose Mesh to start with
      2. May change later to instance for more complicated, high geometry scenes
    3. Nodes created by default
      1. Waiter node (e.g. MASH1) is the main node to add other nodes
      2. MASH Distribute node (allows for various basic distributions of the object)
    4. Node structure may be viewed in Node Editor Window
  2. Nodes
    1. Random
      1. Randomizes the starting position, rotation, scale for objects
    2. Signal (previously Noise)
      1. Animates random position, scale, rotation changes
      2. May use a falloff object to control when and where the noise node is applied
    3. ID Node (multiple objects)
      1. MMB drag objects from the outliner into the MASH Repro node object list
      2. Add the ID Node in the MASH waiter
      3. Change the ID Node settings (e.g. randomize object selection)
    4. Color Node
      1. Will vary the vertex color for the different objects in the scene
      2. Choose a base color with an HSV value around 0.6
      3. In the random variation selectors choose 0.1 for hue, 0.2 for value or similar low values
      4. Arnold rendering of color
        1. In MASH Repro Mesh, check "export vertex colors"
        2. Assign Arnold Shader, and in Diffuse Color, set to aiUserDataColor node
        3. In aiUserDataColor, set Color Attr Name to "colorSet"
    5. Time Node (animate deformations)
      1. Create an object with enough geometry for deformation (e.g. cylinder with height 10, height segments 10)
      2. Deform > Non-linear > Bend with curvature of 90
      3. Select the animated base object (e.g. cylinder) and MASH > Create MASH Network
      4. Modify the distribution (e.g. grid, well spaced)
      5. Add Time Node
        1. Note, that MASH objects will not play animation until the time node is applied
        2. Set the animation start and end to match the object animation
        3. Set stagger frames (with or without random) OR
        4. Control the animation with falloff object
          1. Set strength mode to Animation Frame
          2. Right click in Falloff Object and "create new"
          3. Modify the scale and animate the position of the falloff object
    6. Delay Node (animate position)
      1. Create a simple base object and create a MASH network
      2. Change the distribute node to linear, with distance 0 for all settings (overlapped objects)
      3. Add a Signal Node to add a small amount of noise to the position
      4. Add Delay node, and right click within "Leader: Target" and choose "Create"
      5. Set Delay Mode to Follow the Leader (default)
      6. Animate the position of the MASH_delay_locator
      7. Adjust the MASH delay settings (time step ave, time variance and offset)
    7. Orient Node (e.g. flying cones)
      1. Create a simple cone and move up in Y so that its base rests on the XZ Plane/Grid
      2. Select the cone and Ctrl-G (to Group) to create a 0,0,0 translation
      3. With the cone containing group selected, create a MASH network
      4. Change the MASH distribute node to have no distance, scale or rotation in any axis
      5. Add a Signal Node for noise (with time scale at 0.1 to 0.2)
      6. Set playback speed to realtime
      7. Add an orient node with mode set to velocity
    8. Curve Node (e.g. square trains following a track)
      1. Create a closed curve (e.g. modified circle)
      2. Create a simple object (e.g. cube)
      3. Create a MASH network
      4. Change the distribution to 20-30 objects, and no distance, scale or rotation in any axis
      5. Add a Signal Node for noise
      6. Add a curve node, and MMB drag the nurbs curve (e.g. circle) into the input curves box
    9. Trails Node (e.g. tadpoles swimming)
      1. Create a simple object (e.g. cube), MASH network, distribute grid (e.g. 4x4x4), signal noise
      2. Set playback speed to "play every frame"
      3. Add trails node
    10. Replicator
      1. Creates multiple instances of a MASH network
  3. Texture Controlled Networks
    1. Create a simple object (e.g. cube), Mash network, distribute grid 8x8
    2. In distribute node
      1. Click strength map and assign either an image or built in pattern (e.g. texture)
        1. Black is hidden
        2. White is fully displayed
      2. Set the strength checkbox for scale, but uncheck position and rotation
      3. Set the Map projection access to Y
      4. Right Click in the MapHelper box and choose create
  4. Text
    1. Create Polygon Type with big, bold font
    2. Type
      1. Geometry settings
        1. Increase Curve Resolution (e.g. 8)
        2. Filter colinear points
      2. Deformable Type
        1. Decrease edge divisions 10
        2. Max edge length 1
        3. Refine threshold 4
      3. Bevel
        1. Enable outer bevel
        2. Bevel distance 0.1
        3. Extrude offset 1
        4. Bevel divisions 3
    3. Select Type
      1. Delete by type > History
      2. Mesh > Separate
      3. Select all type polysurfaces, then modify > center pivot
      4. Select all type polysurfaces, then modify > bake pivot
        1. Moves world space coordinates into the transform attributes
      5. Select each letter polysurface individually, and press Ctrl-G to group each letter in its own group
        1. Maintains its transform, but the containing group has no transform
    4. MASH
      1. Select all type polysurfaces, and MASH > Create Mash Network
      2. Add Mash > Id node
      3. Mash Distribute > Select Distribution Type > Initial State
    5. Animation
      1. Add a Signal Node (and adjust the position, scale, rotation)
        1. Animate the random strength from 1 (max) at the start, and 0 at a later frame
      2. Add a spring node and adjust damping
  5. Audio Node
    1. Set the number of animation frames to match the audio file length
    2. Create a simple object (e.g. cube) and create a MASH network
    3. Distribute node > grid with one row (e.g. distance 40,1,1 and gridXYZ 30,1,1)
    4. Add Audio node, and select position y as the animated property
    5. Drag or select an audio filename into the Audio Node > Filename
    6. Also import same audio file to scene and set timeline to play realtime (not every frame)
    7. Add a spring node to smooth out movement
    8. Add a color node (and set the color to a hue, saturation 1, value 0.6)
      1. Confirm output attribute > color per vertex is checked
      2. Assign a ramp (white at left, black at right) to strength map
      3. Set map projection axis to X
  6. References
    1. Pagano (2016) Maya Motion Graphics Workflow with MASH, Pluralsight

XII. Management: Scripts

  1. Precautions
    1. Quotes are back-ticks ( ` ) and not single quotes ( ' )
  2. Center World
    1. $obj=`ls -sl`;
    2. move -rpr 0 0 0 $obj;

XIII. Management: Export

  1. Export for Unity
    1. In Maya, use Blinn Shaders for exported models
    2. Maya units default to cm and Unity to meters
      1. Model may appear absent on unity import
      2. In project assets select object and in inspector > model scale factor = 100 (uncheck convert units)

XIV. Management: Medical Model Recipes

  1. Backdrop (cylcorama)
    1. Plane with enough resolution (e.g. 100x100)
    2. Bend modifier to curve upwards (deform > nonlinear > Bend)
  2. Cells
    1. Create a simple poly cube object without divisions
    2. Mesh > Smooth (2 divisions for simple cell surface, 4 divisions for complex cell surface)
    3. Object attributes, Mesh Smooth, check Mesh Smooth Preview
  3. Cell with rough surface
    1. Create cell as above
    2. Select all vertices (F7, drag select all)
    3. Shift-RMB > Transform Object (set random = 1)
    4. Move tool (W) - drag vertices small distance

XV. Resources

  1. Medical Animation with Maya (Emily Holden, Lynda.com)
    1. https://www.lynda.com/Maya-tutorials/Maya-Fundamentals-Medical-Animations/704111-2.html
  2. SciArtNow (Annie Campbell, Emily Holden, et. al.)
    1. https://sciartnow.com/illustration

Images: Related links to external sites (from Bing)

Related Studies