Maya でノードコネクションはそのままにしておいて、コネクションのないアトリビュートは別のノードのアトリビュート値を全部コピーしたい、というときがよくあったので、特定のノードのアトリビュートを同じ種類の別のノードにすべてコピーする MEL スクリプトを作っておきました。大したものではないですが、貼っておきます。
global proc copyAllAttributes(string $sourceNode, string $destNode)
{
if (`nodeType $sourceNode` != `nodeType $destNode`)
{
error("Node type mismatch between " + $sourceNode + " and " + $destNode + ".\n");
return;
}
string $attrs[] = `listAttr -scalar -multi -keyable -visible -unlocked -connectable $sourceNode`;
for ($attr in $attrs)
{
string $destAttr = $destNode + "." + $attr;
string $connections[] = `listConnections $destAttr`;
if (size($connections) > 0)
{
continue;
}
print("Copying " + $destAttr + "\n");
setAttr $destAttr `getAttr ($sourceNode + "." + $attr)`;
}
}
使用例
copyAllAttributes("nParticleShape1", "nParticleShape2");