日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年12月5日土曜日

MayaのGUIはMELで作られている?

Mayaを使用するときには、通常ユーザーインターフェイスを通して、何らかのコマンドを実行することがほとんど。

すべてのキー入力とマウス操作は、コマンドを実行する。

そのコマンドが、さらに複数のコマンドをひとまとめにした一つのスクリプトを実行するケースもある。


コマンドを実行する方法は以下の通り。

ショートカット(キーボード)
アイコンのクリック(マウス)
メニュー(文字)のクリック(マウス)

そして実行されるコマンドは「MEL」コマンドである。
このことはスクリプトエディターの出力Windowを見ればわかるので、特に抵抗なく理解できる。


Mayaの操作において、これだけは「MEL」が使われないという一つの例外がある。

それは、Mayaを起動するときにクリックするアイコン(またはメニュー)はWindowsをはじめとする各OSの機能であり、それによって実行されるのは「Maya.exe(windowsの場合)」というそのOS用のソフトウエアである。
当たり前のことだが、これはWindowsのプログラムであり、「MEL」ではない。
「Maya.exe」が実行された後、GUIの「MEL」が自動実行されてレイアウトされたGUIが表示される。
これが順番である。

さて、このMayaのGUIは「MEL」で作られているということが普通に説明されていることだが、これには前々からいつも違和感を感じていた。

どんなソフトウエアでもGUIはOSによってコントロールされ、表示されている。
Mayaも例外ではないはずだ。
というのは、メニューの文字やWindowのレイアウト自体をみれば一目瞭然、他のソフトウエアと同じだからだ。

だからといって、「MayaのGUIはMELでは作られてない」とも言えない。
しかしながら「MayaのGUIはMELで作られている」という表現は「MayaのGUIはすべてMELによって作成、表示されている」という混乱を招いている思う。


実際「MEL」がGUIを作って、表示しているというのは、正確ではないだろう。
「MELがMayaというソフトウエアを通して、OSのGUIに関するAPIを使って表示している」ということを簡単に言い表した結果だと思う。

どこまでがOSのAPIに依存しているのかはわからないが、かなりの自由度がMELに残されているのはわかる。

OSのAPI >Maya >MayaのAPI >MEL
という段階になっていると思う。

WindowsのAPIを直接操作しても良いのではないかという考えもあるが、そうするとちょっとしたWindowsの作成や変更にも毎回、C言語を使い、プログラミング、コンパイルをする必要がある。
それにはC言語の知識が必要となり、こまかな微調整も簡単ではない。


MELコマンドでMaya内のwindowのコントロールができるようにすることで、コマンド自体の構成や必要なオプションを最小限にし、より簡単にすることができる。
C言語のソフトを起動したり、コンパイルの手間もかからないのでトライ&エラーが簡単にでき、完成までの時間も節約できる。

ユーザーはWindowのサイズや形状、内部レイアウト、メニューから使用するコマンドとの関係などに集中することができる。

要は、めんどくさいMELのUI関係のコマンドだが、これでもはるかにシンプルになっていると言うことである。



結果的に表示されるGUIはC言語を使用して作られたソフトウエアと同じなので、混同しやすいが。
内部的な動作は、ユーザーとソフトウエアであるMayaの間に「MEL」という層があり、MayaとOSの間にAPIという層がありそれらを通して実行されている。

ユーザーの立場から不要と思われる知識を取り除きシンプルに説明すればMayaのGUIはMELで作られているということになる。
レイアウトや機能は実際「MEL」によって指示しているので間違いではない。
ただもう少し正確に言うなら「MEL」とOSのAPIのコラボレーションによって作られているとか、「MEL」を使ってAPIに指示することによって作られているとしたほうが自分にとってはしっくり来る。

もっと極端なたとえで言うと「トランスフォーマー」はマイケルベイが作ったと言われているが
実際はマイケルベイと多くのアーティスト、スタッフによって作られているということか??

(2010年11月8日 一部修正)

0 件のコメント:

コメントを投稿