この授業について
始めに
現在では各種の3Dソフトを使用して手軽に3Dのモデリング・アニメーション・レンダリングなどができるようになった。
しかし、映画・ゲームなどの最先端の制作現場では既存の3Dソフトだけでは制作できないシーンを作らなければならない場合が多い。
そのような場合に通常は各種3Dソフトに独自のプラグインを組み込むことによって必要な機能を実現する。
Mayaの場合であればOpenMayaによってプラグインを作ることになるわけである。
ここではOpenMayaのプラグインを制作することによって3Dソフトにおけるプラグインの作り方の一例を学習してゆく。
また、OpenMaya のプラグインに限らず、幅広く CG 制作のためのツールを開発するノウハウもあわせて覚えてゆきたい。
OpenMayaの概略
- OpenMayaはC++言語のライブラリのようなものである。
- OpenMayaによってMAYAに存在するほとんどの機能を使うことができる。
- OpenMayaによってMAYAに存在しない機能を追加することができる。
- OpenMayaのプログラムによって作成されるものには以下の種類がある。
- アプリケーション
MAYAの外部で独立したアプリケーションとして動作するもの。
- コマンド
MAYAにおいてMELコマンドとして動作するもの。
- ノード
MAYAのノードを作成する。
学習事項
この授業で学習することは以下の通り。
- C++言語の基本的な文法
C言語の基本的な文法は理解していることを前提にしてC++の基本的文法などを解説する。
- MELの基本
MELによってGUI(ボタン、スライダーなど)を作る方法。
MELはC言語に文法が似ているのでC言語がわかっていれば覚えやすいはずである。
(実際はC言語とUNIXのシェルを足して独自の機能を加えたようなものになっている)
- OpenMayaをMAYAへの組み込む方法
コンパイル手順、プラグインのロードの方法など。
- OpenMayaのクラス・メソッドの種類
どのようなクラス(オブジェクトの設計図)、メソッド(Cにおける関数のようなもの)があるか。
- プログラミングに役立つツールの使用方法
エディタ(vi), make, CVS, grep, シェル, 各種スクリプト言語 など。
授業の目的
以下の種類のプログラムを一種類以上制作する。
- C++言語と OpenMaya によって制作されたオリジナルのプラグイン
計算などの処理をする部分をC++で作り、各種パラメータをMELによるGUIでコントロールするようなものでも良い。
- プラグインではない OpenMaya 使用の独立したアプリケーション
- OpenMaya を使用しない MEL のみによって作られたツール
- OpenMaya も MEL も使用しない Maya のためのツールプログラム
(使用する言語は問わない)
提出物
一年間の授業の最後に以下のものを提出してもらう。
- プログラムのソース
- もしあれば、プログラムを動作させるために必要なデータ
- プログラムの開発目的・使用方法を記述したドキュメント
提出方法の詳しいことは後に説明する。
注意
必ず全員にプログラムを作ってもらうので、少なくともC言語でプログラムを作る自信がないと授業についてゆくのが難しくなるだろう。
実際のプログラムはC++だがC言語がわかっていればなんとかなるので、C++については知らなくても良い。
(もちろん知っていた方がもっと良い)
必要な知識
- C言語の基本
構造体・ポインターの使い方がわかるレベルであれば、
C++は知らなくても何とかなる。
後はプログラミングを行ないながらオブジェクト指向の考え方を理解すれば良い。
- MAYAの基本操作
モデリング・アニメーション・レンダリングなどの基本概念と操作方法など。
MELについて知っていれば、なお良い。
- プログラミングのためのツールの使用方法
例えば、UNIX(Linux)上でプログラミングを行なう場合、以下のような各種ツールの使用方法に熟練することによって開発効率が大幅にアップする。
- 数学・アルゴリズム
数学はプログラミングの土台となるものである。
そして、アルゴリズムとデータ構造がプログラムの2大要素である。
- プログラマーに必要なもの
参考
C++の参考書については以下の本が最も信頼できるが内容が難しいので、
その他の入門書を適当に選んで読むのが良いだろう。
- プログラミング言語C++ 第3版
- B.ストラウストラップ
アスキー
¥7000
OpenMaya および MEL についての参考書・Web上のリソースにはMAYAのマニュアルおよび
日本電子専門学校用教科書「MEL Users Manual & Reference」
以外には以下のものがある。
なお、以下のWebページも参照のこと。
Web
学校以外でこのテキストを見たい時は、同じ内容のものがインターネット上の以下のアドレスにもあるので参考のこと。
- http://www.not-enough.com/abe/manual/openmaya-au01/
また質問その他がある場合は、阿部先生に直接聞くか、以下のアドレスにメールをすること。
Next
Home | Contents
abe@injapan.net