Mayaにある画像をPySideで使う!

Mayaにもともとある画像をPySide(またはPySide2)で使用したいことは多々あると思います。Mayaで使用されている画像は、ほとんどリソースイメージと言われるもので、1つ1つ画像が保存されているわけではありません。

そのまま使う場合

まず「Factory Icon Browser」を使用して、目的の画像のファイル名を調べます。「Factory Icon Browser」は、「Shelf Editor」から使うことができます。

リストにはMayaで使われているアイコンがありますが、1つ1つ見ていくのは大変です。Filterにそれっぽい名前を入れて見ると探しやすいです。例えば、ポリゴン系なら「poly」になります。入力したら「Enter」を押しましょう。

ワイルドカード「*」を使ったフィルタリングも可能です。例えば「*sphere」とすると「~sphere」というファイル名の画像がリストアップされます。

ファイル名が分かったら、もうこっちのものです!QImage、QIconのファイル名の指定で「:/」を先頭につけてあげます。

from PySide import QtGui
image = QtGui.QImage(':/polySphere.png')
from PySide2 import QtWidgets
image = QtWidgets.QImage(':/polySphere.png')

一度保存して、それを使う場合

一度保存して、ちょっと加工してから使いたい場合もあると思います。「Factory Icon Browser」で目的の画像を探すまでは同じです。画像を見つけたら、「Save As」をクリックして好きな場所に保存します。

リソースイメージをすべて保存する

いちいち探すのは面倒、、、とりあえず全部保存して、あとから探したいっというときは、以下のコードでぜーんぶ保存できます。

import os
from maya import cmds

saveDir = r'c:\mayaIcons'
if not os.path.exists(saveDir):
    os.makedirs(saveDir)
 
resources = cmds.resourceManager(nf='*')
for resource in resources:
    try:
        path = os.path.join(saveDir, resource)
        cmds.resourceManager(s=(resource, path))
    except:
        print('Cannot save file: '+resource)

上記のコードを実行すると、cドライブのmayaIconsというフォルダにすべてのリソースイメージが保存されます。

見やすいように「PNG」のみ表示しています。実際には「SVG」も保存されます。

リソースイメージの一覧をみる!

Amaterasuにある「Resource Image Browser」を使用すると以下のように見ることができます。