Object Animation Baker v.1.0

Jan 17, 2012 10:09

Часто для перегона анимированной геометрии из софта в софт, приходится руками запекать ключи на нужных объектах. Лень.

Использование простое: пуляем скрипт на полку, выделяем нужные объекты (именно конечные объекты) и пускаешь скрипт. Всю верхнюю анимацию запечет. Ключи запекает именно в текущем фреймрейндже.


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// Object Animation Baker v.1.0 by Timofey Penkov (C) 2012
/// Make copy and bake all attributes of selected objects. Work in current frame range.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

global proc string bakeObjectAnimation (string $objectName)
{
string $duplicateName[] = `duplicate -n ($objectName + "_baked") $objectName`;
string $baked_object_name = $duplicateName[0];

string $firstParent = firstParentOf($objectName);
print ($firstParent);

if (size ($firstParent) != 0) { parent -world $baked_object_name; };

select $objectName $baked_object_name;

$parentConstraintName = `parentConstraint -mo -weight 1`;

$sf = (`playbackOptions -q -min`);
$ef = (`playbackOptions -q -max`);

bakeResults -t ($sf + ":" + $ef) -sm true $baked_object_name ;

delete $parentConstraintName;

return $baked_object_name;
};

string $selection[] = `ls -sl`;
string $bakedObjectsGroup = `group -em -n ("group_of_" + size ($selection) + "_objects")`;
string $currentObject;
for ($currentObject in $selection)
{
string $bakedObject = bakeObjectAnimation ($currentObject);
parent $bakedObject $bakedObjectsGroup;
};

p.s. Конечно же, это работает и для запекания камер.
Previous post Next post
Up