//# //#

2014/04/19

【Maya】sceneTimeWrapをベイクする

いつからかMayaにはscene上のすべてのアニメーションをタイムリマップをかけることが出来る機能があり、
標準機能ではベイク出来ないというクソ仕様で、以下のscriptを使えばベイクできるそうです。

http://www.toadstorm.com/blog/?p=206

使い方はダウンロードしたscriptをMayaバージョン直下のscriptフォルダなどに保存。
Maya起動後以下のscriptをPythonで実行します。

import hfBakeTimewarp as hfBT
hfBT.bakeTimeWarp(objects=['object1','object2'],start=1,end=10,killWarp=1)

objects=['object1','object2'],start=1,end=10 の部分を自分で書き換えて実行します。
['object1','object2'],にベイクしたいオブジェクト名を
start=1,end=10 にベイクしたいタイムレンジを入力して実行すれば、ベイクされます。

import hfBakeTimewarp as hfBT
objects = cmds.ls(sl=1)
start = cmds.playbackOptions(q=1,min=1)
end = cmds.playbackOptions(q=1,max=1)
hfBT.bakeTimeWarp(objects,start,end,killWarp=1)

リンク先のTESTと同様ですが上記のようにかくと、
選択したオブジェクトを現在のタイムスライダの範囲でベイクします。

ちなみにTransformノードしかベイク出来ないようなので、shapeノードなどのアニメーションをベイクしたい場合、ロケータなどに数値を移動させてベイクする必要があります。


参考サイト
http://d.hatena.ne.jp/J_tashi/20120912/1347468356