執筆者:本部
アニメーターとしてモノリスソフトへ入社後、現在はテクニカルアーティストを務める。 好きな動物はねこ。
TECH BLOG
こんにちは。モノリスソフト テクニカルアーティストの本部です。
「アニメーション制作にスクリプトを活用しよう!」と題しまして、アニメーション制作に便利なスクリプト・ツールなどを紹介します。
今回のみではなく、何度か連載形式にできればと思います。
さて、今回は「中級編」の内容として、
MELスクリプトを使用したGraphEditorでのキーフレームの選択補助機能「THAddPickWalkKeyframeCommand」を紹介します。
こちらは、私がアニメーションを制作する時に実際に使用している機能で、ホットキーに登録してすぐにアクセスできるようにしています。
個人的には「これがないとアニメーション制作できない!」くらい便利な機能ですので、興味がある方はぜひ試してみてください。
このページの内容を実践することで、Mayaでできるようになることを簡単にまとめました。
あくまでも一例で、他にもいろいろな使い方ができます。
キーの選択の拡張や縮小、カレントキーフレームの選択などが簡単に行えるようになります。
複数のアニメーションカーブを選択時、キーフレームが重なってしまい選択しづらいことがあると思います。
そんな時には、選択しやすいキーフレームを選択してから、「カレントキーフレームの選択機能」や「キーフレームのピックウォーク機能」を使用することで、狙ったキーフレームを選択しやすくなります。
一例として、「極端に近いキーフレームの削除方法」について説明します。
下記のように、隣同士のキーフレームがほとんど重なってしまった状態のことで、時間方向へスケーリングした際などに、よく起きてしまうと思います。
上記画像ならキーフレーム同士が離れているため選択しやすいですが、ベイクしてスケーリングすると大体以下のような感じに・・・。
これを手作業で選択・修正するのはなかなか骨が折れます。
そんなときは、「カレントキーフレームの選択機能」で一括選択・削除できます。
方法は以下の通りです。
この手順の便利なところは、削除したいフレームにあるキーフレームのみを選択することができ、正常なキーフレームは選択や削除がされないという点です。
怪しいアニメーションカーブを一旦すべて選択して実行することで、おかしなところにキーフレームのみを選択し、削除することができます。
この項では本機能の便利だと思えるところを説明しました。
それでは、以下で実際に使えるようにする手順を説明していきます。
ここでは、MayaでTHAddPickWalkKeyframeCommandを使えるようにするために必要な準備について説明します。
具体的には以下の手順が必要です。
ってなった方も大丈夫。詳しい説明はひとまず置いておいて、以下の「配置するファイル」をダウンロードして「配置するパス」に配置してください。
配置するファイル | THAddPickWalkKeyframeCommand.mel |
配置するパス | %userprofile%\Documents/maya/scripts |
詳しく知りたい方は、以下を展開してください。
Mayaが自動でMELスクリプトを読みに行ってくれるフォルダのことです。
最初から設定されているパスや、プロジェクトによって追加で設定する場合があります。
以下のスクリプトで、現在設定されているパスを確認できます。
// 設定されているスクリプトパスを表示するスクリプト。MayaのスクリプトエディタのMELタブで実行してみてください。 getenv MAYA_SCRIPT_PATH
以下が実行結果です。一行で表示されますが、パスごとに[;(セミコロン)]で区切られています。
MAYA_SCRIPT_PATHに含まれているパスであれば、どこにMELスクリプトファイルを配置しても、Mayaが自動で認識してくれます。
注意
!スクリプトパスは、うかつに変更しないでください!
プロジェクトごとに設定が失われて開発環境が上手く動かなくなったり、Maya自体の動作がおかしくなる可能性があります。
上記のスクリプトは内容を表示するだけなので安全ですが、むやみに改変して変更などをしてしまわないようご注意ください。
上記手順で、大本のスクリプトファイルを配置し、Mayaで使用する準備ができました。
本項目では、実際にMayaで使用するためのコマンド(MELプロシージャ)について使い方を説明します。
複数のコマンドを何度も実行するような場合に、それらのコマンドに名前をつけておいて、その名前で実行できるようにしておくと便利です。
MELではこのひとまとまりのコマンドのことをプロシージャーと呼びます。
今回のツールでは、MELスクリプトファイルで定義したプロシージャを、Mayaで呼び出すことで処理を実行します。
今回のツールを導入することで使えるようになる機能と、そのプロシージャの呼び出し方を以下に記載します。
プロシージャは、参考Gifのようにスクリプトエディタで呼び出して実行することもできますが、ホットキーに登録したり、シェルフに入れたり、マーキングメニューに追加するなど、お好みでアクセスしやすいようにすると便利です。
キーフレームの選択を、前後に拡張する機能です。
// 前フレーム方向へ選択を拡張 THAddPickWalkKeyframeCommand("addPre"); // 後フレーム方向へ選択を拡張 THAddPickWalkKeyframeCommand("addPos");
キーフレームの選択を、前後に縮小する機能です。
// 前フレーム方向の選択を縮小 THAddPickWalkKeyframeCommand("desPre"); // 後フレーム方向の選択を縮小 THAddPickWalkKeyframeCommand("desPos");
キーフレームの選択を、前後に移動(ピックウォーク)する機能です。
// 前フレーム方向へのピックウォーク THAddPickWalkKeyframeCommand("addPre"); THAddPickWalkKeyframeCommand("desPos"); // 後フレーム方向へのピックウォーク THAddPickWalkKeyframeCommand("addPos"); THAddPickWalkKeyframeCommand("desPre");
選択中のキーフレームを持つアニメーションカーブから、カレントフレームにあるキーフレームを選択しなおします。
※カレントフレームにキーフレームがないアニメーションカーブは非選択状態になります。
// 選択されたキーフレームからカレントフレームのキーフレームを選択 source "THAddPickWalkKeyframeCommand.mel"; THSelectCurrentKeyframeCommand(0);
MELスクリプトのソースを記載しておきますので、興味がある方はどうぞ。
「MELスクリプトファイルをMayaのスクリプトパスが通っているフォルダに配置する」の項でダウンロードできるMELファイルと同じものです。
「アニメーション制作にスクリプトを活用しよう!~中級編~」と題して、MayaのGraphEditorでキーフレームの選択を便利にする方法について説明しました。いかがでしたでしょうか?
プロシージャの組み合わせ次第で、他にもいろいろな選択の仕方ができると思いますので、試してみてください。
みなさまのアニメーション制作の一助になれば幸いです。
執筆者:本部
アニメーターとしてモノリスソフトへ入社後、現在はテクニカルアーティストを務める。 好きな動物はねこ。