チュートリアル / 読んで触ってよくわかる!Mayaを使いこなす為のAtoZ
第7回:マーキングメニュー活用方法(2/4)
- Maya
- ゲーム
- コラム
- チュートリアル
- 中級者
- 学生・初心者
- 教育
- 映画・TV
今回はさらに便利なマーキングメニューを作ってみたり、マーキングメニューの呼び出し方法を変えてみたりするので、まずは前回行った作業を振り返って見たいと思います。
改めて前回やったことを簡単に並べて見ますと二段階の作業があったことがわかります。
1 マーキングメニュー(クリックした時に出る八方向のアレ)を作る。
2 マーキングメニューの呼び出し方法の設定.。
それぞれを担当しているウインドウは下図の様になっています。
なぜマーキングメニューを用意するのに二段階手順が必要かというと、マーキングメニューの呼び出し方がいろいろあるからです。通常ユーザーが指定できるのは、
・ ホットキーとして出す
・ ホットボックスの一部として出す
の二つです。が、実際にはモデリングビューなどで右クリックした時にもマーキングメニューが表示されますね。なので二段階で設定(マーキングメニュー本体の設定と呼び出し方法の設定)する必要があるのです。
下図の様にオブジェクト上で右クリックすると現れるおなじみのこのマーキングメニューも、ユーザーが作るマーキングメニューと同じマーキングメニューに違いないわけで、呼び出し方法が異なるだけです。
オブジェクトやコンポーネント選択を的確にできるかどうかは3DCGでとても重要です。セレクションマスクとはメッシュだけ選択出来るようにしたり、ロケーターだけ選択出来るようにしたりと選択に制限をかける機能です。
例えばモデリング中はメッシュ、ナーブスカーブのみ選択できるようにし、アニメーション中はジョ イント、ハンドル、ロケーターのみを選択できるようにすることで間違ったものを選択しなくなり、作業効率をアップさせることが出来ます。
セレクションマスクは頻繁に切り替えるうえ、切り替えるモードの種類も複数必要なのでマーキングメニューを利用するのがベストです。
ホットボックスの西側を左クリックするとデフォルトのセレクションマスクが表示されます。が、ユーザーごとに欲しい機能が微妙に異なるので、独自のセレクションマスクに置き換えてみましょう。
こんな感じのメニューを作っていきます。
まずは前回を参考に、空のマーキングメニューを用意してください。名前はMySelectionMaskとしておきます。
前回はシェルフボタンをマーキングメニューに登録しましたが、今回はMELを直に登録します。
1 スクリプトエディターを開く。
2 以下のMELをスクリプトエディターにペーストする。(これがセレクションマスクのテンプレートです。)
「-handle 0」など書いてあります。このハイフンの後ろに書いてある名称がマスクの項目で、スペースを空けて書いてある「0」「1」は、マスクが有効かどうかです。
例えば「-handle 0」は「ハンドルを選択できないようにする」という意味です。「-polymesh 1」は「メッシュを選択できるようにする」という意味です。そんな感じで、どれを選択可能にしてどれを選択できないようにするか、0と1を書き換えることで決めることが出来ます。
3 スクリプトエディタのMELを選択して、中マウスボタンでドラッグしてマーキングメニューに登録する。
4 登録したアイコンを右クリックして、Edit Menu Item...を選択してメニュー編集ウインドウを開く。
5 LabelをMeshに書き換える。
6 Save and Close する。
7 Click Here to Testでマーキングメニューが効いているかどうかチェック。
Meshを実行すると、ステータスラインのアイコンのオンオフが切り替わります。
8 Saveボタンで保存。
こんな風に簡単にセレクションマスクを作ることができます。アニメーション用なら handle、ikHandle、jointなどを1にすればいい感じのセレクションマスクを作れます。
うっかりしがちなのですが、全て選択できる状態に戻すコマンドも必要です。以下のMELを先ほど同様に登録しておきましょう。
setObjectPickMask "All" 1;
updateComponentSelectionMasks;
updateObjectSelectionMasks;
よく使う機能は東西南北に割り当てることをお忘れなく。
1 Marking MenusウインドウでMySelectionMaskを選択。
2 Use marking menu in で Hotboxを選択。
3 Hotbox regionがWestになっているのを確認。
4 Mouse button(s)のLeftにチェックを入れる。(ということはマウスボタンの右中左でマーキングメニューを切り替えることも出来ます)
5 Apply Settingsを押す。
ホットボックスを表示してみるとこんな感じになります。
ホットボックスの西側にはもともと、デフォルトで用意してあるセレクションマスクが登録されているのですが、これで晴れて自分のセレクションマスクに置き換えることが出来ました。後は使い勝手を確認しながらカスタマイズしてみてください。
次回はさらに他のマーキングメニュー例を紹介していきます。今回細かい登録方法が分かったと思いますので、ザッとコマンドを紹介していく感じになります。
マーキングメニューの作成と登録
前回はマーキングメニューを簡単に作ってみましたが、なんだか手順が多かったですね。改めて前回やったことを簡単に並べて見ますと二段階の作業があったことがわかります。
1 マーキングメニュー(クリックした時に出る八方向のアレ)を作る。
2 マーキングメニューの呼び出し方法の設定.。
それぞれを担当しているウインドウは下図の様になっています。
なぜマーキングメニューを用意するのに二段階手順が必要かというと、マーキングメニューの呼び出し方がいろいろあるからです。通常ユーザーが指定できるのは、
・ ホットキーとして出す
・ ホットボックスの一部として出す
の二つです。が、実際にはモデリングビューなどで右クリックした時にもマーキングメニューが表示されますね。なので二段階で設定(マーキングメニュー本体の設定と呼び出し方法の設定)する必要があるのです。
下図の様にオブジェクト上で右クリックすると現れるおなじみのこのマーキングメニューも、ユーザーが作るマーキングメニューと同じマーキングメニューに違いないわけで、呼び出し方法が異なるだけです。
セレクションマスクのマーキングメニューを作る
ではマーキングメニューの構造が分かったところで、より便利なマーキングメニューを製作していきましょう。オブジェクトやコンポーネント選択を的確にできるかどうかは3DCGでとても重要です。セレクションマスクとはメッシュだけ選択出来るようにしたり、ロケーターだけ選択出来るようにしたりと選択に制限をかける機能です。
例えばモデリング中はメッシュ、ナーブスカーブのみ選択できるようにし、アニメーション中はジョ イント、ハンドル、ロケーターのみを選択できるようにすることで間違ったものを選択しなくなり、作業効率をアップさせることが出来ます。
セレクションマスクは頻繁に切り替えるうえ、切り替えるモードの種類も複数必要なのでマーキングメニューを利用するのがベストです。
ホットボックスの西側を左クリックするとデフォルトのセレクションマスクが表示されます。が、ユーザーごとに欲しい機能が微妙に異なるので、独自のセレクションマスクに置き換えてみましょう。
こんな感じのメニューを作っていきます。
まずは前回を参考に、空のマーキングメニューを用意してください。名前はMySelectionMaskとしておきます。
前回はシェルフボタンをマーキングメニューに登録しましたが、今回はMELを直に登録します。
1 スクリプトエディターを開く。
2 以下のMELをスクリプトエディターにペーストする。(これがセレクションマスクのテンプレートです。)
selectMode -object;
selectType -handle 0 -ikHandle 0 -joint 0 -nurbsCurve 0 -cos 0 -stroke 0 -nurbsSurface 0 -po lymesh 1 -subdiv 1 -plane 0 -lattice 0 -cluster 0 -sculpt 0 -nonlinear 0 -particleShape 0 -e mitter 0 -field 0 -spring 0 -rigidBody 0 -rigidConstraint 0 -collisionModel 0 -light 0 -came ra 0 -texture 0 -ikEndEffector 0 -locator 0 -dimension 0;
selectType -handle 0 -ikHandle 0 -joint 0 -nurbsCurve 0 -cos 0 -stroke 0 -nurbsSurface 0 -po lymesh 1 -subdiv 1 -plane 0 -lattice 0 -cluster 0 -sculpt 0 -nonlinear 0 -particleShape 0 -e mitter 0 -field 0 -spring 0 -rigidBody 0 -rigidConstraint 0 -collisionModel 0 -light 0 -came ra 0 -texture 0 -ikEndEffector 0 -locator 0 -dimension 0;
「-handle 0」など書いてあります。このハイフンの後ろに書いてある名称がマスクの項目で、スペースを空けて書いてある「0」「1」は、マスクが有効かどうかです。
例えば「-handle 0」は「ハンドルを選択できないようにする」という意味です。「-polymesh 1」は「メッシュを選択できるようにする」という意味です。そんな感じで、どれを選択可能にしてどれを選択できないようにするか、0と1を書き換えることで決めることが出来ます。
3 スクリプトエディタのMELを選択して、中マウスボタンでドラッグしてマーキングメニューに登録する。
4 登録したアイコンを右クリックして、Edit Menu Item...を選択してメニュー編集ウインドウを開く。
5 LabelをMeshに書き換える。
6 Save and Close する。
7 Click Here to Testでマーキングメニューが効いているかどうかチェック。
Meshを実行すると、ステータスラインのアイコンのオンオフが切り替わります。
8 Saveボタンで保存。
こんな風に簡単にセレクションマスクを作ることができます。アニメーション用なら handle、ikHandle、jointなどを1にすればいい感じのセレクションマスクを作れます。
うっかりしがちなのですが、全て選択できる状態に戻すコマンドも必要です。以下のMELを先ほど同様に登録しておきましょう。
setObjectPickMask "All" 1;
updateComponentSelectionMasks;
updateObjectSelectionMasks;
よく使う機能は東西南北に割り当てることをお忘れなく。
呼び出しの設定を行う
マーキングメニュー本体は完成しましたが、呼び出しの設定を行っていません。ホットキーで呼び出しても良いのですが、今回はホットボックスに登録してみましょう。1 Marking MenusウインドウでMySelectionMaskを選択。
2 Use marking menu in で Hotboxを選択。
3 Hotbox regionがWestになっているのを確認。
4 Mouse button(s)のLeftにチェックを入れる。(ということはマウスボタンの右中左でマーキングメニューを切り替えることも出来ます)
5 Apply Settingsを押す。
ホットボックスを表示してみるとこんな感じになります。
ホットボックスの西側にはもともと、デフォルトで用意してあるセレクションマスクが登録されているのですが、これで晴れて自分のセレクションマスクに置き換えることが出来ました。後は使い勝手を確認しながらカスタマイズしてみてください。
まとめ
これでマーキングメニューの作成、MELをメニューに登録する方法、ホットボックスから呼び出す方法をマスターしました。これだけできるようになれば普段使いで困ることはないでしょう。バリバリ使用してマーキングメニューを使いこなしてみてください!次回はさらに他のマーキングメニュー例を紹介していきます。今回細かい登録方法が分かったと思いますので、ザッとコマンドを紹介していく感じになります。