キーフレームアニメーション

キーフレームアニメーションの手順

Python によってキーフレームアニメーションを実行する場合は、以下の手順で作ってゆきます。

  1. maya.cmds.currentTime() で現在の時間を設定します。
  2. ノードのアトリビュートを変更します。
  3. maya.cmds.setKeyframe() でキーフレームを設定します。
  4. 上の1から3を必要なフレーム数だけ繰り返します。

キーフレームアニメーションはキーを設定可能なアトリビュートにのみ有効です。
例えば、トランスフォームノードではデフォールトで 移動 X, 移動 Y, 移動 Z, 回転 X, 回転 Y, 回転 Z, スケール X, スケール Y, スケール Z, 可視性 などがキーを設定可能になっています。
もし、デフォールトでキーを設定できないアトリビュートにキーフレームアニメーションをつけるときは、以下のコマンドによってキーを設定可能にします。
maya.cmds.setAttr(ノード名.アトリビュート名, k=True)

GUIでは ウインドウ → 一般エディタ → チャンネル コントロール によって行ないます。

Tips

キーを設定可能なアトリビュートのリストを調べるためには、以下のコマンドを使用します。

maya.cmds.listAttr(ノード名, k=True)

アニメーションの例

キーフレームを設定して、球体を円状にアニメーションさせる Python スクリプトを作ってみましょう。

  1. 以下の MEL スクリプトを Python スクリプトに書き直して、 circleAnimation1.py という名前で保存します。
    global proc circleAnimation1(float $rad, int $frame)
    {
    	int $i;
    	float $r = 0.0;
    	string $name[];
    
    	$name = `sphere`;
    	setAttr ($name[0] + ".tx") $rad;
    	setAttr ($name[0] + ".rotatePivotX") (-$rad);
    	for($i = 0; $i < $frame;  $i++)
    	{
    		currentTime $i;
    		setAttr ($name[0] + ".ry") $r;
    		setKeyframe -at "ry" $name[0];
    		$r += 10.0;
    	}
    }
    
  2. スクリプト エディタ の ファイル → スクリプトのロード によって circleAnimation1.py を読み込んで、テンキーの Enter キーなどで実行します。
  3. スクリプト エディタ のインプットウインドウに circleAnimation1(5, 100) と打ち込んで実行します。
  4. 半径 5 の円上を球が動いてゆく 100 フレーム分のキーフレームアニメーションが作られます。
    circleAnimation(5, 100)の実行結果

練習

まとめ

参考


Prev | Next
Home | Contents
Mail