UsdCameraを使う
ipynbFile usdcam__UsdCameraを使う.ipynb
In [1]:
| from pxr import Usd,UsdGeom
|
In [5]:
| stage = Usd.Stage.Open("camera.usd")
prim = stage.GetPrimAtPath("/cameras/camera1")
|
| # UsdGeomCameraからGfCameraを取得する
cam = UsdGeom.Camera(prim)
# gfCameraはカメラの状態(特定の時間)を保持する
gfCam = cam.GetCamera()
|
In [17]:
| # GetCameraで GfCameraを取得する。
# GfCameraはカメラデータモデルのラッパー
# 水平
print(gfCam.horizontalFieldOfView)
# 垂直
print(gfCam.verticalFieldOfView)
# あぱーちゃ
print(gfCam.horizontalAperture)
|
Success
| 23.670164108276367
13.445082664489746
0.20954999327659607
|
In [18]:
| # UsdGeomCameraではAttributeとしてアクセスする。
cam.GetFocalLengthAttr().Get()
# Projection/Aperture/focalLength/fStop/clippingRange Planes/xformOpOrder 等
# GfCameraでまとめて値をセットしたりできる。
# これまでのxformOpOrderを消去して xformOp:transform エントリーに置き換えるので
# レイヤスタック内に現在編集中より強い xformOpOrderがあるとNG
cam.SetFromCamera(gfCam)
|