簡単なスクリプト
Pythonスクリプトとは
Python 関数はファイルに書いておくと スクリプト エディタ から読み込むことによって、
何度でも同じ関数が実行できます。
Python 関数などが書き込んであるファイルを Pythonスクリプトと言います。
ファイルに書いておけば、そのファイルを消さない限り何度でも同じ Python スクリプトを実行できるし、
後で必要に応じて書き換えてゆくことによって違う処理を実行することができます。
そして、後で学習するように変数・制御構造などを使用することによって、
複雑な処理を行うプログラムを作ることができるようになります。
また、Python のスクリプトはファイル名を変えれば同じフォルダーに、いくつでも作っておくことができます。
作業用のフォルダー作成
これから授業を進めてゆく時の作業用フォルダーとして Python という名前のフォルダーを作成しておきましょう。
以後の授業で作成する Python スクリプトはすべてこの Python フォルダーの中に作るようにします。
スクリプトを作ってみる
スクリプトの作り方と実行例
まず、簡単な Python スクリプトを作る練習をしてみましょう。
- まず、Python フォルダーの中に test.py というファイルをエディター(gvimなど)によって作ります。
- ファイル(test.py)の内容は、以下のように書いておきます。
import maya.cmds
maya.cmds.sphere()
maya.cmds.scale(1, 3, 1)
- ファイルを test.py というファイル名でセーブします。
- スクリプト エディタ から test.py を読み込んで実行します。
- スクリプトのロード による方法
- スクリプト エディタ の
または、ツールバーの
によってファイルを読み込みます。
- 読み込んだスクリプトが スクリプト エディタ のインプットウインドウに表示されます。
- 必要ならば読み込んだスクリプトを書き換えます。
- テンキーにある Enter キーで実行します。
- y 軸方向にスケールがかかった球が表示されます。
- もう一度、エディタによって test.py を開いてください。
そして、test.py の内容を以下のように書き換えます。
import maya.cmds
maya.cmds.sphere()
maya.cmds.scale(2, 1, 1)
maya.cmds.move(3, 0, 0)
- 書き換えたら、ファイル(test.py)をセーブしてください。
- 書き換えられた Python スクリプトは、あらためて スクリプト エディタ に読み込んで実行する必要があります。
によって読み込んで実行してください。
- 2 個目の球が表示されます。
スクリプトの保存方法
スクリプト エディタ 内に表示されているコマンドをファイルに保存することができます。
保存しておいたファイルは上記の方法によっていつでも実行できます。
- スクリプト エディタ のインプットウインドウに以下のようなコマンドを打ち込んでください。
- 打ち込んだコマンドをマウスで選択します。
- スクリプト エディタ の によってファイルに保存します。
保存するファイル名は最後に .py をつけた名前にします。
ここでは test2.py にしておいてください。
- では、保存した Python スクリプトを読み込み直して実行してみましょう。
(2, 3, 4) の位置に球が表示されたでしょうか。
スクリプト エディタ の メニュー
スクリプト エディタ のメニューおよび、アイコンについて一通り説明しておきましょう。
-
- スクリプト エディタ に Python スクリプトを読み込み、インプットウインドウに表示します。
表示された Python スクリプトを実行するにはテンキーの Enter キー、
または、Ctrl + Enter キーを押します。
キーボードショートカットは Ctrl+o です。
-
- 読み込んだ MEL スクリプトを実行します。
-
- スクリプト エディタ 上で選択された部分の Python スクリプトをファイルに保存します。
キーボードショートカットは Ctrl+s です。
-
- スクリプト エディタ 上で選択された部分の Python スクリプトを シェルフ に登録します。
マウスのドラッグ・アンド・ドロップによっても同じことが可能です。
-
- 編集した部分を取り消して、元に戻します。
ショートカットキーは Ctrl+z です。
-
- 取り消した編集をやり直します。
ショートカットキーは Ctrl+y す。
-
- 選択した部分を切り取ります。
ショートカットキーは Ctrl+x です。
-
- 選択した部分をコピーします。
ショートカットキーは Ctrl+c です。
-
- 切り取ったりコピーした部分をカーソルの位置に貼り付けます。
ショートカットキーは Ctrl+v です。
-
- インプットウインドウに表示された Python コマンドを全て選択状態にします。
ショートカットキーは Ctrl+a です。
-
- カーソルを指定した行に移動します。
ショートカットキーは Ctrl+l です。
-
- 検索した文字を別の文字に変換します。
ショートカットキーは Ctrl+f です。
-
- 選択された行をインデントします。
ショートカットキーは Ctrl+] です。
-
- 選択された行のインデント取り消します。
ショートカットキーは Ctrl+[ です。
-
- ヒストリーウインドウをクリアします。
-
- インプットウインドウをクリアします。
-
- ヒストリーおよびインプットウインドウをクリアします。
-
- バッチ レンダー時のログをヒストリウインドウに表示します。
-
- チェックしておくと実行された MEL コマンドをすべてヒストリーウインドウに表示します。
GUI の操作によって実行された MEL コマンドがすべて表示されるようになります。
-
- チェックしておくと MEL スクリプトにエラーがあった場合、エラーのあった行番号を表示します。
MEL スクリプトのデバッグに便利なので必ずチェックしておきましょう。
これをチェックしておくと、以下の図のようにエラーのある行数が表示されるようになります。
上の図では、2行目(line 2)にエラーがあるのがわかります。
エラーメッセージの プロシージャ "moove" が見つかりません というのは、
そのようなコマンド(moove)は存在しないという意味です
-
- チェックしておくと不明の MEL コマンド・プロシージャーなどがあった場合、エラーのトレース結果を別ウインドウに表示します。
-
- コマンドの結果をヒストリウインドウに表示します。
サブメニューにおいて、
にチェックを入れると MEL と Python の両方、
にチェックを入れると MEL コマンドの結果のみ、
にチェックを入れると Python コマンドの結果のみを表示します。
-
- MEL および Python コマンドを実行した結果(// 結果:)が表示されなくなります。
-
- コマンドを実行した結果のメッセージ・エラーメッセージ・警告メッセージ以外の、
さまざまな情報が表示されなくなります。
-
- 警告メッセージ(// 警告:)が表示されなくなります。
-
- エラーメッセージ(// エラー:)が表示されなくなります。
-
- スタックウインドウを表示しなくなります。
-
- スクリプト エディタのインプットウインドウに新しいタブを追加します。
このメニューを選ぶと、以下のダイアログが表示されるので MEL か Python を選ぶと、
選んだ言語を入力することのできるタブが追加されます。
-
- タブの名前を変更します。
-
- 現在のタブを変更します。
サブメニューの で左のタブへ、
で右のタブへ移ります。
-
- 現在のタブを削除します。
タブが 1 つしかない場合は削除できません。
-
- インプットウインドウの行番号を表示します。
-
- コマンドの簡単なヘルプを表示できるようになります。
クイックヘルプに調べたいコマンド名を入力して
Enter キーを押すとフラグの一覧が表示されます。
-
- インプットウインドウに表示されている Python スクリプトを実行します。
選択されている関数があれば、その関数だけが実行され、
選択されている関数がなければ、スクリプトすべてを実行します。
テンキーにある Enter キー、または Ctrl + Enter によって実行するのと同じです。
-
- ブラウザに Maya のヘルプを表示します。
-
- ブラウザに MEL のヘルプを表示します。
-
- ブラウザに Python のヘルプを表示します。
-
- ブラウザに スクリプト エディタのインプットウインドウで選択されているコマンドのヘルプを表示します。
-
- ブラウザに スクリプト エディタ のヘルプを表示します。
-
- ブラウザに MEL コマンドリファレンスを表示します。
-
- ブラウザに Python コマンドリファレンスを表示します。
-
- ブラウザにノード&アトリビュートリファレンスを表示します。
-
- Maya のメニューから探したい文字列を含むものを検索します。
ツールバー
- スクリプト エディタ に Python スクリプトを読み込み、インプットウインドウに表示します。
と同じです。
- 読み込んだ MEL スクリプトを実行します。
と同じです。
- スクリプト エディタ 上で選択された部分の Python スクリプトをファイルに保存します。
と同じです。
- スクリプト エディタ 上で選択された部分の Python スクリプトを シェルフ に登録します。
と同じです。
- ヒストリーウインドウをクリアします。
と同じです。
- インプットウインドウをクリアします。
と同じです。
- ヒストリーおよびインプットウインドウをクリアします。
と同じです。
- ヒストリウインドウのみを表示します。
- インプットウインドウのみを表示します。
- ヒストリウインドウ、インプットウインドウの両方を表示します。
- チェックしておくと実行された MEL コマンドをすべてヒストリーウインドウに表示します。
と同じです。
- チェックしておくと MEL スクリプトなどにエラーがあった場合、エラーのあった行番号を表示します。
と同じです。
- インプットウインドウに表示されている Python スクリプトを実行します。
実行された Python スクリプトはインプットウインドウに残ります。
- インプットウインドウで選択されている Python スクリプトを実行します。
と同じです。
- このアイコンの左にあるテキスト入力エリアに入力されている文字列を下方向に探します。
- このアイコンの左にあるテキスト入力エリアに入力されている文字列を上方向に探します。
- このアイコンの左にあるテキスト入力エリアに入力されている行数の行に移動します。
Tips (デバッグ方法)
Python スクリプトにエラーが出た時は以下のような手順で調べてデバッグ(エラーを修正)してください。
- 以下のようなスクリプトを実行したとします。
import maya.cmds
maya.cmds.sphera()
maya.cmds.move(3, 0, 0)
- エラーのある行番号とエラーの理由を調べます。
ヒストリーウインドウに
# エラー: 'module' object has no attribute 'sphera'
# Traceback (most recent call last):
# File "", line 2, in ?
# AttributeError: 'module' object has no attribute 'sphera' #
などというエラー表示が出ているはずです。
この場合は
# File "", line 2, in ?
という表示によって 2 行目にエラーがあるのがわかります。
# エラー: 'module' object has no attribute 'sphera' #
と表示されているので、"sphera" という部分がおかしいのがわかります。
- 2 行目を調べてエラーを見つけたら、その箇所を直します。
上の例では sphera の関数名を正しい名前(sphere)に変更すれば良いでしょう。
- この例ではすぐにエラーの理由がわかりましたが、もし、いくらエラー表示の出ている行を調べてもエラーが見つからない場合は、
その行目より前の行を順番に調べてみてください。
エラーの表示は文法的に矛盾が見つかった行に出るので、その行より前の部分にエラーがある場合があります。
練習
- 上のスクリプト (test.py) の内容を書き換えて実行してみましょう。
たとえば maya.cmds.move()、maya.cmds.scale()、maya.cmds.rotate() や maya.cmds.cone() その他のプリミティブを作る関数を付け加えてましょう。
- スクリプト エディタで読み込んだコマンドを スクリプト エディタ 内で書き換えて実行してみよう。
プリミティブの種類を変えたり、位置や大きさを変えてみよう。
- 次に書き換えたスクリプトを別のファイルに保存してみよう。
保存したファイルをエディタで適当に書き換えて、もう一度 スクリプト エディタ で読み込んで実行してみよう。
まとめ
- スクリプト エディタ によって Python コマンドを書き込んだファイル (Python スクリプト) を読み込んで実行できます。
- Pythonスクリプトのファイル名には最期に .py をつけておきます。
- スクリプト エディタ に表示されているコマンドはファイル(Python スクリプト)に保存することができます。
参考
Prev | Next
Home | Contents
Mail