Prim들 위치 및 방향 변경 예제 - SmartX-Team/Omniverse GitHub Wiki
Prim 위치를 이동, 회전, 스케일 변경 예제이다.
특정 prim의 현재 속성값 조회
from pxr import Usd, UsdGeom, Sdf, Gf
from omni.usd import get_context
obj_name = "/World/HUSKY_01"
stage = get_context().get_stage()
prim = stage.GetPrimAtPath(obj_name)
# 현재 위치 조회
translate_attr = prim.GetAttribute("xformOp:translate")
translation_value = translate_attr.Get()
print(f"translation: {translation_value }")
# 회전 속성 조회
rotation_attr = prim.GetAttribute('xformOp:rotateXYZ')
rotation_value = rotation_attr.Get()
print(f"Rotation: {rotation_value}")
# 현재 스케일 속성 조회
scale_attr = prim.GetAttribute("xformOp:scale")
scale_value = scale_attr.Get()
print(f"Rotation: {scale_value}")
실행결과
특정 prim의 현재 속성값 변경
from pxr import Usd, UsdGeom, Sdf, Gf
from omni.usd import get_context
obj_name = "/World/HUSKY_01"
stage = get_context().get_stage()
prim = stage.GetPrimAtPath(obj_name)
TRANSLATION = Gf.Vec3d(100.0,50.0,0)
ROTATION = Gf.Vec3d(0,180.0,0)
SCALE = Gf.Vec3d(2.0,2.0,2.0)
# pirm 위치 변경
prim.GetAttribute("xformOp:translate").Set(Gf.Vec3d(TRANSLATION), 0)
# pirm 회전
rotation_attr = prim.GetAttribute('xformOp:rotateXYZ').Set(Gf.Vec3d(ROTATION), 0)
# prim 스케일 변경
scale_attr = prim.GetAttribute("xformOp:scale").Set(Gf.Vec3d(SCALE), 0)