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)です。
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 フォルダへコピーすることだけです。
ackAnimTools.mod(Maya に場所を教える小さなテキスト)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)
- zip を解凍する
- エクスプローラーで
Documents\mayaを開く modulesフォルダが無ければ新規作成する- 解凍した
ackAnimTools.modとackAnimToolsフォルダ を、そのmodulesの中へコピーする - 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.mod と ackAnimTools フォルダです。違うのは置き場所だけです。
- zip を解凍する
- Finder で Shift + Command + G(移動 > フォルダへ移動)を押す
- 次を貼り付けて移動する
~/Library/Preferences/Autodesk/maya/Library は通常隠れているので、パスを直接入れるのが確実です。
modulesフォルダが無ければ新規作成する- 解凍した
ackAnimTools.modとackAnimToolsフォルダ を、そのmodulesの中へコピーする - 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 は、私の環境では動作確認ができません。同じモジュール形式なので、次で使えるはずです。
~/maya/modules/にackAnimTools.modとackAnimToolsフォルダを置く(フォルダが無ければ作る)- Maya を再起動する
- スクリプトエディター(Python)で次を実行する
import ackAnimTools
ackAnimTools.show()Linux 版は動作確認できていません。 動いた/動かなかった、などあれば教えてもらえると助かります。
やりがちな失敗
zip を解凍すると、外側にもう一段フォルダが付くことがあります。その外側フォルダごと modules に入れると、Maya は .mod を見つけられません。
ダメな例:
modules/
ackAnimTools_配布用/ ← 余分な入れ物
ackAnimTools.mod
ackAnimTools/ackAnimTools.mod が modules の直下に見えること。これが目印です。
次も失敗です。
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 ボタンがある場合です。
- シェルフの ackAnim ボタンを 右クリック して Edit を選ぶ
- Shelves タブを開く
- アイコン欄から、コピーした
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 Keys | Graph 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 タブ

ビューポートの表示とマニピュレータです。アニメーションをチェックするときに、コントローラーを消したり、カメラを切り替えたりする用途です。
表示トグルは、カーソル下の 3D ビュー を優先します。ボタンの上にマウスがあるとビューポートではないので、その場合はアクティブなビューを使います。「押したら persp が変わった」ときは、マウスがボタン上にあるせいです。ビューを見てからショートカット(ホットキー)で叩くと安定します。
Translate Mode
移動マニピュレータを Object ⇔ World で切り替えます。Maya のマーキングメニューと同じです。
親空間の Local は、ワールド直下で親の回転が無いオブジェクトでは World と見た目が同じになります。不具合ではありません。
Rotate Mode
回転マニピュレータを Local → World → Gimbal の順に切り替えます。ここでの Local は、現行 Maya の Object Space です。ジンバルを確認したいときに使います。
NURBS Curves / Model
| ボタン | 動作 |
|---|---|
| NURBS Curves | 対象ビューの NURBS カーブ(コントローラー)表示を切替 |
| Model | NURBS / Polygon / Subdiv ジオメトリ表示を切替 |
アニメーションをチェックするときは、コントローラーを消したほうがポーズが見えます。MEL の ackToggleNURBSCurves と同じ用途です。
Toggle Highlight
選択されたオブジェクトのハイライトを、Full ⇔ None で切り替えます(特に、下の Playblast Selected Keys を使う場合)。
Image Plane / Sound
| ボタン | 動作 |
|---|---|
| Image Plane | シーン内の全イメージプレーン表示を None ⇔ RGBA |
| Sound | タイムラインのサウンドをミュート/復帰(初回に覚えたクリップを、そのセッション中使う) |
Toggle Cams
対象ビューを Main と Alt で切り替えます。ショットカメラと persp を行き来する用途です。
| 項目 | 内容 |
|---|---|
| Main | メインで見るカメラ。未設定なら、今見ているカメラ(persp 以外) |
| Alt | もう一方。未設定なら persp |
| Grab Current | 今のビューのカメラを、その欄に入れる |
- ショットカメラを見ている状態で、Main の Grab Current
- persp に切り替えて、Alt の Grab Current(未設定なら persp のままでも可)
- 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)の値を軸に、選択キーを上下反転します。反対ポーズや、シンメトリの反転向きです。
- Graph Editor でキーを選ぶ
- Pivot From を決める
- Negate Keys
Push / Pull
ピボットの値に寄せる(Pull)/遠ざける(Push)です。Scale Factor で強さを変えます。
| ボタン | 動作 |
|---|---|
| Pull | ピボットへ寄せる |
| Push | ピボットから遠ざける |
- キーを選ぶ
- Pivot From と Scale Factor を決める
- Pull または Push
Spread / Squeeze Timing
選択キーの手前に 1 フレームずつ隙間を入れる(Spread)/詰める(Squeeze)です。Maya のタイムスケールと違い、キーは整数フレームに保たれます。
| ボタン | 動作 |
|---|---|
| Spread Timing | 手前に 1 フレームずつ隙間を入れる |
| Squeeze Timing | 手前を 1 フレームずつ詰める |
- キーを選ぶ
- 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 / Right | Scale Factor で、手前/後ろの隣キーへ寄せる(近づくだけで超えません) |
- キーを選ぶ
- ↑↓ なら Fixed Factor、Converge なら Scale Factor を確認する
- 方向ボタンを押す
↑↓ は 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 | バッファの値にそろえる |
- Graph Editor でキー(またはカーブ)を選ぶ
- Buffer Snapshot(動かす前のカーブをバッファに残す)
- キーを動かす
- Toward / Away / Snap でバッファ側へ戻す、または離す
Scale Factor は Toward / Away の強さです。Snap は完全にそろえるので、Scale Factor は使いません。
Stepped Tween
現在フレームで、前後のポーズの中間値を stepped キーとして挿入します。初期ブロッキングのブレイクダウン起点向けです。Stepped でブロッキングしない人には不要です。
キー選択中はそのカーブ、無ければ Graph Editor に出ているカーブが対象です。
- タイムスライダーを、前後のポーズの間へ置く
- Stepped Tween
Snap Keys タブ

キーのフレームや値をそろえます。Graph Editor でキーを選んでから実行します。
Snap To Time
選択キーをまとめて現在フレームへずらします。相対的な間隔は保ちます。ペーストしたキーを、今のフレームへまとめて寄せたいときに使います。
| Pivot From | 動作 |
|---|---|
| Left | いちばん左のキーを現在フレームに合わせる |
| Right | いちばん右のキーを現在フレームに合わせる |
- キーを選ぶ
- 合わせたいフレームへ移動する
- Pivot From を決めて Snap To Time
Snap End Values
カーブごとに、最初と最後のキー値をそろえます。サイクル(ループ)のつなぎ確認向けです。タイムオフセットがあっても、カーブ単位で処理します。
| Pivot From | 動作 |
|---|---|
| Left | 最後のキーを、最初のキーの値に合わせる |
| Right | 最初のキーを、最後のキーの値に合わせる |
Snap Animation
選択キー全体をオフセットし、端のキーが隣のキーの値にそろうようにします。ペースト後のつなぎや、ホールドへの吸着に使います。
Left / Right は参照する隣キーの方向です(カーブごと)。Last Selected は Left 扱いです。
Snap Key Values
選択中のすべてのキーの値を、最後に選んだキーの値にそろえます。複数カーブを、ある 1 つのキーの値にそろえたいときに使います。
- そろえたいキーをまとめて選ぶ
- 基準にしたいキーを最後に選ぶ(または選び足す)
- Snap Key Values
Zero Out Keys
選択中のキーの値をすべて 0 にします。非常に単純ですが、使用頻度が高く、作業効率が上がります。値をゼロに戻したいときは多々あります。
- キーを選ぶ
- Zero Out Keys
Clean Keys タブ

Clean Keys タブは、アニメーションカーブを整理したり、チェックしたりするときに使います。
Timing Framework
選択したキーのフレームを枠として、他カーブにも同じフレームへキーを挿入します。カーブの形は保ちます。
ブロッキングでは、ポーズの縦ラインすべてに、全部のコントローラーへキーが打ってある状態にしておきたいことがあります。あとからタイミングを動かすとき、その縦ラインにキーが無いコントローラーがあると、そこだけ補間されてポーズが崩れてしまいます。その抜けを埋めるときに使います。次に紹介する Delete Redundant とは逆のツールです。
| 選択 | 対象 |
|---|---|
| カーブが 0〜1 本 | Graph Editor 上の全カーブへ挿入 |
| カーブが 2 本以上 | そのカーブ同士だけに挿入 |
- タイミングの基準にしたいキーを選ぶ
- Timing Framework
Delete Redundant
同じ値が続く平坦な区間の 中間キーだけ を削除します。両端は残します。選択中のキーだけが対象です。
ブロッキング段階では、すべてのコントローラーにキーを打つと、同じ値のキーが並ぶことがあります。あとからタイミングを動かすときには便利ですが、最終的にはカーブを整理する必要があります。
ブロッキングが終わってスプライン化やポリッシュに入る段階で、いちばん最初に使って無駄なキーを削ぎ落とすと効率が良いです。手作業だと消してはいけないキーまで消しがちですが、これを使えば機械的に、一発で消せます。
- 整理したいキーを選ぶ
- 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 Curves | Graph Editor のキー選択。無ければ表示中のカーブ、それも無ければ選択オブジェクトのカーブ |
| Sel Objects | ビューポートで選択したオブジェクトのカーブ |
| All Objects | シーン内の全アニメカーブ |
When Found
| 項目 | 動作 |
|---|---|
| Change Time | 見つかったキーのフレームへ移動 |
| Select Key | そのキーを選択 |
| Center View | Graph 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 します。直近で直した区間だけ確認する用途です。タイムスライダーにサウンドがあれば付けます。キー未選択のときは警告だけ出します。
- 確認したい区間のキーを選ぶ(最初と最後が範囲になる)
- 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 で使える便利なツール(スクリプト、プラグイン)をまとめた記事はこちらです。










コメント