モーション研究室

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

【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にするのは既にやってみて出来たので逆も既に出来そうな気はしていますが
 
単純に 読みたいから読みます!

次回

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


【Python学習】Lv13 MEL ロック&ハイド


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


Python学習】Lv13 MEL ロック&ハイド

少し前までLockとHideをする際は『rig101 LocknHide』を利用させて頂いていました。


とても便利ではあったのですが、個人的に少し改善したい箇所がありました。

それは、UIの占有率が大きいのと1ボタンでON/OFFを切り替えたいの2点です。

LockHide

個人的にシンプルにまとめたのがコチラ↓

 
コンパクトな似たようなツールを探してはみたのですが、なかなか見つからず、、、
自力で何とか作成する事ができました。個人的に気に入ってますw
 

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

  
中身です。 
前回同様にSwitch式で書いてます。(これしか知らないんです!!w)

絶対スマートな書き方があると思ってますのでもっとスッキリした書き方があれば教えて下さい!!

まとめ

以上。【Python学習】Lv13 MEL ロック&ハイドでした。
 
自分でツールを作ると愛着が湧きますねー
 
特にGUI(Graphical User Interface)。
どういう風にボタン等のレイアウトを配置したら使いやすいか、色は何が良いか。
それを考えている時間が楽しいです♪
  
一通り組みたいMELを組み終えたら、まだ読んでいないもう1冊の本を読み始めようかなと思います。

次回

次回も引き続きMELのご紹介 次は『エッジカラーのボタン化』について書きます。


【Python学習】Lv12 MEL 回転とミラー


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


Python学習】Lv12 MEL 回転とミラー

前回の投稿から4日。
レイアウト含め、課題としていた部分の4つを何とかクリアできました。

課 題

・リネームボタンが不完全(選択中のノード名をtextFieldGrpに表示したい)
・カーブの種類をもう少し精査
ワイヤーカラー 色別にボタン化したい 解決!
Freeze TransはフリーズしたくないのでRot,Scaleのみに適用したい 解決!
HIDE & LOCK 1ボタンで ロックと解除の切替方式にしてレイアウトをスッキリさせたい 解決!
現状タブを変えるのが億劫なので、タブレイアウトではなくパネルレイアウトに変えたい解決!

上記のRigSupportのMELはいろいろな方の機能を利用させて頂いてる都合上、公に配布は考えてません。
しかし、デバッグやるよ! スマートな書き方教えるよ!という方がいらっしゃいましたらTwitterでDM下さいmm
まだやりたい事をクリアできていない箇所があるのでアドバイス頂けると嬉しいです^^

 
その代わり自力クリア部分のコードのみ幾つか切り分けて紹介していこうと思います。
(その分、書き方が未熟だと思いますが、、、初心者なのでご容赦を~)

RotMirror

・シェイプノードの回転、ミラーリング、フリーズ(回転、スケール/全て)をやるツールセットです。

自分の探し方が足りなかっただけかも知れませんが、こういう類のツールが見当たらなかったんですよね。

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

  
中身です。 
うわー、、、コードを晒すのは何だか恥ずかしいですね。
未熟さ満開かと思いますが、たぶん動くはず。
 
Switch式で書いてみてます。
45度回転ではなく90度回転にしたい場合は

rotate -r -os 45 0 0;

の"45"のところを"90"に変えれば良いだけです。
 
もっとスッキリした書き方があれば教えて下さい!!

参考になったサイト紹介 パート2

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

Maya Dictionary
Mayaについてのいろいろな情報が盛り込まれています。
ヒントをたくさん頂きました!

MEL Tips

以前も紹介した気がしますが、じっくり読んでみると情報量がとても多く今後も活用できそうです。

まとめ

以上。【Python学習】MEL 回転とミラーでした。
 
自分はまだまだ初心者です。
Pythonの本を読んだのは今年の1月でスクリプトを書き始めたのは4月に入ってから。
なのでスクリプト歴4か月少々のペーペーですが、何とかイメージしていたツールを作る事は出来てます。

学生の頃は美術は得意でしたが理数系は大の苦手でした。
 
自分にはムリだなと思わず、まずはやってみて下さいー!  
これからMEL始めようかなという方の助けになれば幸いです。
  
一通り組みたいMELを組み終えたら、まだ読んでいないもう1冊の本を読み始めようかなと思います。

次回

次回も引き続きMELのご紹介 次は『LOCK&HIDE』の1ボタン切替について書きます。



【Python学習】Lv11 MELでツール作成

f:id:generalion:20200211144152j:plain

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

Python学習】Lv11 MELでツール作成

まずはやってみる!という事でいろいろ参考にしたり
公開されているスクリプトをそのまま使わせて頂いたりして
何とかココまで作成するに至りました。
f:id:generalion:20200425151755j:plain:w200f:id:generalion:20200425151751j:plain:w200

【機能用途】リグを作る際に必要となりそうな機能を一つのツールにまとめる
・カーブ生成+Option ・ノード名のリネーム ・インデックスカラー変更
・ノード回転(45度ずつ) ・ノードのミラー ・フリーズ(T/R/S)
・ノードのサイズ変更(相対) ・ノードの形状入替/インスタンス
・ダミースケルトン生成 ・コンストレイント ・スケルトン生成+IK/ポールベクター
・ロック&ハイド ・コネクション ・ジョイント

やった事

・欲しいツールの選定と内部構造の解読
・土台となるレイアウト作り
PythonからMELにスクリプトを組み換える
・カーブノードを画像アイコン化してみる

今後の課題

・リネームボタンが不完全(選択中のノード名をtextFieldGrpに表示したい)
・カーブの種類をもう少し精査
ワイヤーカラー 色別にボタン化したい 解決!
Freeze TransはフリーズしたくないのでRot,Scaleのみに適用したい 解決!
HIDE & LOCK 1ボタンで ロックと解除の切替方式にしてレイアウトをスッキリさせたい 解決!
現状タブを変えるのが億劫なので、タブレイアウトではなくパネルレイアウトに変えたい 解決!

 
4/10から作り始めたので、制作にだいたい2週間程度といったところです。
作ったといっても、8割(いや9割か?)は公開されているスクリプトをはめ込んでいる状態ですのであまり大した事はした覚えがありません、、、
(あれ、このボタンは見覚えあるなーって方はいると思います。使わせて頂いてますmm)
  
ただツールのレイアウトについてはだいぶ成長した実感があります。
後は内部構造の解読ですね。これも3ヶ月前までは出来ませんでした。
 
まだ欲しい機能はあるので、ここから更にチューニングしていきます。 
  

参考になったサイト紹介

MEL作成にあたって凄く参考にさせて頂いたサイト様です。
本当に感謝感謝です。

MEL Command Reference
兎にも角にもまずはリファレンスですね。一番見ていたと思います。
特にショートネームが良く分かんないのでロングネームの確認をしていました。

CG自習部屋 Mayaの時間 MEL
Ari様
MELの量が膨大なので困った時はAriさんのスクリプトをよく見に行ってます。

Rigging101 - Free Stuff
ここのMELはショートネームではなくてロングネームで書かれていたので理解を深めるのに大変助かりました!

Hossan Maya Mel etc... practice
ほっさん様
私が一番欲していたツールのスクリプトを公開されており本当に助かりました。
MEL作りを始めるきっかけとなりました。有難うございます!

MEL カテゴリーの記事一覧 - D日記
ですぽんた様
非常に便利なスクリプトがたくさんあります。
分からなくて検索するといつも 『D日記』に行きつくので本当凄いなーと改めて実感しております!

MOX-MOTION
アニメーション系のスクリプトが豊富。ノード生成の土台となりました。

Amaterasu
たっくん様
カーブ用のアイコン画像の参考にさせて頂きました。
その他にもAmaterasuは機能が豊富なのでこういうの欲しいなーというヒントを与えて下さいます。

電々伝記: mel
電柱様
実践的なMELがあります。参考にさせて頂きました!

maya_mel - 備忘録 - アットウィキ
WIKIとしていろいろまとめられています。参考になりました。

MELのメモ: 覚書-OBOEGAKI-
フレームのレイアウトや多様なコマンドのメモ書きがあり、凄く勉強になりました!

まとめ

以上。【Python学習】Lv11 MELでツール作成でした。
何となくでも組める事で自信はつきました。
 
作ったのはMELでありPythonではありませんでしたが基本的に似ている部分も多いのでPythonも頑張ればできそう』という域にはあります。まずは作りたいものがあって、それを実現するにはどうすれば良いのかを探る。
引用でも良いので探っているうちにパターンが掴めてきたりします。
  
まずは内部構造がある程度分かるようになる為にも、本を読んだのは良かったですね。
Pythonの本を読んだのですが、結果的にはMELの構造も何となく分かるようになりました^^
 
改めてコチラの本をオススメしておきます。

次回も引き続きMELで作りたいツールを作成しつつ、徐々にでもPython構造に近づいていけたらと思います。

次回




【Python学習】Lv10 MEL

f:id:generalion:20200211144155j:plain

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

Python学習】Lv10 MEL

只今MAYA用にいろいろ試行錯誤しておりますがプログラム、書いております。
 
書いているもののPythonではなくMELです。
Python勉強しているのですが、何故MELをやっているのか。

Pythonより記述が簡単
・参考MELがとにかく多い
・基本的な部分が似ているので入りやすい

というように、まずはMELに慣れ 更に欲が出てきたらPythonも入ってみます。
『こういうの作りたい!』というテーマを見つけ、それに向けての参考MELを探し
内容を少し頂戴するくらいが序盤はいいですね。
いきなり"0"から入るより"5"くらいからスタートの方がハードルは低いですし。
(公開されている方のMEL、とても有難いです!)
 
という訳で参考になったMELのサイトを本日はご紹介したいと思います。

参考になったMEL講座のご紹介

全6時限でのMELの基本紹介です。とても分かりやすいのでオススメです。
 合宿と銘打ってのMEL講座です。
 全8回での講座です。

MEL以外にも様々な情報があります。
REINCARNATION#Tech


様々なTipsがあります。

まとめ

以上。【Python学習】Lv10 MELでした。
  
スクリプトを書き始めましたが、テレワークが始まり仕事とプライベートの境界がボヤけてしまったせいか
進行状況は思うように進んでおりません。平日は進みは遅いですが土日に切り替えて集中的に組んでいきたいと思います!

それではまた次回!! 
   
以下、学習が終わったものをまとめておきます

学習済まとめ

Python入門第1回 Pythonの概要 プログラミングを始めよう!
オススメ度 ★★☆☆☆
媒体:Youtube
感想:専門学校講師の伊沢さんが教えてくれる。中盤以降は超初心者にはちょっと難しかった。

 

プログラミング超初心者が初心者になるためのPython入門  
オススメ度 ★★☆☆☆

媒体:本 
感想:Vol1のみAmazonPrimeで無料。1日もあれば読めます。
   分かりやすい文章だったが、情報がちょっと古いのと文字のみなのでやる気がないと読むのは大変かも。

 

【vol.001】Pythonとは | 中学生でもわかるPython入門シリーズ
オススメ度 ★★★★☆
媒体:Youtube
感想:Google Colaboratoryは少々クセがあるが、とても分かりやすい講義です。

 

たっきゅんのガチンコツール開発部 Maya Python
オススメ度 ★★★★★
媒体:本
感想:MAYAでPythonを扱う前提であればこの本はとても入りやすいです。読んでいるうちに自然とMELも分かってくるので一石二鳥!

 

それではまたある程度進んだらまとめます!

次回


【Python学習】Lv09 ガチンコ10~11章

f:id:generalion:20200211144158j:plain

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

Python学習】Lv09 ガチンコ10~11章

約1ヶ月ぶりのPython編です。
 
3月は実践編を少し更新したいなと、一時勉強を休止。
加えて仕事でリグの知識をもう1段階引き上げたくなりリグの勉強も始まり、
結果 Python勉強から遠ざかってしまいました。
 
でも何とか帰ってきました!
重くなった腰を上げつつ、じわじわと進めていきたいと思います。 
 
▼ただいまこの本を読み進めています!▼

 

第10章~11章

 
第10章 『MAYAコマンドのちょっと小難しい話』
第11章 『Pythonのちょっと小難しい話』
第12章 『PySideのちょっと小難しい話』
 
と、この先の12章も同じく 『ちょっと小難しいシリーズ』が続きます。
 
9章まではプログラムを書きながらのデモンストレーションがメインでしたが、10~12章は書くというよりも、一通り目を通しておくくらいで良さそうです。
分からない箇所があったら必要に応じて思い出してみてね、という温度感となっています。
 
ですので、『もういいから始めちゃいなよ!』ってターンになってきていますね。
f:id:generalion:20200405172159j:plain:w600
このようにやりたい事に応じて説明がされているので書き始めたら大事な章となりそう。
1冊持っておくと重宝しそうなのでオススメと言えます。
 

スクリプトを書き始めます

という事で自分が現在欲しいスクリプトを書いていこうと思います。
途中経過を書くかは分かりませんが、ある程度形になったらお知らせしようかと思います。
 
たぶん最初は0から作り出すのではなく、欲しい機能を集めた継ぎ足しのものになりそう。
とりあえず実行してみます!!

まとめ

以上。【Python学習】Lv09 ガチンコ10~11章でした。
  
前回も書きましたがMAYAでPythonを扱う本としては、比較的分かりやすいので買って損はない本です。
特に10章からの用途別説明は躓いた際にとても役に立ちそうな気がします。
  
もう少しやりたい事が形になってきたら、この本の活用法も更に上がってきそうです。
 
本日は短めですがここまでとします。
それではまた次回!! 
   
以下、学習が終わったものをまとめておきます

学習済まとめ

Python入門第1回 Pythonの概要 プログラミングを始めよう!
オススメ度 ★★☆☆☆
媒体:Youtube
感想:専門学校講師の伊沢さんが教えてくれる。中盤以降は超初心者にはちょっと難しかった。

 

プログラミング超初心者が初心者になるためのPython入門  
オススメ度 ★★☆☆☆

媒体:本 
感想:Vol1のみAmazonPrimeで無料。1日もあれば読めます。
   分かりやすい文章だったが、情報がちょっと古いのと文字のみなのでやる気がないと読むのは大変かも。

 

【vol.001】Pythonとは | 中学生でもわかるPython入門シリーズ
オススメ度 ★★★★☆
媒体:Youtube
感想:Google Colaboratoryは少々クセがあるが、とても分かりやすい講義です。

 
  
それではまたある程度進んだらまとめます!

次回


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