3DCGbook

映像プロダクションに所属しています。主に毎日のアウトプットを配信していこうと思います。

再帰:ポーズのコピーとペースト

いろいろ資料を参考にして、
ポーズのコピーとペーストを作ってみた。

正直、再帰って難しいです。
ここで使うんだ!というのが僕には上手く理解できません…(^^;

木になっているものはガンガン再帰使った方がいいのかなぁ。
と、ちょっとスクリプトを書く際にも考え方を変えてみようと思いました。

import pymel.core as pm

rootNodes = pm.selected(typ='transform')

def getHiearchyAttr(rootNodes,data):
    for node in rootNodes:
        keyableAttrs = node.listAttr(keyable=True)
        for attr in keyableAttrs:
            data.append([attr,attr.get()])
        children = node.getChildren()
        if children is not None: getHiearchyAttr(children, data)
    return data     
data = getHiearchyAttr(rootNodes, [])

def setHiearchyAttr(data):
    for i in data:
        i[0].set(i[1])
setHiearchyAttr(data)

リーダブルコードの教えより、
見てわかりやすいコードを意識してみましたが…

どうでしょう(^^;