OpenMayaでLambertマテリアルを作成する
この記事はMaya Advent Calendar 2022の2日目の記事です
今年もAdventCalendarの季節がやってまいりました!!
今回は OpenMaya を使ってLambertシェーダーのマテリアルを作成する方法を紹介します
MayaのcmdsでLambertシェーダーのマテリアルを作成するとき、下のコードで実現できるのですが今回はOpenMayaで作成してみます
cmds.shadingNode("lambert", asShader=1)
OpenMayaでLambertシェーダーからマテリアルを作成する際に利用するクラスはMFnLambertShaderになります
MFnLambertShaderはLambertシェーダーを管理しているクラスでディペンデンシーグラフノードの作成と操作を行うことができます
Lambertシェーダーを作成
import maya.OpenMaya as OpenMaya
mLambertShader = OpenMaya.MFnLambertShader()
mLambertShader.create()
作成するにはcreateメソッドを実行することでマテリアルを作成できます
作成したマテリアルの値を設定することもできます
名前を設定する
lambertShader.setName("OpenMayaMaterial")
カラーを設定する
color = OpenMaya.MColor(1.0, 0.0, 1.0)
lambertShader.setColor(color)
透明度を設定する
transparency =OpenMaya.MColor(0.5, 0.5, 0.5)
lambertShader.setColor(transparency)
他にもAmbientColorやGlowIntensityなども設定できます
詳しくはMFnLambertShaderにあるset
コピペ用のコード
import maya.OpenMaya as OpenMaya
materialName = "OpenMayaMaterial"
color = OpenMaya.MColor(1.0, 0.0, 1.0)
transparency = OpenMaya.MColor(0.5, 0.5, 0.5)
ambient = OpenMaya.MColor(0.0, 1.0, 0.5)
mLambertShader = OpenMaya.MFnLambertShader()
mLambertShader.create()
mLambertShader.setName(materialName)
mLambertShader.setColor(color)
mLambertShader.setTransparency(transparency)
mLambertShader.setAmbientColor(ambient)
ディスカッション
コメント一覧
まだ、コメントがありません