Update
This commit is contained in:
77
2023/scripts/animation_tools/mgpicker/__init__.py
Normal file
77
2023/scripts/animation_tools/mgpicker/__init__.py
Normal file
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
MG-Picker Studio Module
|
||||
Animation picker tool for Maya
|
||||
"""
|
||||
|
||||
import os
|
||||
import maya.cmds as cmds
|
||||
import maya.mel as mel
|
||||
|
||||
|
||||
def get_mgpicker_path():
|
||||
"""Get MG-Picker Studio installation path"""
|
||||
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
return current_dir.replace("\\", "/")
|
||||
|
||||
|
||||
def load_plugin():
|
||||
"""Load MGPicker plugin"""
|
||||
plugin_name = "MGPicker_2023x64"
|
||||
|
||||
# Check if plugin is already loaded
|
||||
if cmds.pluginInfo(plugin_name, query=True, loaded=True):
|
||||
print(f"MGPicker plugin already loaded: {plugin_name}")
|
||||
return True
|
||||
|
||||
# Get the plugin path from mgpicker module
|
||||
mgpicker_path = get_mgpicker_path()
|
||||
plugin_path = os.path.join(mgpicker_path, "MGPicker_Program", "Plug-ins", f"{plugin_name}.mll")
|
||||
plugin_path = plugin_path.replace("\\", "/")
|
||||
|
||||
try:
|
||||
cmds.loadPlugin(plugin_path)
|
||||
print(f"MGPicker plugin loaded: {plugin_path}")
|
||||
return True
|
||||
except Exception as e:
|
||||
print(f"Failed to load MGPicker plugin: {e}")
|
||||
return False
|
||||
|
||||
|
||||
def start(mode=1):
|
||||
"""
|
||||
Start MG-Picker Studio
|
||||
|
||||
Args:
|
||||
mode (int): 0 for designer mode, 1 for animator mode (default)
|
||||
"""
|
||||
# Load plugin first
|
||||
if not load_plugin():
|
||||
cmds.warning("Failed to load MGPicker plugin")
|
||||
return
|
||||
|
||||
# Get MGPicker path
|
||||
mgpicker_path = get_mgpicker_path()
|
||||
program_path = os.path.join(mgpicker_path, "MGPicker_Program")
|
||||
|
||||
# Set global variables
|
||||
mel.eval(f'global string $MGPicker_ProgramPath = "{mgpicker_path}/"')
|
||||
mel.eval('global string $MGPicker_ProgramFolder = "MGPicker_Program"')
|
||||
mel.eval('global string $MGPicker_ScriptEntry = "MG_PickerStudio"')
|
||||
|
||||
# Source the main MEL script
|
||||
main_mel = os.path.join(program_path, "MGPicker_WrittenByMiguel.mel").replace("\\", "/")
|
||||
|
||||
try:
|
||||
mel.eval(f'source "{main_mel}"')
|
||||
# Open MGPicker window with mode parameter
|
||||
# mode 0: designer mode, mode 1: animator mode
|
||||
mel.eval(f'MG_PickerStudio {mode}')
|
||||
print(f"MG-Picker Studio started in {'designer' if mode == 0 else 'animator'} mode")
|
||||
except Exception as e:
|
||||
cmds.warning(f"Failed to start MG-Picker Studio: {e}")
|
||||
|
||||
|
||||
__all__ = ['start', 'load_plugin']
|
||||
Reference in New Issue
Block a user