2015年7月13日月曜日

MayaLT2015:Mel:フラットライトをショートカットに

モデリングしてる時に特にライトを配置していないと、ビューポートのライト表示が「デフォルトライト」か「全てのライト」のどちらかしか選べない!「デフォルトライト」だと妙にハイライト入ってしまうし、「全てのライト」だとそもそもライト置いてないんだし真っ暗。で、フラットライトにしたいんだけど、メニューから選ばなきゃいけない。ワイヤーフレームとテクスチャ表示を行ったり来たりしたいのにこれは非常に面倒くさい。つーか、テクスチャ表示にすると必ず「デフォルトライト」になるのどうにかしてくれ。 かといって、ホットキーの設定をしようとするも、フラットライトの項目が見つからないじゃないか。なんだこれは。 幸い、コマンド履歴がスクリプトエディタで見ることができる。最近MotionBuilderを使っていてコマンド履歴が見えないので、見えるだけでスクリプトを書くテンションが上がるではないか。導入までのアレコレをこれから書いてゆくが、面倒な人のためにとりあえず作ったスクリプトを貼っておく。
string $panel = eval("getPanel -withFocus");
modelEditor -e -dl flat $panel;

■コマンドを探す

さて、まずどうやったかっていうと、スクリプトエディタの履歴をチェックした。
updateLightingMenu MayaWindow|formLayout1|viewPanes|modelPanel4|menu21 modelPanel4;
modelEditor -e -dl flat modelPanel4;
// 結果: modelPanel4 // 
updateModelPanelBar MayaWindow|formLayout1|viewPanes|modelPanel4|modelPanel4|modelPanel4;
dR_setModelEditorTypes;
Mayaのコマンド履歴はどうもゴミが多くて見にくいが、「flat」っていう文字が見つかるので、
modelEditor -e -dl flat modelPanel4;
をコピペして実行してみると、ビューポートが確かに「フラットライト」になる・・・。けど、フラットになるパネルとならないパネルがある。あー、「modelPanel4」というやつは特定のパネルのことを言っているわけね。つーわけで、これをアクティブパネルに変更すればいいわけか。調べると、Graberry | Orthographic を切り替える MELというページを見つけたのでそこから拝借。
string $panel = `getPanel -withFocus`;
この部分は例によってそのままじゃ動かないので、以下のように変更。
string $panel = eval("getPanel -withFocus");
で、「modelPanel4」の部分を「$panel」に変更すれば完成。

■ホットキーに登録

登録するキーはどうせライトを使わないんだし(ゲームの素材を作ってるだけだから)7にしようと思ったんだけど、思いとどまってホットキーがアサインされていない8を使うことにした。自作のスクリプトをどうやって登録するのか・・・しばらくいじって「ホットキーを編集:」というところのドロップダウンメニューに「カスタムスクリプト」という項目を見つけた。んだけどなーんも表示されない。しばらくいじってて右の「ランタイムコマンドエディタ」というところに記入して保存したら出てきたので、それを登録。動いた。「カスタムスクリプト」と書いておきながら「ランタイムコマンド」ってどういうことよ・・・?と少々苦笑いしつつ完成。
 
うむ。快適。

0 コメント:

コメントを投稿