【Maya tools and scripts】ackAnimTools の使い方|Aaron Koressel MELの現代Maya版【Python】

当ページのリンクには広告が含まれています。
ackAnimationToolsの使い方アイキャッチ画像
  • URLをコピーしました!

Mayaでアニメーションを作る上で便利なスクリプトといえば、Aaron Koressel の MEL スクリプト を取り上げないわけにはいきません。

ただ、あの MEL 群は 2008年ごろを最後に更新されていません。昔からアニメーター御用達ではあるのですが、現行の Maya では入れ方に迷ったり、環境によっては Maya が落ちたり、サイト側のダウンロードで警告が出たり、という声もあります。

そこで、Aaron Koressel さんの MEL のうち 現代 Maya でもまだ使える Graph Editor / ビューポート補助 を、Maya 2025 以降向けに Python(maya.cmds + PySide6)で作り直しました。名前は ackAnimTools です。

有料のアニメーションスイートを使わない人でも、キーの整形・スナップ・整理を手元で素早く行えるようにするのが目的です。無料です。

元の発想は Aaron Koressel さんです。現代 Maya 版の移植と UI は私(inopoa)です。

INDEX

ackAnimTools と元の MEL / animBot

Aaron Koressel の MEL

MEL 版の解説は、以前の記事にまとめてあります。33 個それぞれのコマンドや、当時のおすすめ度はそちらを見てください。

ackAnimTools は、あの 33 個をそっくりそのまま移植したものではありません。

レイヤードアプローチや Graph Editor でのキーやグラフの編集時のスクリプトは、あると便利なものです。ビューポートでのマニピュレータの切り替えや、コントローラー(NURBS Curve)・モデルの表示/非表示などは、よく使うものなので、使いやすいところにワンボタンで置いてあります。これらをタブに分けて 1 つの Window にまとめたものです。

対象は Maya 2025 以降(PySide6)です。動作確認は Maya 2027(Windows / macOS)で行っています。Maya 2024 以前(PySide2)には対応していません。

animBot との関係

以前の MEL 記事でも書きましたが、animBot をすでに使っていて、使いこなしている人には必要ありません。

必要なのは、animBot に課金して使うまでではないと思っている人、スクリプトによってアニメーション作業が効率化するということをまだ理解していない人、仕事などで有料の animBot が使えない環境で、無料でダウンロードできる効率化ツールを使いたい人です。

レイヤードアプローチで使う 3 つ

以前に受けたアニメーションマスタークラスで、Michal Makarewicz さんにレイヤードアプローチを教わりました。そこで使う 3 つが、Aaron Koressel の MEL の中にあります。

ackAnimTools では Edit Keys タブの Layered にまとめています。

  • Negate Keys(旧 ackNegateKeys
  • Push / Pull(旧 ackPushPull
  • Spread / Squeeze Timing(旧 ackSpreadSqueezeTiming

レイヤードアプローチをやりたい人は、まずこの 3 つです。Graph Editor でキーを選んでから押します。


導入

ダウンロード

zip で配布しています。中身は Maya のモジュール形式です(.py を Script Editor に貼るタイプではありません)。

私の BOOTH からダウンロードしてください。

ackAnimTools | Maya Graph Editor 補助ツール

または、私の Gumroad からダウンロードしてください。

ライセンスは元の MEL と同じ Creative Commons Attribution-Noncommercial-Share Alike 3.0(非営利・著作権表示・継承)です。このスクリプトによって生じた損害は保証できません。

zip を解凍すると、だいたい次の構成です。

ackAnimTools.mod
ackAnimTools/
  README.md
  README.ja.md
  LICENSE.txt
  icons/ackAnim.png
  scripts/ackAnimTools/...

英語の README.md と日本語の README.ja.md も zip に入っています。ただし 使い方は本記事に全部書いてあります。 このページを説明書代わりに使ってください。ツール内の説明文は英語です(海外配布時の文字化けを避けるため)。

Mayaモジュールとして入れる

ackAnimTools は、Attribute Connector のときのように .py をスクリプトエディターへ貼る方式ではありません。Maya のモジュール として入れます。

Windows / macOS の Maya 2025 以降で使えます。中身は Maya 付属の Python と PySide6 だけです。動作確認は Maya 2027(Windows / macOS)です。Linux については、この節の末尾に短く書いてあります。

モジュールとは、Maya が起動時に「このフォルダをスクリプトとアイコンの場所として使う」と読み取る仕組みです。一度置けば、バージョンをまたいでも import ackAnimTools が通るようになります。MEL を各バージョンの scripts フォルダにバラで入れるやり方とも違います。

必要な作業は、解凍した中の 2つmodules フォルダへコピーすることだけです。

  1. ackAnimTools.mod(Maya に場所を教える小さなテキスト)
  2. ackAnimTools フォルダ(本体。scripts と icons が入っている)

ackAnimTools.mod の中身は次のような指定です。./ackAnimTools は「この .mod と同じ場所にある ackAnimTools フォルダ」という意味です。

+ ackAnimTools 1.0.0 ./ackAnimTools
scripts: scripts
icons: icons

置き場所

modules フォルダは、Maya のバージョン番号の内側ではなく、maya フォルダの直下 です。ここに置くと、入っている Maya 2025 / 2026 / 2027 から共通で読めます。

  • Windows: C:\Users\ユーザー名\Documents\maya\modules\
  • macOS: ~/Library/Preferences/Autodesk/maya/modules/

modules フォルダが無い場合は、自分で作ってください。

手順(Windows)

  1. zip を解凍する
  2. エクスプローラーで Documents\maya を開く
  3. modules フォルダが無ければ新規作成する
  4. 解凍した ackAnimTools.modackAnimTools フォルダ を、その modules の中へコピーする
  5. Maya を終了して、入れ直す(モジュールは起動時にだけ読みます)

正しい配置はこうなります。

Documents/
  maya/
    modules/
      ackAnimTools.mod          ← 必ずこの階層
      ackAnimTools/
        README.md
        README.ja.md
        LICENSE.txt
        icons/
          ackAnim.png
        scripts/
          ackAnimTools/
            __init__.py
            ...
    2027/                       ← バージョンフォルダ。ここには置かない
      scripts/
      prefs/

置いたあと、スクリプトエディター(Python)で次がエラーなく動けば成功です。

import ackAnimTools
ackAnimTools.show()

手順(macOS)

Mac 版 Maya でも、入れるものは Windows と同じ 2 つです。ackAnimTools.modackAnimTools フォルダです。違うのは置き場所だけです。

  1. zip を解凍する
  2. Finder で Shift + Command + G(移動 > フォルダへ移動)を押す
  3. 次を貼り付けて移動する
~/Library/Preferences/Autodesk/maya/

Library は通常隠れているので、パスを直接入れるのが確実です。

  1. modules フォルダが無ければ新規作成する
  2. 解凍した ackAnimTools.modackAnimTools フォルダ を、その modules の中へコピーする
  3. Maya を終了して、入れ直す

正しい配置はこうなります。

Library/Preferences/Autodesk/maya/
  modules/
    ackAnimTools.mod          ← 必ずこの階層
    ackAnimTools/
      README.md
      README.ja.md
      LICENSE.txt
      icons/
        ackAnim.png
      scripts/
        ackAnimTools/
          ...
  2027/                       ← バージョンフォルダ。ここには置かない
    scripts/
    prefs/

確認用の Python は Windows と同じです。

import ackAnimTools
ackAnimTools.show()

Apple Silicon(M シリーズ)の Maya 2025 以降でも、同じ手順です。Maya に付いている Python / PySide6 を使うため、Homebrew で別途入れる必要はありません。

Mac 版 Maya の英語 UI への切り替えは、次の記事にまとめてあります。

Linux について

Linux 版 Maya は、私の環境では動作確認ができません。同じモジュール形式なので、次で使えるはずです。

  1. ~/maya/modules/ackAnimTools.modackAnimTools フォルダを置く(フォルダが無ければ作る)
  2. Maya を再起動する
  3. スクリプトエディター(Python)で次を実行する
import ackAnimTools
ackAnimTools.show()

Linux 版は動作確認できていません。 動いた/動かなかった、などあれば教えてもらえると助かります。

やりがちな失敗

zip を解凍すると、外側にもう一段フォルダが付くことがあります。その外側フォルダごと modules に入れると、Maya は .mod を見つけられません。

ダメな例:

modules/
  ackAnimTools_配布用/          ← 余分な入れ物
    ackAnimTools.mod
    ackAnimTools/

ackAnimTools.modmodules の直下に見えること。これが目印です。

次も失敗です。

  • ackAnimTools フォルダだけ置いて、.mod を置いていない
  • .mod だけ置いて、フォルダを置いていない
  • scripts の中身だけを maya/2027/scripts にコピーした
  • Maya を再起動していない(コピーしただけではまだ読まれない)
  • Mac で 書類/maya/modules に置いた(Mac の Maya は ~/Library/Preferences/Autodesk/maya/modules/ を見る)

モジュールにすると何が楽か

  • import ackAnimTools のためにパスを足さなくてよい
  • シェルフ用アイコン ackAnim.png も、同じパッケージから Maya が見つけられる
  • バージョンアップしたら、この 2 つを上書きコピーして Maya を再起動すればよい

起動とシェルフ

Maya のスクリプトエディターを開き、Python タブで次を実行します。テンキーの Enter、または Ctrl + Enter です。

import ackAnimTools
ackAnimTools.show()

Window が開きます。最初は Maya から独立した浮いた Window です。

開発中にコードを読み直すときは次です(通常の使用では不要です)。

import ackAnimTools
ackAnimTools.reload_package()

シェルフに登録する場合は、次を一度実行します。何も指定しなければ Custom シェルフに ackAnim ボタンが付きます。

from ackAnimTools.shelf import create_shelf_button
create_shelf_button()

別のシェルフへ入れたいときは、名前を渡します。Animation のような最初からあるタブではなく、自分用のタブを切ると分かりやすいです。私は Attribute Connector とまとめて、Inopoa シェルフに入れています。

シェルフにアイコンが登録されます。
create_shelf_button("Inopoa")

その名前のタブが無ければ作成されます。

以後はこのボタンをクリックすると ackAnimTools が立ち上がります。

このコマンドは、同梱の ackAnim.png を Maya の prefs/icons にコピーしてからボタンに付けます。シェルフはモジュールフォルダの直パスを読めないことがあるためです。すでに ackAnim ボタンがある場合も、もう一度実行すれば置き換わります。

まだ歯車アイコンのままなら、次の「アイコンの設定」を見てください。

アイコンの設定

同梱アイコンは ackAnimTools/icons/ackAnim.png です。64×64 の PNG で、角丸のパネルに小文字の ack が書いてあります。

自動で付かないとき

Maya がアイコンを探す場所へ、PNG をコピーします。

Windows の場合:

C:\Users\ユーザー名\Documents\maya\バージョン\prefs\icons

例: C:\Users\ユーザー名\Documents\maya\2027\prefs\icons

macOS の場合:

~/Library/Preferences/Autodesk/maya/バージョン/prefs/icons

ユーザー名とバージョンは、自分の環境に合わせて変えてください。icons フォルダが無ければ作ってください。

コピーするファイルは ackAnim.png だけです。

シェルフボタンに割り当てる

すでに ackAnim ボタンがある場合です。

  1. シェルフの ackAnim ボタンを 右クリック して Edit を選ぶ
  2. Shelves タブを開く
  3. アイコン欄から、コピーした ackAnim.png を指定する

これでデフォルトのアイコンと区別しやすくなります。

アイコンを入れるのが面倒な人は、同じ Edit 画面の「Icon Label」に ack と入れることもできます。 文字だけのラベルになりますが、他のボタンとの見分けには足ります。

モジュールを入れ直したあとで create_shelf_button() をもう一度実行すると、既存の ackAnim ボタンは置き換わり、アイコンも付け直します。

Windowの見方

起動すると View タブが開きます。最初は Maya から独立した浮いた Window です。タイトルバーをドラッグして、Attribute Editor のように左右や下へドッキングできます。もう一度外せば、また浮いた Window になります。

ツール内の説明文は英語です。日本語での詳しい使い方は、この先の各節を見てください。

[ View | Edit Keys | Snap Keys | Clean Keys ]
────────────────────────────────────────
  Tangents(Edit / Snap / Clean のときだけ)
────────────────────────────────────────
  タブの中身
────────────────────────────────────────
  Goto Time
  Slice Curves / Delete Key
  Playblast Selected Keys
  再生ボタン
場所役割
Viewビューポートとマニピュレータ
Edit Keys / Snap Keys / Clean KeysGraph Editor のキー操作
下部の共通バーGoto Time、Slice、Delete、Playblast、再生。どのタブでも使える

Graph Editor 系のツールは、原則として キーまたはカーブを選んでから 押します。何も選んでいないと、警告だけ出して終わります。

各ツールはだいたい 名前 → 設定 → ボタン の順です。

共通の設定

いくつかのツールが同じ設定を共有します。どれかで変えると、他のツールの同じ項目にも反映されます。MEL のころの ackSetup が、各ツールの直下に分かれたイメージです。

Pivot From

隣のキーのどちらを基準(ピボット)にするかです。

意味
Left選択より手前(フレームの小さい側)のキー
Right選択より後ろのキー
Last Selected最後に選んだキー(使えるツールだけ)

Scale Factor

寄せる/遠ざける強さです。初期値は 0.9 です。

値のイメージ変化
大きい(0.95 など)変化が小さい
小さい(0.5 など)変化が強い

Push / Pull、Move Keys の Converge、Converge Buffer の Toward / Away で使います。

Fixed Factor

Move Keys の ↑↓ 専用です。隣キーとの差に対する移動量の割合で、初期値は 0.05 です。


View タブ

ackAnimTools Viewタブ

ビューポートの表示とマニピュレータです。アニメーションをチェックするときに、コントローラーを消したり、カメラを切り替えたりする用途です。

表示トグルは、カーソル下の 3D ビュー を優先します。ボタンの上にマウスがあるとビューポートではないので、その場合はアクティブなビューを使います。「押したら persp が変わった」ときは、マウスがボタン上にあるせいです。ビューを見てからショートカット(ホットキー)で叩くと安定します。

Translate Mode

移動マニピュレータを Object ⇔ World で切り替えます。Maya のマーキングメニューと同じです。

親空間の Local は、ワールド直下で親の回転が無いオブジェクトでは World と見た目が同じになります。不具合ではありません。

Rotate Mode

回転マニピュレータを Local → World → Gimbal の順に切り替えます。ここでの Local は、現行 Maya の Object Space です。ジンバルを確認したいときに使います。

NURBS Curves / Model

ボタン動作
NURBS Curves対象ビューの NURBS カーブ(コントローラー)表示を切替
ModelNURBS / Polygon / Subdiv ジオメトリ表示を切替

アニメーションをチェックするときは、コントローラーを消したほうがポーズが見えます。MEL の ackToggleNURBSCurves と同じ用途です。

Toggle Highlight

選択されたオブジェクトのハイライトを、Full ⇔ None で切り替えます(特に、下の Playblast Selected Keys を使う場合)。

Image Plane / Sound

ボタン動作
Image Planeシーン内の全イメージプレーン表示を None ⇔ RGBA
Soundタイムラインのサウンドをミュート/復帰(初回に覚えたクリップを、そのセッション中使う)

Toggle Cams

対象ビューを MainAlt で切り替えます。ショットカメラと persp を行き来する用途です。

項目内容
Mainメインで見るカメラ。未設定なら、今見ているカメラ(persp 以外)
Altもう一方。未設定なら persp
Grab Current今のビューのカメラを、その欄に入れる
  1. ショットカメラを見ている状態で、Main の Grab Current
  2. persp に切り替えて、Alt の Grab Current(未設定なら persp のままでも可)
  3. Toggle Cams で行き来する

Main と Alt? Main はメインで見るカメラ、Alt はもう一方です。Sub ではなく Alt なのは、alternate(代替・もう片方)の略だからです。上下関係ではなく、2 台を同等に切り替えます。

Edit Keys タブ

キーやグラフの形を編集するタブです。Graph Editor でキーを選んでから使います。現在フレームへの挿入と削除は、Window の下の共通ボタン(Slice Curves / Delete Key)にあります。

Layered(レイヤードアプローチ)

Michal Makarewicz さんの講義で紹介されたレイヤードアプローチで使う 3 つのツールを取り出しました。

Negate Keys

隣のキー(または Last Selected)の値を軸に、選択キーを上下反転します。反対ポーズや、シンメトリの反転向きです。

  1. Graph Editor でキーを選ぶ
  2. Pivot From を決める
  3. Negate Keys

Push / Pull

ピボットの値に寄せる(Pull)/遠ざける(Push)です。Scale Factor で強さを変えます。

ボタン動作
Pullピボットへ寄せる
Pushピボットから遠ざける
  1. キーを選ぶ
  2. Pivot From と Scale Factor を決める
  3. Pull または Push

Spread / Squeeze Timing

選択キーの手前に 1 フレームずつ隙間を入れる(Spread)/詰める(Squeeze)です。Maya のタイムスケールと違い、キーは整数フレームに保たれます。

ボタン動作
Spread Timing手前に 1 フレームずつ隙間を入れる
Squeeze Timing手前を 1 フレームずつ詰める
  1. キーを選ぶ
  2. Spread Timing または Squeeze Timing

Swap Keys

選択した 2 つのフレームのキーを入れ替えます。前後のポーズを入れ替えたいときに使います。対象は 選んでいるキーだけ です。シーン全体ではありません。

条件:

  • 各カーブで、選んでいるキーがちょうど 2 つ
  • 選んでいるキーのフレームが、2 つだけ

たとえば Translate.X だけ 2 キー選んで実行すると、その 2 つの値が入れ替わります。Translate.Y や Translate.Z も同じ 2 フレームで選んでいれば、それぞれのカーブで同様に入れ替わります。一方のフレームのキーをすべて選び、もう一方のフレームのキーもすべて選んで Swap Keys すると、ポーズごと入れ替えられます。条件を満たさないと警告だけ出ます。

Move Keys

選択したキーを動かして微調整することが出来ます。

ボタン動作
← / →1 フレーム左右へ
↑ / ↓Fixed Factor で値を上下(隣キーとの差を基準。隣を超えられる)
Converge Left / RightScale Factor で、手前/後ろの隣キーへ寄せる(近づくだけで超えません)
  1. キーを選ぶ
  2. ↑↓ なら Fixed Factor、Converge なら Scale Factor を確認する
  3. 方向ボタンを押す

↑↓ は Fixed Factor のぶん、値をそのまま上下します。隣のキーを超えても構いません。

Converge Left なら、左側にあるキーフレームに値が近づくだけで超えません。Converge Right なら右側です。どれだけ近づけるかは Scale Factor で決めます。

Converge Buffer

Buffer Snapshot でとったバッファカーブに、値を寄せる(Toward)、遠ざける(Away)、完全にそろえる(Snap)ツールです。Graph Editor のメニューまで行かなくてよいように、Buffer Snapshot を Scale Factor の右に置いてあります。

ボタン動作
Buffer Snapshotいまのカーブをバッファに残す(Curves > Buffer Curve Snapshot と同じ)
Toward Bufferバッファへ寄せる
Away Bufferバッファから遠ざける
Snap Bufferバッファの値にそろえる
  1. Graph Editor でキー(またはカーブ)を選ぶ
  2. Buffer Snapshot(動かす前のカーブをバッファに残す)
  3. キーを動かす
  4. Toward / Away / Snap でバッファ側へ戻す、または離す

Scale Factor は Toward / Away の強さです。Snap は完全にそろえるので、Scale Factor は使いません。

Stepped Tween

現在フレームで、前後のポーズの中間値を stepped キーとして挿入します。初期ブロッキングのブレイクダウン起点向けです。Stepped でブロッキングしない人には不要です。

キー選択中はそのカーブ、無ければ Graph Editor に出ているカーブが対象です。

  1. タイムスライダーを、前後のポーズの間へ置く
  2. Stepped Tween

Snap Keys タブ

キーのフレームや値をそろえます。Graph Editor でキーを選んでから実行します。

Snap To Time

選択キーをまとめて現在フレームへずらします。相対的な間隔は保ちます。ペーストしたキーを、今のフレームへまとめて寄せたいときに使います。

Pivot From動作
Leftいちばん左のキーを現在フレームに合わせる
Rightいちばん右のキーを現在フレームに合わせる
  1. キーを選ぶ
  2. 合わせたいフレームへ移動する
  3. Pivot From を決めて Snap To Time

Snap End Values

カーブごとに、最初と最後のキー値をそろえます。サイクル(ループ)のつなぎ確認向けです。タイムオフセットがあっても、カーブ単位で処理します。

Pivot From動作
Left最後のキーを、最初のキーの値に合わせる
Right最初のキーを、最後のキーの値に合わせる

Snap Animation

選択キー全体をオフセットし、端のキーが隣のキーの値にそろうようにします。ペースト後のつなぎや、ホールドへの吸着に使います。

Left / Right は参照する隣キーの方向です(カーブごと)。Last Selected は Left 扱いです。

Snap Key Values

選択中のすべてのキーの値を、最後に選んだキーの値にそろえます。複数カーブを、ある 1 つのキーの値にそろえたいときに使います。

  1. そろえたいキーをまとめて選ぶ
  2. 基準にしたいキーを最後に選ぶ(または選び足す)
  3. Snap Key Values

Zero Out Keys

選択中のキーの値をすべて 0 にします。非常に単純ですが、使用頻度が高く、作業効率が上がります。値をゼロに戻したいときは多々あります。

  1. キーを選ぶ
  2. Zero Out Keys

Clean Keys タブ

Clean Keys タブは、アニメーションカーブを整理したり、チェックしたりするときに使います。

Timing Framework

選択したキーのフレームを枠として、他カーブにも同じフレームへキーを挿入します。カーブの形は保ちます。

ブロッキングでは、ポーズの縦ラインすべてに、全部のコントローラーへキーが打ってある状態にしておきたいことがあります。あとからタイミングを動かすとき、その縦ラインにキーが無いコントローラーがあると、そこだけ補間されてポーズが崩れてしまいます。その抜けを埋めるときに使います。次に紹介する Delete Redundant とは逆のツールです。

選択対象
カーブが 0〜1 本Graph Editor 上の全カーブへ挿入
カーブが 2 本以上そのカーブ同士だけに挿入
  1. タイミングの基準にしたいキーを選ぶ
  2. Timing Framework

Delete Redundant

同じ値が続く平坦な区間の 中間キーだけ を削除します。両端は残します。選択中のキーだけが対象です。

ブロッキング段階では、すべてのコントローラーにキーを打つと、同じ値のキーが並ぶことがあります。あとからタイミングを動かすときには便利ですが、最終的にはカーブを整理する必要があります。

ブロッキングが終わってスプライン化やポリッシュに入る段階で、いちばん最初に使って無駄なキーを削ぎ落とすと効率が良いです。手作業だと消してはいけないキーまで消しがちですが、これを使えば機械的に、一発で消せます。

  1. 整理したいキーを選ぶ
  2. Delete Redundant

Dead Pixel Finder

ブロッキングの抜けや、動かないホールドを探します。Find Next / Find Previous は、今乗っているキーより後ろ/前から探します。今のフレームのキーは対象外です。もう一度押すと次へ進みます。

Search For

項目探すもの
Steppedアウトタンジェントが Stepped(または Stepped Next)のキー
Linearアウトタンジェントが Linear のキー
Held Posesそのキーと、次のキーの値が同じもの。ホールドの終わり(次のキーで値が変わるキー)には行きません

Held の例: 8・10・15 が同じ値で、20 だけ違うとき、当たるのは 8 と 10 です。15 の次は 20 で値が違うので Held ではありません。

Using

項目対象
Sel CurvesGraph Editor のキー選択。無ければ表示中のカーブ、それも無ければ選択オブジェクトのカーブ
Sel Objectsビューポートで選択したオブジェクトのカーブ
All Objectsシーン内の全アニメカーブ

When Found

項目動作
Change Time見つかったキーのフレームへ移動
Select Keyそのキーを選択
Center ViewGraph Editor を現在フレームに寄せる

スプラインにし忘れた Stepped キーを探すなら Search For を Stepped、ホールドの抜けを探すなら Held Poses です。


共通バー

Edit / Snap / Clean では、タブの直下に Tangents が出ます。View タブでは Tangents は出ません。 下部の Goto / Slice / Delete / Playblast / 再生は、どのタブでも使えます。

Cycle Tangents

選択キーのタンジェント種別を順に切り替えます。Graph Editor でキーを選んでから使います。

Auto → Spline → Flat → Linear → Stepped → Clamped → Plateau → Auto

Stepped はアウトタンジェントだけ設定します。Maya はインタンジェントに Stepped を付けられないためです。

Toggle Tangent Type

Unified / Broken と Weighted を次の順で切り替えます。

Unified → Broken → Unified + Weighted Free → Broken + Weighted Free → Unified

Graph Editor のアイコンで足りる人は、使わなくても大丈夫です。

Goto Time

フレーム番号を入れて Enter、または Go でそのフレームへジャンプします。欄は閉じずに残るので、続けて別の番号を打てます。MEL の ackGotoTime と同じ用途です。

Slice Curves

現在フレームにキーを挿入します。Maya の Insert Keys と同じく、カーブの形を保ちます(新しいタンジェントは Fixed)。マウスを Graph Editor に持っていかずに挿入できるのが利点です。

状態対象
キー選択中そのカーブ
未選択Graph Editor に出ているカーブ(無ければ選択オブジェクト)

すでにキーがあるフレームには重ねて打ちません。

Delete Key

状態動作
Graph Editor でキー選択中そのキーを削除
未選択現在フレームのキーを削除(タイムスライダーの Delete と同じ)

Playblast Selected Keys

選択キーの 最初〜最後 の範囲で playblast します。直近で直した区間だけ確認する用途です。タイムスライダーにサウンドがあれば付けます。キー未選択のときは警告だけ出します。

  1. 確認したい区間のキーを選ぶ(最初と最後が範囲になる)
  2. Playblast Selected Keys

再生バー

Maya 右下のタイムスライダーと同じ並びです。先頭/末尾は 再生範囲 です。キー送りはフレーム送りと同じ形で、縦棒 | だけがオレンジです。ツールチップにマウスを乗せると、キー送りかフレーム送りかが分かります。

ボタン動作
| < <再生範囲の先頭
| <前のフレーム
| <前のキーフレーム
逆再生(再生中なら停止)
再生(再生中なら停止)
> |次のキーフレーム
> |次のフレーム
> > |再生範囲の末尾

ホットキー

UI を出さずに、各関数をホットキーへ割り当てられます。MEL のころに ackNegateKeys; と打っていた感覚に近いです。

Maya のホットキーエディタでは、ランタイムコマンドに Python を登録します。

import ackAnimTools

ackAnimTools.tools.negate_keys()
ackAnimTools.tools.push_pull("pull")
ackAnimTools.tools.push_pull("push")
ackAnimTools.tools.spread_squeeze_timing("spread")
ackAnimTools.tools.spread_squeeze_timing("squeeze")
ackAnimTools.tools.swap_keys()
ackAnimTools.tools.move_keys("left")
ackAnimTools.tools.move_keys("right")
ackAnimTools.tools.move_keys("up")
ackAnimTools.tools.move_keys("down")
ackAnimTools.tools.move_keys("convergeLeft")
ackAnimTools.tools.move_keys("convergeRight")
ackAnimTools.tools.converge_buffer("toward")
ackAnimTools.tools.converge_buffer("away")
ackAnimTools.tools.converge_buffer("snap")
ackAnimTools.tools.buffer_curve_snapshot()
ackAnimTools.tools.stepped_tween()
ackAnimTools.tools.snap_to_time()
ackAnimTools.tools.snap_end_key_values()
ackAnimTools.tools.snap_animation()
ackAnimTools.tools.snap_key_values()
ackAnimTools.tools.zero_out_keys()
ackAnimTools.tools.timing_framework()
ackAnimTools.tools.delete_redundant()
ackAnimTools.tools.dead_pixel_find("next")
ackAnimTools.tools.dead_pixel_find("prev")
ackAnimTools.tools.cycle_tangents()
ackAnimTools.tools.toggle_tangent_type()
ackAnimTools.tools.slice_curves()
ackAnimTools.tools.delete_key()
ackAnimTools.tools.playblast_selected_keys()
ackAnimTools.tools.goto_time(指定したいフレーム)

Goto Time は、括弧内を飛びたいフレーム番号(例: 24)に置き換えて登録します。

Dead Pixel Finder をホットキーにする使い方はあまり想定していませんが、Find Next / Find Previous のコマンドは上のとおりです。引数を省略すると、Stepped / Linear / Held をすべて、Sel Curves の範囲で探します。探す種類や範囲を固定したいときは、次のように指定します。

ackAnimTools.tools.dead_pixel_find(
    "next",
    search_stepped=True,
    search_linear=False,
    search_held=False,
    scope="sel_curves",
    change_time=True,
    select_key=True,
    center_view=False,
)

scope"sel_curves" / "sel_objects" / "all_objects" です。

今回載せていないもの

MEL にあって、ackAnimTools には載せていないものもあります。意図的にそうしました。

  • Toggle Key Color … Time Slider の Special Tick を付ける/外す。Graph Editor のカーブ色分けではない
  • New Graph Editor … 現行 Maya はメニューで既存の Graph Editor を戻せば足りる
  • Shuttle Control の Time Dragger … 元スクリプトに作者注記のバグがある。フレーム/キー送りは再生バーに吸収

33 個全部が必要なわけではありません。元祖MEL版の記事で書いたとおりです。


ライセンス

元の MEL は Creative Commons Attribution-Noncommercial-Share Alike 3.0 です。この移植も同じ条件です。

  • 非営利で使って、改変・再配布できます
  • 再配布するときは Aaron Koressel(元ツール)と inopoa(現代版)へのクレジットを残してください
  • 同じライセンスで公開してください
  • 営利利用は権利者の許可が必要です

Aaron Koressel さん: https://www.aaronkoressel.com/
ライセンス本文: https://creativecommons.org/licenses/by-nc-sa/3.0/


Aaron Koressel さんの MEL は、発想として今でも非常に強いです。ただしスクリプト自体は 2008 年ごろから更新されておらず、今の Maya では動作が不安定になりがちです。あの MEL をそのまま使うのはおすすめしません。現行 Maya では、こちら(ackAnimTools)を使ってください。

ackAnimTools は、そのうち現代 Maya でも使うものを、無料で使えるツールとして 1 つにまとめたものです。animBot をすでに使っていて、使いこなしている人には必要ありません。必要なのは、animBot に課金して使うまでではないと思っている人、スクリプトによってアニメーション作業が効率化するということをまだ理解していない人、仕事などで有料の animBot が使えない環境で、無料でダウンロードできる効率化ツールを使いたい人です。レイヤードアプローチを効率よく試してみたい人にも、まずこれを使ってもらえればと思っています。

導入から各ボタンの説明まで、この記事が説明書です。まずはレイヤードの 3 つのツールと、Delete Redundant / Timing Framework / Zero Out / Slice あたりから使ってみるだけでも、ackAnimTools による作業効率アップの恩恵は十分受けられると思います。

制作の励みになりますので、SNS 等で「#inopoa」を付けて感想をシェアしていただけると非常に嬉しいです。

Maya で使える便利なツール(スクリプト、プラグイン)をまとめた記事はこちらです。

ackAnimationToolsの使い方アイキャッチ画像

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

フリーの3DCGアニメーター。
メインツールはMaya(使用歴20年以上)です。お仕事ではSoftimage(XSI)やMotionBuilderの使用経験もあり。思いに手付け(キーフレームアニメーション)が多いですが、キャプチャーもいけます。サブスキルとしてはリグ(Maya限定ですが)も少々いけます。

ゲームが昔から大好きなので「ゲーマー」としての側面からもいろいろ発信出来ればと考えています。
CG歴よりもゲーマー歴のほうがずっと長いもので(笑)。

twitterアカウント
@inopoa1

よろしくお願いします。

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

INDEX