劉德新
(中影動畫產(chǎn)業(yè)有限公司,北京101400)
一部動畫電影的 “產(chǎn)生”涉及到的工作非常多,從宏觀角度講有投資、制片、編劇、導(dǎo)演、配音、音樂音效、美術(shù)設(shè)計、三維動畫制作、母帶制作、影片發(fā)行等。以上工作中參與人數(shù)最多,制作周期最長,預(yù)算壓力最大,進度最難把控的莫過于動畫制作了。動畫制作過程中諸如電腦軟硬件配置、渲染農(nóng)場的搭建、網(wǎng)絡(luò)傳輸技術(shù)、生產(chǎn)流程規(guī)劃、技術(shù)方案準備、人力資源配置、制片管理水平等事項都會嚴重影響制作的進度。誠然每個公司都有嚴格的流程管理制度,每個部門也都會有詳細的制作規(guī)范,但是當(dāng)面對幾頁到十幾頁的制作規(guī)范,著實難以保證不會發(fā)生任何人為的疏忽。比較糟糕的結(jié)果是數(shù)字藝術(shù)家們花費了不少時間在文件的檢查上,但偶爾還是會發(fā)生問題,此類現(xiàn)象反而會影響到數(shù)字藝術(shù)家們的工作狀態(tài)和生產(chǎn)效率。越復(fù)雜的工作可控性越差,參與的人員越多發(fā)生人為失誤的機率就會越高。因此科學(xué)嚴謹?shù)膭赢嬌a(chǎn)流程是必不可少的,它將有效地處理重復(fù)的工作內(nèi)容或者經(jīng)常發(fā)生的問題,從而保障生產(chǎn)安全,提高生產(chǎn)效率。筆者在參與制作動畫電影 《直立象傳說》時所得到的體會是:與藝術(shù)創(chuàng)作無關(guān)的工作都應(yīng)該交給程序來完成。那么讓我梳理一下當(dāng)時的制作流程,看看在整個過程中哪些工作必須交由制片、導(dǎo)演或者藝術(shù)家來完成,哪些工作應(yīng)該交給研發(fā)團隊和程序來完成。
筆者在2017-2019年參與制作了由中影集團投資,中影動畫產(chǎn)業(yè)有限公司與新西蘭Huhu Studio共同創(chuàng)作的動畫電影 《直立象傳說》,任綁定組長。在此過程中觀察到了很多值得借鑒和研究的內(nèi)容,謹在此整理如下:
“自動化輔助系統(tǒng)”是基于軟件內(nèi)置命令的命令集合,用以整合諸多軟件的功能,起到簡化工作的作用。編寫程序的語言也有很多,比如C、C++、Java、Python等,現(xiàn)在比較流行的是Python。
在劇本完成以后會分成兩個不同方向的美術(shù)工作來同時進行。
一個是手繪故事板,最終它將被制作成配有臺詞、音樂、基本聲效的動態(tài)故事板。至此將得到整個片子的時間線,它包括所有的鏡頭號和每個鏡頭的時間。這些鏡頭清單是3DLayout、3DAnime和特效制作的必備資料。
另一個是包括所有角色、道具和場景的資產(chǎn)清單,即二維設(shè)計的清單。二維設(shè)計的線稿是三維模型的重要參考,色稿和材質(zhì)指定是貼圖和Shader的參考,不同時段的氣氛設(shè)計是燈光和合成效果的藝術(shù)參考。
最后還需要整理一份鏡頭資產(chǎn)清單,它是根據(jù)每個鏡頭出現(xiàn)到的資產(chǎn)來整理的,制作Layout時會用到。
以上三份資料整理完成后,我們就初步得到此次項目三維制作的總工作量。
那么,程序可以在這里幫助我們完成哪些枯燥的工作?
一是通過記錄在Excel表格里的鏡頭清單,根據(jù)項目的盤符和文件目錄要求自動生成Layout、動畫、特效、解算、abc緩存、毛發(fā)和布料緩存、燈光、合成等部門相應(yīng)的工程目錄。并且在每個文件夾里自動生產(chǎn)版本為V00的Maya空文件,這些文件夾和空文件的命名會與鏡頭清單保持一致。
另一個是通過記錄在Excel表格里的資產(chǎn)清單,自動生成二維設(shè)計、模型、貼圖、Shader、綁定等部門相應(yīng)的工程目錄,并在二維設(shè)計資產(chǎn)文件夾下自動生產(chǎn)一個版本為V00的PSD空文件,在其他部門的資產(chǎn)文件夾下自動生產(chǎn)一個版本為V00的Maya空文件。
通過這兩個部分的操作可以得到一份完整的工程目錄,并且可以確保目錄里的文件夾和文件的命名都是正確的。
在項目的推動過程中,每個部門都在遵循這樣的基本流程:領(lǐng)任務(wù)、制作、藝術(shù)、技術(shù)檢查、調(diào)整、發(fā)布。從模型到合成,這些自動化程序在不同階段都在為藝術(shù)家提供幫助。
由于遵循相同的資產(chǎn)清單,我們應(yīng)該把二維設(shè)計、模型、貼圖、Shader、綁定看成是一個整體,即資產(chǎn)。制作任務(wù)的分配通常是通過項目管理軟件來完成的,比較常見的軟件是Shotgun。模型師拿到工作任務(wù)的后,可以通過二維設(shè)計稿和Maya V00文件的名字來幫助他進行確認。一份標準的二維設(shè)計稿包含正視圖、側(cè)視圖、頂視圖、透視圖和一份材質(zhì)指定(用于貼圖工作),它會幫助模型師更快地找到靈感來完成工作。模型的比例和造型首先需要通過藝術(shù)指導(dǎo)或者導(dǎo)演的藝術(shù)審核,然后它會進入到模型的技術(shù)審查(主要是拓撲方面),這些都是程序無法替代的工作。如果以上兩個審核通過,那么會進入下一個繁瑣的技術(shù)審核環(huán)節(jié)。例如模型文件中各部件和組的命名,模型的中心點,模型的法線,模型是否被凍結(jié)(Freeze),有沒有多余的非法點或者非法面,有沒有三角面,是否已刪除歷史等。由于以上涉及的命令在不同的菜單,導(dǎo)致這些檢查變得非常繁瑣。在TD們的幫助下,通過程序可以把以上所有需要的檢查項集成在同一個命令面板上,只要點擊一次就可以完成以上所有的檢查工作。程序如果發(fā)現(xiàn)問題會及時反饋給模型師,提醒模型師進行修正。然后重新檢查,在確認沒有問題后,模型文件會被程序發(fā)布(Publish)給下一個環(huán)節(jié)。
模型發(fā)布的文件會通過程序在指定的路徑下分別生成材質(zhì)和綁定的Maya文件。以上兩個文件同時會被程序處理成正確的文件名命名。由于材質(zhì)一般是在其他軟件里完成的,這里僅僅簡單介紹一下材質(zhì)文件在發(fā)布時程序可以提供的功能。在材質(zhì)測試通過了藝術(shù)指導(dǎo)的審核后,程序?qū)aya文件里使用到的材質(zhì)Node和貼圖進行命名檢查。名稱很重要,它在鏡頭裝配階段能否順利進行起到?jīng)Q定性的作用。如果沒有發(fā)現(xiàn)錯誤的命名程序就會發(fā)布材質(zhì)文件。材質(zhì)文件會被發(fā)布成兩個文件,一是貼圖的Maya文件,它帶有模型信息和UVs信息。在發(fā)布時程序會將Maya文件使用到的本地的貼圖(分辨率一般為4K)復(fù)制到指定的路徑下,并自動生成不同分辨率的貼圖,它們將在后續(xù)鏡頭渲染時根據(jù)物體與鏡頭的遠近進行切換,從而降低渲染時間。同時負責(zé)物體質(zhì)感的Shader文件也會被單獨發(fā)布到指定路徑,會在渲染前的鏡頭裝配階段被使用到,這個部分稍后再進行介紹。
綁定分為道具、場景、角色三種類型。不僅角色綁定可以使用程序來完成,像道具和場景這種擁有相同文件結(jié)構(gòu)且單純的文件更應(yīng)該使用程序來處理它們。通過程序可以在模型發(fā)布階段針對即將發(fā)布出的文件添加更復(fù)雜的內(nèi)容,使發(fā)布出的綁定文件變?yōu)閹в薪y(tǒng)一標準和基礎(chǔ)功能的綁定文件。這種標準基礎(chǔ)文件完全可以勝任在Layout階段對綁定的需求,工作效率有顯著提高。對于功能復(fù)雜的道具或場景則需要綁定師花更多的時間來制作,但這些文件只要在動畫鏡頭開始制作前完成就可以。
角色綁定一般被認為是和程序關(guān)系最為密切的工作之一,任何一套功能詳細的角色綁定系統(tǒng)都需要以程序的方式表現(xiàn)出來,因為這將極大地提高工作效率。這項工作需要綁定總監(jiān)把已經(jīng)確定的綁定方案詳細地講解給程序開發(fā)組,然后由程序開發(fā)組按照此思路來編寫程序,最終完成可以自動生成和綁定方案一致的程序。
無論是使用自己編寫的程序還是其他商業(yè)綁定插件,幾乎所有的公司都是使用程序來進行角色綁定工作的。既然角色綁定的控制器是可以通過程序來產(chǎn)生,那么角色綁定最大的工作量就只剩下權(quán)重分配了。在一般的綁定插件里通常會通過Weight cage的方法使用程序自帶的低模對高模進行權(quán)重拷貝,它的大體結(jié)果是可以接受的,但是要花費不少的時間來處理細小的部分。
在動畫電影 《直立象傳說》中使用了一些新的思路來提高綁定工作的效率。模型是綁定的基礎(chǔ),在此項目中的所有模型都是由一個 “標準模型”調(diào)整而來,他們擁有同樣的拓撲和同樣的點ID,以及同樣的UVs,只是造型不同。程序在第一階段導(dǎo)入標準的骨架,通過模型上點的ID信息把骨骼自動匹配到各關(guān)節(jié)的位置,再通過同樣的UVs導(dǎo)入 “標準模型”的權(quán)重貼圖。在這個部分完成后角色的權(quán)重大部分都是可用的;第二階段的工作是檢查和調(diào)整權(quán)重效果非常差的地方和添加衣服的布料設(shè)置;第三階段是通過程序自動生成所有的控制系統(tǒng)并發(fā)布它。通過這樣的安排至少減少了一半以上的工作量。這份 “完整”的綁定文件會被發(fā)布成不同的版本,比如提供給動畫組使用的Puppet文件(它不包含解算信息),提供給解算組使用的Sim文件(它不包含動畫使用的低邊模型)等。
在Layout文件自動創(chuàng)建完成后,我們可以進一步細化程序,動畫師可以執(zhí)行另一個程序,它可以根據(jù)鏡頭清單中記錄的資產(chǎn)名稱將綁定文件逐個導(dǎo)入到場景里,還可以導(dǎo)入已經(jīng)綁定好的攝像機文件(CameraRig),并自動對此攝像機的名稱進行調(diào)整。例如:s001c0001_101_200,意思為第一場第一鏡Layout時間101幀到200幀。同時根據(jù)項目要求對拍屏和渲染規(guī)格自動進行設(shè)置。
在Layout制作完成一個文件后同樣需要發(fā)布它,發(fā)布文件的信息主要是攝像機文件和場景中資產(chǎn)文件的動畫曲線。這樣的好處是在Layout文件發(fā)生損壞時可以通過這些動畫曲線快速恢復(fù)文件。
動畫師在工作時會用到各種各樣的小程序以提升工作效率,很多時候它們下載自互聯(lián)網(wǎng),并且使用不同的語言來編寫。通過程序可以把不同語言、不同版本和不同功能的小程序整理成一個獨立的工具箱,然后分享給所有參與工作的藝術(shù)家。不單在動畫部門,其他部門也都會有自己特制的工具箱,它是標準工業(yè)化流程的重要組成部分。
對于動畫師來說一個好用動作庫管理程序的作用是非常大的。它將對每個角色的常用動作進行儲備,次要角色多為站立走跑跳等,主要角色還會涉及到標志性動作以及表情等。在制作動畫鏡頭時如果遇到需要的動作可以通過程序隨時調(diào)用,動作庫的意義不是簡單的減少重復(fù)工作,更重要的是使每個卡通角色的動畫風(fēng)格保持一致,這對一部動畫電影來說至關(guān)重要。
另外在動畫師提交Mov給導(dǎo)演審看時程序也可以幫上大忙,程序可以在拍屏的同時顯示時間碼、制作者姓名、時期、版本號,并在拍屏完成后自動提交到指定的位置。
動畫在通過審核后也會進行發(fā)布,發(fā)布程序會執(zhí)行一系列的命令,一個重要內(nèi)容就是對所有控制器進行Bake動畫曲線,在Bake后所有的約束關(guān)系變成了動畫曲線,這樣會避免在發(fā)布后出現(xiàn)由于約束失效導(dǎo)致的動畫錯誤。
動畫發(fā)布的信息主要包括以下內(nèi)容:一是單獨的攝像機文件;二是鏡頭里所有資產(chǎn)上控制器的動畫曲線,這樣做可以在文件發(fā)生意外的時候快速回復(fù)已經(jīng)通過的動畫鏡頭;三是鏡頭里的模型會被發(fā)布成Alembic文件存儲到指定的工程目錄下。這樣做的優(yōu)點是使用來渲染的模型文件變得 “單純”起來,它們沒有綁定文件的歷史,文件的渲染速度會有很大的提升。
布料和毛發(fā)的解算在不同的公司有不同的流程,一種是在動畫文件的基礎(chǔ)上進行解算,另一種是使用動畫文件導(dǎo)出的abc文件來進行解算。無論哪種情況程序都可以為角色進行TPose設(shè)置,方便解算工作。
解算效果通過后,程序會把模型發(fā)布成abc文件到指定的路徑下,毛發(fā)的緩存也被發(fā)布到指定的路徑。
在燈光工作開始前需要用程序把所有需要的信息導(dǎo)入到一個新文件中,我們稱之為裝配文件。它的工作原理是:首先導(dǎo)入的攝像機,然后導(dǎo)入角色道具場景模型的abc緩存文件(這些緩存并不是最終材質(zhì))。接著導(dǎo)入鏡頭中模型涉及到的Shader文件和貼圖,通過名稱自動識別,依次把相應(yīng)的材質(zhì)和Shader賦給abc模型,然后導(dǎo)入帶有緩存的毛發(fā)文件,最后倒入當(dāng)前場景的標準燈光(key Light)。在裝配時可能會發(fā)生貼圖和Shader找不到對應(yīng)的模型的問題,或者毛發(fā)連不到緩存等問題。這樣的話工作將無法向下進行。裝配是一個復(fù)雜的過程,需要不斷對流水線進行技術(shù)測試,以確保在燈光開始時一切正常。
如果一切順利,裝配完成后可以通過程序把不同的角色、道具和場景根據(jù)需求設(shè)置到不同的渲染層中,并且設(shè)置渲染尺寸、渲染的輸出路徑等等。燈光藝術(shù)家的工作是確認所有的物件沒有發(fā)生丟失,材質(zhì)正確,abc緩存的動畫效果正確,場景燈光導(dǎo)入正確,可以正常渲染出單幀畫面。完成以上工作后藝術(shù)家們可以更加專注于提升畫面的藝術(shù)效果。
根據(jù)不同的工作需求,可以對裝配和燈光兩個階段的程序化進行更加深入地調(diào)整。比如在動畫文件發(fā)布后,通過程序調(diào)入指定場次的場景文件和預(yù)制的燈光(Light Key),以及已經(jīng)發(fā)布的所有攝像機。然后通過程序?qū)γ總€鏡頭的第一幀和最后一幀進行自動渲染并提交到指定的文件夾。這一操作可以幫助導(dǎo)演和制作團隊快速確認某場戲完整的燈光效果,以及確認該場次攝像機前所有的近景模型是否需要加細。
在單幀畫面通過審核就可以提交到渲染農(nóng)場進行序列渲染了。渲染通常會在渲染農(nóng)場進行,并且使用Deadline來管理渲染農(nóng)場的渲染數(shù)據(jù),不僅高效,管理起來也十分方便。通過它可以實時地看到哪些文件在正常渲染,哪些文件渲染不了。Deadline會將信息反饋給用戶,可以通過這些信息來修復(fù)遇到的問題,然后重新提交渲染。
以上是一些較為粗淺的流程介紹,可以看出動畫工業(yè)中有大量的工作是可以通過程序來完成的,因此需要很多喜歡動畫行業(yè)的程序員來完成這些工作。經(jīng)過了二十幾年的發(fā)展,中國已經(jīng)有很多的CG藝術(shù)家在世界范圍內(nèi)取得了非常大的成就。很多公司都在開發(fā)自己的自動化流程。就國內(nèi)動畫工業(yè)的整體發(fā)展水平而言還有很長的路要走。導(dǎo)致這樣現(xiàn)象的原因有很多:一是中國動畫在代工的路上走了很長時間,把太多時間關(guān)注在制作層面,工業(yè)化方面有待產(chǎn)業(yè)升級;二是產(chǎn)業(yè)升級將給企業(yè)造成巨大的成本壓力,對于企業(yè)來說動力不足;三是國內(nèi)高校設(shè)立的動畫專業(yè)一直都把教學(xué)內(nèi)容定位在“動畫藝術(shù)”方面,對 “動畫工業(yè)化”的觀念比較模糊,使得高等教育培養(yǎng)出的人才與動畫工業(yè)升級存在一定的供求差異。
中國的動畫工業(yè)已經(jīng)從 “有沒有”發(fā)展到 “好不好”的階段,產(chǎn)業(yè)升級已經(jīng)開始。動畫是一門藝術(shù),它是一種抒發(fā)情感的方式。動畫產(chǎn)業(yè)是一門商業(yè),它研究的是好內(nèi)容如何更好變現(xiàn)。而動畫工業(yè)是一門以數(shù)學(xué)為基礎(chǔ)的應(yīng)用科學(xué),它是做出好產(chǎn)品的技術(shù)保障。希望未來能有更多的人關(guān)注動畫工業(yè)的產(chǎn)業(yè)升級,也非常希望中國的動畫產(chǎn)業(yè)迎來更大更高的發(fā)展空間 。