了解過3D相關知識的都知道,模型(Model)是由一個個三角形組成的,而這種三角形的學名則是網格(Mesh)。當然在DCC軟體裡為了友善創作,會用2個三角形組成四邊形作為網格。然後便是骨骼(Skeleton)了,它是驅動模型運動的根本。最後便是讓模型跟着骨骼一起運動了,這個骨肉融合的過程稱為綁定,具體要做的事便是将某節骨骼與相關的網格建立關系。
刷權重PART/01
模型上有着不同的顔色,這表示該節骨骼所影響到的網格權重值(藍色為0,紅色為1),是以綁定也俗稱“刷權重”。權重值越高,該節骨骼對相應網格的影響便越大(存在多節骨骼對相同網格存在影響,此時便要通過權重值來決定優先級了)。
随着時代的發展,現代DCC軟體基本配備自動刷權重的功能了。做好模型部件的劃分(每個部件擁有獨立的骨骼,通過各骨骼之間建立關系來聯系模型),減少每個模型的權重複雜度,如此通過自動刷權重基本可以應對一般情況了。
模型與動畫PART/02
生成給Unity使用的模型與動畫我選擇FBX格式,畢竟這算是最流行的3D格式了。對于動畫,我選擇一個動畫一個FBX檔案的形式(業界也有全部做到一個檔案裡,在Unity内分割的行為),動畫FBX檔案裡隻有骨骼與動畫資訊,不含模型。
一般的動畫,在這種動畫模式下實作複用的思想很樸素:隻要模型的骨骼與動畫的骨骼要素相同,那麼複用便是水到渠成的事了。這也表示必須同類模型與動畫的骨骼結構是一緻的。
事實上Humanoid便是做了一層中間層轉換,讓各自的人形模型的骨骼資訊統一抽象為上圖這套體系,并且還做了關節運動幅度的可控,如此便可實作複用了。且Unity實作了自動識别填充,使用起來還算友善。
補間與幀動畫PART/03
骨骼動畫的本質,便是在不同的時間點為某節骨骼定義了特定的位置、縮放、旋轉。動畫的運作便是根據兩個時間點之間的骨骼資料做數值變化,這種行為稱之為補間(Tweens),同理骨骼動畫也就是一種補間動畫。與補間動畫相對應的概念是幀動畫,幀動畫隻會在特定的時間點發生變化,時間點之間的運動途中是不變的,在許多經典的2D遊戲動畫便是這種做法。
當然這種方式并不完美:真正的2D幀動畫每一幀的持續時間都是人為确定的,而這樣隻是粗暴的抽幀罷了。當然人為确定幀時間的方式勢必帶來更高的人力成本,具體如何仍需取舍。
有趣的靈魂在等你
長按掃碼可關注