MetaFusion/Reference/MSLiveLink/Megascans/Installer.py

60 lines
1.7 KiB
Python
Raw Permalink Normal View History

2025-02-03 22:58:41 +08:00
"""
This Module:
- Adds the plugin to Maya (Creates a shelf and deletes the old shelf)
"""
import maya.cmds as cmds
import maya.mel as mel
import os
import sys
sys.path.append("..") # Adds higher directory to python modules path.
# Creates Maya Shelf - Add LiveLink button on the shelf
def createMSshelf():
path_ = os.path.dirname(__file__).replace("\\", "/")
shelfName_ = "MSPlugin"
imgPath = os.path.join( path_, "MS_Logo.png" ).replace("\\", "/")
cmd_ = ("""import sys
path_ = 'PATH'
if path_ not in sys.path:
sys.path.append( path_ )
import LiveLink as msAPI
msAPI.initLiveLink()
""").replace("PATH", os.path.dirname(path_).replace("\\", "/") )
shelftoplevel = mel.eval("$gShelfTopLevel = $gShelfTopLevel;")
shelfList_ = cmds.tabLayout(shelftoplevel, query=True, childArray=True)
try:
DeleteMayaOldShelf()
except:
pass
if shelftoplevel != None:
if shelfName_ in shelfList_:
try:
for element in cmds.shelfLayout(shelfName_, q=1, ca=1):
cmds.deleteUI(element)
except:
pass
else:
mel.eval("addNewShelfTab " + shelfName_ + ";")
cmds.shelfButton( label="MS", command=cmd_, parent=shelfName_, image=imgPath)
cmds.saveAllShelves(shelftoplevel)
# Delete Old Maya Shelf - Remove LiveLink from shelf
def DeleteMayaOldShelf(shelfName = "MSLiveLink"):
try:
shelfExists = cmds.shelfLayout(shelfName, ex=True)
if shelfExists:
mel.eval('deleteShelfTab %s' % shelfName)
gShelfTopLevel = mel.eval('$tmpVar=$gShelfTopLevel')
cmds.saveAllShelves(gShelfTopLevel)
else:
return
except:
pass