2010年7月19日月曜日

Blender How to use Python script in GameLogic

Blenderのゲームエンジン中でパイソンスクリプトを作動させる方法が、
やっとのことでわかったので、メモです。

今更~なことでしょうから恥ずかしいですが…



まずはBlenderのテキストエディターで
これ(↓)を、apForce01.py として保存します。

import bpy
import bge

def py_H():
cont = bge.logic.getCurrentController()
print("cont = ",cont)
obo = cont.owner
print ("cont.owner.name = ",obo.name)

cact = cont.actuators["pyMotionH"]
print("actuator = ",cact)

#cact.force = (0,-50,0)
cact.torque = (0,0,-5)

py_H()



Logic Editorで、ターゲットにしたいオグジェクトに、(左端の)センサーにAlwaysを作り、controller typeをandにして、すべて”0”(ゼロ)にしたままのMotion actuatorを作って、3つを線でつなぎます。

もう一つSensorを作ります。ここではMouseのLeft buttonにしていますが、なんでもいいです。
で、ここがミソ。controller typeをPythonにします。ふたつをつないで、そしてさらに、さっきのMotionにつなぎます。
このモーションの名前を覚えておいて、上に載せた”cact = cont.actuators["pyMotionH"]” のところに使います。いや、スクリプトに使った名前をここでモーションの名前にしてもいいです。




こんなイモムシみたいなやつをスクリプトで動かそうという目的のための、実験でした。


pを押してゲームを開始しても何もこりませんが、



マウスの左ボタンを押すと、zに-5のトルクが与えられ、Alwaysセンサーによって、motion actuatorが作動するので、先頭がくるくる回ります。



コメントを投稿