前回、シーン名を取り出すことができました。
必要な要素の2,レイヤを作る
を今回していきます
レイヤーを作るにはどうしたらいいのかわからないので一度レイヤーを作ってみます
するとscriptEditに
createDisplayLayer -name "layer1" -number 1 -nr;
これでレイヤーを作ることができるようです
このコードをmelからPythonに変え、実行してみます
pm.createDisplayLayer(nr=1, name="layer1", number=1)
うまくlayerをつくることができました
できたlayerはlayer1でなく、layer2となっていますが名前が重複しているので気にしなくて問題ありません
これで2つ目の要素、レイヤーを作るができました
前回作った要素と今回作った要素を加え
a = pm.cmds.file(q=1,sceneName=1)
filename = pm.mel.basenameEx(a)
pm.mel.createDisplayLayer(nr=1, name=filename, number=1)
うまくファイル名のついたLayerを作ることができました
シーン名のついたLayerだけでなくGroupも作れると便利なのでそれも付けたし、ラジオボタンをつかってLayerかGroupで実行するscriptを作ります
import maya.cmds
import pymel.core as pm
def layerCreate():
a = pm.cmds.file(q=1,sceneName=1)
filename = pm.mel.basenameEx(a)
pm.mel.createDisplayLayer(nr=1, name=filename, number=1)
def GroupCreate():
a = pm.cmds.file(q=1,sceneName=1)
filename = pm.mel.basenameEx(a)
cmds.group(n=filename)
def make():
selected = maya.cmds.radioCollection(radioCollection1, q=True, select=True)
if selected == 'radioButton1':
layerCreate()
elif selected == 'radioButton2':
GroupCreate()
windowName = maya.cmds.window(title='SceneName',wh=(300,150))
maya.cmds.columnLayout()
radioCollection1 = maya.cmds.radioCollection()
maya.cmds.radioButton('radioButton1', label='Layer', select=True)
maya.cmds.radioButton('radioButton2', label='Group')
maya.cmds.button(label='Create',command='make()')
maya.cmds.button(label='EXIT',command=('maya.cmds.deleteUI("' + windowName + '")'))
maya.cmds.showWindow()
LayerかGroupを選択し、Createを実行するとシーン名のついた状態で作成できるはずです
前回
【python】シーン名からレイヤーを自動で作る①