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