MEL ノードのアトリビュートを全てコピーする

2016/07/08
MEL 
(この記事の文字数: 705)

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");


  このエントリーをはてなブックマークに追加  

<<「デジタルコンテンツ制作」の記事一覧に戻る

コメント(0 件)


関連記事