3

モーショングラフィックスの人たちは、MELスクリプトを書くのに苦労しています(彼らの誰もがプログラマーではないため)。試してみましたが、変数や構文などがわからないので大変です。

基本的に、スケール値が0.001以下のdagObjectsのキーフレームを選択してから、スケール値を0に変更します。

すべてのdagObjectを配列に割り当ててから、配列を反復処理しようとしましたが、その後失われました。

また、これが代わりにPythonで実行できる場合は、それで問題ありません。

4

1 に答える 1

2

こんにちは、dagObjectsがどのような形式であるかを知っておくと便利です。これが簡単なPythonスクリプトです。

from maya import cmds
import math

dags = ['obj']
attrs = ['sx', 'sy', 'sz']
tol = 0.001

for dag in dags:
    frames = [frame for frame in cmds.keyframe(dag, q=1)]
    for frame in frames:
        attrib_vals = [cmds.getAttr(dag+'.'+attr, time=frame) for attr in attrs]
        length = math.sqrt(sum(attr_val * attr_val for attr_val in attrib_vals))
        if length < tol:
            cmds.setKeyframe(dag, at=attrs, t=[frame], v=0)
于 2012-07-17T15:54:11.103 に答える