UV レイアウトのスナップショットの保存、UV のスケール、回転、移動、および削除、UV エッジのカット、深度のみのパスの設定、バウンディング ボックスの表示を行うための Python 関数が追加されました。
UV セットを削除するための setTexCoords メソッド vrdGeometryNode
に追加されました。
特定の(平面/トライプラナー/円筒)投影を任意のオブジェクトにフィットさせ、任意のノードの単純なバッチ処理を可能にするために、triplanarProjectionFitSize()、planarProjectionFitSize()、および cylyndricalProjectionFitSize() が vrUVService
に追加されました。
[高度な OpenGL 設定]の[深度専用パス]機能に setDepthOnlyPass
関数が追加されました。これにより、深度専用パスの切り替えが可能になります。setDepthOnlyPass
は、setBackfaceCulling
(SWITCH_TOGGLE
、SWITCH_ON
、または SWITCH_OFF
)、および False
やTrue
などのパラメータを使用します。現在の状態のクエリー関数はありません。
自動シーム選択の値を使用して、選択したシームに沿って UV エッジをカットする vrUVService.cutAlongSeams() が追加されました。
vrUVService.
cutAlongSeams
(nodes, settings, uvSet)指定したノードで指定したシーム設定を使用してカットを実行します。
有機的カットの例:
geometryNodes = [vrNodeService.findNode("Box")]
settings = vrdUVSeamSettings()
settings.setMode(vrUVTypes.SeamMode.Organic)
settings.setOrganicUsePipesCutter(True)
settings.setOrganicSegmentationAmount(0)
vrUVService.cutAlongSeams(geometryNodes, settings, vrUVTypes.UVSet.MaterialUVSet)
製造されたカットの例:
geometryNodes = [vrNodeService.findNode("Box")]
settings = vrdUVSeamSettings()
settings.setMode(vrUVTypes.SeamMode.Manufactured)
settings.setManufacturedAngle(45)
settings.setManufacturedAreaRatio(0.5)
vrUVService.cutAlongSeams(geometryNodes, settings, vrUVTypes.UVSet.MaterialUVSet)
ベイク処理カットの例:
geometryNodes = [vrNodeService.findNode("Box")]
settings = vrdUVSeamSettings()
settings.setMode(vrUVTypes.SeamMode.Baking)
settings.setBakingAngle(45)
settings.setBakingSizeOfMinPatch(0)
vrUVService.cutAlongSeams(geometryNodes, settings, vrUVTypes.UVSet.MaterialUVSet)
パラメータ: |
|
---|
指定した中心で UV を回転する vrUVService.rotateUV が追加されました。
指定したで UV を回転するには、次の操作を実行します。
center = QVector2D(0,0)
angle = 25
vrUVService.rotateUV(nodes, center, angle, vrUVTypes.UVSet.MaterialUVSet)
vrUVService.
rotateUV
(nodes, center, angleDegree, uvSet)指定したノードの UVを、指定した中心の周りに回転します。
すべてのマテリアル UVを 90 度回転する例:
geometryNodes = [vrNodeService.findNode("Box")]
center = QVector2D(0.5,0.5)
angle = 90
vrUVService.rotateUV(geometryNodes, center, angle, vrUVTypes.UVSet.MaterialUVSet)
パラメータ: |
|
---|
UV のスケーリング/反転および移動を行う vrUVService.scaleUV およびvrUVService.translateUV が追加されました。
指定した中心で UV を反転するには、次の操作を実行します。
center = QVector2D(0,0)
scaleU = 1
scaleV = -1
vrUVService.scaleUV(nodes, center, scaleU, scaleV, vrUVTypes.UVSet.MaterialUVSet)
指定した中心で UV を移動するには、次の操作を実行します。
translateU = 0.2
translateV = 0.1
vrUVService.translateUV(nodes, translateU, translateV, vrUVTypes.UVSet.MaterialUVSet)
vrUVService.
scaleUV
(nodes, center, uScale, vScale, uvSet)指定したノードの UVを、指定した中心を使用してスケールします。
すべてのマテリアル UV を反転する例:
geometryNodes = [vrNodeService.findNode("Box")]
center = QVector2D(0.5,0.5)
uScale = -1
vScale = 1
vrUVService.scaleUV(geometryNodes, center, uScale, vScale, vrUVTypes.UVSet.MaterialUVSet)
パラメータ: |
|
---|
vrUVService.
translateUV
(nodes, du, dv, uvSet)指定したノードの UV を移動します。
すべてのマテリアル UV を移動する例:
geometryNodes = [vrNodeService.findNode("Box")]
du = 0.2
dv = 0.2
vrUVService.translateUV(geometryNodes, du, dv, vrUVTypes.UVSet.MaterialUVSet)
パラメータ: |
|
---|
saveUVSnapshot が(拡張 UV エディタと同様に) vrUVService に追加されました。UV レイアウトのスナップショットをイメージ ファイルとして保存します。
幅と高さが異なる場合、出力イメージは歪みます。
vrUVService.
saveUVSnapshot
(nodes, path, width=1024, height=1024, uvSet=vrUVTypes.MaterialUVSet, style=vrUVTypes.ShowWireframe, mode=vrUVTypes.SnapshotMode.ZeroToOneSpace, customSpace=QVector4D())UV レイアウトのスナップショットをイメージ ファイルとして保存します。
例:
geometryNodes = [vrNodeService.findNode("Box")]
vrUVService.saveUVSnapshot(geometryNodes,
"c:/vred-snapshots/uv.png",
512, 512,
vrUVTypes.UVSet.MaterialUVSet,
vrUVTypes.ShowBorders | vrUVTypes.ShowWireframe)
パラメータ: |
|
---|
シーン内のオブジェクトのバウンディング ボリューム(ボックス)を表示する getBoundingBox および getWorldBoundingBox が追加されました。
複数のオブジェクトのバウンディング ボックスを結合するには、次の操作を実行します。
def getWorldCenter(geometryNodes):
bb = vrdBoundingBox()
for geometryNode in geometryNodes:
bb.extendBy(geometryNode.getWorldBoundingBox())
return bb.getCenter()
vrdNode.
getWorldBoundingBox
()子を含むノードのワールド バウンディング ボックスを返します。
複数のバウンディングボックスの組み合わせの例:
def getWorldCenter(nodes):
bb = vrdBoundingBox()
for node in nodes:
bb.extendBy(node.getWorldBoundingBox())
return bb.getCenter()
# Find all nodes whose name starts with "Box". nodes = vrNodeService.findNodes("Box*", True) # Calculate the bounding box center of these nodes center = getWorldCenter(nodes) # Print the result print(center)
戻り値: | ノードのワールド バウンディング ボックス |
---|---|
戻り値の型: | vrdBoundingBox |