CG系

maya2022でポリゴンが表示されないバグの対処法

こんにちわ!

兼業クリエイターのみっつです。

今回は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スクリプトを試してみてください!

それでは!

みっつでした。

ABOUT ME
みっつ
CGアニメーター/リガー テクニカルアーティスト(TA)目指して精進中です 都内でゲーム作ってます。