既存のマテリアルを変更する

material.py

print("Executing material script!")

newScene()
loadGeometry("$VRED_EXAMPLES/geo/teddy.osb")
calcVertexNormals()
updateScene()

fur = findMaterial("fur_white")

fur.fields().setVec3f("diffuseColor", 0.3, 0.2, 0.5)
fur.fields().setVec3f("specularColor", 0.2, 0.1, 0.8)

このサンプル スクリプトは、VRED の「Examples」フォルダにあるテディ ベアのジオメトリをロードし、ファー マテリアル fur_white を探し、これらの新しい値を使用して拡散反射光と鏡面反射光のカラーを変更します。fur.fields().setVec3f は、オブジェクト(fur)、そのプロパティ(fields)、および値タイプ(setVec3f)を示します。プロパティの名前を追加し、値タイプの値を指定します。

さまざまな値タイプがあるため、プロパティの値タイプを知る必要があります。これを取得するには、ノード エディタを使用します。マテリアル エディタからノード エディタにマテリアルをドラッグし、特定のプロパティ(左の列)の値(右の列)にカーソルを合わせます。値のツールチップには、プロパティの値タイプが表示されます。

値タイプのツールチップが表示されたノード エディタ

たとえば、この図では、SFInt8 が値タイプです。ファーの lightMode プロパティを変更するには、fur.fields().setInt8("lightMode", 1) を使用する必要があります。

詳細については、Python マニュアル内の vrFieldAccess に関するドキュメントを参照してください。これはフィールドの戻り値の型を指定します。これはどの関数を呼び出すかを知るのに役立ちます。

注:

UI の更新はレンダリングのパフォーマンスに悪影響を与える場合があるため、レンダリングの実行時には、UI がすぐに更新されることを期待しないでください。