Material Viewerを画像として保存する

Maya2016から変わったHyperShadeですが、これにあるMaterial Viewerの画像を保存できないか模索しました。

hypershade

Material Viewerの部分は、modelEditorになっているようで、View Portなんかと同じ作りのようです。なので、OpenMayaUIのM3dViewを使えば簡単に画像保存ができました!

test

以下がそのPythonコードです。modelEditorの名前は、MELのグローバル変数「$gShaderBallEditor」に格納されています。

from maya import OpenMaya, OpenMayaUI, mel
editorName = mel.eval('$gShaderBallEditor = $gShaderBallEditor;')
view = OpenMayaUI.M3dView()
OpenMayaUI.M3dView.getM3dViewFromModelEditor(editorName, view)

image = OpenMaya.MImage()
view.readColorBuffer(image, True)
image.writeToFile(r'C:\test.bmp', 'bmp')
まれ、上手く保存できなくなって、Hyper Shadeを表示しなおすと治る、、、ぐぐぐ、、、