張朔華,王蘭,蘭福全,戴嘉慶,周忠祥,張茄新
(1.中油國家油氣鉆井裝備工程技術研究中心有限公司,陜西 寶雞 721002;2.寶雞石油機械有限責任公司,陜西 寶雞 721002;3.西部鉆探工程有限公司 準東鉆井公司,新疆 克拉瑪依 834009)
工業(yè)三維動畫以其高效率、直觀、美觀、經濟的特點,在產品展示、市場營銷、員工培訓等領域發(fā)揮了越來越大的作用。國內對工業(yè)三維動畫的市場需求是不斷增長的,對這方面的研究也在陸續(xù)進行。栗世堯等[1]針對CINEMA 4D軟件在工業(yè)仿真動畫中的應用進行了說明,詳細論述了CINEMA 4D在工業(yè)三維動畫制作中的易學、快速的特點。梁艷霞等[2]針對3D Max軟件對鉆機施工的仿真動畫進行了說明,梳理了基于3D Max的工業(yè)三維動畫制作流程。梁娟等[3]針對Blender軟件進行了地震波傳播仿真模型的研究,提供了三維仿真技術以及程序腳本插件對地震波傳播進行模擬的方案。Blender有著流程集成化的特點,本文以石油鉆機天車裝配動畫制作為例,講解如何應用Blender進行工業(yè)三維動畫全流程的制作。
Blender的特點為:非商業(yè)軟件,開源免費;采用集成化的工作流程,擁有建模、動作編輯、雕刻、渲染、后期合成等模塊;適應Linux、Mac OS、Windows平臺,有著跨平臺高兼容性;擁有基于Python的BPY工具包,擴展性強;內置效果杰出的Eevee光柵化渲染器。
工業(yè)三維動畫制作一般采用工業(yè)CAD軟件或影視三維軟件進行建模及動作編輯,然后輸入渲染軟件中或使用渲染器插件進行渲染,再由后期剪輯軟件進行合成。整個過程需要建模、渲染、后期3種以上軟件進行配合。多種軟件協(xié)同配合造成了較多的經濟成本、學習成本。而Blender的優(yōu)勢正解決了這些缺點。同時Blender內置的Eevee渲染器只需極少的硬件及時間資源即可渲染出優(yōu)秀的作品,能大大加快制作流程。
首先要明確動畫的展示目標。展示目標直接決定了鏡頭腳本設計。以鉆機天車裝配為例,展示目標包括產品裝配過程、外觀效果展示、使用方法演示、工藝細節(jié)演示、客戶特殊需求。營銷人員必須與動畫設計師建立良好的溝通,避免對展示目標的誤解,以免造成人力物力的浪費。
同時要注意動畫設計師往往只是計算機應用及影視創(chuàng)作方面的專家,對產品的機械及控制原理等特點并不一定熟悉,因此制作過程中往往需要各領域技術人員的協(xié)助。技術人員與動畫設計師需交流明確機構的運行方式、產品運行的流程、產品控制的流程并需要特別注意的產品細節(jié)。
通過前期準備過程中所明確的展示目標,進行腳本設計。針對產品動作的連續(xù)性、邏輯性、重要性進行判斷與梳理,對部件的運動過程預留時間范圍。當產品動作先后順序分明、具有連續(xù)性時,宜采用一鏡到底的方式進行創(chuàng)作,避免觀者注意力的浪費。當產品動作存在穿插或是在邏輯上互相制約時,宜采用多鏡頭并行展示的方式進行創(chuàng)作,即在同一時間節(jié)點采用小窗口或分屏的方式展示多個鏡頭信息,增強觀者對產品各部分運動間邏輯關系的感知。以鉆機天車的裝配為例,鏡頭腳本設計如表1所示。
表1 鉆機天車裝配動畫鏡頭腳本
三維資源是指動畫設計師已經擁有的三維模型、三維場景布置、燈光設置、材質貼圖、材質參數等。工業(yè)三維動畫制作時所需要的三維模型大都是機械設備模型,這類模型在企業(yè)中往往已由工程部門創(chuàng)建過NURBS模型。合理運用這部分已有的NURBS模型三維資源可以大大縮短工作流程,將動畫設計師的精力集中至創(chuàng)作本身。當然也可以應用從互聯網中收集到的各類其他三維資源,將他人的藝術表現成果融入創(chuàng)作中,不過這個過程最好經過原作者的同意。
通過外部軟件導入Blender進行處理時,推薦采用.OBJ的格式。這是一種針對產品渲染的通用格式,可以將物體按照材質分組或零件分組進行輸出。
應用三維資產時,因為各個的三維資源往往通過不同的軟件創(chuàng)立,因此需要通過軟件進行整合,合并至最終選定的軟件工作流程中。
應用三維資源時比較容易遇到的問題:如何將NURBS模型與Polygon網格模型合理轉化。要注意NURBS模型轉化為Polygon網格模型時,若設置不當,則將生成大量冗余的點線面。軟件自動轉化生成的Polygon網格模型注定不會有優(yōu)秀的布線結構。在進行接下來的網格編輯操作中,惡劣的布線結構將會導致諸多錯誤,極有可能使得創(chuàng)作過程寸步難行。因此在轉化過程中必須進行優(yōu)化。
模型搭建需要針對主要設備、周邊環(huán)境、操作人員、影視特效進行。
1)主要設備。主要設備的模型可以通過收集到的現有三維資源獲得。針對鉆機天車裝配動畫,應收集主滑輪、機架、軸承、輔助滑輪、欄桿等。對動畫中需出現但未能收集到的模型,可采用Blender的Modeling選項卡進行直接建模。
2)周邊環(huán)境。周邊環(huán)境的模型設計取決于對展示目標是否有所幫助,若沒有特殊需要,可不必制造過于復雜的周邊環(huán)境,但務必創(chuàng)建平面以充當地面。若沒有地面則將無法產生物體在地面上的投影,這會使得物體仿佛懸浮在空中,大大影響動畫的真實性與產品的體積感。必須要創(chuàng)建周圍環(huán)境的模型,如花草樹木、地形地貌、山丘礦石等。需要注意這類環(huán)境模型單獨來看雖然面數不多,但要想有理想的效果往往需要進行大量復用,比如若想要創(chuàng)建草地的場景模型,需要創(chuàng)建多個單株小草,再通過軟件算法將其隨機放置在平面上。這就會產生數萬甚至數十萬的面,嚴重占用硬件資源,所以最好使用貼圖以代替模型。值得一提的是,隨著計算機圖形技術應用的發(fā)展,程序化紋理生成、場景生成插件正快速迭代,使用置換貼圖等方式快速形成建筑物群、建筑墻體的方法已并不少見。相信對于環(huán)境場景的生成,很快就能普及更加高效、更加合理的方法。
3)操作人員。生物體的模型創(chuàng)建是極其復雜的工程,需要動畫設計師大量的知識經驗與時間,成本極其高昂。對工業(yè)裝備的三維動畫沒有必要將過多的精力集中于這里。因此可以盡量省略操作人員的模型,轉而通過使用語言敘述、文字描寫來達到相同的敘事效果即可。若只有使用操作人員模型動畫才能達成展示目標,可適當使用互聯網中的三維資源,當然需要經過原作者的允許。在選擇操作人員模型時,需注意模型形象是否符合場景,盡量不讓觀者感到突兀。還需注意操作人員三維模型的網格布線結構是否正確,以及是否進行了符合要求的骨骼綁定。以保證操作人員模型能做出合理的、符合人體運動能力的動作,且運動過程中不會破面或穿模。
4)特效模型。針對工業(yè)生產的三維動畫中可能會用到焊接火花、物體爆炸、水流運動、物體破碎等效果。影視特效類三維軟件對這一類動畫效果都有專門的模塊,實際操作流程均是大同小異。例如在Blender中若想做出焊接火花的效果,可通過粒子模塊實現,在想要出現火花的位置設置粒子發(fā)射器,并調節(jié)粒子材質、重力及生命周期即可。想要獲取水流起伏的效果,可先創(chuàng)建物體,賦予物體半透明材質,再將噪波紋理貼圖賦予物體材質的置換通道即可。而爆炸及破碎效果均有專門的修改器進行創(chuàng)建。
基于Blender進行動作編輯的方法,基本分為以下幾種類型:
1)通過運動表達式的方式,例如采用正弦函數來控制物體的周期性運動。
2)可以通過關鍵幀記錄的方式,記錄物體在不同時間點所處的位置、縮放大小、旋轉角度,軟件可自行模擬出物體如何在兩個時間點的不同狀態(tài)間轉換。
3)采取骨骼綁定的方式,可分為正向運動學(FK)和反向運動學(IK)兩種形式。正向運動學即通過骨骼動作實現運動目標。反向動力學即通過動作目標計算骨骼動作。
4)通過設定父對象的方式,對物體進行綁定,再通過關鍵幀記錄的方式進行有運動關聯的零件的動作編輯。
5)通過GeometryNode幾何節(jié)點,以nocode形式進行編程,不僅可以控制物體位置,還可以做出程序化形變效果。
攝像機的創(chuàng)建應以完整展示產品細節(jié)為目的,根據鏡頭腳本設計的不同,可能出現鏡頭推進、拉遠、跟隨、環(huán)繞等表達方式。需注意鏡頭切換時是否突兀,鏡頭移動時軌跡路線及運動速度是否適當,是否能給觀者合理的觀看感受。這個過程需要動畫設計師反復實驗、調整以獲得合適的效果。
在Blender中針對攝像機動作,可以通過物體約束屬性選項卡中的添加物體約束來實現,如圖1所示。其中最常用的約束類型為標準跟隨約束、跟隨路徑約束及復制變換約束。
圖1 約束選項卡
1)標準跟隨約束??墒箶z像機根據自身軸向,始終朝向某個物體,無論物體如何移動。適合進行攝像機目標的鎖定,可制作鏡頭推進、拉遠效果。
2)跟隨路徑約束。可使攝像機在某曲線目標上進行移動。配合標準跟隨約束,適合制作環(huán)繞鏡頭效果。
3)復制變換約束??蓮椭破渌麛z像機的全部位置信息。當使用了多個攝像機,需要制作一鏡到底的效果時,可通過復制變換約束復制前一個攝像機的全部位置信息作為當前攝像機的運動起點。
Blender中的燈光按照射光線分散方式的不同主要分為點光、面光、聚光、日光及HDRI全局光照。光線的不同照射方式、照射角度、光源顏色、強度及照射范圍共同影響了產品展示的明暗、氛圍及表面反射效果。燈光選擇的好壞不僅影響著渲染結果的優(yōu)劣,決定了觀感的藝術性,更能直接決定產品展示時物體的體積感,這是由于人肉眼對物體體積感的識別就是依靠對物體明暗關系的識別[4],如圖2所示,在兩物體均為正立方體的前提下設置燈光,左側物體的明暗關系明顯分為3個梯度,肉眼很容易識別其大體形狀,而右側物體明度梯度不明顯,因此難以識別。在設置燈光時,務必使物體表面出現合理的分層級的明度變化。一般來講,物體頂部45°光配合HDRI全局光照是較為優(yōu)秀的選擇。
圖2 打光效果對比
不同渲染器對材質的設置參數不盡相同。在Blender的Shading選項卡中,提供了多種材質節(jié)點,能滿足對物體材質、各類貼圖、世界環(huán)境的全面控制。當對任意物體進行材質創(chuàng)建后,將會默認創(chuàng)造一個原理化BSDF(雙向散射分布函數)材質節(jié)點。若沒有特殊貼圖需求,此材質節(jié)點可以模擬出幾乎所有工業(yè)三維動畫中所需要的材質效果,而且數值簡單、修改方便、效果直觀。
原理化BSDF節(jié)點編輯器是基于迪士尼BSDF的改進版本。采用“金屬度/粗糙度”的PBR(基于物理著色)流程,可使用極少參數帶來較為真實的效果,如圖3所示。
圖3 原理化BSDF材質節(jié)點
對各項參數介紹如下:微表面反射光照模型算法的選擇包括GGX、多重散射GGX;次表面散射算法的選擇包括克里斯坦森-伯利、隨機游走(固定直徑)、隨機游走;基礎色決定材質漫反射顏色或金屬色;次表面對漫反射及次表面散射結果按比例進行混合;次表面半徑決定次表面顏色偏向,默認模仿膚質顏色;次表面顏色決定次表面固有色;次表面IOR決定次表面折射程度;次表面各向異性決定次表面反射方向;金屬度決定材質是否為金屬,一般只會采用0或1的數值;高光決定物體表面的對環(huán)境光的反射強度;高光染色即物體表面對周圍環(huán)境光的反射會進行染色的程度,金屬物體默認會對反射光完全染色,因此當金屬度數值為1時高光染色設置無效果;糙度決定表面粗糙程度,即反射的分散程度,由于使用微表面處理算法,糙度也會使邊緣出現一定逆反射現象;各向異性過濾影響表面反射強度的方向變化,產生類似于金屬加工的紋理;各向異性旋轉對各向異性過濾的結果進行旋轉;光澤指通過對邊緣產生微小高光生成布料效果;光澤染色指對邊緣微小高光進行染色;清漆指模仿汽車車體表面清漆的效果;清漆粗糙度決定清漆表面反射的分散程度;IOR折射率指物體對后方入射光線的方向影響程度;透射指物體透明度;透射粗糙度指光線在進入物體表面后的散射程度;自發(fā)光(發(fā)射)指物體自發(fā)光的色彩;自發(fā)光強度指物體作為光源的發(fā)光強度;Alpha指物體透明通道,設置為0即物體完全透明。
針對鉆機天車裝配的材質,一般為表面噴漆的金屬材質。可以在金屬度為0、高光程度為0.5、粗糙度程度為0的基礎上進行設置。以此材質參數配合HDRI光照貼圖,能生成美觀真實的效果。
Blender內置了Cycles及Eevee兩種渲染器,也可以通過插件加載其它類型的渲染器。其中Cycles屬于離線物理渲染,通過模擬光線投射路徑計算光線反射的真實效果,特點是光影效果非常真實,設置參數較少,但渲染速度較慢。Eevee屬于即時非物理渲染,因其光柵化的渲染特性,只需極小采樣率,即可獲得無噪點且體積感飽滿的效果,光影效果一般但速度極快,可以做到所見即所得,但想達到與Cycles近似的光影效果,所需設置的參數也較為復雜。為加快工作流程,一般采用Eevee渲染進行視窗預覽,再由Cycles進行最終成片渲染。若對渲染光影效果要求不高,也可直接使用Eevee進行渲染[5]。
在渲染設置基本相同、采樣率同為128的情況下,以幀序列方式進行渲染。以Cycles渲染器進行,開啟OpenImageDenoise降噪,用時13.15 s即可實現令人滿意的效果,同時物體自身投影、陰影反射效果均十分真實,如圖4所示。使用Eevee渲染器進行,所需時間僅為1.45 s,時間縮短為原來的11%,但物體表面缺少自身投影、反射細節(jié),如圖5所示。
圖4 Cycles渲染示例
圖5 Eevee渲染示例
以鉆機天車裝配動畫為例,展示目標在于零件間的實驗、檢驗過程與裝配順序,對光影效果要求不高,只需美觀地展示產品體積感與材質、配色即可。因此在此使用Eevee渲染器進行最終渲染以節(jié)約渲染成本。最終1552幀圖像僅用了24.6 min即渲染完成。
Blender中針對影片合成剪輯的Video Editing模式可對影片進行基本的剪輯、合成及特效添加處理。能高效地完成絕大多數后期合成工作。
通過Blender的Video Editing模式進行后期的合成剪輯的基本流程如下:
1)將幀序列以PNG或TIFF格式導入,生成視頻片段并按照時間邏輯組合。
2)在對應的時間節(jié)點配以聲音與字幕。
3)通過改變透明度選項或添加特效片段的方式增加轉場效果。
4)輸出合適的文件格式。
合成中,需要注意每個分鏡頭中,視頻片段長短與配音片段長短互不相同。因此字幕出現的時機與配音出現的時機需手工調整,以獲得合理的信息傳達效果。合成結果片段如圖6所示。
圖6 結果片段截圖
目前計算機圖形應用從市場拓展到技術革新都十分迅速,對硬件的要求及經濟成本、時間成本都在不斷降低,從方方面面滲透入了傳統(tǒng)制造業(yè),是制造業(yè)的有力輔助手段。
本文基于Blender軟件討論針對工業(yè)三維動畫的制作方法。詳細說明了準備過程中的注意事項和具體操作過程中的主要工具及參數應用。介紹了在工業(yè)三維動畫的制作中如何合理利用Blender集成化、高效率的優(yōu)勢。在未來的研究中,將進一步深入針對Eevee即時渲染技術的應用,設法通過Blender界面編程,生成更優(yōu)秀的產品三維展示解決方案。