モーション研究室

ゲーム業界のモーションデザイナーが書いてるモーション講座

【Python学習】Lv14 MEL エッジカラー変換

スポンサーリンク


Python学習】前回の記事はコチラ▼


Python学習】Lv14 MEL エッジカラー変換

今回は選択ノードを任意のインデックスカラーに変更するMELのご紹介です。
 
 
がその前に、MAYAの既存機能でも色変更は可能ですので、まずはそこから。

ノード選択>アトリビュートのDisplay>Drawing Overrides のEnable Overridesをチェック > Color


ココで色を変える事ができます。
しかし、スライダーは目的色に到達するまでに時間がかかり過ぎてイライラの原因に...
  
また別の方法でもワイヤーフレームの色は変えられます。

MAYA上部メニューから Display>Wireframe Color...


 

Wireframe ColorのUIのように色別表示されている方が素早く変更できて良さそうです!
選択できる色数は少ないですがダブルクリックで色変更は可能。
人によってはこれで十分かも知れませんね。
 
しかし、Wireframe Colorは以下の2点が個人的に十分と言えず使用していません。

・Drawing Overridesの色を変えている訳ではない
・個人の環境によって色設定がバラバラになりがちなので統一が難しい

惜しい...
  

最後にAmaterasuのDisplay Colorのご紹介です。 
Display Color | KIWAMIDEN

これで十分!これが完璧! 理想形です。
なのですが、Python!!
しかもコード未公開なので、カスタムは今の私のレベルでは到底無理な話です。
 
という事で目標が定まりました!

目標

・MELでAmaterasuのDisplay Colorみたいなのを作る!
・RGBは不要なのでインデックスのみに絞る!

 
 
 
そして数日後、、、
 
  
 
▼▼▼ 試行錯誤の上、何とか出来たのがコチラです ▼▼▼

ChangeEdgeColor

シェイプノードの色(Drawing Overrides)を変更するツールセットです。
 
・素早く目的の色にアクセスできます。
・まとめて選択して色を変える事もできます。 

【ダウンロードはコチラから】
tk_ChangeEdgeColor.mel

  
そしてコードです。 
 
またもやSwitch式で書いています。
そしてガーっと長く書いてはいますが中身は至極単純 以下のコマンドを繰り返しているだけ

string $NODE_LIST[] = `ls -sl`;
string $NODE_NAME;
	for($NODE_NAME in $NODE_LIST){
		setAttr ($NODE_NAME + ".overrideEnabled") 1 ;
		setAttr ($NODE_NAME + ".overrideColor") 13 ; 
		}

"13"(赤)の部分を他の数字に変えれば色が変わります。
  

ちなみにインデックスカラーを表示するだけなら以下のコードでできます。

{
	int $i;

	window;
	columnLayout;
	string $colorPalette = `palettePort 
		-dimensions    16 2
		-width         (16 * 20)
		-height        (2 * 20)
		-transparent   0
		-topDown       true
		-colorEditable false`;
	for($i = 1; $i <= 31; $i++)
	{
		float $col[] = `colorIndex -query $i`;
		palettePort -edit -rgbValue $i $col[0] $col[1] $col[2] $colorPalette;
	}
	showWindow;
}


 
ただ、これは『表示するだけ』でこれをボタンに活用したり色参照に使用する術が見つからず断念。
しかしインデックスカラーは全部で31色あるのねーという事は分かりました。
 
 
コード中に記述しているボタンの色(button -bgc 0.43596 0.189 0.63みたいな)を調べる方法は以下のやり方で調べました。

colorIndex -q ここに数字書く


これでインデックスカラーの数字に当てられている-bgcの数値が分かります。
  
 
以上となります。
 
いやー、絶対もっとキレイな記述方法あると思うんですけどねー...
お恥ずかしい限りですが、動くからいいじゃん!の精神で今のところやってます。
いずれ書き直す前提で晒しておきますね。
  
上級者の人が見たら凄く汚いコードなんだろうなーと思ってますw

参考になったサイト紹介

前回に引き続き今回もMEL作成にあたって凄く参考にさせて頂いたサイトのご紹介。

Hossan Maya Mel etc... practice
元となった、そしてきっかけとなった『ほっさん殿』のページです。
このページに辿り着いていなければ完成にはなかなか至ってなかったと思います。

MEL Tips
以前も書きましたが様々な情報のお陰で答えに早く導いてくれたような気がします。

Display Color | KIWAMIDEN
本文中にもご紹介しておりますが、目指すべき指針となったツールです。
いずれはこのコードに近づきたいですね。

まとめ

以上。【Python学習】Lv14 MEL エッジカラー変換でした。
 
これで自作した3箇所の紹介が終わりましたので以下の本を読み進めようと思います。

 
次の目標は 制作したMELをPython化してみるですかね。
PythonをMELにするのは既にやってみて出来たので逆も既に出来そうな気はしていますが
 
単純に 読みたいから読みます!

次回

未定です。上に書いたような事をやるかそうでないか。


プライバシーポリシー お問い合わせ