カメラ出力を任意の領域に表示

2010/8/11

Blender2.49

CameraオブジェクトのViewportを設定してやると、プレイ画面の任意の領域に、指定したカメラの出力を表示することができる。

camera = GameLogic.getCurrentController().owner

#Viewportを有効に
camera.useViewport = True

#表示させる領域を指定
camera.setViewport(left, bottom, right, top)

#他のViewportより上に
camera.setOnTop()

表示させる領域の指定にはRasterizerモジュールのgetWindowWidth()、getWindowHeight()を使うと便利。

左半分をCamera1、右半分をCamera2の表示出力に画面を分割するサンプル

import Rasterizer

scene= GameLogic.getCurrentScene()
cam1 = scene.cameras["OBCamera1"]
cam2 = scene.cameras["OBCamera2"]

cam1.useViewport = True
left = 0
bottom = 0
right = Rasterizer.getWindowWidth()/2
top = Rasterizer.getWindowHeight()
cam1.setViewport(left, bottom, right, top)

cam2.useViewport = True
left = Rasterizer.getWindowWidth()/2
bottom = 0
right = Rasterizer.getWindowWidth()
top = Rasterizer.getWindowHeight()
cam2.setViewport(left, bottom, right, top)

Class KX_Camera
http://www.blender.org/documentation/249PythonDoc/GE/GameTypes.KX_Camera-class.html

参考
http://www.blender.org/development/release-logs/blender-241/split-screen-and-multi-viewports/