[pymel] DrivenKey をExport・Importする

Expression・Attributeに続いて、DrivenKeyをExportするコマンドを作ってみました。
Export祭りもとりあえずこれで最後だと思います(´Д)

DrivenKeyを取得する


DrivenKeyのノードは、 animCurveU* というノードで作成されます。
基本、ノードはアニメーションノードと同様、アクセス方法も同じですが、入力がTimeではなくValueなのが違います。

Exportする

まず、アニメーションノードから情報を取得して、Dic型に入れます。
DrivenとDriverは、ノードの input と output ノードのコネクションから取得。
connections(p=True) で、コネクションされているノード.アトリビュートを取得できます。
DrivenKeyの値は、
Key.getUnitlessInput(index) (Driver側の値)
Key.getValue(index) (Driven側の値)
で取得できます。
numKeys() で、indexの数を調べて、indexの数分値を取得します。

上で取得したDic型をJsonを介してテキストに書き出し。
あるいは、Melコマンド化して書き出し。

Dic→Melは別途コマンドを作成しました。

Importする

JSONファイルを読み込んで、Melコマンド化して、mm.eval() で実行しています。

単純に保存→実行だけなら、Melコマンドとして出力すればいいのですが、Dic型を仲介することで
別ノードに対してコピーとかやりやすくなるかな??という意味を込めてJSONをかませてます。

現状だと、TangentのExport・Importは未対応です。

そんなかんじで、セットアップ用の各種アトリビュートの入出力スクリプトシリーズはこれにて終了になります。
またしばらくOpenMayaでいろいろ遊んでみますよ(´ω)

追記。

逆引きに DrivenKeyの取得方法 を増やしました。

コメントを残す

メールアドレスが公開されることはありません。


*