Go to: Synopsis. Return value. Keywords. Related. Flags. Python examples.
bakePartialHistory([allShapes=boolean], [postSmooth=boolean], [preCache=boolean], [preDeformers=boolean], [prePostDeformers=boolean])
Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.
bakePartialHistory is undoable, queryable, and editable.
This command is used to bake sections of the construction history of a shape node
when possible. A typical usage would be on a shape that has both modelling operations
and deformers in its history. Using this command with the -prePostDeformers flag will
bake the modeling portions of the graph, so that only the deformers remain.
Note that not all modeling operations can be baked such that they create exactly the
same effect after baking. For example, imagine the history contains a skinning operation
followed by a smooth. Before baking, the smooth operation is performed each time
the skin deforms, so it will smooth differently depending on the output of the skin.
When the smooth operation is baked into the skinning, the skin will be reweighted
based on the smooth points to attempt to approximate the original behavior. However,
the skin node does not perform the smooth operation, it merely performs skinning with
the newly calculated weights and the result will not be identical to before the bake.
In general, modeling operations that occur before deformers can be baked precisely.
Those which occur after can only be approximated. The -pre and -post flags allow you
to control whether only the operations before or after the deformers are baked.
When the command is used on an object with no deformers, the entire history
will be deleted.
string | name of shapes that were baked |
In query mode, return type is based on queried flag.
deformers, history, bake
listHistory, skinCluster
allShapes, postSmooth, preCache, preDeformers, prePostDeformers
Long name (short name) |
Argument types |
Properties |
allShapes(all)
|
boolean
|
|
|
Specifies that the bake operation should be performed on all shapes in the entire scene. By default, only selected objects are baked.
If this option is specified and there are no shapes in the scene, then this command will do nothing and end successfully.
|
|
postSmooth(nps)
|
boolean
|
|
|
Specifies whether or not a smoothing operation should be done on skin vertices. This
smoothing is only done on vertices that are found to deviate largely from other
vertex values. The default is false.
|
|
preCache(pc)
|
boolean
|
|
|
Specifies baking of any history operations that occur before the caching operation, including deformers. In query mode, returns a list of the nodes that will be baked.
|
|
preDeformers(pre)
|
boolean
|
|
|
Specifies baking of any modeling operations in the history that occur before the deformers. In query mode, returns a list of the nodes that will be baked.
|
|
prePostDeformers(ppt)
|
boolean
|
|
|
Specifies baking of all modeling operations in the history whether they are before or after the deformers in the history. If neither the -prePostDeformers nor the -preDeformers flag is specified, prePostDeformers will be used as the default. In query mode, returns a list of the nodes that will be baked.
|
|
Flag can appear in Create mode of command
|
Flag can appear in Edit mode of command
|
Flag can appear in Query mode of command
|
Flag can have multiple arguments, passed either as a tuple or a list.
|
import maya.cmds as cmds
# create a cylinder with history to use as an example
#
cyl = cmds.polyCylinder()
cmds.polySmooth()
cmds.cluster()
cmds.select( cyl[0],r=True )
cmds.polyTriangulate()
# query what will be baked
#
cmds.bakePartialHistory( cyl[0],query=True,prePostDeformers=True )
# perform the bake, baking history from before and after the
# deformer
#
cmds.bakePartialHistory( cyl[0],prePostDeformers=True )
# Bake the history before the geometry cache on the cylinder.
# To actually demo, add a geometry cache before executing the command
# below.
#
cmds.select( cyl[0],r=True )
cmds.bakePartialHistory( cyl[0],preCache=True )