遊戲和CG裡的人物,都是怎麼動起來的呢?

深空愛吃肉包兒發表於2021-02-22
先說一下,製作卡通水效果的文章,之後馬上就更新。之前學校到期末了,比較忙,沒時間寫文章了。
大家好,許久不見,今天我來寫一期科普文章,主要是為接下來的一篇關於動畫的文章做鋪墊。好,我們直接開始講。

三維模型的原理

要理解三維動畫的原理,就要先理解三維模型的原理。如下圖,一個最簡化的三維的立方體就是由八個頂點組成的。

遊戲和CG裡的人物,都是怎麼動起來的呢?

而想要讓這個模型發生一點形變,修改其中一個頂點的位置即可了。也就是說,構成三維模型的基本資訊,就是點、線、面。

遊戲和CG裡的人物,都是怎麼動起來的呢?

最基本的三維動畫

在一個三維的空間裡,一個物體所能做到的所有的動作,其實,無外乎也是三種:移動,旋轉,縮放。如果我們不考慮改變顏色之類的情況,最基本的三維動畫確實都是由前面提到的三者構成的。

遊戲和CG裡的人物,都是怎麼動起來的呢?
建模軟體C4D裡的移動、縮放、和旋轉的圖示

這三者可以作用於物體本身,讓整個物體移動、旋轉、縮放。也可以作用於點、線、面中的任意一個或多個,使得物體產生形變。比如這樣:

遊戲和CG裡的人物,都是怎麼動起來的呢?

這便是最基本的動畫了,這種動畫也可以稱為頂點動畫,也就是逐個頂點的進行修改的動畫。單獨修改邊或者修改面的動畫也被視為頂點動畫,因為修改邊和麵,本質上就是在修改點。這裡需要注意的是,一般對於頂點進行旋轉和縮放是無意義的,因為頂點和頂點之間的連線一般不受頂點當前朝向角度的影響,而頂點本身是沒有空間大小的,因此對於其的縮放也不會產生任何的變化。

三維人物動畫的進階

雖然依靠著對物體、點、線、面的移動、旋轉、縮放,已經可以從理論上幫助我們實現任何現實的三維世界中可能或者不可能出現的動畫了。但是,當我們開始製作人物動畫的時候,就會很快的遇到麻煩。一個人體的模型,通常有數千個,數萬個,甚至百萬個頂點。
比如下圖的這個怪物模型:

遊戲和CG裡的人物,都是怎麼動起來的呢?

這個模型算是一個低模。搭配上精細的貼圖,放在《DOTA》或者《LOL》等俯視角的端遊,或是高畫質的手遊裡是沒有什麼問題的了。

遊戲和CG裡的人物,都是怎麼動起來的呢?

遊戲和CG裡的人物,都是怎麼動起來的呢?

而他的頂點數有5851個,面數有6994個。如果我們想要手動調整這麼多的頂點,已經是個噩夢了,更別說3A遊戲或者是電影裡的模型了。而且,沒有堅硬外皮的生物,在運動的時候,表皮會經常出現各種各樣的拉伸和形變,這也給為生物製作頂點動畫帶來了極大的阻礙。

於是,人們想出了一個妙招,人的皮膚和肌肉等這些頂點很多的柔軟組織,實際上都是依附在骨骼上的,而骨骼本身是不會產生多大的形變的,所以我們參考現實中的這種現像,讓這些具有柔軟表面的生物的模型也依附在骨骼上,不就完成了嗎?

因此,骨骼的概念應運而生,人們不需要去移動那麼多的頂點,而是去移動和旋轉這個虛擬的骨骼,就可以讓模型進行合理的形變,使其看起來就像是在運動的一樣。

遊戲和CG裡的人物,都是怎麼動起來的呢?

遊戲和CG裡的人物,都是怎麼動起來的呢?

不過,我們好像忽略重要的一步,我們有了模型有了骨骼,但是怎麼告訴電腦,骨骼該如何去影響模型呢?這時候我們就有了一個叫做蒙皮(繫結,Rigging)的工作,也就是,我們先需要告訴電腦,每一個骨骼都會影響哪些頂點,以及多大程度的影響這些頂點。這一步,通常可以先交給電腦先進行粗略的自動蒙皮,然後再手動進行精細的調整。

遊戲和CG裡的人物,都是怎麼動起來的呢?

上圖就是,當我們完成了蒙皮這項工作之後,我們可以看到一個骨骼都影響了那些節點,以及其影響的程度。上圖中我們選擇了盆骨的骨骼,可以看到,顏色越接近亮紅,則代表盆骨骨骼對其影響越強,越接近純黑,則代表盆骨骨骼對其影響越弱。

Tips:盆骨骨骼一般是人形生物的根骨骼,所謂根骨骼,就是所有其他的骨骼都是在這個根骨骼的基礎上長出來的。移動根骨骼,會帶著所有其他骨骼一起動。

如果我們給不同骨骼的影響力用不同的顏色代表的話,那麼我們就可以得到如下圖所示的所有骨骼的影響力分佈圖:

遊戲和CG裡的人物,都是怎麼動起來的呢?

然後,我們給骨架上個動畫,效果就出來了。

遊戲和CG裡的人物,都是怎麼動起來的呢?

遊戲和CG裡的人物,都是怎麼動起來的呢?

這樣我們就可以很輕鬆的完成動畫了。而且,相比起記錄諸多頂點的頂點動畫,只記錄骨骼的資訊可以大副的減小動畫檔案的大小。
在實際的動畫製作過程中,單純調整這些骨骼依然不算是最快的方法,還有許多的方法來加速使用骨骼的過程,諸如控制器,約束等。不過這些都是後話了,就不在今天範疇裡了。

接下來,很快會更新一期關於利用三維模型製作2D畫素動畫的文章,再之後就是之前的卡通水特效了,先給各位預覽一下效果:

遊戲和CG裡的人物,都是怎麼動起來的呢?

單純製作這段動畫只用了不到20分鐘的時間,效率還是非常高的。(這裡說的是不包括建模,綁骨骼,和製作渲染器的過程,而只包括三維和二維動畫的製作)

最後是帶貨時間,講一下我做的對話臺詞編輯器上架Unity Asset Store了,這是讓你通過視覺化的方式,來編寫多分支多選項的臺詞的工具。支援任何語言的本地化。並且不需要你編寫一行程式碼就可以使用大量的對話特效。目前在商店獲得五星好評。這裡分享一下開發經過完整的使用教程。 各位大哥要是覺得好用別忘了在Asset Store上留下個好評啊。

點此跳轉到Unity商店。

遊戲和CG裡的人物,都是怎麼動起來的呢?

遊戲和CG裡的人物,都是怎麼動起來的呢?

作者:深空愛吃肉包兒
來源:機核
地址:https://www.gcores.com/articles/133211

相關文章