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 がすぐに更新されることを期待しないでください。