Go to: Synopsis. Return value. Keywords. Related. Flags. Python examples.

Synopsis

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.

Return value

stringname of shapes that were baked

In query mode, return type is based on queried flag.

Keywords

deformers, history, bake

Related

listHistory, skinCluster

Flags

allShapes, postSmooth, preCache, preDeformers, prePostDeformers
Long name (short name) Argument types Properties
allShapes(all) boolean createquery
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 createquery
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 createquery
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 createquery
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 createquery
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.

Python examples

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 )