チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第8回:マーキングメニュー活用方法(3/4)

  • Maya
  • ゲーム
  • コラム
  • チュートリアル
  • 中級者
  • 学生・初心者
  • 教育
  • 映画・TV
Mayaはカスタマイズすることが前提となっているアプリケーションです。いじればいじるほど自分の使いやすい環境となり、効率化が図れます。

今回は個人的によく使っている便利なマーキングメニューを紹介したいと思います。ずらっと並べますので「これは!」と思ったものはコピー&ペーストでマーキングメニューに登録して使ってみてください。

マーキングメニューの作り方や編集の仕方を忘れてしまったら、マーキングメニュー活用方法1・2を参照してみてください。

Isolate Select系

markingMenu3_1.gif


パネルメニューに選択したものだけを表示するIsolate Selectという機能があります。便利なのですがアクセスしにくいので使っていない方もいると思います。マーキングメニューにするとアクセスしやすくなるので使用頻度もおのずと高くなり、かなり楽に作業できるようになります。

Isolate Selected機能
string $panel = `getPanel -wf`;
int $state = `isolateSelect -q -state $panel`;
isolateSelect -state (!$state) $panel;
isolateSelect -addSelected $panel;


Load Selected機能
string $panel = `getPanel -wf`;
isolateSelect -loadSelected $panel;
isolateSelect -addSelected $panel;


Add Selected機能
string $panel = `getPanel -wf`;
isolateSelect -addSelected $panel;


Remove Selected機能
string $panel = `getPanel -wf`;
isolateSelect -removeSelected $panel;


ビュー表示やメッシュ表示切り替え系

markingMenu3_2.gif


メインメニューのDisplayの中は頻繁に切り替えれば作業しやすくなるものが多くあるのですが、どうも辿るのが面倒ですし、項目が多いので目的のものに辿り着くのも一苦労。途中でマウスカーソルがメニューから外れてメニューが消えて、また一から辿りなおしとか…。なのでマーキングメニューにまとめておくと便利です。

大抵のものはいったんシェルフに登録してからマーキングメニューに登録すればよいのですが、一応コマンドを列挙しますとこんな感じになります。

CVの表示・非表示
ToggleCVs;


エディットポイントの表示・非表示
ToggleEditPoints;


頂点の表示・非表示
ToggleVertices;


頂点法線の表示・非表示
ToggleVertexNormalDisplay;


フェース法線の表示・非表示
ToggleFaceNormals;


もちろんスクリプトなので
ToggleCVs;ToggleVertices;
という様に複数の機能を一つにまとめて登録することもできます。

一部機能はちょっと複雑で、MELで用意しないといけないので、以下のMELをコピーして使用してみてください。

X-Ray表示のオンオフを切り替えます。
string $panels[] = `getPanel -vis`;
int $i = !`modelEditor -q -xray $panels[0]`;
for ( $panel in $panels )
{
    if ( `getPanel -typeOf $panel` == "modelPanel" ){
           modelEditor -e -xray $i $panel;
    }
}


Wireframe on Shaded表示のオンオフを切り替えます。
string $panels[] = `getPanel -vis`;
int $i = !`modelEditor -q -wos $panels[0]`;
for ( $panel in $panels )
{
     if ( `getPanel -typeOf $panel` == "modelPanel" ){
           modelEditor -e -wos $i $pane
     }
}


選択したメッシュのBackface Cullingの有効無効を切り替えます。
string $list[] = `ls -sl`;

string $buffer[];
tokenize $list[0] "." $buffer;
if ( size($buffer) == 2 ){
  $list = `listRelatives -parent $list`;
  if ( size($list) )
       $list = stringArrayRemoveDuplicates( $list );
  }
}

int $mode = 3; // 3 means "full".
if ( `getAttr ( $list[0] + ".backfaceCulling")` ){
  $mode = 0; // 0 means "off".
}
for ( $node in $list ){
  setAttr ( $node + ".backfaceCulling" ) $mode;
}


キャラクターセレクション

アニメーターの為にキャラクターのリグを選択するためのマーキングメニューを用意すれば、効率よく選択が出来ます。

markingMenu3_3.gif


作り方はごく単純で、作業しているキャラクターがいれば、

1 腕や足のリグを選択します。
2 スクリプトエディタの履歴に「select」という文字で始まって、選択したノード名が含まれている行があるのでそれを選択。
(例えば select -r joint1;)
3 Edit Marking Menuの登録したいところに中マウスボタンのドラッグ&ドロップでスクリプトを持っていって登録。

もし直接MELを書くのなら以下の様にやってみてください。
基本的には、
select -add Hip;


もしくは
select -add WristR;
select -add HandR;


か、ひとまとめにして
select -add WristR HandR;


という風に選択したいノード名をselect -addの後ろからセミコロンの間に書けばOKです。

ランチャー

これはちょっとマニアックですが、Mayaをランチャーとして使用できます。

markingMenu3_4.gif


フォトショップCS3を起動する場合はこんな感じにしてます。
python("import os");
python("os.startfile('C:/Program Files/Adobe/Adobe Photoshop CS3/Photoshop.exe')");


実行したいアプリケーションやファイルへのパスを指定しなおせば何でも起動できます。¥を/(バックスラッシュ)に置き換えないと上手く動作しませんので気をつけてください。

ちなみに余談ですが、8キーを押すとペイントエフェクトモードになりますね。私のMayaではshift + 8 でMudboxが立ち上がります…。あたかもアルチザンツールの延長のような雰囲気で、気軽に使えていい感じです。(2011では直接Mudboxにモデルを持っていけるようになっています。)

まとめ

今回は様々なタイプのコマンドをマーキングメニューに設定してみました。直にスクリプトを書くことでより複雑な処理を行うことができることもできるので、可能性は大きく広がります。

マーキングメニューはprefs/markingMenusフォルダ内にプリファレンスとしてmelファイルに保存されているので、これを社内で配布すれば「便利だけど複雑」なマーキングメニューも簡単に利用できるようになります。

例えば今回紹介したようなマーキングメニューをいろいろ取り揃えて配布するとします。Mayaを起動すればMarking Menu Editorに配布したものがすべて自動的に表示されます。あとはユーザーがマーキングメニューをどこに割り当てるか、ホットキーでもホットボックスでも好きなところでいいので、自由に割り当てて使うことができます。こうすることでMayaならではの自由さを保ちながらより便利に作業できるようになります。

さて、意外と長くなってしまったマーキングメニュー話。次回デフォルトのマーキングメニューを取り上げてお開きにしたいと思います。ヘルプのどこかに書いてあった気がするけれど忘れがちなデフォルトのマーキングメニュー。いろいろと使い勝手の良いものがあるので紹介して行きたいと思います。
製品購入に関するお問い合わせ
オートデスク メディア&エンターテインメント 製品のご購入に関してご連絡を希望される場合は、こちらからお問い合わせください。