近幾年,《神秘海域4》等大作中,無限接近電影級別的畫面表現令人驚豔,這樣的畫質意味著遊戲的表現力正在進入到嶄新的層面。
那麼,類似的高精度建模在遊戲的動畫中如何優化,錄製的動畫又該如何渲染?在Unite 2018大會上,Unity的技術美術總監、曾在皮克斯和頑皮狗擔任材質師的江毅冰分享了她的技術方案。
從現場的反響來看,這也是觀眾提問比較積極的一次分享。甚至也有人感嘆「現在急功近利的人太多了,遊戲行業需要這樣簡單純粹的人」。
在江毅冰看來:
實時渲染將會取代傳統的動畫渲染,實時渲染技術在材質、燈光等方面大幅度減少了渲染消耗時間,從而可以使得創作者將精力聚集在製作漂亮的畫面上。藝術指導可以在第一時間看到成品,更容易更改畫面。對於動畫的製作方來說,實時渲染減少了對人員、時間的消耗,從而大量減少了開支。
高品質的遊戲畫質和電影畫質主要差距在於材質、光影和抗鋸齒三個方面,突破這幾點遊戲畫面就能呈現出電影級別的表現力。
屏幕類之間的陰影和屏幕間的全局光照,正在逐漸廣泛地運用到3A遊戲中,讓實時渲染的陰影看起來更真實;半像素抗鋸齒越來越好,正在大幅縮小實時渲染和離線渲染的差距。
在處理人物頭髮等比較棘手的建模問題時,可以嘗試用不透明的貼圖來做頭髮的模型,再加入條紋來模擬髮絲;可以把頭髮編成辮子來解決排序問題、把頭髮做成深色來規避陰影問題。
原演講題目為《從3A遊戲到實時渲染的動畫電影》,以下為江毅冰演講實錄。
大家好,非常榮幸在這裡和大家分享一部正在製作的的實時渲染動畫電影《發條樂師》。演講會涉及四個方面:1、動畫電影的製作現狀。2、如何實現實時電影的品質。3、製作實時電影的挑戰。4、實力的展示。
我從小的夢想,便是有一天能夠進入像迪士尼一樣的動畫公司創作最好的動畫片,追尋這個夢想的路程並非簡單。因為我的父母希望我從事醫生、律師和工程師相關職業。我進入了理工大學,但是我不願意放棄我的動畫夢,一有時間我就自學動畫。
大學期間我創作了6部獨立短片,其中1部是3D動畫,那時候只能晚上熬夜在學校的實驗室進行創作。直到有一天,我收到ACCAD實驗室的一封來信,這所實驗室的一位老師在網絡上看到了我製作的短片很感興趣,希望我能報考他們學校。雖然只是一封郵件,但是對我來說,雪中送炭。因為我從來沒有專業人士肯定過我的作品,我一直以為做動畫僅僅是一個夢,遙不可及。
在收到多所大學的通知書後,我選擇了紐約視覺藝術大學。接下來的二年時間,就像電影裡面的情節一樣,只能租得起紐約最便宜的地段,不斷搬家。直到我被迪士尼天才培養計劃選中隨後進入夢工廠實習,最終被皮克斯錄取,終於如願以償進入了全世界最好的動畫公司。
皮克斯聚集了世界各地的動畫精英,就像一個小的聯合國一般。在這裡有人專攻色彩、有人專攻動畫、有人專攻電影特效。甚至有一部分人,很難定義他們是幹什麼的,我們稱他們為魔術師,在傳統的動畫製作上沒有他們的職位,而隨著計算機圖形學的發展,他們就如虎添翼一樣,單槍匹馬就能創作出之前需要幾十個人才能完成的作品。我從這些人身上學習到了很多東西。
我在皮克斯的職位是材質師,參與創作了二部電影。很快我就發現,材質師如果用傳統的動畫流程,大部分時間就在等渲染,如果按錯了一個鈕,等很長時間取消。很多人遇到同樣的問題,都在尋求新的方法進行改進。2012年,我參加了美國計算機圖形學的一個會議,其中有一個演講中使用的模型和《勇氣》有著相同的畫質,其中畫面中的雲、樹林、山脈全部是用代碼寫的,而且是實時渲染。
如果實時渲染能達到這種畫面,為什麼我們要等十幾個小時來渲染一個動畫片?一幀的動畫片,全部是代碼。我想講一下實時渲染的意義。
對於藝術家而言,特別在材質、燈光上大幅度減少了實時渲染的消耗時間,從而我們可以把精力聚集在製作漂亮的畫面上。藝術指導可以在第一時間看到成品,修改畫面也會容易很多。對於製片商而言,實時渲染減少了對人員、時間的消耗,從而大量的減少了開支,現在一部高質量的動畫要花費1-2個億美元來製作,而看電影的人越來越少。所以電影製作的開支不得不減少,如果不選擇實時渲染的話,很多電影公司都可能會倒閉。對於獨立製作動畫短片的愛好者來說,減少製作成本意味著很多人可以製作他們想做的片子,而不需要利用很大的成本。
為什麼現在很多人為什麼沒有選擇實時渲染?我認為是因為他們覺得實時渲染的畫質和電影的畫質還是很有差距的。我想介紹一下實時渲染的速度和現代電影的速度差別。
近幾年,迪士尼和皮克斯發行動畫片都是用同一技術Path Tracing,現實生活中燈光物理的原理,使畫面顯得更完美、更真實。可是對於渲染速度來說,平均下來Path Tracing花30個小時顯然一幀畫面,我們的速度比30個小時渲染一幀快325萬倍,以這樣的速度來達到電影的畫質,對於很多人來說是有點不可想像的。如何能提高電影畫質呢?我認為實時渲染會取代傳統渲染。
我們可以看到AAA遊戲的畫質和電影的畫質主要差距在:材質、光影、抗鋸齒三個方面。如果我們解決了這些問題,就可以儘量縮小實時渲染和電影的差距。
在材質方面,特別是在角色上面,曾經讓人大傷腦筋,近幾年很多論文有相關的研究,比較著名的是關於材質皮膚屏幕類模糊的一個漫反射的論文,很多的遊戲都是運用這個論文中的方法來製作皮膚的。我們可以在這裡看到,Unity 5有一個黑鐵匠畫面,拿完全一模一樣的模型更改它的材質,在更新技術流程上使用,看起來完全不一樣的人,其實是一樣的模型。
離線渲染的陰影解析度大大高於實時渲染的。如果你沒有使用幾萬塊的高級電腦,實時渲染的畫面有的時候顯得很平,很多地方有漏光的現象。近幾年如果你有所關注,屏幕類之間的陰影和屏幕間的全局光照,已經逐漸的運用在AAA遊戲中,讓實時渲染的影子看起來真實了很多,不是真正完全物理光返照的。
在抗鋸齒方面,近幾年有很多例子都是關於這方面的,半像素抗鋸齒也是越來越好,大幅度的縮短了實時渲染和離線渲染的差距。如果大家有玩遊戲的話,你可以想像,很容易看出來遊戲中的鋸齒,有些散光的,如果解決這個問題,遊戲的畫面看起來便更加像電影了。
在經歷了頑皮狗的磨鍊以後,我們從中製作了幾部實時渲染的短片和預告片,那個時候很多人就說,看起來像電影的畫質,完全覺得不像是遊戲裡面的,那個時候我覺得應該是一個好的時機,是不是現在就是研發製作實時電影的最佳時機?所以我定辭掉頑皮狗的工作,冒險一搏,因為我相信現在的確就是研發實時渲染的最好時機。
3月我們將《發條樂師》的一個測試場景短片發到網上的時候,很多人都有問,為什麼那個角色是不動的?因為我們現在還在製作中,如果大家想看它動起來的話,請繼續關注Unity下個月在德國柏林的一個演講,我們很巧妙的技術讓它動起來而且用很方便的方法。
下面介紹我們如何製作這個測試場景。
首先是場景的搭建。第一步是原畫,場景的原畫分為兩個步驟,這是一部講述在一個小鎮上關於愛與舍取的故事。
我的畫稿發揮想像的同時也考慮到成本和製作的一些問題,以及實時渲染技術的一些局限。我們製作上會面臨很多挑戰,這也是在製作畫稿期間就需要充分考慮到的。我們希望角色與環境是互相匹配的,我們希望可以製作出令人印象深刻的角色以及美麗的場景。由於預算有限,在最初設計的時候,要考慮到技術的限制問題也是非常重要的,所以我寫下了我們想要的和不想要的。
我們開始第二步開始尋找參考資料,對於環境來說,我們瀏覽了上百個參考圖,在收集參考圖的過程當中積累了一些經驗和教訓。
其中總結最重要的一個教訓是,我們需要簡化樹和植被的模型。這是我在舊金山植物園拍的照片,現實生活中的樹是很有意思的,但同時有太多的繁殖細節,如果我們追尋寫實的風格,環境會顯得非常複雜,葉子的數量和植被樹皮節點幾何構造數量會讓整個場景有過多的細節,會導致我們無法在實時渲染的場景中建造,所以我們需要簡化設計。
如果大家有比較喜歡動畫電影的話,應該有聽說過《睡美人》場景設置的主導Eyvind Earle, 他在動畫界非常有名,他將超現實和插圖藝術的結合。受到超現實藝術的啟發,右邊選擇的畫面簡化了數字的模型,使最終的結果不失美感,但是也不失細節。我非常喜歡冷暖色調的對比,在左邊的畫面,你看它的影子有藍色和橘色的搭配,我覺得這是個很巧妙的運用。
以此為基礎,我起草了一個草圖,將草圖畫成了顏色腳本,這邊這幅圖是我畫的,這邊這幅圖和他一起的,這二幅圖是我畫的細節。
接下來是初模的建造,在實時電影建造中,初模建造比離線好很多,我們場景和燈光把同時開始製作,將顏色腳本和遊戲試圖放在一起,隨時比較,隨時更改。左邊是遊戲視圖,這邊是畫好的顏色腳本。所以我可以一直不停地對比。
在細節方面,我們運用了可以反覆運用的貼圖,同時樹木的根部和場景反覆的斟酌。
我們還嘗試了運用高清渲染流程中的鑲嵌式平鋪功能,就像電影中一樣可以看到很多細節,鏡頭離遠了以後細節就會逐漸消失,這樣的話可以減少算法,我們讓畫面看起來很立體,但是也不會加大很多的面數,使我們能在實時渲染上運用。
這是最終的場景,我們的燈光師重塑了色彩腳本中明暗度和冷暖色調的搭配。
我們如何創建角色呢?這是最終的角色設定。
其實在設計角色的時候我們不斷的更改設計,主要是為了技術上面的困難。
以下是我們發現的技術上的問題,我們把頭髮編成辮子,避免排序的問題, 大家有做遊戲的話應該都對這方面很頭疼的問題,所以我們編成辮子來介紹,但是也有需要考慮的問題,把頭髮搞成深色的,不用考慮陰影的問題。我們角色穿成寬鬆形狀簡單的毛衣,這樣看起來她的服裝不會很單調。
首先是建模,你可以看到嘗試了很多次才達到了想要的面部效果,我和角色師爭論了好多次,第一個看起來好像很生氣一樣。
鎖定面部形狀以後,我們開始建造發卡,這也是在遊戲中才有的畫面,因為實時電影裡面,遊戲裡面發卡能跑得動,我們就要把它的形狀改成發卡。
下面一步是頭髮的貼圖,裡面大部分頭髮是用不透明的模型,在左邊這一張,這樣的話我們就不用考慮那個問題,為了看起來真實,我們增加了一些條紋,你可以看到,在加入條紋的時候是沒有縫線的,這樣很小的一張圖片可以讓頭髮看起來有成千上萬個髮絲。
在這之前很多人問我怎麼做這個發線的?我並沒有做任何動作,在運用條紋,鏡面反射貼圖中讓頭髮看起來很真實,並不是用那個Wrinkle Map。
我們用X線做了很小的發卡,讓頭髮看起來比較真實,但是並沒有加很多的,大部分還是用發卡做的,因為加了太多的話會影響運行性能。
下一步是毛衣的建模,在原畫設計中毛衣形狀是非常簡單的,但是我們不需要製作複雜的貼圖,使服裝看起來更真實。
但是簡單的形狀並不意味著我們在細節上不用大作文章,為了使角色看起來可信,我們將毛衣的模型按照不同的織法紋理來分區。
在不同的區域添加不同的紋理,這是其中一張貼圖,這種貼圖是非常小的,我們當時也沒有太多測試,我使用的是256×256的大小。在此基礎上加了很鬆散的發卡,使毛衣看很小更柔軟,發卡是非常鬆散的,確定模型面數沒有超標。
經常有人問到,是否能用發卡這樣的方式來製作實時的皮毛,答案是可能不行。因為需要大約十多位的卡片才能使毛髮看起來更真實,小面積的還可以,如果做整隻動物的皮毛,模型面數就會太重,實時是跑不動的,遊戲中最常用的毛法的做法是使用一層半透明的貼圖,聚焦看的話其實可以看得出來是一層一層的,我在《神秘海域4》使用過這個方法,如果你看到模型是平的。因為我在這部電影中沒有運用到實時的皮毛。
這是角色的最終結果,大家可以看到,可以隨時的旋轉和放大任何一個方面來看它有沒有問題,就比傳統的電影製作方便很多。
最後一步是將環境和諧的和角色配合在一起。這就意味著我們必須剪掉角色上的環境燈光,並使角色重新打光。
我們可以感到,剛把角色放到場景中的時候,這個角色是非常亮的,比場景亮很多,這樣看起來就有點突兀。所以我們需要把所有環境的燈光在角色上要去掉,其實電影裡面也有相關的做法,AAA遊戲也是一樣的,環境的燈光在角色上面去掉,重新在角色上再打光。
我們的燈光師一個燈一個燈在不不一樣的場景裡面加上不一樣的燈光,如果角色動起來的話,其實那個燈光隨著鏡頭不一樣的調整動起來,這些在電影中很常用的,但是電影上面就是要等渲染很長時間,這個就會很快。
下面就是最終呈現的結果。
特別要感謝這幾位參與製作主要的成員,參與這個項目製作的一共有二三十個人。我們團隊成員是來自世界各地,為了組成這個團隊,而不受時間、地域的影響,我們運用了Unity Collab,每個人參與項目的成員都可以實時的看到更新,我覺得非常方便。
最後感謝一下編寫這些工具的開發人員,使我們作品如虎添翼。
《發條樂師》還在製作之中, 我們也希望找收到更多的精英加入到這個項目中,如果感興趣喜歡挑戰自己作品的朋友,希望你能把作品發給我們,歡迎大家加入我們。謝謝 !
關注微信公眾號「遊戲葡萄」,每天獲取最前瞻的遊戲資訊