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)
ディスカッション
コメント一覧
まだ、コメントがありません