2009年4月7日 星期二

把[單獨顯示]做成快速鍵

Maya 場景一但物件變多,你會很難對單獨某個物件操作,因為畫面實在太雜了,而且framerate 也會降低.有些物件甚至會被其他物件擋住. 這時候[單獨顯示](isolate select->view selected)這功能就可以派上用場了.


但有一位叫Joe 的同事(建模師) 說他覺得用滑鼠切換模式(on off) 還是不太方便,於是我就幫他做成一個快速鍵.

以下是在Maya裡建立快速鍵的步驟:

->先打開 hotkey editor (Window->Settings/Preferences->Hotkey Editor)

->在 categories 底下點選 User (或其他的category都可以)

-> 按下 new,然後填上 Name, Description ,
i.e:
Name : myViewSelected,
Desciption : myViewSelected

-> 在 command 的欄位貼上這些指令:

{
string $selection[] = `ls -sl`;

int $componentMode = 0;
string $compList[] ={".e",".f",".vtx",".map",".cv",".u",".v",".sf",".uv"};

for($each in $selection)
{
int $found =0;
for($eachComp in $compList)
if(`gmatch $each ("*"+$eachComp+"*")`)
{
$componentMode = 1;
$found = 1;
break;
}
if($found)
break;
}

string $objs[]=`ls -sl -o`;

select -r $objs;
string $mpName = `paneLayout -q -pup $gMainPane`;
int $testIsolateSelect =`isolateSelect -q -state $mpName`;
if($testIsolateSelect)
{
enableIsolateSelect $mpName 0;
isolateSelect -state 0 $mpName;
}
else
{
enableIsolateSelect $mpName 1;
isolateSelect -state 1 $mpName;
}

select -r $selection;
if($componentMode)
hilite $objs;
}
->按下 accept

->現在我們要指定使用哪個快速鍵.我個人偏向用 alt+z, 所以我會填上:
Assign New Hotkey:
key :z
modifier : alt

要注意的是你個快速鍵不要跟其他常用到的快速鍵衝突.

->按下 assign
->按下 save , close



建立快速鍵完成!



更新:

這位老兄 提供了比較 "完美" 的 單獨顯示 程式, 可以保留目前取用的 component mode 等等模式:

//SELET OBJET NOT A COMPONENT
{
string $ObjSel[] =`ls -selection -objectsOnly -dagObjects -shapes`;
// GET MODEL PANEL
$aPanel = `getPanel -withFocus ` ;
$isoStatus = ` modelEditor
-query
-viewSelected
$aPanel ` ;

// TOGGLE SELECTION
if ($isoStatus ==0 )
{
enableIsolateSelect $aPanel 1 ;
//LOOP THOUGH EACH OBJECT
for ($eachObject in $ObjSel)
{
isolateSelect -addDagObject $eachObject $aPanel;
}
isolateSelect -state 1 $aPanel;
}
else
{
// GET NORMAL VIEW
enableIsolateSelect $aPanel 0 ;
isolateSelect -state 0 $aPanel;
}
}

4 則留言:

  1. 能把這個功能變快速件真是太棒了
    我之前就想過可惜不會XD

    可惜我用的時候會跳出
    Error: "$objs" is an undeclared variable. //
    沒辦法用
    我用複製貼上
    不知道是哪邊出錯了@@
    可以用的話就太棒了XD

    回覆刪除
  2. Hi,
    感謝你的回應,我發現code裡面有一些很蠢的bug.
    現在應該修正好了(可能需要把網頁 reload 一下)..
    試試看吧!

    回覆刪除
  3. 感謝板大

    真的可以用了好方便XD
    雖然2009之後有把它做成按鈕了
    但還是沒快速建可用
    畢竟能儘量多轉移一些工作到左手去
    對右手的負擔比較輕...

    再次感謝板大!

    回覆刪除
  4. 這個幫助超大的

    謝謝你~

    請再接再厲 !

    回覆刪除