Additional Time の長い戦国武将と言えば、武田信玄の父・信虎。48歳で追放され、その後息子の信玄よりも長生きしたそうです。
どうも、クリーク・アンド・リバー社 COYOTE 3DCG STUDIO テクニカルチーム 戦国大好き人間の中林です。
この記事では、9月20日(金)に開催されたAutodeskDay2024で僕が話しきれなかった追加情報を共有します。
AutodeskDay2024
Snap Near Vertexの紹介
COYOTE TECHNICAL ART TEAMがBoothにて頒布中のツール
Booth Snap Near Vertex
・使い方
1・移動先の頂点選択して登録
2・移動したい頂点を選択
3・実行ボタンで登録した近くの頂点に移動
他のモデルの頂点と選択した頂点がずれているときに、ピッタリ調整できます!!
語り切れた部分の弊社ブログ紹介
・MELからPythonへのコマンド変更方法
【Maya】超初心者向け、MELからPythonへのコマンド変更方法
・RunTimeCommandをcmdsで使える!!
【Maya】cmdsから実行できる!? 結構便利なRuntimeCommand
追加情報1・Mayaのグローバル変数を使う
MELからPythonに移行した際の大きな失敗は、Python のグローバル変数を使ったため、ツールを開き直すたびに target の登録がリセットされる問題が発生したことです。
ツールを開き直すと target の情報がリセットされてしまい、どこまで情報を保持すべきか悩みました。
少なくとも UI を開き直した際には情報を覚えていてほしいのですが、Maya を再起動したときにはリセットしてほしい。
微妙に optionVar
で保持するほどの内容ではありません。
では、MEL 版ではどうだったかというと、MEL のグローバル変数は Maya を閉じるまで維持されていたため、この問題はありませんでした。
そこで、Python から Maya のグローバル変数を使えばよいのではと考えました。
以下にその方法を紹介します。
import maya.mel as mel
# MELのグローバル変数の代入
mel.eval('global string $gTargetVtxList;')
selectList = cmds.ls(sl = True)
mel.eval('$gTargetVtxList = "{}"'.format(selectList))
# MELのグローバル変数の取得
mel.eval('global string $gTargetVtxList;')
targetVtxList = mel.eval('$gTargetVtxList = $gTargetVtxList')
追加情報2・gキーで繰り返す
g キーは「編集 > 繰り返し (Edit > Repeat)」のショートカットキーです。
Mayaのユーザーの中には、この機能を頻繁に使う人も多いです。
実はこの機能、自作のMELツールでも有効にする方法があります。
参考動画では最初の頂点は 【Done】 ボタンで移動していますが、その後は g キーで移動しています。
繰り返し操作を確認したい場合に便利です。
まずは MEL での方法を紹介します。
global proc sample(){
print('sample');
repeatLast -ac "sample()";
ac
フラグの後ろに関数名を文字列で指定すると、g キーで繰り返すことができます。
このコマンドはスクリプトリファレンスには載っていない、知る人ぞ知る機能です。
これをPythonで使うには少し癖があり、ac
フラグの中身は MEL スクリプトでないといけません。
def sample():
print('sample')
try:
cmds.repeatLast(ac = 'python("ファイル名.sample()");')
except:
pass
まず、MEL で Python を呼び出す python
コマンドを使い、関数名を指定します。
import
でファイルを読み込んでいる場合は、ファイル名と関数名を指定してパスを通す必要があります。
・pythonコマンドの説明
https://help.autodesk.com/cloudhelp/2025/JPN/Maya-Tech-Docs/Commands/python.html
これも、ある意味でMELにしかないコマンドですね。
そして、repeatLast
コマンドでは、初回起動時に確実にエラーが発生します。
そのため、try
文を使ってエラーを回避する必要があります。
Python での実装例が少ないコマンドの一つとして紹介しました。
Additional Time終了
この追加情報は、講演時間内で話すには難しい内容で、初心者向けでもないため、ブログで紹介することにしました。
追加機能がなくてもツールは成立しますが、もう半歩使いやすくするための工夫です。
Autodesk Day 2024 の講演を含め、皆様の参考になれば幸いです。