4/05/2009

如何設計Rig(角色控制器)

不管你叫它rig,set-up還是控制器,它是CG動畫師用來控制角色的工具,一個好的rig當然不能保證會讓動畫師做出來的動畫更棒,更有水準,不過rig設計得好的話,保證能夠讓動畫師工作更快,更有效率,也能有更多時間來polish動畫,因而更有機會作出非常棒的作品。

rig的設計因為使用者的習慣而異,尤其是當CG動畫正在發展的時候,大家都在試圖尋找出一個在易於使用與功能強大中的完美平衡,而當CG技術愈來愈成熟,也因為網路的關係與許多CG人的分享,我發覺可以在網路上看到(或是下載到)愈來愈多設計地非常棒的rig,而且這些rig也愈來愈相似,這些諸多共通點非常值得參考。

動畫師TJ Phan在他的blog中寫了這篇文章,裡面有許多非常棒的分析,不管是animator或是characterTD (rigger)都值得閱讀。

這個是他的demo reel。THE DOPE SHEET: Rig Preferences
我通常會分三個項目,用來檢查一個rig是否好用
A)控制器容易選取
B)最少量的counter animation(反動畫)
C)效能與即時的撥放

A)控制器容易選取
1)控制器與控制器之間的距離盡量大些。
2)控制器不見得一定要在受控制的區域中心,要是能夠將控制器間距離加大的話,我寧願選擇調整控制器的點,好讓控制器間彼此距離加大。
3)花一些時間調整控制器的形狀,讓它們的大小跟人物的各部位接近。
4)控制器要有顏色的區別,標準的黃色,紅色,藍色配置是很好搭配。
5)我喜歡指頭的控制器亮一些(黃色),因為它們比較小,也比較難看見,其他次要的控制器可以是亮藍色,不管你選啥顏色,設計顏色要一致,這樣在不同人物間切換時可以讓動畫師非常快上手。
6)我也會盡量不用亮綠色與白色的控制器,因為這會跟被選取的物件的顏色混淆。
7)將控制器的形狀設計成不管在任何角度都能選取得到。
8)也要有GUI可以使用,尤其是某些姿勢讓控制器很難選取的時候,GUI更顯重要,另外在一次選取多個物件時,GUI也非常好用。
9)常常使用的工具與matching script也要有GUI。
10)也要有可以幫助選取不同人物的GUI。

下面是一些跟控制器有關的偏好設定:
1)脊椎的控制器應該設計成方形,我喜歡魚鰭形的方形,這樣我可以很快的知道這個控制器跟其他控制器的角度關係,這讓動畫師可以更容易掌握脊椎的旋轉狀態。
2)要是脊椎使用圓形控制器的話,記得控制器上要加個箭頭,這樣才可以容易辨識目前的角度,說到脊椎的控制器,除了root和hip這兩個控制器外,中間再兩個控制器就可以了,3個也可以接受,不過超過3個的話,製作動畫就會覺得有點麻煩,假如有變形的問題的話,讓少一點的控制器驅動多一點的骨頭關節。
3)而脖子呢,我認為一個控制器就好了,一個在頭上的halo控制器簡單明瞭,而且可以跟脖子控制器分得很清楚。
4)我習慣頭部的控制器永遠不跟隨脖子的旋轉,頭部Local/Global的切換應該要連結到脊椎上。
5)同樣的,我習慣手臂的控制器不跟著肩膀(或是鎖骨)旋轉,應該要讓他跟著世界座標或是脊椎旋轉。
6)腳的主要控制器應該以腳關節處為軸心,要作以腳跟為軸心旋轉的控制應該要放在channel box之中控制,因為要是將軸心放在腳跟的話,我發覺我要是一旋轉脚的話,就得再去移動它,才能到達我要的pose,這樣太多counter animation了。
7)IK的控制器應該以世界座標為參考,意思是,要是我用世界座標的模式移動物件的話,那麼只會有一個軸產生數值變化,要是不是這樣的話,在graph editor會很難編輯動畫線。
8)我習慣手肘控制器不跟隨鎖骨(或肩膀),為什麼呢,同樣的,因為這樣會有許多counter animation,可以讓它跟隨世界座標或是脊椎。
9)而膝蓋呢,我習慣讓它們跟隨脚的移動,不過旋轉不會跟隨,我之前不會去使用twist的方式來控制膝蓋,不過最近我看到一些利用twist解決膝蓋翻轉的問題,我覺得非常有趣,而且有可能是之後我會調整的工作方式,之後我會實驗看看。

其他偏好設定:
1)要是channel box之中有一長串控制選項的話,他們應該要用空的channel將不同的控制歸類。
2)身體兩邊的控制器旋轉應該要可以同時同角度的,意謂,像是選擇兩個肩膀同時旋轉時,兩邊應該都是往上或是同一方向的。
3)旋轉角(rotation order)的順序應該要可以切換,這樣FKIK切換時才可以行得通。
4)手指頭的控制器比較棘手,要是在每個指頭關節都有控制器,有時候選起來會蠻辛苦的,同樣的,所有東西都放在一個控制器中,一長串的channel選項有時也很混淆,我發覺最有效率的方式是在每跟指頭根處放一個控制器,而每一個指頭控制器中會有2個channel去旋轉裡面的指頭關節,這種設計的缺點是你可能沒辦法任意旋轉指頭關節製造某些影格中的smear效果,不過對遊戲動畫來說,這以經足夠了,Joel Ku幾年前教我這個技巧,我之後就習慣了這個方式。

B)最少量的counter animation(反動畫)
(譯註:counter animation指的是在CG動畫中,因為rig設計的問題,調一個身體部位的pose會影響到身體其他部位,動畫師得因此再花時間去調整那個被影響的部位,這樣稱作counter animate,比方說,要是FK的手臂沒有global的選擇的話,每次調整肩膀的位置,整支手臂在銀幕上的位置都會因此改變,動畫師得再counter animate手臂)
1)讓counter animation的狀況減少,這裡的關鍵是讓IKFK或是 local/global的切換更快更直覺,我習慣讓IKFK或是 local/global的切換直接放在相關的控制器上面,而且是可以設key的,這樣的話,我就不用浪費時間跑到別的控制器,試圖在50個選項中找到那個我需要的東西。
2)我也習慣每個身體部分只用一個控制器,像是一個可以在local跟global切換的IK控制器,而不是一個local的IK,一個global的IK,同樣的,這樣可以讓動畫師在切換時,不用花時間再去尋找那個控制器,也不用擔心不同控制器顯示的切換。

C)效能與即時的撥放
1)控制器要是太複雜,太重的話,每次播放都會延遲,那麼細修動畫的時間就會被排擠,因為要在即時播放中正確判斷你的動畫變得不可能。
2)要知道你的製作目的,目標是什麼,預算和時間有多少,要是有太多細微控制器,不過因為時間與預算的限制根本不會去用到的話,那麼也不切實際。
3)使用暫時的低解析度模型,代替又重又慢的高解析度模型來製作動畫。
4)playblast的速度對細修動畫而言非常地重要。
5)臉部控制,Osipa設計的那種介面非常棒,它可以讓你很快調到一個形狀,要是需要的話,也可以用臉上的控制器再加上更多細節。

我要強調,這只是我的偏好,歡迎加上更多你的偏好,或是提出相反的意見,我一直在尋找更有效率的製作方式。

2 comments:

Erik Lee said...

好文!!!
獲益良多!!感謝!

Kevin said...

yeah, it's right.