Autodesk Maya 쉐이더 리스트를 Excel로 추출하기 v1.0


Autodesk Maya 쉐이더 리스트를 Excel로 추출하기

이 튜토리얼에서는 Autodesk Maya에서 사용되는 쉐이더 리스트를 Excel 파일로 추출하는 방법을 단계별로 설명합니다.
이 과정을 통해 쉐이더의 관리와 문서화를 용이하게 할 수 있습니다.

필요한 준비

  • Autodesk Maya가 설치된 시스템.
  • Python 스크립팅에 대한 기본적인 이해.
  • openpyxl 라이브러리가 설치된 Python 환경. (Excel 파일 작업을 위함)

스크립트 개요

이 스크립트는 Maya의 쉐이더 리스트를 조회하고, 지정된 쉐이더를 제외한 후, 나머지 쉐이더들을 Excel 파일에 기록합니다.
추가적으로, Excel 파일의 마지막에는 총 쉐이더 개수를 ‘COUNTA’ 함수를 이용하여 자동으로 계산합니다.

스크립트 작성

import maya.cmds as cmds
import os
from openpyxl import Workbook
from maya.OpenMaya import MGlobal

def get_shader_properties_xlsx():
    # 건너뛸 쉐이더 이름 목록
    skip_shaders = ['lambert1', 'particleCloud1', 'shaderGlow1', 'standardSurface1']

    # 현재 Maya 파일 경로를 가져옵니다.
    current_file = cmds.file(query=True, sceneName=True)
    file_path = os.path.dirname(current_file)

    # 결과를 저장할 XLSX 파일을 준비합니다.
    output_file_path = os.path.join(file_path, "shader_list.xlsx")

    wb = Workbook()
    ws = wb.active
    ws.title = "Shader List"

    # 쉐이더 리스트 헤더
    ws.append(["Shader Name"])

    shaders = cmds.ls(materials=True)
    for shader in shaders:
        if shader not in skip_shaders:
            ws.append([shader])

    # COUNTA 함수를 사용하여 쉐이더 개수 카운트
    last_shader_row = ws.max_row
    ws.append(["Total Shaders", "=COUNTA(A2:A{})".format(last_shader_row)])

    # 파일을 저장합니다.
    wb.save(output_file_path)

    # 명령 응답 부분에 메시지를 표시합니다.
    MGlobal.displayInfo("Shader list creation is completed!!!")

get_shader_properties_xlsx()

실행 방법

  1. Autodesk Maya를 열고 스크립트 에디터를 실행합니다.
  2. 위 스크립트를 스크립트 에디터에 복사합니다.
  3. 스크립트를 실행하면 현재 Maya 프로젝트의 디렉토리에 ‘shader_list.xlsx’ 파일이 생성됩니다.
  4. 생성된 Excel 파일을 열어 쉐이더 리스트와 총 개수를 확인합니다.

결과

실행 후 생성된 Excel 파일에는 Maya의 모든 쉐이더가 나열되며, 파일의 마지막에는 총 쉐이더의 개수가 ‘COUNTA’ 함수를 사용하여 자동으로 계산되어 표시됩니다.
이를 통해 쉐이더 관리 및 문서화 작업을 효율적으로 수행할 수 있습니다.