2016年8月28日 星期日

如何在 import 檔案之前執行一段程式 (How to run a callback before importing scene file)

今天看到 google group 上的一個 thread,關於如何在 maya import 一個檔案之前執行程式 (可以用來做一些 preprocessing, 例如檢查檔案路徑等等)。就先把它貼在這當筆記吧。

2016年7月12日 星期二

2016年6月22日 星期三

如何把一個 transform 裡存在多個 shapes 的物件獨立出來 (how to separate multiple shapes inside one transform node)


有些工具或外掛會產生出向這種一個 transform 裡存在多個 shapes 的物件。這可能是為了效能關係或其他因素,不過就可能會造成其他一些軟體,工具,或 renderer 無法正常運作。

以下這段小程式可以幫你把這些shapes 拆成"正常"獨立的物件。







2016年6月7日 星期二

切換邊界線的顯示 ( toggle border edges )


以下的 python script 可以切換邊界線 (border edge) 在 viewport 上的的顯示:

import maya.mel as mm
borderSize = 8
mm.eval("ToggleBorderEdges")
mm.eval("polyOptions -activeObjects -sizeBorder {}".format(borderSize))





















若要直接選邊界線的話則是執行以下這幾行程式:

import maya.cmds as mc
mc.softSelect(softSelectEnabled=0)
mc.polySelectConstraint(mode=3,type=0x8000,where=1)
mc.polySelectConstraint(disable=1)



2015年8月5日 星期三

使用 dgProfiler 來檢測 rigging 的瓶頸

動畫師永遠會抱怨你的 rig 太慢, fps 只有 99.9999 等等的問題 ,所以很多時候你就得找個辦法加速你的 rig 了。首先最快的解決方法當然是直接出錢幫你的動畫師升級電腦,其次是找這位大神幫你加速:
如果這兩個辦法你都辦不到的話 那就只好自己乖乖想辦法加速了。其中一個方法就是透過 dgProfiler 檢測 rigging 的瓶頸到底在哪。 dgProfiler 是 maya 近年來(沒記錯的話是 2014 或 2015)增加的一個功能。首先要透過 plug-in manager 把 dgProfiler plugin  load 起來。




接下來你要準備一個角色有被keyframe 過的檔案,大概 50-60 frame 就夠了,不過記得盡量要全身都有動作的檔案會比較理想。 (以下這測試角色是 Mathilda Rig )



然後大開 DG Profiler 的 ui, 也不需要調整太多參數,大概只要把Number of Runs 改為 2~3 就好了(目的是要讓這程式重複跑個幾遍避免一些誤差)。按下 Profile! 這工具就會開始 playback 你的場景,跑 n 次(number of runs) 之後會顯示出一些數據。





你可以把這數據導出成一個 cvs 檔,再用 excel 或 openoffice 或 LibreOffice這類的 spreadsheet editor 來顯示以及編輯這個檔案,找出整個 rig 的瓶頸。



以這個測試rig來說,主要的兇手大概就是CT_headLattice_dfm (lattice) 還有一些 skinCluster. 如果有辦法加速這幾個 nodes 的話,就可以讓整個 rig 的數度再提升一些。不過說實話啦,有時候真的升級電腦是個快速又省時間(也等於省錢)的方法!