TransformのDrawing OverridesでRGBをPython経由(PyMelで)指定する
表題通り 主にリグコントローラをあまり手で触りたくない時用
要旨
targetNode = pm.PyNode("node_name_of_target") targetNode.overrideEnabled.set(1) targetNode.overrideRGBColors.set(1) targetNode.overrideColorRGB.set(rgbColor)
コード例
関数化するなら多分こんな感じ 引数がHSVなのは好みの問題
import pymel.core as pm def setOverrideColor(hsv, targetNode=None): try: rgbColor = pm.dt.Vector(hsv) rgbColor = pm.mel.hsv_to_rgb(rgbColor) except TypeError as e: raise TypeError(u"Cannot Cast HSV to vector. HSV should be three element tuple and 0.0-1.0 range, such as (0.5, 0.8, 0.2)") if not targetNode: if not pm.selected(): pm.displayWarning(u"No target specified.") return # recursive call for selectedNode in pm.selected(): setOverrideColor(hsv, targetNode=selectedNode) return targetNode.overrideEnabled.set(1) targetNode.overrideRGBColors.set(1) targetNode.overrideColorRGB.set(rgbColor) # usage sample setOverrideColor(hsv=(0.2, 0.4, 1.0))