こんにちわ!
兼業クリエイターのみっつです。
今回はMaya2022で、ポリゴンが表示されないバグの対処法を書いていきます。
【結論】バグを解決するPythonスクリプト
# maya2022でポリゴンが出ないときに使うコード from maya import cmds as cmds cmds.lockNode('initialShadingGroup', lock = False, lockUnpublished = False) # ==== EOF ====
今回はこちらの『ポリゴンを作成しても表示されない!?そんな時はこれで解決するかも』という記事を参考にさせて頂きました!
上記の記事に書いてあったスクリプトを抜粋すると、
# 参考サイトに載ってたコード import pymel.core as pm pm.lockNode( 'initialShadingGroup', l=False, lu=False ) # ==== EOF ====
このように書かれてありました。
ほう?わざわざpymelで書く必要ある?
とか思ったので、ついでに『lockNode』コマンドについて調査してみました。
使用したPythonコマンドとフラグ【lockNode】
■Pythonコマンド
- lockNode
■フラグ
- lock
- lockUnpublished
今回使用したPythonコマンドとそのフラグは上記の通りです。
解決用のスクリプトを見る限り、Maya2022でポリゴンが表示されないバグは、『initialShadingGroup』というノードがロックされてるのが原因らしいです。
なので、解決するために使ったフラグを調査してみました。
フラグの説明
■lockフラグ
ノードの新しいロック状態を指定します。既定は true です。
■lockUnpublished
lock フラグと一緒に使用します。
コンテナ上では、コンテナのメンバー上にあるすべてのパブリッシュ解除アトリビュートをロックまたはロック解除します。
コンテナ以外では、指定したノード上にあるパブリッシュ解除アトリビュートをロックまたはロック解除します。
『lockUnpublished』に関しては、よく分からなかったですが、、、
まぁ何となく、ノードをロックしてるんだな~くらいの認識でいいと思います。
公式ドキュメントによるPythonの使用例
とりあえず公式ドキュメントに書いてある使用例を見ながら、lockNodeコマンドを実行してみます。
import maya.cmds as cmds # スフィア作ってロックした後、デリートしてみる cmds.sphere( n='sphere1' ) cmds.lockNode( 'sphere1' ) cmds.delete( 'sphere1' ) # エラー:ノードがロックされてるからエラーになる # ==== EOF ====

import maya.cmds as cmds # ロックを解除してからデリートしてみる cmds.lockNode( 'sphere1', lock=False ) cmds.delete( 'sphere1' ) # ==== EOF ====

Pythonスクリプトの使用例を見た感じ、ノード名を指定して、lockをする/しない、を決定してるようですね。
そして、ノードがロックされてたら、デリートは出来ないっぽいです。
ポリゴンが表示されないシーンでlockNodeをクエリーしてみた
今回使用する、『lock』と『lockUnpublished』フラグにクエリーを立てて戻り値を見てみました。
# cmds.lockNode('initialShadingGroup',q=1, lock=1) # 結果: [False] # cmds.lockNode('initialShadingGroup',q=1, lockUnpublished=1) # 結果: [True] # # ==== EOF ====
lockフラグの場合はFalseが返ってきて、lockUnpublishedの場合はTrueが返ってきました。
よく分からないですが、『lockUnpublished』が悪さをしてる感じですね。
つまり、
lockフラグだけFalseにするのではなく、lockUnpublishedフラグも一緒にFalseを渡してあげないとダメって事ですね。
# maya2022でポリゴンが出ないときに使うコード from maya import cmds as cmds cmds.lockNode('initialShadingGroup', lock = False, lockUnpublished = False) # ==== EOF ====

無事にポリゴンが表示されました!!
結論:Maya2022でポリゴンが表示されないときはlockNodeコマンドを使ってみよう
# maya2022でポリゴンが出ないときに使うコード from maya import cmds as cmds cmds.lockNode('initialShadingGroup', lock = False, lockUnpublished = False) # ==== EOF ====
今回は、Maya2022でポリゴンが表示されないバグの解決方法を書いていきました。
参考にしたサイトではpymelが使われてましたが、普通にcmdsモジュールでも対応できましたね。
Mayaで作業していて、ポリゴンが表示されないな~
色々設定見直してみたが、どれもアカンわ~
ってなった際は、上記のPythonスクリプトを試してみてください!
それでは!
みっつでした。