《Sherman》搔确,它由《大白的夢(mèng)》的創(chuàng)作團(tuán)隊(duì)制作,展示了高級(jí)的實(shí)時(shí)毛發(fā)效果灭忠。
在制作方面膳算,《大白的夢(mèng)》制片人Andy Wood負(fù)責(zé)管理項(xiàng)目的制作,Isabelle Riva作為執(zhí)行制片人領(lǐng)導(dǎo)團(tuán)隊(duì)弛作。我們還得到Vlad Neykov的幫助涕蜂,他負(fù)責(zé)使用全新的Visual Effect Graph進(jìn)行創(chuàng)作。
《Sherman》的核心內(nèi)容由8人組成的小型團(tuán)隊(duì)制作映琳,從9月至12月歷時(shí)三個(gè)月制作完成机隙。此后我們鎖定了動(dòng)畫(huà)部分换途,剩下的制作過(guò)程專注于對(duì)毛發(fā)等部分的研發(fā)工作毅厚。
最后感謝在創(chuàng)作《Sherman》短片時(shí)提供幫助的所有Unity成員胶果,特別是Film R&D團(tuán)隊(duì)和EDU團(tuán)隊(duì)荒适。
創(chuàng)作工具
通過(guò)制作《大白的夢(mèng)》怒见,制作團(tuán)隊(duì)已經(jīng)非常熟悉Unity新的HDRP渲染器盯拱,包括:對(duì)HDRP進(jìn)行重要改動(dòng)事甜,改進(jìn)陰影過(guò)濾和PCSS订歪。
對(duì)于新項(xiàng)目穿肄,我們希望盡可能充分使用渲染器和工具集年局。Unity圖形工程師John Parsaie的工作讓項(xiàng)目在很多方面提高了標(biāo)準(zhǔn)际看,特別是實(shí)時(shí)的毛發(fā)渲染。
我們使用Unity 2018.3制作《Sherman》矢否,使用了許多Unity資源包仲闽,包括:Timeline、Cinemachine僵朗、Recorder赖欣、Alembic、FBX Exporter验庙、Visual Effect Graph顶吮、Post Processing和HDRP等。
在制作期間粪薛,我們開(kāi)發(fā)了許多工具和實(shí)用程序悴了,并分享了其中一些,使它們成為Film / TV Toolbox資源包的一部分违寿,該資源包可以通過(guò)Unity資源包管理器獲取湃交。其余功能在“影視工具庫(kù)”中,目前我們?nèi)匀辉趯⑦@些工具移植到Film / TV Toolbox資源包中藤巢。
項(xiàng)目基礎(chǔ)
對(duì)于大部分內(nèi)容搞莺,制作團(tuán)隊(duì)在《Sherman》上的工作不是完全獨(dú)立的,這里特別要提到發(fā)布于2016年掂咒,Marza動(dòng)畫(huà)星球的短片項(xiàng)目《The Gift》才沧,它是Marza動(dòng)畫(huà)星球和Unity Japan團(tuán)隊(duì)合作制作。
《The Gift》為Unity在實(shí)時(shí)動(dòng)畫(huà)方面的功能建立了很多基礎(chǔ)俏扩,包括:Alembic支持糜工、Unity Recorder、以及Unity中毛發(fā)著色器的第一個(gè)實(shí)現(xiàn)录淡。這些都被我們用作《Sherman》項(xiàng)目的基礎(chǔ)捌木。
構(gòu)造短片
曾為《冰川時(shí)代》中松鼠Scrat等經(jīng)典角色制作動(dòng)畫(huà)的Bryan Larson開(kāi)始進(jìn)行短片的概念構(gòu)造。通過(guò)使用Steven Shmuely創(chuàng)作的大致角色造型嫉戚,他很快創(chuàng)作出了第一個(gè)動(dòng)畫(huà)草稿刨裆,以呈現(xiàn)設(shè)想中的基本故事。
有了大致的動(dòng)畫(huà)內(nèi)容后彬檀,Mark Droste把動(dòng)畫(huà)導(dǎo)入U(xiǎn)nity帆啃,使用Cinemachine快速構(gòu)造出第一個(gè)攝像機(jī)設(shè)置,又用一天左右的時(shí)間制作出首個(gè)粗略的動(dòng)畫(huà)腳本窍帝,并向團(tuán)隊(duì)展示努潘。
下圖是《Sherman》動(dòng)畫(huà)腳本的短片片段,藝術(shù)家可以使用粗糙的資源快速加工出故事內(nèi)容。
Unity強(qiáng)大的動(dòng)畫(huà)和攝像機(jī)工具允許制作團(tuán)隊(duì)僅花費(fèi)幾天時(shí)間疯坤,就可以把大致的創(chuàng)意實(shí)現(xiàn)為完整的動(dòng)畫(huà)腳本报慕。實(shí)時(shí)進(jìn)行快速迭代和嘗試創(chuàng)意非常重要,這將允許制作團(tuán)隊(duì)快速“發(fā)現(xiàn)故事”压怠。
在得到短片的完整動(dòng)畫(huà)腳本后眠冈,制作團(tuán)隊(duì)可以真正了解到制作該短片所需的內(nèi)容。
使用HDRP進(jìn)行外觀開(kāi)發(fā)
通過(guò)制作《大白的夢(mèng)》菌瘫,制作團(tuán)隊(duì)積累了大量使用HDRP的經(jīng)驗(yàn)蜗顽,非常熟悉其中的渲染器,并且擁有圖形工程資源雨让,可以根據(jù)需要來(lái)自定義和擴(kuò)展渲染器雇盖。所以我們決定為《Sherman》使用HDRP。
我們?yōu)椤禨herman》設(shè)定了高視覺(jué)質(zhì)量標(biāo)準(zhǔn)栖忠。夢(mèng)工廠新短片《Bilby》和Unit Image最新的迪士尼廣告這二個(gè)短片都有非常好的毛發(fā)效果刊懈。
受此影響,我們希望在Unity中實(shí)現(xiàn)高級(jí)別的毛發(fā)質(zhì)量娃闲,并擁有質(zhì)量調(diào)整滑塊,同時(shí)實(shí)現(xiàn)超快速的工作環(huán)境和最高質(zhì)量的渲染輸出結(jié)果匾浪。
我們?yōu)檎w顏色分級(jí)外觀使用了全局Post Processing Profile皇帮,使用Cinemachine攝像機(jī)剪輯配置文件來(lái)控制每個(gè)鏡頭的后期處理效果,例如:曝光蛋辈,景深和暈影属拾,以及所有類似鏡頭的效果。
這種對(duì)每個(gè)場(chǎng)景/節(jié)拍實(shí)現(xiàn)的顏色分級(jí)可以很好結(jié)合每個(gè)畫(huà)面的鏡頭PPS組合效果冷溶,它可以用來(lái)對(duì)多個(gè)畫(huà)面快速嘗試不同的顏色分級(jí)調(diào)整渐白,同時(shí)保留所有基于鏡頭的外觀。
在制作過(guò)程中逞频,我們使用Cinemachine Storyboard擴(kuò)展來(lái)對(duì)比當(dāng)前視覺(jué)效果和參考圖像纯衍。使用Storyboard的SplitView功能來(lái)查看項(xiàng)目目標(biāo)參考圖像,使用Waveform Monitor來(lái)幫助了解畫(huà)面在顏色方面和視覺(jué)目標(biāo)之間的區(qū)別苗胀。這將可以在實(shí)時(shí)環(huán)境對(duì)每個(gè)畫(huà)面進(jìn)行這種級(jí)別的顏色改進(jìn)襟诸。
下圖為WaveForm Monitor SplitView視圖,左右部分展示了參考畫(huà)面和引擎內(nèi)的波形圖區(qū)別基协。
由于團(tuán)隊(duì)只有一個(gè)3D建模師Steven Shmuely歌亲,所以我們的環(huán)境不能過(guò)于復(fù)雜,也不能使用太多資源澜驮。
《Sherman》中的所有角色和物品都在Maya和3ds Max中建模陷揪,使用了Substance Painter來(lái)處理表面,其中一部分資源來(lái)自《死者之書(shū)》環(huán)境資源包,Steven Shmuely對(duì)這些資源進(jìn)行了修改悍缠,以符合短片的風(fēng)格和調(diào)色板卦绣。
《Sherman》的大部分資源使用標(biāo)準(zhǔn)HDRP Lit著色器,該著色器的功能豐富扮休,提供了多種選項(xiàng)來(lái)實(shí)現(xiàn)理想的外觀迎卤。
從角色開(kāi)始,Steven Shmuely快速建模了浣熊玷坠、灑水器蜗搔、食盆等主要資源的多個(gè)版本。下圖展示主要資源的早期渲染效果八堡。
我們最喜歡的一個(gè)資源是花園矮人雕像資源樟凄,矮人雕像的材質(zhì)使用Substance Painter繪制,如下圖所示兄渺。
在外觀開(kāi)發(fā)階段缝龄,我們會(huì)在Unity渲染轉(zhuǎn)盤(pán)效果,以進(jìn)行查看和確認(rèn)挂谍。
矮人雕像使用了標(biāo)準(zhǔn)HDRP Lit著色器叔壤,設(shè)置內(nèi)容如下圖所示。
使用Shader Graph處理材質(zhì)
除了使用標(biāo)準(zhǔn)HDRP Lit材質(zhì)口叙,場(chǎng)景中的大量元素需要更高級(jí)的材質(zhì)炼绘。我們使用了Unity可視化節(jié)點(diǎn)材質(zhì)編輯器Shader Graph著色器視圖來(lái)制作特別的材質(zhì)。
對(duì)于水管部分妄田,Steven Shmuely使用Stacklit shadergraph主節(jié)點(diǎn)制作了自定義Shader Graph俺亮,制作出二個(gè)獨(dú)立的鏡面部分,一個(gè)用于水管外部塑料層的光滑反射疟呐,另一個(gè)用于纖維編織的內(nèi)部層脚曾。
水管的Shader Graph包含對(duì)泡泡動(dòng)畫(huà),模擬焦散和表面波形的獨(dú)立控制启具,表面波形的控制通過(guò)使用頂點(diǎn)動(dòng)畫(huà)來(lái)使表面變形本讥。所有公開(kāi)的參數(shù)都可以在Timeline上獨(dú)立設(shè)置,這樣有助于給膨脹的水管場(chǎng)景帶來(lái)動(dòng)態(tài)分層的外觀富纸。
下圖是水管和Shader Graph屬性囤踩。
下圖是水管部分的材質(zhì)的Shader Graph展示局部。(可點(diǎn)擊大圖觀看)
使用Shader Graph著色器視圖非常重要晓褪,它幫助Steven Shmuely快速創(chuàng)建和迭代水管的外觀堵漱,而不需要圖形工程師的幫助。
眼睛著色器
在開(kāi)發(fā)和角色有關(guān)的項(xiàng)目時(shí)涣仿,關(guān)鍵元素是眼睛的著色和渲染勤庐。對(duì)于《Sherman》項(xiàng)目示惊,我們嘗試了多個(gè)眼睛著色器的變體,才確定最終結(jié)果愉镰,最后我們使用自定義著色器和相應(yīng)的MonoBehaviour腳本來(lái)控制眼睛的視差方向米罚。
眼睛的實(shí)現(xiàn)比我們想象的復(fù)雜許多。在許多實(shí)時(shí)制作中丈探,眼睛通常簡(jiǎn)化為雙殼幾何體录择,用于表現(xiàn)眼睛的內(nèi)殼和外殼,但這樣會(huì)得到質(zhì)量很低的眼睛外觀碗降。由于我們有很多小鳥(niǎo)和浣熊的近距離畫(huà)面隘竭,所以我們需要更好的質(zhì)量。
在嘗試解決高質(zhì)量眼睛著色時(shí)讼渊,最重要的是眼睛本身的實(shí)際制作动看。為了讓著色器可以適當(dāng)應(yīng)用眼睛著色所需的視差效果,我們開(kāi)始時(shí)把眼睛的UV設(shè)為處于0~1的范圍爪幻。
下圖是浣熊眼睛的UV圖菱皆。
右上角的圖是眼球的后半部分,主要部分用于面向前方的眼睛挨稿,它在UV空間位于中心位置(0.5,0.5)仇轻。這樣設(shè)置眼球的UV可以讓著色器根據(jù)視差效果修改UV,如下圖所示奶甘。
另一個(gè)重要細(xì)節(jié)是:眼睛的骨骼朝向也用于視差效果的計(jì)算拯田。這對(duì)于為我們提供攝像機(jī)觀察方向的參考畫(huà)面進(jìn)行對(duì)比非常重要。眼睛的折射效果是二個(gè)向量函數(shù)即眼睛方向和攝像機(jī)觀察方向甩十,以指定應(yīng)用視差效果的程度。
John Parsaie給眼睛著色添加的最終視覺(jué)細(xì)節(jié)是眼睛的環(huán)境遮蔽效果吭产,該效果通過(guò)對(duì)眼瞼進(jìn)行光線步進(jìn)侣监,然后公開(kāi)參數(shù),從而讓Steven Shmuely控制應(yīng)用的AO量臣淤。
上面的最終結(jié)果被公開(kāi)在MonoBehaviour眼睛控制器腳本中橄霉,該腳本允許團(tuán)隊(duì)為場(chǎng)景中每個(gè)畫(huà)面制作眼睛的動(dòng)畫(huà),并處理眼睛的屬性邑蒋,根據(jù)需要來(lái)完全控制眼睛的虹膜細(xì)節(jié)姓蜂,從而實(shí)現(xiàn)最終結(jié)果。
下面是《Sherman》的眼睛著色医吊。
我們對(duì)最終結(jié)果非常滿意钱慢,它將隨著完整的《Sherman》項(xiàng)目發(fā)布。我們還希望將著色器和控制器打包為獨(dú)立資源包卿堂,以便開(kāi)發(fā)者在自己的項(xiàng)目中使用束莫。
使用Cinemachine進(jìn)行攝像機(jī)布局
Mark Droste使用Cinemachine來(lái)布局《Sherman》項(xiàng)目中的所有攝像機(jī)懒棉,我們也使用了FBX Exporter將攝像機(jī)路徑從Unity導(dǎo)出到Maya,以便動(dòng)畫(huà)師制作動(dòng)畫(huà)览绿。
最初策严,為了給Bryan Larson足夠的工作空間,并使他實(shí)現(xiàn)自己的動(dòng)畫(huà)饿敲,短片拍攝得非常隨意妻导。隨著動(dòng)畫(huà)從草圖變?yōu)樽罱K效果,Mark Droste可以加工攝像機(jī)的拍攝和移動(dòng)過(guò)程怀各。
由于角色已經(jīng)在Bryan Larson設(shè)置的基本表演位置倔韭,Mark Droste可以直接在Unity中使用Cinemachine設(shè)置攝像機(jī)。他可以在大部分鏡頭中程序化跟蹤浣熊渠啤,通過(guò)在一條Timeline上使用多個(gè)Cinemachine攝像機(jī)軌道來(lái)嘗試新的攝像機(jī)狐肢,這讓他發(fā)現(xiàn)哪些鏡頭的效果好,哪些鏡頭可以調(diào)整為更好的組成效果沥曹。
這樣的過(guò)程比在Maya等傳統(tǒng)工具中制作攝像機(jī)動(dòng)畫(huà)的速度更快份名。通過(guò)使用Cinemachine攝像機(jī)剪輯和動(dòng)畫(huà)軌道來(lái)調(diào)整攝像機(jī)屬性,Mark Droste可以快速布局好短片的攝像機(jī)妓美,快速進(jìn)行迭代以實(shí)現(xiàn)最終結(jié)果僵腺。
小結(jié)
以上是《Sherman》項(xiàng)目創(chuàng)作系列文章的第一部分,希望你喜歡關(guān)于創(chuàng)作該項(xiàng)目所使用的制作流程和方法的內(nèi)容壶栋。
在下一篇中辰如,我們將深入了解如何使用Alembic來(lái)處理角色動(dòng)畫(huà),并了解更多創(chuàng)作《Sherman》時(shí)關(guān)于毛發(fā)實(shí)現(xiàn)的內(nèi)容贵试,以及Innovation Group開(kāi)發(fā)的幫助團(tuán)隊(duì)處理Unity線性動(dòng)畫(huà)的工具琉兜。
我們非常喜歡《Sherman》短片,期待了解用戶如何使用Unity制作動(dòng)畫(huà)毙玻。最后提醒一下:在短片中豌蟋,Sherman不是浣熊的名字,而是下圖中毛茸茸小鳥(niǎo)的名字桑滩。
在《Sherman》項(xiàng)目背后的技術(shù)細(xì)節(jié)(1)中梧疲,我們介紹了項(xiàng)目背景、設(shè)計(jì)項(xiàng)目的方法运准、外觀開(kāi)發(fā)和攝像機(jī)布局幌氮。在第二部分中,我們將介紹角色動(dòng)畫(huà)胁澳、使用Alembic该互、使用Visual Effect Graph的方法以及毛發(fā)效果實(shí)現(xiàn)的細(xì)節(jié)。
工程下載
《Sherman》提供完整項(xiàng)目工程下載:https://connect.unity.com/p/sherman-unityguan-fang-zhi-zuo-ying-shi-duan-pian
友情提示:
你可以點(diǎn)擊[閱讀原文]韭畸,進(jìn)行工程下載慢洋。
在打開(kāi)工程時(shí)塘雳,如果出現(xiàn)無(wú)法找到Git的錯(cuò)誤信息,請(qǐng)先安裝Git:https://git-scm.com/downloads
請(qǐng)使用Windows系統(tǒng)打開(kāi)項(xiàng)目普筹,下面最低配置和推薦配置败明。
使用Alembic實(shí)現(xiàn)高級(jí)動(dòng)畫(huà)
創(chuàng)作《大白的夢(mèng)》系列短片時(shí),制作團(tuán)隊(duì)把FBX作為主要格式太防,用來(lái)將資源從Maya導(dǎo)入到Unity妻顶。
在DCC工具之間傳遞數(shù)據(jù)一直是一個(gè)難題,從原始格式導(dǎo)出為外部格式會(huì)有損原來(lái)的內(nèi)容蜒车,使用可用導(dǎo)出格式是有利有弊的讳嘱。
FBX格式是大多數(shù)Unity項(xiàng)目使用的常見(jiàn)格式,它擁有明確定義的優(yōu)化工作流程酿愧。對(duì)于大多數(shù)Unity項(xiàng)目的動(dòng)畫(huà)制作沥潭,開(kāi)發(fā)者都會(huì)使用FBX文件中基于骨骼的傳統(tǒng)動(dòng)畫(huà),但是這種方法有二個(gè)限制:
骨骼蒙皮權(quán)重限制嬉挡,存在于Unity 2019.1之前的版本
擠壓拉伸的比例補(bǔ)償
蒙皮權(quán)重設(shè)置
在Unity 2018.3及更早版本中钝鸽,Unity最多可以使用4個(gè)骨骼對(duì)每個(gè)頂點(diǎn)添加權(quán)重,這讓高級(jí)蒙皮權(quán)重處理起來(lái)更加復(fù)雜和麻煩庞钢。
這個(gè)限制在Unity 2019.1中被去除了拔恰,現(xiàn)在每個(gè)頂點(diǎn)最多支持256個(gè)骨骼,但是在制作《Sherman》的時(shí)候基括,Unity 2019.1仍處于早期Alpha測(cè)試階段颜懊,所以我們決定繼續(xù)使用Unity 2018.3制作《Sherman》項(xiàng)目。
擠壓拉伸的比例補(bǔ)償
作為動(dòng)畫(huà)師风皿,首先要學(xué)習(xí)的第一個(gè)知識(shí)就是擠壓拉伸河爹,根據(jù)維基百科的話,擠壓拉伸被視為動(dòng)畫(huà)的12項(xiàng)基本原則中“最重要的”原則桐款。
下圖展示了《Sherman》短片在早期動(dòng)畫(huà)測(cè)試中的擠壓拉伸效果昌抠,該視頻用于測(cè)試早期皮毛實(shí)現(xiàn)如何作用于角色的動(dòng)畫(huà)和綁定。
為了實(shí)現(xiàn)真正的擠壓拉伸動(dòng)畫(huà)鲁僚,我們使用了“比例補(bǔ)償”方法。
在制作《大白的夢(mèng)》項(xiàng)目時(shí)裁厅,我們使用一些綁定技巧即平整綁定層級(jí)實(shí)現(xiàn)了這個(gè)方法冰沙,但對(duì)于《Sherman》項(xiàng)目,我們希望使用另一個(gè)方法执虹,即Alembic方法拓挥。
解決方案:Alembic
Alembic是VFX和動(dòng)畫(huà)制作中常見(jiàn)文件格式,它作為交換格式而流行起來(lái)袋励,允許工作室把內(nèi)容從不同軟件工具移動(dòng)到工作室的管線中侥啤。
與使用蒙皮網(wǎng)格和骨骼來(lái)平移和變形網(wǎng)格的FBX不同当叭,Alembic資源是原始模型烘焙后的頂點(diǎn)形式,允許你把原始資源的“所見(jiàn)即所得”副本導(dǎo)入到任何支持Alembic文件的工具中盖灸。
Alembic for Unity的第一個(gè)實(shí)現(xiàn)要追溯到Marza動(dòng)畫(huà)星球和Unity Japan團(tuán)隊(duì)合作創(chuàng)作《The Gift》短片蚁鳖,那時(shí)Alembic被用來(lái)在短片結(jié)尾形成大型海洋球的波浪動(dòng)畫(huà)。我們?cè)诤蚈ats Studios合作制作《ADAM 2》和《ADAM 3》短片時(shí)加入了更多相關(guān)功能赁炎。
Alembic資源包脫離預(yù)覽階段
在Unity 2019.1中醉箕,Alembic資源包已經(jīng)脫離預(yù)覽階段,這意味著它是一種Unity完全支持的格式徙垫。對(duì)CG動(dòng)畫(huà)行業(yè)的從業(yè)者來(lái)說(shuō)讥裤,這是一個(gè)好消息,創(chuàng)作者能夠使用自己熟悉的格式并用在自己現(xiàn)有的管線上姻报,這樣會(huì)有很大好處己英。
了解Alembic for Unity以及如何使用該資源包,請(qǐng)查看:https://docs.unity3d.com/Packages/com.unity.formats.alembic@1.0/manual/tutorial.html
Alembic的問(wèn)題
Alembic是一種優(yōu)秀的格式吴旋,原因有很多:它的WYSIWYG(所見(jiàn)即所得)功能可以把內(nèi)容從一個(gè)工具傳遞到另一個(gè)工具损肛,從而使它成為從Maya烘焙動(dòng)畫(huà)的理想格式,開(kāi)發(fā)者不必?fù)?dān)心FBX等其它格式對(duì)特殊綁定或動(dòng)畫(huà)約束的限制邮府。
但是荧关,Alembic格式也有一些問(wèn)題,包括:文件大小褂傀、附加對(duì)象忍啤、材質(zhì)管理。
文件大小
Alembic文件中每幀動(dòng)畫(huà)都是特定幀模型頂點(diǎn)位置的烘焙快照仙辟,這會(huì)產(chǎn)生大量需要緩存的數(shù)據(jù)同波,網(wǎng)格的多邊形數(shù)越多或動(dòng)畫(huà)越長(zhǎng),相應(yīng)的Alembic文件就會(huì)越大叠国。
對(duì)于《Sherman》項(xiàng)目未檩,我們?cè)诙唐峡偣灿?個(gè)序列。對(duì)于每個(gè)序列粟焊,我們都會(huì)為場(chǎng)景中每個(gè)角色輸出相應(yīng)的Alembic文件冤狡,包括:灑水器、水管项棠、矮人雕像等悲雳。
最終的Alembic格式動(dòng)畫(huà)文件大約有7GB的動(dòng)畫(huà)數(shù)據(jù),這比相同動(dòng)畫(huà)長(zhǎng)度的FBX格式文件大很多香追。由于在實(shí)時(shí)幀率傳輸該數(shù)據(jù)量的開(kāi)銷并不小合瓢,因此這部分是需要斟酌改進(jìn)的。
例如:我們使用過(guò)Alembic在《ADAM 2》和《ADAM 3》短片傳輸角色的元素透典,包括:服飾和面部動(dòng)畫(huà)晴楔,我們希望以30fps播放動(dòng)畫(huà)顿苇,但是實(shí)時(shí)環(huán)境的限制要求我們調(diào)整場(chǎng)景中Alembic的細(xì)節(jié)層級(jí),才可以實(shí)現(xiàn)這樣的播放幀率税弃。
附加點(diǎn)
我們經(jīng)常需要附加光照探針或反射探針到場(chǎng)景的動(dòng)態(tài)元素纪岁。如果使用骨架動(dòng)畫(huà)的話,這個(gè)任務(wù)會(huì)很簡(jiǎn)單钙皮,只要把附加對(duì)象作為子對(duì)象嵌套到場(chǎng)景層級(jí)窗口即可蜂科。Cinemachine會(huì)使用這些本地引用變換來(lái)控制攝像機(jī)觀察和跟蹤的位置。
在把動(dòng)畫(huà)導(dǎo)出到Alembic格式時(shí)短条,即導(dǎo)出為“Renderable only”設(shè)置导匣,默認(rèn)不會(huì)包含角色的骨架。我們需要找到一種不同方法使Alembic動(dòng)畫(huà)在播放時(shí)可以附加到正確的位置茸时。
幸運(yùn)的是贡定,Maya的Alembic導(dǎo)出器提供了一些選項(xiàng),可以不僅僅導(dǎo)出可渲染網(wǎng)格數(shù)據(jù)可都。下圖是Maya的Alembic導(dǎo)出選項(xiàng)缓待。
通過(guò)取消勾選“Renderable Only”選項(xiàng),Maya不僅可以導(dǎo)出渲染網(wǎng)格渠牲,還可以導(dǎo)出完整的IK綁定和角色的骨架/骨骼位置旋炒,這讓我們能夠使用這些位置來(lái)把光照探針、反射探針和VFX附加到合適的節(jié)點(diǎn)签杈。
材質(zhì)管理
Alembic的另一個(gè)缺點(diǎn)是:Alembic格式不會(huì)在文件中存儲(chǔ)任何材質(zhì)定義瘫镇。
FBX和一些其它格式都包含哪些紋理應(yīng)用到哪些材質(zhì)的定義信息,但對(duì)于Alembic格式答姥,這類信息不會(huì)從Maya等DCC工具傳遞到Unity铣除。
這意味著每次動(dòng)畫(huà)重新導(dǎo)出為Alembic格式時(shí),我們都需要為特定動(dòng)畫(huà)重新映射材質(zhì)鹦付。在制作過(guò)程中尚粘,使大量Alembic剪輯與合適材質(zhì)保持同步是很費(fèi)時(shí)間的事情。
我們?cè)凇禨herman》項(xiàng)目期間開(kāi)發(fā)了多個(gè)工具敲长,以幫助簡(jiǎn)化Alembic格式文件的材質(zhì)映射過(guò)程郎嫁。其中二個(gè)工具已經(jīng)添加到新版Film/TV Toolbox資源包,該資源包可以在GitHub獲取祈噪,或者在Unity的Staging Package庫(kù)作為資源包獲取泽铛。
下圖為Unity資源包管理器內(nèi)的Film / TV Toolbox資源包。
USD格式及其未來(lái)
皮克斯的開(kāi)源USD格式在過(guò)去幾年逐漸受到關(guān)注钳降,最近Unity通過(guò)資源包發(fā)布了USD Unity SDK,提供對(duì)USD格式的支持腌巾。
在USD格式方面有一些很不錯(cuò)的開(kāi)發(fā)內(nèi)容遂填,它們展示了USD格式的前景铲觉。制作團(tuán)隊(duì)對(duì)USD格式提供的功能很感興趣,我們會(huì)在未來(lái)的制作中持續(xù)關(guān)注該格式的發(fā)展吓坚。
線性內(nèi)容的光照策略
實(shí)時(shí)環(huán)境中的光照和使用傳統(tǒng)離線渲染器的光照有很大區(qū)別撵幽。雖然它們有相同的基礎(chǔ),例如:都要把光線放入到場(chǎng)景礁击,但是各自的技術(shù)方法有很大不同盐杂。
《Sherman》這類短片中的實(shí)時(shí)光照通過(guò)多種技術(shù)實(shí)現(xiàn),包括:光照探針哆窿、反射探針链烈、級(jí)聯(lián)陰影貼圖和烘焙全局光照。
在處理《Sherman》項(xiàng)目的光照時(shí)挚躯,我們邀請(qǐng)Unity光照主管Jean-Philippe Leroux為我們提供更專業(yè)更優(yōu)化的光照效果支持强衡。
為了實(shí)現(xiàn)實(shí)時(shí)效果的第一步,對(duì)于光照解決方案的特定部分需要進(jìn)行預(yù)計(jì)算码荔,為此要做一些前期準(zhǔn)備漩勤。
全局光照
間接光照需要進(jìn)行預(yù)計(jì)算,以實(shí)現(xiàn)高質(zhì)量局部環(huán)境光照缩搅。所有大型靜態(tài)對(duì)象都標(biāo)記為對(duì)解決方案產(chǎn)生作用越败,而且這些對(duì)象都要制作光照貼圖。在這個(gè)過(guò)程中硼瓣,我們使用了漸進(jìn)式光照貼圖的Baked Indirect烘焙間接模式究飞。
所有小型對(duì)象和動(dòng)態(tài)對(duì)象都會(huì)被探針組照亮疫赎,對(duì)于不適合制作光照貼圖的較大對(duì)象男窟,我們通過(guò)使用代理體積使這類對(duì)象獲得更精細(xì)的探針光照。
我們沒(méi)有烘焙光線轻姿,場(chǎng)景里只有天空的影響和定向光的反彈效果筑累。
反射效果
我們還需要使用反射探針袱蜡,為烘焙局部反射效果設(shè)置合適的覆蓋。
我們將大部分采集點(diǎn)放到攝像機(jī)層級(jí)中慢宗。由于天空和接近地平線的太陽(yáng)有很強(qiáng)的定向光坪蚁,所以需要額外設(shè)置,以便正確的覆蓋陰影區(qū)域镜沽。
一些高反射物體會(huì)從實(shí)時(shí)反射中得到更大的受益敏晤。在我們的項(xiàng)目中,這類物體主要是金屬食盆和有光澤的水管缅茉,前者使用球體實(shí)時(shí)反射探針嘴脾,后者使用平面反射。
光線
所有光線都是純動(dòng)態(tài)的,它們的屬性可以調(diào)整译打,也可以四處移動(dòng)耗拓,并得到即時(shí)反饋。
我們使用的一個(gè)工作流程技巧是:使用軸心對(duì)象來(lái)處理光線位置奏司。軸心會(huì)作為目標(biāo)使用乔询,放置后,它允許我們通過(guò)使用“x”鍵切換本地和全局方向韵洋,從而輕松圍繞特定對(duì)象進(jìn)行旋轉(zhuǎn)竿刁。
請(qǐng)注意:所有光線都會(huì)投射陰影。
使用預(yù)制件有很多優(yōu)點(diǎn):
預(yù)制件允許我們不必在場(chǎng)景處理單個(gè)對(duì)象搪缨,讓其它對(duì)象在場(chǎng)景中可以正常工作食拜。
預(yù)制件允許我們快速把改動(dòng)傳遞到序列和項(xiàng)目中。
預(yù)制件允許我們快速還原重寫(xiě)數(shù)值勉吻。
對(duì)于《Sherman》項(xiàng)目监婶,我們對(duì)這些內(nèi)容創(chuàng)建了主預(yù)制件和嵌套預(yù)制件:太陽(yáng)、填充太陽(yáng)齿桃、填充天空惑惶、邊緣太陽(yáng)、邊緣天空短纵、反射亮光带污。
主預(yù)制件會(huì)根據(jù)每個(gè)畫(huà)面而構(gòu)造,我們?cè)赥imeline中使用了激活軌道來(lái)觸發(fā)預(yù)制件香到。
在預(yù)制件中鱼冀,我們會(huì)找到很多內(nèi)容,例如:畫(huà)面特定光線悠就、重寫(xiě)特定全局光照屬性的體積千绪、控制大氣光照的密度體積、陰影對(duì)象梗脾。
后期處理等其它屬性通過(guò)Cinemachine Post Processing剪輯和Timeline來(lái)調(diào)整荸型,例如:分級(jí)、攝像機(jī)效果炸茧、攝像機(jī)剔除等其它優(yōu)化瑞妇。
如下圖所示,圖中是每個(gè)畫(huà)面的Custom Post Profiles梭冠,對(duì)每個(gè)虛擬攝像機(jī)應(yīng)用了CinemachinePostProcessing組件辕狰。
毛發(fā)和視覺(jué)特效
有動(dòng)畫(huà)腳本以后,我們很快確定對(duì)短片非常重要的關(guān)鍵要素:水的視覺(jué)特效和浣熊的毛發(fā)控漠。
由于灑水器在短片中扮演“主要”角色蔓倍,因此早期遇到的挑戰(zhàn)之一是弄清如何處理流體模擬效果。處理動(dòng)畫(huà)流體模擬的傳統(tǒng)方法很多,包括:使用Houdini偶翅,或Maya中原生支持的流體系統(tǒng)他去。
Steven Shmuely使用Maya對(duì)流體效果進(jìn)行了測(cè)試,但由于他對(duì)Maya流體系統(tǒng)或Houdini不是非常熟悉倒堕,我們擔(dān)心這些工作無(wú)法達(dá)到想要的結(jié)果。
此時(shí)爆价,Unity發(fā)布了基于節(jié)點(diǎn)并使用GPU加速的特效工具Visual Effect Graph垦巴。這個(gè)工具看起來(lái)很強(qiáng)大,但我們沒(méi)有任何使用經(jīng)驗(yàn)铭段。隨著首席圖形測(cè)試工程師Vlad Neykov的加入骤宣,最終幫助我們實(shí)現(xiàn)了驚艷的視覺(jué)特效。
使用Visual Effect Graph實(shí)現(xiàn)動(dòng)態(tài)效果
在Unity 2018.3中序愚,全新的Visual Effect Graph面向HDRP發(fā)布預(yù)覽版憔披。在《大白的夢(mèng)》短片中,制作團(tuán)隊(duì)使用傳統(tǒng)粒子系統(tǒng)和實(shí)時(shí)物理功能爸吮,用于實(shí)現(xiàn)破壞效果芬膝。
雖然制作團(tuán)隊(duì)中沒(méi)有成員使用過(guò)Visual Effect Graph,但我們清楚的知道形娇,為了實(shí)現(xiàn)高級(jí)水模擬效果和視覺(jué)效果锰霜,我們需要Visual Effect Graph提供的高級(jí)粒子功能和HDRP集成。
我們非常幸運(yùn)找到了Vlad Neykov桐早,它幫助我們實(shí)現(xiàn)短片中華麗的水效果和其它效果癣缅。
所有視覺(jué)效果都在其對(duì)應(yīng)的Timeline序列上管理,這讓Vlad Neykov可以單獨(dú)在時(shí)間和動(dòng)畫(huà)上進(jìn)行迭代哄酝,使用Visual Effect Graph提供的自定義Visual Effect Activation Track和傳統(tǒng)動(dòng)畫(huà)軌道友存,從而改變視圖的屬性。
對(duì)于灑水器的效果陶衅,Vlad Neykov最初想使用一個(gè)水效果來(lái)管理所有效果屡立,逐漸把它擴(kuò)展為包含新的情況。
例如:在第一個(gè)畫(huà)面中万哪,水從攝像機(jī)角度出現(xiàn)侠驯,所以必須給它添加控制功能。在另一個(gè)畫(huà)面中奕巍,水在食盆上反彈吟策,所以要給它添加碰撞效果,但該效果要在其它畫(huà)面中隱藏起來(lái)的止。
在其它畫(huà)面中檩坚,深度碰撞無(wú)法在足夠近的距離碰撞,所以要替換為球體碰撞。最后匾委,制作過(guò)程中幾乎所有畫(huà)面都有單獨(dú)的水效果來(lái)處理特定情況拖叙。
Vlad Neykov最初使用屏幕空間深度測(cè)試來(lái)處理水的碰撞效果,但在測(cè)試多種情況后赂乐,他改為使用各種碰撞體積的簡(jiǎn)單平面/球體碰撞形式薯鳍。
最初,我們主要考慮如何為灑水器實(shí)現(xiàn)動(dòng)態(tài)水效果挨措,Vlad Neykov最后解決了短片的所有特效挖滤,包括:樹(shù)葉從樹(shù)籬落下的細(xì)節(jié)效果,腳步的塵土效果浅役,泥土爆發(fā)的效果和觸電效果斩松。
《Sherman》項(xiàng)目對(duì)Visual Effect Graph進(jìn)行了很好的實(shí)際測(cè)試,并提供了大量反饋觉既,以便后續(xù)改進(jìn)Visual Effect Graph惧盹。
處理實(shí)時(shí)毛發(fā)和羽毛效果
在制作短片的時(shí)候,我們有一些想要解決的技術(shù)目標(biāo)瞪讼,其中最大的目標(biāo)是钧椰,關(guān)于使用實(shí)時(shí)引擎制作動(dòng)畫(huà)方面經(jīng)常提到的話題:毛發(fā)效果的實(shí)現(xiàn)。
起初符欠,我們對(duì)處理毛發(fā)渲染猶豫不定演侯。雖然我們對(duì)John Parsaie作為圖形工程師的能力很有信心,但在實(shí)時(shí)環(huán)境實(shí)現(xiàn)“離線渲染質(zhì)量”的毛發(fā)效果是一項(xiàng)重大的挑戰(zhàn)背亥。
討論在任意引擎中實(shí)現(xiàn)毛發(fā)效果時(shí)秒际,有四個(gè)關(guān)鍵元素組成了解決方案:幾何體、著色狡汉、動(dòng)態(tài)效果娄徊、制作方法。
對(duì)于小鳥(niǎo)Sherman身上的毛發(fā)盾戴,我們解決了前二個(gè)元素幾何體生成和著色寄锐,并對(duì)動(dòng)態(tài)效果做了一些實(shí)驗(yàn),但最終決定不將該方法用于最終的短片尖啡。
最后的關(guān)鍵內(nèi)容是毛發(fā)的實(shí)際制作橄仆,給藝術(shù)家提供處理毛發(fā)的方法對(duì)毛發(fā)的最終效果非常重要。制作團(tuán)隊(duì)做的第一件事是:評(píng)估此前對(duì)毛發(fā)渲染的已有工作內(nèi)容衅斩。Unity中的首個(gè)毛發(fā)渲染實(shí)現(xiàn)由Marza動(dòng)畫(huà)星球?yàn)椤禩he Gift》短片而開(kāi)發(fā)盆顾。
在Unity的Hack Week活動(dòng)中,某個(gè)團(tuán)隊(duì)想繼續(xù)《The Gift》短片所完成的工作畏梆,了解Unity中實(shí)時(shí)毛發(fā)效果的其它可能性您宪。該團(tuán)隊(duì)把Marza的毛發(fā)效果移植到HDRP奈懒,為《Sherman》團(tuán)隊(duì)實(shí)現(xiàn)毛發(fā)解決方案提供了工作的基礎(chǔ)。
基于Hack Week項(xiàng)目所提供的基本實(shí)現(xiàn)內(nèi)容宪巨,John Parsaie和Steven Shmuely開(kāi)始處理制作毛發(fā)的工作流程磷杏。但是本文不會(huì)過(guò)多深入介紹其中的技術(shù)細(xì)節(jié),我們只希望介紹團(tuán)隊(duì)在該方法上使用的要素捏卓。
源毛發(fā)網(wǎng)格和SDF
Steven Shmuely對(duì)毛發(fā)效果做的第一件事是為一部分毛發(fā)建模极祸,作為單獨(dú)的毛發(fā)部分,該模型烘焙為SDF有向向量場(chǎng)怠晴,用作毛發(fā)幾何體積本身的原始模型贿肩。
通過(guò)為毛發(fā)提供高分辨率原始模型,毛發(fā)的保真度比純粹基于外殼的方法高很多龄寞。例如:法線可以根據(jù)每根毛發(fā)進(jìn)行計(jì)算,從而得到比目前大部分實(shí)時(shí)毛皮實(shí)現(xiàn)更好的光照效果汤功。
隨著我們?cè)谠搶?shí)現(xiàn)方法取得進(jìn)展物邑,第二種分析式SDF被用于結(jié)合毛皮的“外層”,從而把二種效果混合起來(lái)滔金。
下圖為原始毛發(fā)網(wǎng)格色解,用于生成SDF。
底層部分使用了烘焙式SDF餐茵,而外層使用了分析式SDF科阎,因此我們加入選項(xiàng)來(lái)根據(jù)需要選擇使用的SDF。
分析式SDF會(huì)提供無(wú)限制的分辨率忿族,未來(lái)會(huì)提供直接在Unity中修改毛發(fā)配置文件或?qū)傩缘墓δ苈啾俊:姹菏絊DF允許烘焙更復(fù)雜的幾何體,例如:通過(guò)分析方法很難實(shí)現(xiàn)的羽毛幾何體或毛發(fā)風(fēng)格道批,提供復(fù)制DCC工具中制作內(nèi)容的可預(yù)測(cè)結(jié)果错英。
刷毛貼圖和高度圖
毛發(fā)本身的效果很好,但浣熊這類動(dòng)物沒(méi)有筆直的毛發(fā)垂直于身體部分隆豹。此外椭岩,毛發(fā)在動(dòng)物的身體上往往沒(méi)有相同的長(zhǎng)度。
為了獲得合適的結(jié)果璃赡,提供制作刷毛貼圖的功能非常重要判哥,從而用于修改毛發(fā)發(fā)線和幾何體。Steven Shmuely使用Mari生成刷毛貼圖碉考,并生成了高度圖來(lái)控制浣熊身體不同位置的毛發(fā)長(zhǎng)度塌计。
影視級(jí)動(dòng)態(tài)模糊和超采樣
制作團(tuán)隊(duì)在《Sherman》項(xiàng)目制作期間開(kāi)發(fā)了大量自定義工具,大多數(shù)工具在概念上很簡(jiǎn)單侯谁,但是為團(tuán)隊(duì)提供了有效的工作流程夺荒,并節(jié)省了時(shí)間瞒渠。其中一項(xiàng)關(guān)鍵技術(shù)是稱為“Filmic Motion Blur”影視級(jí)動(dòng)態(tài)模糊的系統(tǒng)。
在開(kāi)發(fā)《大白的夢(mèng)》期間技扼,我們需要解決的主要技術(shù)難題之一是動(dòng)態(tài)模糊伍玖。在玩游戲時(shí),目前“實(shí)時(shí)”狀態(tài)的動(dòng)態(tài)模糊在高幀率下看起來(lái)效果很好剿吻,但對(duì)于離線渲染器窍箍,例如:電視要求的24fps,它會(huì)出現(xiàn)瑕疵丽旅,這對(duì)電視播出效果來(lái)說(shuō)是無(wú)法接受的椰棘。
為了通過(guò)迪士尼的質(zhì)量標(biāo)準(zhǔn),John Parsaie開(kāi)發(fā)了Filmic Motion Blur系統(tǒng)榄笙。Filmic Motion Blur的核心是一個(gè)基于積累效果的渲染器邪狞。時(shí)間軸序列不是在24fps下渲染,而是在960fps下渲染茅撞,中間緩沖區(qū)會(huì)積累到最后寫(xiě)入硬盤(pán)的實(shí)際幀數(shù)中帆卓。
由于該效果只是結(jié)合現(xiàn)有渲染緩沖區(qū)的結(jié)果,所以它不必經(jīng)過(guò)修改就可以處理任何材質(zhì)或著色器米丘。在《Sherman》項(xiàng)目中剑令,同樣的技術(shù)也用于將毛發(fā)采樣結(jié)合到最終畫(huà)面。在未來(lái)拄查,我們將研究如何使用這種方法來(lái)創(chuàng)建高端影視級(jí)景深效果和其它超采樣效果吁津。
這種渲染畫(huà)面的方法并非沒(méi)有缺點(diǎn),最大的缺點(diǎn)是:它不能運(yùn)行在實(shí)時(shí)FPS中堕扶。
實(shí)際上碍脏,在具有毛發(fā)細(xì)節(jié)和毛發(fā)效果的4K畫(huà)質(zhì)下,我們開(kāi)始以“每分鐘多少幀”的速度范圍來(lái)輸出最終畫(huà)面稍算,但考慮到現(xiàn)有CPU和GPU離線渲染器需要數(shù)小時(shí)渲染最終畫(huà)面潮酒,這種方法的速度依舊快得多。
渲染窗口
Filmic Motion Blur系統(tǒng)大幅提高了最終畫(huà)面的質(zhì)量邪蛔,取得了非常好的結(jié)果急黎,但最大的缺點(diǎn)是:為了看到帶有所有超采樣和結(jié)合的最終結(jié)果,制作團(tuán)隊(duì)必須渲染正在制作的序列或畫(huà)面侧到。
為了解決該問(wèn)題勃教,我們開(kāi)發(fā)了Render Window渲染窗口,任何團(tuán)隊(duì)成員都可以使用這個(gè)自定義編輯窗口來(lái)輸出最終質(zhì)量的渲染效果匠抗。它讓Steven Shmuely可以根據(jù)需要調(diào)整刷毛貼圖和毛發(fā)故源,同時(shí)可以快速看到最終結(jié)果。
下面為Alpha抖動(dòng)毛發(fā)和最終結(jié)合畫(huà)面的對(duì)比圖汞贸。
Unity Recorder錄制器
創(chuàng)作《Sherman》項(xiàng)目的過(guò)程和常見(jiàn)Unity項(xiàng)目不同绳军。最終結(jié)果是從編輯器輸出序列化幀數(shù)印机,并組成最終的動(dòng)畫(huà)。為此门驾,我們使用了Unity的Recorder資源包射赛,從編輯器渲染出最終畫(huà)面。
Filmic Motion Blur功能會(huì)關(guān)聯(lián)Recorder的Timeline集成奶是,允許我們結(jié)合毛發(fā)效果楣责,為最終畫(huà)面創(chuàng)建超采樣動(dòng)態(tài)模糊效果。
下圖為Unity Recorder的軌道和剪輯設(shè)置聂沙。