テクスチャの変更

2010/7/23

Blender2.49

VideoTexture モジュールを使うとできた。

キーボードでtex1.pngとtex2.pngを切り替える。

cont = GameLogic.getCurrentController()
obj = cont.owner

target_material = "Material"
imgs = ['tex1.png','tex2.png']

def init(im_file):
    import VideoTexture

    matID = VideoTexture.materialID(obj,"MA"+target_material)
    texture = VideoTexture.Texture(obj, matID)

    im = GameLogic.expandPath(im_file)
    texture.source = VideoTexture.ImageFFmpeg(im)
    obj["texture"] = texture
    obj["texture"].refresh(True)

def change(im_file):
    im = GameLogic.expandPath(im_file)
    obj["texture"].source.reload(im)
    obj["texture"].refresh(True)

def main():
    if not obj.has_key("texture"):
        init(imgs[0])

    sensor = cont.sensors["keyboard"]
    if sensor.positive:
        n = obj["n"]
        if n == 1: obj["n"] = 0
        else:       obj["n"] = 1
        change(imgs[n])

main()

正直、モジュールの使い方わかってないので、他の関数使ったほうがよいのかもしれない。

Dev:Source/GameEngine/2.49/VideoTexture
http://wiki.blender.org/index.php/Dev:Source/GameEngine/2.49/VideoTexture

和訳 VideoTexture モジュール
http://blender.jp/modules/xfsection/article.php?articleid=279

Ash on 3D Graphics Texture plug-in
http://www.ashsid.sk/wp/?p=8