KOSME Example2 - SmartX-Team/Omniverse GitHub Wiki

๊ธฐ์กด WIKI ์— ์žˆ๋˜ ์ž๋ฃŒ๋“ค์„ ์‹ค์Šต์šฉ ์ฝ”๋“œ๋กœ ์žฌ๊ตฌ์„ฑํ•œ ์˜ˆ์ œ๋“ค ์ž…๋‹ˆ๋‹ค.

Prim Create ๋ฐ ์กฐ์ž‘ ์˜ˆ์ œ

Prim Create

import omni.usd
from pxr import Usd, UsdGeom

# ์Šคํ…Œ์ด์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ
stage = omni.usd.get_context().get_stage()

# ์ƒˆ๋กœ์šด Xform Prim ์ƒ์„ฑ
prim_path = "/World/my_prim"
xform = UsdGeom.Xform.Define(stage, prim_path)

# Cube ์ƒ์„ฑ
cube = UsdGeom.Cube.Define(stage, f"{prim_path}/cube")
cube.CreateSizeAttr(100)

print(f"Prim created at {prim_path}")

image

[์‹คํ–‰ ๊ฒฐ๊ณผ]

Prim Attribute ์ˆ˜์ •

import omni.usd
from pxr import Usd, UsdGeom, Gf

# ์Šคํ…Œ์ด์ง€ ๊ฐ€์ ธ์˜ค๊ธฐ
stage = omni.usd.get_context().get_stage()

# ์ด์ „์— ์ƒ์„ฑํ•œ Prim ๊ฐ€์ ธ์˜ค๊ธฐ
prim_path = "/World/my_prim/cube"
cube = stage.GetPrimAtPath(prim_path)

# ํฌ๊ธฐ ์†์„ฑ ์ˆ˜์ •
size_attr = UsdGeom.Cube(cube).GetSizeAttr()
size_attr.Set(200)

# ์ƒ‰์ƒ ์†์„ฑ ์ถ”๊ฐ€
cube_gprim = UsdGeom.Gprim(cube)
color_attr = cube_gprim.CreateDisplayColorAttr()
color_attr.Set([Gf.Vec3f(1.0, 0.0, 0.0)])  # ๋นจ๊ฐ„์ƒ‰

print(f"Prim at {prim_path} updated with new size and color")

ํŠน์ • prim์˜ ํ˜„์žฌ ์œ„์น˜ ๊ด€๋ จ ์†์„ฑ๊ฐ’ ์กฐํšŒ


from pxr import Usd, UsdGeom, Sdf, Gf
from omni.usd import get_context

obj_name = "/World/HUSKY_01" # prim ์ฃผ์†Œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ
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" # prim ์ฃผ์†Œ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ณ€๊ฒฝ
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)