2016-09-20 52 views
2

我需要註冊一些maya的MSceneMessage回調,並查詢場景路徑。我需要得到瑪雅之前和之後的道路。 (打開,保存文件)maya kBeforeSave回調

這是我到目前爲止。

def before(*args, **kwargs): 
    print 'BEFORE: ' + cmds.file(query = True) 

def after(*args, **kwargs): 
    print 'AFTER: ' + cmds.file(query = True) 

om.MSceneMessage.addCallback(om.MSceneMessage.kBeforeOpen, before) 
om.MSceneMessage.addCallback(om.MSceneMessage.kAfterOpen, after) 

om.MSceneMessage.addCallback(om.MSceneMessage.kBeforeSave, before) 
om.MSceneMessage.addCallback(om.MSceneMessage.kAfterSave, after) 

案例情景1;在場景test_01.ma中,OPEN場景test_02.ma

按預期工作。

BEFORE:../../test_01.ma

AFTER:../../test_02.ma

案例scenario2;在場景test_01.ma中,SAVE場景test_02.ma

不能按預期工作。

BEFORE:../../test_02.ma

AFTER:../../test_02.ma

我也試過 'kBeforeSaveCheck' 回調,有相同的結果。

+0

我感到驚訝,查詢結果會是什麼(除了RuntimeError ::標誌無法查詢!!),什麼是信息,你想查詢,scenename?含。路徑? –

回答

0

得到scenename

def scene_id(*args): 
    return cmds.file(query=True, scenename=True) 

def before(*args, **kwargs): 
    print 'BEFORE: {0}'.format(scene_id()) 

def after(*args, **kwargs): 
    print 'After: {0}'.format(scene_id()) 
+0

請始終在您的代碼中添加一些解釋... – andreas