Blender Skeleton (Armature) Mirroring

Software:
Blender 2.8

To mirror a skeleton (Armature) in Blender:

  1. Create bones for one side of the rig and name them with “.L” for Left or “.R” for right.
  2. Select all the bones on that side.
  3. In Armature Edit Mode choose:
    Armature > Symmetrize

Blender will create mirrored copies of all the bones with respect to the Armature origin and flip their names to names ending with the opposite side.

  • When editing properly symmetrized bones,
    The X-Axis Mirror tool option will simultaneously update both sides of the Armature to maintain symmetry.

Untitled-1

 

Untitled-3.jpg

Untitled-4

 

Advertisements

3ds max – Use the Particle-Flow Lock/Bond test to have particles move on a surface in

Software:
3ds max 2019

The Lock/Bond Particle Flow test can be used to have particle movement restricted to a surface.

lock_bond.gif

This example shows a simple setup in which the particle teapots have a Speed operator set to Random 3D mode that causes them to move in random directions,
While at the same time the Lock/Bond test forces them to ‘stick’ to the surface:

Untitled-1

 

Python for 3ds max – Animated Mesh

Software:
3ds max 2019

This is an example of procedurally animating a mesh’s vertices via Python script.

Vert_Anim.gif

Notes:
1. The model has to be converted to Editable Mesh before the script is run.
* unless the scrip will be extended to do it.
2. The model must be selected for the script to work.

import MaxPlus
import math
from MaxPlus import INode
from MaxPlus import TriObject
from MaxPlus import SelectionManager
from MaxPlus import Factory
from MaxPlus import Animation
from MaxPlus import Point3
from MaxPlus import Control

ticks_frame = 160

#Selection
sel = []
for n in SelectionManager.Nodes:
    sel.append(n)
node = sel[0]

#Setup Controllers
obj = node.GetObject()
Tri = TriObject._CastFrom(obj)
mesh = Tri.GetMesh()
num_verts = mesh.GetNumVertices()
mesh_anim = obj.GetSubAnim(0)
pnt_ctrl = Factory.CreateDefaultMasterPointController()
node.AssignController(pnt_ctrl,1)
for i in range(num_verts):
    bezp3 = Factory.CreateDefaultPoint3Controller()
    bezp3.SetPoint3Value(mesh.GetVertex(i))
    mesh_anim.AssignController(bezp3,i)

#Animation
Animation.SetAnimateButtonState(True)
for t in range(100):
    time = t * ticks_frame
    Animation.SetTime(time)
    mesh_anim.AddNewKey(time,0)
    for i in range(num_verts):
        vert_anim = mesh_anim.GetSubAnim(i)
        vert_ctrl = Control._CastFrom(vert_anim)
        vert_val = mesh.GetVertex(i)
        vert_val.SetZ(vert_val.GetZ() + math.sin(((Animation.GetTime()*0.5)/(ticks_frame))+i))
        vert_ctrl.SetPoint3Value(vert_val)
Animation.SetAnimateButtonState(False)

* note that when copying and pasting a script from this example, the indentation may not be pasted correctly.

Related:
Python for 3ds max – Mesh manipulation

DJV Player

Software:
DJV View 1.2.3

A highly effective and useful open source frame sequence player, indispensable in an animation studio.

DJV allows smooth cached playback of float EXR file sequences (and many other formats) at a variaty of frame-rates, image / pixel diagnostic tools, view EXR layers, quick mp4 export, and more.

Download DJV here:
http://djv.sourceforge.net/

Untitled-1

Blender – Bake NLA animation

Software:
Blender 2.79

When you wish to bake your NLA animation mix into one Action,
The Bake option in the Animation tab will not work.
The way to do this is to:

  1. Select the object in Object Mode.
  2. Press Space and type ‘bake
  3. Choose Nla: Bake Action
  4. In the Bake dialog, select Pose, deselect Only Selected, and press OK.
  5. After the process, the Armature will have a new action that is the baked animation.

Untitled-2

Untitled-3

Blender – Bake rigid body physics to Keyframes

Software:
Blender 2.79

  • I always forget this, try to do it through the regular animation baking option and get frustrated that it doesn’t work…

When you want to bake an object’s rigid body physics simulation to regular Keyframes:

  1. Select the wanted objects.
  2. In the 3D View Tools pane, In The Physics Tab, Press the Bake To Keyframes button.

Untitled-1

Maya Python scripting – Iterate through the timeline frames

Software:
Maya 2018

The following Python script iterates though Maya’s timeline frames, and for each frame creates a new cube, and aligns it’s position to the selected animated locator.

* There is probably a nicer way to set one object’s position according to anothers but haven’t found it yet (not finding enough examples of the cmds.xform command…) so sorry for that..

import maya.cmds as cmds

selection = cmds.ls(sl=1,sn=True)
for frame in range(1,80):
    cmds.currentTime(frame)
    newCube = cmds.ls (cmds.polyCube( sx=1, sy=1, sz=1), long=True)
    posX = cmds.getAttr(selection[0]+'.translateX')
    posY = cmds.getAttr(selection[0]+'.translateY')
    posZ = cmds.getAttr(selection[0]+'.translateZ')
    cmds.setAttr(newCube[0]+'.translateX',posX)
    cmds.setAttr(newCube[0]+'.translateY',posY)
    cmds.setAttr(newCube[0]+'.translateZ',posZ)

maya_python_frames