「Doc:JA/2.6/Manual/Game Engine/Logic/Controllers/Python」の版間の差分
(separated from Game_Engine/Logic/Controllers) |
細 (1版 をインポートしました) |
(相違点なし)
|
2018年6月29日 (金) 05:56時点における最新版
Python Controller
Pythonコントローラはユーザがプログラムしたスクリプトに従って入力を処理するコントローラです。Pythonスクリプト、またはPythonコードの含まれるファイルを使います。Pythonコントローラには二つのモードがあります。ScriptとModuleです。どちらもテキストエディタで書いて.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