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シェーダーを作成

2022-12-02_01

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)

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This website stores cookies on your computer. These cookies are used to provide a more personalized experience and to track your whereabouts around our website in compliance with the European General Data Protection Regulation. If you decide to to opt-out of any future tracking, a cookie will be setup in your browser to remember this choice for one year.

Accept or Deny