Doc:JA/2.6/Manual/Game Engine/Logic/Controllers/Python

提供: wiki
< Doc:JA‎ | 2.6‎ | Manual‎ | Game Engine‎ | Logic‎ | Controllers
移動先: 案内検索

Python Controller

Pythonコントローラはユーザがプログラムしたスクリプトに従って入力を処理するコントローラです。Pythonスクリプト、またはPythonコードの含まれるファイルを使います。Pythonコントローラには二つのモードがあります。ScriptModuleです。どちらもテキストエディタで書いて.blendファイルの内部に保存することもできるし、外部ファイルにすることもできます。

BGEにおけるPythonについてはここを参照。

BGEのPython APIについてはここを参照。

Script Mode

Scriptモードでは、コントローラはスクリプトにリンクされ、ロジックが進む前にスクリプト全体が実行されます。スクリプトに記述されていることはすべて同じフレームにおいて起こります。そのため、処理の中で同じ値または属性が何度も変わった場合、最終的な結果だけがゲームとして表示されます。たとえばオブジェクトがまず(100.0,100.0,100.0)に移動し、それから(0.0,0.0,0.0)に移動した場合、表示されるのは(0.0,0.0,0.0)への移動だけです。

Module Mode

Blender 2.49からはPythonモジュールコントローラが加わりました。PythonコントローラのドロップダウンメニューでScriptのかわりにModuleを選んでください。そして、そのモジュールのなかで関数を定義し、その関数をコントローラで呼び出します。エディットボックスには“myScript.py”のかわりに“myModule.myFunc”という風に指定します。その関数はコントローラが呼び出されるたびに処理されます。しかし、myFuncのスコープの外にある関数や変数は一度だけしか処理されません。これは最初に一度だけ変数を初期化したい場合に便利です。

Pythonモジュールコントローラが扱える属性の数に制限はありません。つまりパッケージが自動的にサポートされるということです。“myModule.myFunc”と同様に“myPackage.myModule.myFunc”とネストされたパッケージも動作します。“myPackage.myModule.myInstance.myMethod”のようなメソッドも動作します。Pythonコントローラは、一つの引数をとる関数に対す引数として関数に渡されます。

このためライブにスクリプトを編集できます。Pythonモジュールコントローラについてさらに学ぶには、

*Thread http://blenderartists.org/forum/showthread.php?t=156672
*Video http://download.blender.org/apricot/live_bge_edit.ogv