既存のシェーダ定義に定義されているシェーダ ファミリを確認するには
ShaderDef.ShaderFamilies または ShaderDef::GetShaderFamilies を使用して、文字列の SafeArray を取得します。
for sFamily in oShaderDef.ShaderFamilies : Application.LogMessage(sFamily) # ...
既存のシェーダ定義に定義されているプライマリ ファミリを確認するには
ShaderDef.PrimaryShaderFamily または ShaderDef::GetPrimaryShaderFamily を使用して、シェーダ ファミリ ID を文字列として返します。
Application.LogMessage(oShaderDef.PrimaryShaderFamily)
指定したファミリが既存のシェーダ定義のシェーダ ファミリの 1 つとして定義されているかどうかを確認するには
ShaderDef.IsShaderFamily または ShaderDef::IsShaderFamily を、定義したネイティブ Softimage シェーダ ファミリのいずれかまたはカスタム シェーダ ファミリとともに使用します。
if (oShaderDef.IsShaderFamily("mrLight")) : # do something with light shaders else : # do something with non-light shaders
登録したシェーダ ファミリをカスタム シェーダ定義に割り当てるには
ShaderDef.AddShaderFamily または ShaderDef::AddShaderFamily を使用して、追加したい各シェーダ ファミリのシェーダ ファミリ名を渡します。ただし、2 番目のパラメータはそのファミリがプライマリかどうかを指定します。 このパラメータに値を指定しない場合は、最後に追加されたファミリがプライマリ ファミリとみなされます。
# Adds the lens shader family only oShaderDef.AddShaderFamily(siShaderFamilyLens) # Adds the data blob and texture families with texture as primary (because it's # the most versatile shader family--it has the fewest connection restrictions of anything) oShaderDef.AddShaderFamily(siShaderFamilyTexture, True) oShaderDef.AddShaderFamily(siShaderFamilyData, False) # Same thing but without specifying second parameter oShaderDef.AddShaderFamily(siShaderFamilyData) oShaderDef.AddShaderFamily(siShaderFamilyTexture)
Softimage にカスタム シェーダ ファミリを登録するには、「カスタム シェーダ ファミリを作成する」を参照してください。 ネイティブ Softimage シェーダ ファミリのいずれかを使用するには、サポートされているファミリのリストを「ネイティブ Softimage シェーダ ファミリ」で確認してください。