本日はMaya,Python枠です。
筆者は大学で3DCGについて指導に当たっていますが、Mayaに限らずソフトウェアのUIや設定がデフォルトから変わってしまっている状態の学生さんがよくいます。
彼らが意図してUIやビューポートをカスタマイズしているのであれば問題がないのですが、初学者の場合は特に意図せずPCの解像度などの設定や操作ミスなどでUIやビューポートが乱れてしまっています。
また、よくあることとしてマテリアルにテクスチャを適応したのに表示されないというトラブルもあります。
本来であればワークスペースのリセットなどで切り替えることや、適切なビューポート設定を行うことで解消しますが、初学者にはハードルが高いのが現状です。

今回はこうした初学者向けのよくあるトラブルをPythonで解消できないか挑戦していきます。

〇環境
・Windows11PC
・Maya2025
〇UIパネルをリセットする
まずはビューポートのリセットです。
これはアトリビュートエディタやアウトライナーなどリセットしたいパネルをリストにして開きなおすことでリセットしています。
またテクスチャの表示に関してはcmds.moduleEditor(panel,‘パラメータ`)を使用して明示的に切り替えています。
cmds.modelEditor(panel, edit=True, useDefaultMaterial=False)
これによってデフォルトのマテリアルを使用を無効化し、ビューポート上のテクスチャ設定をオンにしています。
〇コード
import maya.cmds as cmds
def reset_viewport_and_ui():
# 1. UIパネルのリセット
panels = ['AttributeEditor', 'Outliner', 'ChannelBoxLayerEditor', 'ToolSettings']
for panel in panels:
if cmds.workspaceControl(panel, exists=True):
cmds.workspaceControl(panel, edit=True, close=True)
cmds.workspaceControl(panel, edit=True, restore=True)
cmds.workspaceControl(panel, edit=True, visible=True)
# 2. ビューポート設定のリセット
viewport_panels = cmds.getPanel(type="modelPanel")
for panel in viewport_panels:
# ライトの設定をデフォルトに(自動ライト)
cmds.modelEditor(panel, edit=True, displayLights="default")
# テクスチャ表示を有効にする
cmds.modelEditor(panel, edit=True, displayTextures=True)
# デフォルトマテリアルの使用を無効にする
cmds.modelEditor(panel, edit=True, useDefaultMaterial=False)
# 3. シーン内のライトがない場合は自動ライトを使用
if not cmds.ls(type="light"):
for panel in viewport_panels:
cmds.modelEditor(panel, edit=True, displayLights="default")
# レイアウトの再描画
cmds.refresh()
# 実行
reset_viewport_and_ui()
スクリプティングエディタで実行することでテクスチャが張られた見た目のビューポートにすることができます。

本日は以上です。