Python 入門

始めに

Python は 汎用のスクリプト言語です。
Python は Windows, Linux, Mac OS X などの主な OS 上でプログラミングを行って、 実行させることができます。 スクリプト言語なので、C++ や Java のようにコンパイルの必要もありません。 OS 固有の機能を使用していなければ、同じスクリプトがどの OS 上でも動作します。 Python によって作成できるプログラムは、ほとんどすべての分野に及びます。 CG、 Web、 データベース、科学計算、などです。
Python はさまざまなアプリケーションソフトをコントロールするためにも使用できます。 代表的なところでは、 Microsoft Word, Excel, Access, Internet Explorerなど 各種 CG ソフトでは Photoshop, Illustrator, Maya, XSI, Hudini, Shade, Blender, Meta Seqoiya, Motion Builder, Poser, Gimp, など

Maya をコントロールする Python

バージョン 8.5 から Maya でも Python が組み込まれて、 MEL に次ぐ第二のスクリプト言語として使用できるようになりました。 Maya に組み込まれた Python は、 MEL によってできることは、ほとんどすべて実行できます。

それだけでなく、Python 独自の以下のような特徴があります。

Maya Python で勉強すること

ここでは Maya のモデリング・アニメーションなどを Python スクリプトを使用して行ない、 MEL ではできないプラグインの作り方、 Maya から独立した Python スクリプトの作り方、 外部のアプリケーションをコントロールする方法などを学びます。

  1. 基本的な Python の使い方・文法を、Maya 上で Python を使って、 簡単なモデリング・アニメーションをすることによって学習します。
  2. Python によってオリジナルの GUI を作る練習をします。
  3. Python でパーティクルなどのダイナミクスを制御するスクリプトを作り、 ダイナミクスの実験をしてみます。
  4. Python によるプラグインの作り方を 〜を例として学びます。
  5. Python による独立したアプリケーションの作り方をレンダリングツールを例として学びます。
  6. Python による外部アプリケーションのコントロール方法を、 Photoshop と Illustrator をコントロールする方法を例として学びます。

Python は非常に多機能なスクリプト言語です。 文法は C++ や Java などに比べれば、シンプルでわかりやすいものですが、 MEL に比べればできることが多い分、覚えることも多くなります。 これから学習することは、Maya で Python を使用する最低限の知識です。 ぜひ参考書や Web を参照して、より深く Python を学習してください。 必ずやっただけの見返りはあるはずです。

Python の概略

Python は 〜 によって構成されています。
コマンドの数は 1000 以上あり非常に種類が多いのですが、もちろん最初から全部覚える必要はありません。 最初は基本的なものから覚えてゆき、後はマニュアルなどを参照しながら Python スクリプト作ってゆけば良いのです。

Python コマンドの種類は以下の通りです。

MEL と Python の同じところと違うところ

後で学習するように、MEL と Python では文法がまったく違います。 しかし、以下のような同じところも存在します。

(同じところ)
(違うところ)

コマンドラインからの実行

Python コマンドを実行するためには様々な方法がありますが、まずは簡単な方法からやってみましょう。
最初に Maya メインウインドウの左下にあるコマンドラインにコマンドを入力する方法で Python コマンドを実行してみます。
[コマンドラインの場所]
なお、以下において Enter キーはキーボードの右端にあるテンキーのものを使うと、 いちいちフォーカスをコマンドラインにあわせる必要が無いので便利です。

  1. コマンドラインの左側に Python と表示されているのを確認します。
    もし、表示が MEL になっていたらマウスクリックによって、Python と表示させておきます。
  2. コマンドラインをマウスによってフォーカスし、カーソルが出ている状態にしてください。
    [コマンドラインにカーソルが出ている状態]
  3. コマンドラインに
    import maya
    と打ち込んで最後に Enter キーを押してください。
  4. 続けて、コマンドラインに
    maya.cmds.sphere()
    と打ち込んで Enter キーを押します。
    [コマンドラインに打ち込んだ sphere コマンド]
  5. すると、半径1の NURBS の球がシーンに現れます。
    [sphere コマンドの実行結果]

次に今作られた球を、Python コマンドを使って移動してみましょう。

  1. コマンドラインに
    maya.cmds.move(3, 0, 0)
    と打ち込んで Enter キーを押してください。
  2. すると球が(3, 0, 0)の位置に移動します。
    [move コマンドの実行結果]
  3. 次に、コマンドラインから
    maya.cmds.move(0, 0, 3
    と打ち込み Enter キーを押しましょう。
  4. 今度は球が(0, 0, 3)の位置に移動しました。
    [move コマンドの実行結果]

作られたオブジェクトを回転、拡大・縮小するには maya.cmds.rotate()maya.cmds.scale() コマンドを使います。

  1. コマンドラインから maya.cmds.rotate(0, 45, 0) と打ち込み、 Enter キーを押します。
  2. 球がローカル座標で Y 軸方向に 45 度回転したはずです。
    [rotate コマンドの実行結果]
  3. 次に、コマンドラインから maya.cmds.scale(1, 2, 1) と打ち込んで、 Enter キーを押します。
  4. 今度は球が Y 軸方向にスケールされます。
    [scael コマンドの実行結果]

今、実行してきたコマンドは普段 GUI のメニューやチャンネルボックス・アトリビュートエディタなどで実行したり、 数値の設定を行ってきた操作ですが、Python コマンドで同様なことが行なえるのがわかったと思います。

Tips

コマンドラインのフォーカスはテンキーの Enter キーを使わないとはずれてしまいますが、 ウィンドウ → 設定/プリファレンス → プリファレンス で インターフェース 中の コマンドライン の フォーカスの保持 にチェックを入れておけば普通の Enter キーでもフォーカスがはずれなくなります。

練習

スクリプトエディタによるコマンドの実行

Python を実行するもう一つの方法としてスクリプトエディタ(Script Editor)があります。
Python スクリプトを作成・実行するときには最も良く使われます。
スクリプトエディタ には以下のような利点があります。

スクリプトエディタ におけるコマンドの実行例

  1. メインウインドウのメニューバーから ウィンドウ → 一般エディタ → スクリプト エディタ によって スクリプトエディター を表示します。
    または、メインウインドウの右下にあるスクリプトエディタアイコン [スクリプトエディタ アイコン] をクリックすることによっても表示できます。
    [スクリプトエディタ ウインドウ]
    2 つに分かれているウインドウの上のウインドウをヒストリウインドウ、 下のウインドウをインプットウインドウと呼びます。
    ヒストリウインドウ
    実行された Python コマンドと、その実行結果を表示します。 エラーがあった場合にはエラーの内容などが表示されます。
    インプットウインドウ
    実行したい Python コマンドを入力・編集するためのウインドウです。
    左に表示されている 1 という数字はコマンドの行番号を表します。
  2. スクリプトエディターのインプットウインドウにコマンドを入力します。
    ここでは maya.cmds.sphere() と入力してみてください。
    [スクリプトエディタ に sphere コマンドを入力]
  3. 入力したコマンドは以下のいづれかの方法で実行します。 実行すると図のようにヒストリウインドウに表示されるはずです。
    [スクリプトエディタ で maya.cmds.sphere() コマンドを実行]
    ヒストリウインドウの // 結果: の右に、 作られた球のノード名 nurbsSphere1, makeNurbsSphere1 が表示されているのに注意してください。 このように Python コマンドを実行すると // 結果: // の間にコマンドが返してくる文字列・数値などが表示されます。
  4. 半径 1 の NURBS の球がシーンに現れます。

スクリプトエディタのメニューとツールバーについての解説は次回におこないます。

Tips

スクリプトエディタ のインプットウインドウにコマンドを入力して実行する時に、 実行するコマンドをマウス左ボタンで選択しておくと、 実行した後もインプットウインドウにコマンドが残ったままになるので、 同じコマンドを連続して実行したい時に便利です。

練習

シェルフへのコマンドの登録

スクリプトエディタ のヒストリウインドウ・インプットウインドウに表示されているコマンドはシェルフに登録しておいて後で実行することができます。
同じコマンドを何度も実行する必要がある場合には便利です。
また、シェルフに登録しておいたコマンドを スクリプトエディタ にコピーすることも可能です。

シェルフへの登録例

スクリプトエディタ に表示されている適当なコマンドをシェルフに登録してみましょう。

  1. スクリプトエディタ のヒストリウインドウ、またはインプットウインドウに表示されているコマンドでシェルフに登録したいコマンドをマウス左ボタンで選択します。
    [選択されたコマンド]
  2. 選択された部分の上部分でマウスの中ボタンをクリックし、ドラッグアンドドロップでシェルフまで移動します。
    [ドラッグアンドドロップの図]
  3. シェルフに新しいアイコンが作られます。
    [新しく作られたアイコン]
  4. そのアイコンをクリックすると登録したコマンドが実行されます。

逆にシェルフに登録したコマンドを スクリプトエディタ にコピーしたい場合は、 コピーしたいシェルフのアイコンの上でマウス中ボタンをクリックし、 ドラッグアンドドロップで スクリプトエディタ のインプットウインドウへ移動します。
[シェルフから スクリプトエディタ へのコピー]

また、不要になったシェルフのアイコンはシェルフの右にあるゴミ箱アイコン [シェルフのゴミ箱アイコン] にマウス中ボタンでドラッグアンドドロップすれば消去することができます。

Tips

マウス左ボタンで スクリプトエディタ 内のコマンドを選択する場合に、 以下の方法を知っておくと効率良く選択することができます。

まとめ

参考



Home | Contents
Mail