【MEL基本】1時限目 ボタンで機能を実行するMELを書く


AriToolWindow01.jpg

使用する機能やMELが増えてくると、シェルフやショートカットでは整頓しきれなくなってきませんか?
そんなとき、これがあると少しすっきりさせることが出来ると思います。
すこしMELを書くことで結構簡単に作れますので今回はその作り方です。

このサイトのMELも増えてきたので、整頓MELを作ろうと思ったのですが、どうも登録や整理する操作がめんどくさくなりそうですし、使いやすいUIは人それぞれだと思うので、MELの基本もかねて、ウィンドウやボタンの作り方を書いてみることにしました。



MELを書く場所
Mayaの一番右下にあるアイコンで開く、スクリプトエディタを使います。
MELタブのほうに書いていきます。
AriToolWindow02.jpg
最初はMELとPythonひとつずつしかタブが無いと思いますが、メニューの「コマンド」から増やしたり消したりできます。

右下にアイコンが無い場合こちらを参照してアイコンを表示させるか
【Mayaあるある】メニューバーとか色々メニューがない
メニューのウィンドウ>一般エディタ>スクリプトエディタ で開けます。



書いたMELの実行方法

今回作ろうとしてるMELですが、全部説明してると結構長くなってしまうので、一部書き直してカスタマイズしてもらう形になります。
その元となるソースが以下です。
コレをコピペして試しに実行してみてください。


{
if ( (`window -ex AriToolWindow`) == true ) deleteUI AriToolWindow;
window -title "機能ボタン" AriToolWindow;

scrollLayout;

columnLayout -w 120 -adj true;

button -l "シンメトリーチェック" -c "AriSymmetryChecker";
button -l "リネーマー" -c "AriRenamer";

separator ;//ただの分割線

button -l "UVスケール" -c "AriUVScaleChecker";
button -l "UV格子状" -c "AriUVGridding";

separator ;//ただの分割線

button -l "アウトライナ" -c "OutlinerWindow";
button -l "ハイパーシェード" -c "HypershadeWindow";

separator ;//ただの分割線

//ここから下はダミー
button -l "" -c "";
button -l "" -c "";
button -l "" -c "";
button -l "" -c "";

setParent..;
setParent..;

showWindow;

}


MELタブにコピペしたら・・・実行のしかたはいくつかありますが一番お手軽なものとして、
全選択してからテンキーのエンターです。
実行が成功するとウィンドウが表示されます。
AriToolWindow03.jpg
全選択しないと書いたソースが消えちゃうので全選択します。
テンキー無いキーボードの場合はCtrl + Enterです。




ボタンにすきな機能を割り当てる

このコードの意味をざっとまとめるとこんな感じです。
機会があれば細かく説明しようと思いますが、今回は四角のなかのボタン群を編集します。

AriToolWindow04.jpg


その中のどれでもいいのでbuttonと書いてある行に注目です。
buttonの後に、
-l の後にはボタンに表示する文字、
-c の後にはボタンを押したときに実行するコマンド
を書くことで、
任意のボタンを作成することが出来ます。
その際"(ダブルクォテーション)で囲み黄色くなるようにしてください。行の最後に ; は必須です。
AriToolWindow05.jpg
-l の後は表示に使うものなので、自分がわかりやすいものを好きに書くことができます。

もう書いてあるところを書き直してもいいですし、下のほうになにも書いてないものも用意してあるので、そこに書いてもいいです。
なにか機能を割り当ててみてください。


コマンド?
-cの後に書くコマンドとは、melを実行するときに使う.melを省いたものです。

アウトライナなど標準機能のコマンドも書くことができます。
標準機能のコマンドを調べるには、一度シェルフに登録してからシェルフの編集で確認するといいと思います。
AriToolWindow06.jpg



並び替え

ボタンは上から順番に並んでいます。
AriToolWindow07.jpg
separatorは分割線。赤い文字は単なるメモで、実行には関係ないコメントというものです。//をつけるとコメントになります。

行単位でカットペーストして並びを変えることが出来ます。
AriToolWindow09.jpg
改行はあってもなくても影響ありません。ただ見やすくしているだけです。


コピーでどんどん増やすことも出来ますので、何とかカスタマイズしてみてください。



エラー
MELの記述には結構ルールがありまして、ルールに沿っていない書き方をすると、実行時エラーになります。
単純なものですと、全角文字を入れたり(ボタンの文字はOK)、最後に ; がなかったり、コマンドが間違ってたり、などですが、他にも色々あります。
エラーが出てしまったら、コピペなどに気をつけて慎重にやり直してみてください。



カスタマイズしたものをシェルフに登録
カスタマイズが出来たら、全選択して中ボタンドラックで、シェルフに登録できます。
【Maya基本】シェルフへの登録方法 の「スクリプトやコマンドの登録」参照。



スクリプトエディタの保存
スクリプトエディタにかかれたものは、特に保存をしなくとも、Maya終了のタイミングで保存されます。
ただMayaが強制終了されたりすると、保存されず消えてしまうので、定期的に、メモ帳などにコピペして保存しておくのがいいと思います。

スクリプトエディタのメニューからの保存はデフォルトフォルダがTempフォルダになっており、勝手に消される危険性大なので、そのせいもあってか自分はあまり使って無いです。(メモ帳などの)テキストエディタにコピペして保存してます。



つぶやき
MELの基本の最初をUIではじめるのも珍しいと思いますが、実用的なもがすぐに作れるのでMELに興味があるなし以前に、こうすれば出来ますよなノリで書きました。色々説明したいことは出てくるのですが、一度に書いてしまうと書いている側も、見てくださる側もごちゃごちゃしてわかりにくくなってしまうので、徐々に説明していきたいと思います。

とは言うものの行き当たりばったりなところもあるので、必要な説明の前後関係など、辻褄を合わせる自身がありませんが、気が向いたとき触れていこうと思います。

AriToolWindow10.jpg
この機能ボタンに関しては、横に並べたり、アイコン入れたり、折りたたみのフレームいれたり、くらいは書きたいですが、細かくてわかりにくい仕様が多いんでどうなることか。割と簡単なはずなんですけどね。
とりあえず、次回は.melファイルの作り方を予定してます。

テーマ : 3DCG
ジャンル : コンピュータ

tag : Maya, MEL, MEL基本, UI, カスタマイズ,

スポンサーリンク

コメントの投稿

非公開コメント

No title

いつも楽しく拝見させて頂いてますが、
こちらのサイトは広告を貼られてないんですか?
グーグルアドセンスという広告をはると、ある程度の収益になると思います。

拍手やリツイートしてもらうとモチベーションアップに繋がりますが、
お金は"より"モチベーションが上がりますよ^^

良い記事を書いて頂き、僕もスクリプトを使わせて頂いてますので、
ちょっとした事を書いてみました。是非ご検討してみてください。

Re: No title

コメントありがとうございます!

そうですねぇ~。
少し調べてみたことはあるのですが、条件だったり規約だったりを読んでるうちにめんどくさくなってしまって「後にしよう!」状態だったのです。
なので、一応導入が簡単な広告は貼ってみてはあります。

今のところ皆さんに反応いただけることがかなりのモチベになっているので、記事書くほうが楽しくてどうでもよくなってましたが、
確かにほったらかしで1年過ぎちゃいましたし、検討すべきことですね。

時間が取れるときにまた調べてみようと思います。
わざわざアドバイスありがとうございます!!

python実行

いつも、大変便利なスクリプトありがとうございます。
ボタンで機能を実行するMELにPythonスクリプトを実装したいのですが、ご教授いただけますでしょうか。
Mari2Mayaというスクリプトを実装したいと思っております。
スクリプトエディタでの実行コマンドはMari2Maya()です。

以上、お手数ですが、ご検討いただけると幸いです。

Re: python実行

コメントありがとうございます。
pythonで Mari2Maya() を実行することと同じ機能だけであれば、-cの後、

-c "python \"Mari2Maya()\"";

こんな感じに書いていただければいけると思います。
ただし、pythonフィールドやシェルフで実行する時と同じく.pyのロードは必要です。
どうぞお試ししてみてください。

Re: python実行

Ariさん

迅速な回答ありがとうございます。
無事Pythonも実装できました。

感謝です。これからもよろしくお願いいたします。

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

Re: No title

コメント下さった方ありがとうございます!!
カテゴリ
おすすMEL1
UV格子状整列 AriUVGridding03.gif

UV解像度チェック AriUVScaleChecker01.gif
月別アーカイブ
スポンサーリンク
おすすMEL2
リネーマー AriRenamer01.gif

置換/配置 AriAssetChanger01.gif
記事一覧

全ての記事を一覧

アクセスランキング
[ジャンルランキング]
コンピュータ
29位
アクセスランキングを見る>>

[サブジャンルランキング]
デザイン
3位
アクセスランキングを見る>>
ブログ内検索
プロフィール

Ari

Author:Ari
ExpertElite000.jpg

ゲーム系を中心にモデラーをやってます。プライベートでその他の作業も挑戦中です。
拍手ボタンありがとうございます。テンションあがります。

ツイッターでお知らせなどやってます。よかったらどうぞフォローお願いします。
ツイッターを覗いてみる

MEL
スポンサーリンク
QRコード
QR
タグ

Maya MEL モデリング MEL更新 Mayaあるある UI カスタマイズ UV データ管理 数値設定 ~がない MayaTips アニメーション モデリングツールキット リネーム AriReFreezeRotate つぶやき AriCompactToolSettings MEL基本 マテリアル AriUVGridding AriSetPivot バグ? ホットキー Maya基本 新機能 AriUVFit 頂点カラー 記事まとめ AriVertexColorEditor AriCircleVertex テクスチャ AriSceneOpener AriMirror ~ない リトポロジー AriSortOutliner スケルトン アンケート AriUVScaleChecker ジョイント カメラ AriTransferPosition スクリプト AriUVAdsorption MEL更新頂点カラー AriViewWindow AriUVAdsorptionMove AriUVRatio AriSplitPolygon AriSelectEdgeRing AriIconViewer AriDeleteEdgePreserveBorder モデリングAriCircleVertex AriQuadrangulateRing AriUVSetList AriRenamer AriAnimationCopy 更新 Rig ZBrush AriAniKeyScale レンダリング 

最新記事
メールフォーム

名前:
メール:
件名:
本文: