Maya translator for maya zip format (.mz)
Go to file
indigo 4eb266b623 Init Repo 2026-03-26 08:27:38 +08:00
.vscode Init Repo 2026-03-26 08:27:38 +08:00
plans Init Repo 2026-03-26 08:27:38 +08:00
plug-ins Init Repo 2026-03-26 08:27:38 +08:00
python/mz_core Init Repo 2026-03-26 08:27:38 +08:00
.gitignore Init Repo 2026-03-26 08:27:38 +08:00
MzTranslate.mod Init Repo 2026-03-26 08:27:38 +08:00
README.md Init Repo 2026-03-26 08:27:38 +08:00
setup.py Init Repo 2026-03-26 08:27:38 +08:00

README.md

MzTranslator

Maya .mz 檔案格式 Translator 插件,使用 Maya Python API 開發。

檔案格式

.mz 檔案本質上是 ZIP 壓縮格式,內部包含 data.ma (Maya ASCII) 文件。

目錄結構

d:/workspace/MzTranslator/
├── mz_translator.py          # 插件入口,包含 MPxFileTranslator 和插件註冊
├── mz_core/
│   ├── __init__.py           # 模組初始化
│   ├── reader.py             # 讀取模組
│   └── writer.py             # 寫入模組
└── README.md                 # 使用說明

安裝方法

方法 1直接載入 Python 模組

在 Maya 的 Python 腳本編輯器中執行:

import sys
import os

# 添加插件路徑
plugin_path = 'd:/workspace/MzTranslator'
if plugin_path not in sys.path:
    sys.path.insert(0, plugin_path)

# 載入插件
import mz_translator
cmds.loadPlugin(mz_translator.__file__)

方法 2使用 pluginManager

  1. 打開 Maya
  2. 進入 Window > Settings/Preferences > Plugin Manager
  3. 點擊 Browse 找到 mz_translator.py
  4. 勾選 Loaded 載入插件

使用方法

存儲 (Save/Export)

  1. 選擇 File > Save As...File > Export All...
  2. 在文件類型下拉選單中選擇 Mz File (*.mz)
  3. 選擇保存位置並點擊 Save

開啟 (Open/Import)

  1. 選擇 File > Open...File > Import...
  2. 在文件類型下拉選單中選擇 Mz File (*.mz)
  3. 選擇 .mz 文件並點擊 Open

功能特性

  • 讀取支援:從 .mz 檔案解壓縮並讀取 data.ma
  • 寫入支援:將 Maya 場景導出為 .mz 檔案(壓縮格式)
  • Export Options支援壓縮級別設定0-9

技術細節

writer.py

  • 使用 tempfile 建立臨時目錄
  • 使用 Maya 的 cmds.file() 導出為 .ma 格式
  • 使用 zipfiledata.ma 壓縮成 .mz

reader.py

  • 使用 zipfile 讀取 .mz 檔案
  • 提取 data.ma 到臨時目錄
  • 使用 Maya 的 cmds.file() 讀取場景
  • 自動清理臨時檔案

mz_translator.py

  • 繼承 maya.api.OpenMayaMPx.MPxFileTranslator
  • 實現 writer()reader() 方法
  • 包含 Maya 插件註冊函數 initializePlugin()uninitializePlugin()

故障排除

問題:無法載入插件

確保插件路徑正確:

import mz_translator
print(mz_translator.__file__)  # 確認路徑正確

問題:無法識別 .mz 檔案

確認 .mz 檔案是有效的 ZIP 格式(包含 data.ma

問題:讀取後場景未更新

檢查臨時檔案是否有權限問題,或嘗試重新開啟 Maya

版本資訊

  • Version: 1.0.0
  • API: Maya Python API
  • 支援 Maya 版本: 2017+