Skip to content

UsdCameraを使う

ipynbFile usdcam__UsdCameraを使う.ipynb

In [1]:

1
from pxr import Usd,UsdGeom

In [5]:

1
2
stage = Usd.Stage.Open("camera.usd")
prim = stage.GetPrimAtPath("/cameras/camera1")
1
2
3
4
# UsdGeomCameraからGfCameraを取得する
cam = UsdGeom.Camera(prim)
# gfCameraはカメラの状態(特定の時間)を保持する
gfCam = cam.GetCamera()

In [17]:

1
2
3
4
5
6
7
8
# GetCameraで GfCameraを取得する。
# GfCameraはカメラデータモデルのラッパー
# 水平
print(gfCam.horizontalFieldOfView)
# 垂直
print(gfCam.verticalFieldOfView)
# あぱーちゃ
print(gfCam.horizontalAperture)

Success

1
2
3
23.670164108276367
13.445082664489746
0.20954999327659607

In [18]:

1
2
3
4
5
6
7
# UsdGeomCameraではAttributeとしてアクセスする。
cam.GetFocalLengthAttr().Get()
# Projection/Aperture/focalLength/fStop/clippingRange Planes/xformOpOrder 等
# GfCameraでまとめて値をセットしたりできる。
# これまでのxformOpOrderを消去して xformOp:transform エントリーに置き換えるので
# レイヤスタック内に現在編集中より強い xformOpOrderがあるとNG
cam.SetFromCamera(gfCam)

Success

1
0.5