Poser覚書> Poser操作 > スクリプト

Poserのカメラの回転の中心を変える

 どういうことなのか、とりあえずこれを見てもらおう。

 PoserのMain Cameraの場合、視点を回転させると、回転の中心は原点(0,0,0)固定になっているようだ。

 これは、原点に置いたフィギュアを、ある程度距離を取って表示させている場合には特に問題ないのだが、「アップでほんのちょっとだけアングルを変えたい」とか「複数フィギュアを置いてて、フィギュアが原点に立っていない」とか言う場合にはちょっと困る。 回転の中心が原点だと、カメラ回転移動時に、フィギュアが視界から外れてしまうからだ。

 そんな場合、どうするかというと、適当な小道具(ここでは基本図形の立方体)をシーンに呼び出し、カメラの親(Parent)に指定するのだ。手順を書くと、こうなる。

  1. 立方体(box_1)をシーンに呼び出す
  2. Mainカメラを選択状態にする
  3. Poserの画面上部メニューから、Object→Change Parentを選択
  4. Object Parentウインドウが表示されるので、立方体(box_1)を指定し、OKをクリック

 立方体を中心にカメラが回るようになるので、立方体を好きな所に移動させれば、そこがカメラの回転の中心になるというわけだ。Mainカメラじゃなく、Auxカメラでも同じように設定できる。ただし、Dollyカメラは回転の中心が自分自身に固定されているようなので、上記の手順を行っても無駄なようである。

 で、上の手順をスクリプト化したのがこれだ。

import poser

scene = poser.Scene()

targetcam = scene.CurrentCamera()

scene.LoadLibraryProp( "/Runtime/Libraries/Props/Primitives/box.ppz")

act = scene.CurrentActor()

act.SetName(targetcam.Name()+" Center")
act.SetParameter("Scale" ,0.2)

act.SetParameter("Ytran",0.8)
act.SetParameter("Ztran",0.4)

targetmat = act.Materials()
for mtl in targetmat :
    mtl.SetDiffuseColor(1.0,0,0)

act.SetVisibleInRender(0)

targetcam.SetParent(scene.Actor(targetcam.Name()+" Center"),0,0)

scene.DrawAll()

 回転の中心は、小さめの赤い立方体で表示される。そんでもって、この立方体はプレビュー時のみ見えてて、レンダリング時には消えるようになっている。 こいつをドラッグなり、パラメータパレットで移動系パラメータ(xTran、yTran、zTran)をいじるなりして動かせば、カメラの回転の中心を変えられるのだ。

 とても地味だが、複数フィギュアを設置して、背景も設置したりした複雑なシーンにはきっと役立つんじゃないだろうか。たぶん。

関連:

次のPoserのPythonメモへ


Poser覚書> Poser操作 > スクリプト もくじ