フリースクリプトを探せば普通にありそうですが、あるノードとそれ以下の階層のノードのキーを、同じ階層構造を持つ別のノードに名前引きでキーフレームをコピーする MEL スクリプトを作成したので貼っておきます。
同じ階層のコントローラを持つリグ同士でアニメーションをコピーするときに一発でコピーできます。
おじいちゃんとおばあちゃんのモデルを作ったので、アニメーションをリグ間で簡単にコピーできるように作成しました。
global proc CopyKeysByName(string $copySource, string $copyDestination)
{
int $keyCount = `keyframe -q -keyframeCount $copySource`;
if ($keyCount > 0)
{
copyKey -time ":" -float ":" {$copySource};
pasteKey -option merge {$copyDestination};
}
string $sourceChildren[] = `listRelatives -children $copySource`;
string $destChildren[] = `listRelatives -children $copyDestination`;
for ($sourceChild in $sourceChildren)
{
string $splited[];
int $numTokens = `tokenize $sourceChild ":" $splited`;
string $sourceName = $splited[$numTokens - 1];
for ($destChild in $destChildren)
{
int $numTokens = `tokenize $destChild ":" $splited`;
string $destName = $splited[$numTokens - 1];
if ($sourceName == $destName)
{
CopyKeysByName($sourceChild, $destChild);
break;
}
}
}
}
使用例
string $selections[] = `ls -sl`;
string $copySource = $selections[0];
string $copyDestination = $selections[1];
CopyKeysByName($copySource, $copyDestination);