虛幻引擎學習之路:動畫模塊進階篇之動畫融合

2021-02-18 侑虎科技

上周UWA介紹了Unreal 4引擎動畫模塊中的基本功能,接下來我們將進一步介紹Unreal 4引擎動畫模塊中提供的進階功能。其中主要包括:動畫融合、動畫重定向、反向運動學、頂點動畫。鑑於篇幅原因,今天我們先來講解動畫融合。


在此,特別感謝Unreal中國團隊對於本篇文章中Unreal引擎相關內容的審核,並在UWA團隊學習其引擎的道路上提供的大力支持。

動畫融合

動畫融合是遊戲引擎動畫模塊中的重要功能。本節將介紹Unreal 4引擎中提供的動畫融合功能,主要包括:Blend節點、Blend Space、Animation Montage、Animation Composite以及Post Process Animation Blueprint。

1、Blend節點

Unreal 4引擎的Anim Graph中提供了一系列的Blend節點可以實現不同的動畫融合功能,其類似於Unity引擎中的Blend Tree功能。Blend節點的輸入是來自多個不同動畫文件的Pose數據以及Alpha權重參數,它會根據權重參數計算出最後融合的Pose,如下圖所示:

其中,A和B為兩個輸入Pose,Alpha為[0,1]的浮點數表示A和B的權重。當Alpha為0時輸出Pose全部來自A,當Alpha為1時輸出Pose全部來自B,當Alpha為0~1之間時輸出Pose為A和B的融合結果。類似功能的節點還有:Apply Additive、Blend Multi等。

Time Based Blend類型節點可用於連接兩個或多個動畫,並在動畫切換時進行融合。Blend

Poses by bool節點是其中一種,該節點根據輸入的Bool值(紅框中的Active Value)來控制True Pose和False Pose的切換,並且可分別設置兩個Pose的融合時間(藍框所示),其分別表示切換到True Pose的融合時間和切換到False Pose的融合時間,如下圖所示:

類似功能的節點還有:Blend Posed by int,支持多個動畫Pose的切換融合。

Layered Blend per bone節點可以將多個動畫的不同骨骼融合在一起,例如:將Locomotion的下半身體和射擊以及近戰的上半部分身體進行融合,可以實現一邊行走一邊射擊等動作。該節點需要配合Animation Montage的Slot使用,本文將在Animation Montage小節中進行介紹。

2、Blend Space

Blend Space是Unreal 4引擎動畫模塊中用於實現複雜動畫融合功能的資源。它最多可提供兩個控制參數,並支持在二維平面上擺放動畫採樣點對多個動畫進行融合。當變量取值在二維平面中的某一坐標位置時,Blend Space會根據採樣點處的動畫和坐標插值計算出當前坐標的動畫。下圖顯示了1D和2D的Blend Space示意圖:

其中,左圖為1D的Blend Space,包含一個參數Speed。右圖為2D的Blend Space,包含兩個參數Speed和Yaw。

Blend Space的創建與其他資源創建過程類似,點擊Add New按鈕或在Content Browser中點擊右鍵,在彈出菜單中選擇Blend Space即可。Blend Space資源分為1D和2D,分別支持一個和兩個控制參數的動畫融合。創建好Blend Space資源後雙擊即可打開編輯界面,如下圖所示:

上圖例子使用了1D的Blend Space,實現了根據Speed參數對Idle、Walk以及Run三個動畫進行採樣融合效果。其中,區域1顯示了資源的參數設置,區域2顯示了控制參數坐標軸以及動畫採樣點,區域3顯示了動畫文件列表。通常在使用Blend Space時首先需要設置坐標軸,如下圖所示: 

其中,在Interpolation Type選項中可以設置動畫插值計算方式,默認設置是Averaged Interpolation。

設置好坐標軸即可從區域3動畫列表中選取採樣動畫拖動到區域2中。上述例子中設置了三個動畫採樣點:Idle、Walk和Run。在區域1中可查看其參數設置,如下圖所示: 

上圖參數設置表示Idle動畫位於Speed取值為0處,Walk動畫位於Speed取值為93.75處,Run動畫位於Speed取值為375.0處。在區域3中可查看採樣動畫分布,如下圖所示:

其中,三個白色菱形點表示三個採樣動畫在Speed坐標軸上的位置,藍色菱形點表示當前Speed取值。點擊播放動畫,並拖動藍色菱形點在Speed坐標軸上移動,即可看到不同的動畫插值結果。上述例子為1D的Blend Space,2D的Blend Space比1D多了縱坐標,使用方式與1D類似。

Blend Space資源設置完成後,即可拖入Animation Blueprint的Anim Graph中作為節點使用,如下圖紅框所示:

3、Animation Montage

Unreal 4引擎中的Animation Montage是一個多功能的動畫編輯工具。它可以將多個動畫進行連接,並且支持自定義切分動畫段、循環播放、任意跳轉以及配合Layered Animation實現不同骨骼播放不同動畫的功能。它支持如同普通Animation Sequence一樣的Notification和Curve的編輯。同時,Animation Montage還支持重用。本節將對上述功能和使用方法進行介紹。

Animation Montage創建方式與其他資源相同,在Content Browser中雙擊即可打開編輯界面,如下圖所示:

其中,區域1顯示了資源的參數設置,區域2顯示了Animation Montage中Timeline相關的設置,區域3顯示了資源列表和Slot信息。

- 自定義切分動畫 

Animation Montage中重要概念是Slot和Section。Slot類似於一個容器,可以存放多個動畫文件,並將它們按時序排列,其順序可通過在Slot的Timeline上拖動進行設置。Slot的管理支持分組,每組可包含多個Slot,如下圖所示:

上圖顯示了Slot的Timeline。其中的Slot名字為Jump,屬於Default Group,並且包含了三個動畫:ThirdPersonJump_Start、ThirdPersonJump_Loop和ThirdPersonJump_End。從區域3中動畫文件列表中可以添加更多的動畫文件到Slot中。

Section則是將整個Slot進行切分後的片段,主要作用是讓開發者可以在每個片段上進行編輯,從而達到不同的效果。默認情況,Slot只有一個Section,通過新建Section可將Slot分成多段,切分位置可通過在Section的Timeline上拖動進行設置,如下圖所示:

上圖顯示了Section的Timeline,其中包含了三個Section:Start、Loop和End,綠色豎線為其起始位置。添加新的Section可通過右鍵菜單創建。

通過在Section Track上添加Section並重新組合排列就可生成新的動畫序列。該新生成的動畫序列就是Animation Montage的輸出結果,如下圖所示:

上圖紅框中顯示了Section Track,其中Start、Loop和End被順序連接成一個動畫序列。

- Branch Notify

同時,Animation Montage也具有普通Animation Sequence一樣的Notification和Curve設置功能。並且,Animation Montage還具有新的Notification—Branch Notify。它支持在動畫播放的任意時刻跳轉到任意Section,如下圖所示:

上圖顯示了Animation Montage中的Notify和Curve的Timeline,其功能和編輯方式與Animation Sequence中相同。其中,Element Timing的Timeline顯示了當前所有Notify以及Section起始位置的可視化信息。比如,上圖中綠框0、1、3分別表示動畫Start、Loop和End動畫的起始位置,而藍框2表示TestNotify事件的起始位置。方框中序號顯示了事件觸發的時序,方便編輯的同時查看。圖中的Animation Montage的Branch Notify事件響應邏輯可以在Animation Blueprint的Event Graph中實現,如下圖所示:

上圖紅框中顯示了在Event Graph中通過添加Montage Set Next Section節點實現Branch Notify的過程。其中,觸發事件為TestNotify,即上圖Animation Montage的Notify Timeline中添加的事件。當該事件被觸發時,Montage Set Next Section節點會從Loop Section跳轉到End Section,從而實現了Section的跳轉功能。利用Section跳轉,可以實現更加豐富的動畫邏輯。


- 循環播放Section

此外,Section支持重複循環播放的功能,如下圖所示:

上圖中Loop Section變成藍灰色(紅框所示),表示其設置為循環播放。該功能可以用於製作有吟唱的技能,吟唱Section循環次數可根據吟唱時間確定,當吟唱結束後可利用Branch Notify跳轉到技能後搖的Section。

Animation Montage的播放可以利用Anim Graph中的Slot節點指定播放的Slot,如下圖所示: 

 

其中,Slot節點的輸入是動畫狀態機的Pose數據,輸出則作為角色最終的Pose。然後在Event Graph中用Montage Play節點播放,如下圖所示:

Montage Play節點中可設置需要播放的Animation Montage資源名字,然後根據遊戲中的邏輯連接到相應的流程中。

- Layered Animation 

Animation Montage配合Layered Animation能夠實現不同骨骼播放不同動畫的功能,例如:上半身骨骼播放攻擊動畫,下半身骨骼播放行走或是下蹲等動畫。該功能可以在Anim Graph中利用Layered blend per bone節點配合Animation Montage實現,如下圖所示。

其中,上圖節點圖中紅框表示獲取Pose的Cache信息,主要分別用於藍框和紅框操作來進行使用;藍框為直接將Cache Pose進行索引,而紅框則是將Cache Pose通過UpperBody的Animation Montage操作輸出新的Pose,並將新的Pose索引到混合結點中。最終,通過融合結點,則可以計算出最終的動作融合效果。在Layered blend per bone節點的屬性中可以對bone layer進行設置,如下圖所示:

上圖的設置使得Animation Montage的輸出Pose被融合到spine_01骨骼以及其子節點骨骼中,從而實現了角色上半身骨骼播放Animation Montage的動畫,下半身依舊播放Locomotion狀態機動畫的功能。

從大方向上來看,上述功能類似於Unity引擎Mecanim動畫系統的Layer動畫層融合功能,而從細微處來看, Layered blend per bone功能更像是Unity引擎中Layer動畫層融合功能中又加入了Mask的效果,大家可以體會一下:)

- Animation Montage重用

Unreal 4引擎提供了Animation Montage的重用功能。對於已經配置好的Animation Montage可以通過創建Child Animation Montage繼承其父類的所有設置。在Child Animation Montage除了 Slot中的動畫可以替換之外,其他的設置都無法修改,如下圖所示:

其中,Slot的Timeline中黃色的部分(紅框中)表示被替換掉的動畫,綠色表示繼承自父類的動畫。從上圖可見,其他的設置選項都被置為灰色,並且無法編輯。

4、Animation Composite

Unreal 4引擎中的Animation Composite提供了將多個動畫連接成一個動畫的功能,並且支持與普通動畫相同的Notify和Curve的功能。其創建方式與其他資源相同,在Content Browser中雙擊可打開編輯器,如下圖所示: 

Animation Composite編輯界面與Animation Montage類似,上圖紅色區域中顯示了Composite、Notify以及Curve的Timeline。其操作方式只需將右側列表中的動畫拖入Timeline即可。其播放方式是在Anim Graph中當做普通動畫即可,如下圖所示:

Animation Composite的功能與Animation Montage有相似之處,它們都能將多個動畫拼接成一個動畫。但是,Animation Composite只提供了簡單的拼接以及Notify和Curve的功能,而Animation Montage則提供了更加複雜的Section循環以及跳轉功能。Animation Composite比Animation Montage使用更簡單可直接當做一個Animation Sequence使用,而Animation Montage還需指定Slot等信息。 

5、Post Process Animation Blueprint

Unreal 4引擎的Skeletal Mesh資源參數中有一項Post Process Animation Blueprint,它為角色提供同時運行兩個Animation Blueprint的功能。通常情況下,角色的Animation Blueprint可以在Character Blueprint中的Skeletal Mesh組件的Anim Class參數中進行設置,如下圖所示:

Post Process Animation Blueprint不僅能替代主Animation Blueprint,更重要的功能是它可以允許開發者訪問和改變相關的骨骼動畫信息。在Unity引擎中,我們可以在LateUpdate中訪問和改變骨骼動畫信息,而在Unreal 4引擎中,則是通過Post Process Animation Blueprint來處理這件事。

同樣,Unreal 4引擎提供了AnimDynamic功能來與之配合使用,從而實現角色基於物理的動畫,其功能類似於Unity Asset Store中的Dynamic Bone,而Dynamic Bone功能更像是AnimDynamic的簡化版。

AnimDynamic節點支持對角色身上物件實現類似Ragdoll的動畫,例如:頭髮、項鍊、衣服等。該效果能夠在角色移動時,更加真實地模擬項鍊等物件的被施加外力從而產生擺動的動畫。AnimDynamic的底層實現並不會計算物理碰撞,而是利用小方盒對物體的形狀進行近似,然後通過限制方盒運動的角度範圍近似模擬物理碰撞產生的自然擺動,如下圖所示:

Unreal官方網站[1]中介紹了利用AnimDynamic和Post Process Animation Blueprint對怪物身上的項鍊施加動畫的教程,有興趣的讀者可進一步閱讀。

參考文獻

[1] https://docs.unrealengine.com/latest/INT/Engine/Animation/AnimHowTo/AnimDynamics/index.html

以上則為Unreal 4引擎動畫模塊關於動畫融合的介紹,希望通過上述內容,可以讓您對Unreal引擎的動畫模塊產生明晰的感性認識。下周,UWA將為您帶來動畫模塊中動畫重定向、反向運動學等進階功能,歡迎關注!

  揭秘! | 為什麼他們都用UWA GOT! 

延伸閱讀

【虛幻引擎學習之路】渲染模塊之光照系統

【虛幻引擎學習之路】渲染模塊之材質系統

【虛幻引擎學習之路】渲染模塊之全局光照明

【虛幻引擎學習之路】渲染模塊之相機後處理

相關焦點

  • 「遊戲引擎+動畫」,虛幻引擎助力《地靈曲》國漫排行榜登頂!
    這部動漫由深圳灼華互娛使用虛幻引擎 4 開發,採用了劇遊聯動的形式,堪比院線電影品質也讓這部動畫受到越來越多的關注。《地靈曲》的故事創意非常巧妙,動畫講述民國年間,主人公張天啟對考古極有興趣,尋找樓蘭天字墓之謎的故事。
  • 從蒙皮綁定,動畫模擬,到導入虛幻引擎全流程...
    ART(全稱Animation and Rigging Toolkit) ,是一套專為 Autodesk Maya 創建的動畫和骨架工具。  Epic 在其所有項目中也會使用這個工具,例如《堡壘之夜》、《帕拉貢》、《虛幻競技場》和《機械重裝》。
  • 從蒙皮綁定,動畫模擬,到導入虛幻引擎全流程....
    ART (全稱Animation and Rigging Toolkit) ,是一套專為 Autodesk Maya 創建的動畫和骨架工具。Epic 在其所有項目中也會使用這個工具,例如《堡壘之夜》、《帕拉貢》、《虛幻競技場》和《機械重裝》。
  • 虛幻引擎做CG影視的優勢是什麼?
    前幾天水哥發了一篇文章《houdini18.5於unreal實時渲染》討論了現在熱度非常高的使用虛幻製作影視的問題,建議對這個主題感興趣的同學都看一看,我下面大概總結一下水哥文中的意思:1CG技術流程裡面渲染主要耗費機子/渲染時間/電費,但是相比於建模,動畫,特效等其他模塊,渲染的成本不是最高的(這裡包含了人力成本等各項因素)。
  • 虛幻引擎動畫作品《機器人設計學院》:臺灣學生劉得維獨家採訪
    「從第一個動畫專題開始,我便開始學習虛幻引擎4,並且對它的效率及畫面表現感到非常驚訝
  • 虛幻引擎4.22現已發布!
    此版本還包含了GitHub虛幻引擎開發者社區提交的174項改良!特此對虛幻引擎4.22版本的每位貢獻者表達誠摯謝意。我們加入了大量光線追蹤功能並將繼續在後續的虛幻引擎版本中對這個模塊的功能進行擴展。此版本中的部分功能包括:欲知詳情,請參見 實時光線追蹤 部分,了解此版本當前支持功能的詳解。
  • 動畫師的春天來了!UE4買量視頻堪比動畫短片的品質!
    即使知道這是一個風口,但是很多動畫師還停留在傳統的動畫製作中,並沒有坐上這輛順風車。別急,這裡已經為你規劃好了學習路線,你只要點一下學習按鈕,就能避開所有的雷區,進入『風口』行業進行系統性進階。2、學習虛幻基礎操作與動畫導入、動作傳遞等內容。學習目標:1、本篇開始就進入了實例部分了,以格鬥動畫案例綜合講解,從前期製作動作到傳遞動作,與UE4結合學習動畫製作的全流程講解。2、學習MotionBuild的使用與動作傳遞、虛幻的定序器功能、學習如何使用、景深的控制與後期輸出
  • 強氧綜合培訓系統助力中國傳媒大學遊戲創作節——虛幻引擎遊戲創作大賽頒獎典禮
    依託於中國傳媒大學深厚的國內外影響力和廣播電視藝術學與計算機科學的綜合性學科背景,在動畫、數字媒體藝術、遊戲設計及網絡多媒體教學科研方面現已形成跨學科、跨媒體、科學與藝術相融合的整體特色與優勢。11月7日上午,中國傳媒大學2020遊戲創作節——首屆虛幻引擎遊戲創作大賽頒獎典禮在動畫與數字藝術學院舉行。
  • 在 Chinajoy 2018 上體驗虛幻引擎作品
    大多數遊戲的電影預告片都被線性製作流程所束縛,但卻是個例外,Epic Games 團隊為其創作的高質量動畫短片可以即時地在虛幻引擎中運行,從而實現製作過程中的實時導航和完全互動。本次展出的是 Epic Games 產品虛幻引擎4 製作的實時動畫製作的項目,本項目展示中開發者可以看到在引擎中實時運行的燈光,材質與粒子效果,也可以學習到鏡頭是如何切換,實時更換材質以及高品質渲染。
  • 虛幻引擎虛擬培訓課堂下周課程預告
    如果您將在虛擬製片中使用虛幻引擎,這是您的入門班。 主題包括:講師:Alex Paschall2020年5月13日 周三 2:00 AM-4:00 AM(北京時間)簡介-虛幻引擎之旅(100.1)在本課程中,您將學習虛幻引擎的基礎知識。
  • 虛幻引擎4.23現已發布!
    動畫流送會將運行時內存影響限制到使用中的動畫,從而實現同時使用更多數量的動畫。虛幻Insights可收集、分析和顯示UE4行為的數據進行性能分析,幫助用戶理解引擎在實時或預錄製會話中的性能。此版本包含了GitHub虛幻引擎開發者社區提交的190項改良!
  • 虛幻引擎項目聚焦:《王國之心3》
    在著手開發這個作品時,史克威爾艾尼克斯的團隊對自己想要創作的內容已經有了明確的設想,而且深刻地認識到,要在一個具有純正《王國之心》風味的體驗中融合迪士尼和皮克斯多姿多彩的經典世界場景,需要面對怎樣的挑戰。「在《王國之心3》中,共有10多種世界場景,包括迪士尼的、皮克斯的和《王國之心》的原創世界。」
  • 虛幻引擎中文白皮書:探討 Fortnite《堡壘之夜》預告片背後的實時流程
    大多數遊戲的電影預告片都被線性製作流程所束縛,但 Fortnite 《堡壘之夜》卻是個例外,Epic Games團隊為其創作的高質量動畫短片可以即時地在虛幻引擎中運行,從而實現製作過程中的實時導航和完全互動。
  • 如何用虛幻引擎創作全景遊戲預告片
    v=902Ti6XQNp8最妙的是,它不需要任何花哨的第三方技術,也不需要昂貴的程序許可證:我們使用虛幻引擎,依靠一個只有三名開發者的小團隊,花了幾個小時設置和大約一天時間渲染就完成了這一切。工作流程驚人地順利,我們也很樂意把它分享出來。如果你還在懷疑全景視頻是否適合你的VR遊戲營銷,這篇文章將從頭到尾向你詳細介紹在虛幻引擎中進行全景拍攝、錄製和渲染遊戲內容的技術步驟。
  • 2020線上虛幻引擎技術開放日! —— Unreal Open Day Online 即將登陸!
    本次UOD大會準備了近百場演講,力求將最前沿的虛幻引擎技術與案例解析,直接帶給全球虛幻引擎開發者與關注者。 虛幻引擎5的初次登場,不光引起了遊戲圈的軒然大波,更「破圈」至影視、動畫、建築等多個行業應用領域。兩大核心技術Nanite虛擬微多邊形幾何體和Lumen全動態全局光照解決方案讓各行業開發者們提前目睹了次世代的降臨。這兩大「黑科技」的提前劇透為虛幻引擎帶來了前所未有的關注度。目前,全球虛幻引擎用戶數已經突破1000萬人,其中中國開發者位列第二,僅次美國。
  • GGAC設立「虛幻引擎特別獎」,攜手Epic MegaGrants助力虛幻開發者!
    GGAC現已與「虛幻引擎(UNREAL ENGINE)」達成合作,設立「GGAC第三屆大賽虛幻引擎特別獎」,特此鼓勵優秀的參賽者。「虛幻引擎特別獎」的獲獎作品將會在虛幻引擎中國官方社交媒體、GGAC官方全媒體平臺進行展示,收穫海量曝光機會。
  • 2020線上虛幻引擎技術開放日 Unreal Open Day Online 即將登陸!
    本次UOD大會準備了近百場演講,力求將最前沿的虛幻引擎技術與案例解析,直接帶給全球虛幻引擎開發者與關注者。 虛幻引擎5的初次登場,不光引起了遊戲圈的軒然大波,更「破圈」至影視、動畫、建築等多個行業應用領域。兩大核心技術Nanite虛擬微多邊形幾何體和Lumen全動態全局光照解決方案讓各行業開發者們提前目睹了次世代的降臨。這兩大「黑科技」的提前劇透為虛幻引擎帶來了前所未有的關注度。目前,全球虛幻引擎用戶數已經突破1000萬人,其中中國開發者位列第二,僅次美國。
  • 國內遊戲廠家扎堆使用虛幻4引擎,國產遊戲引擎該何去何從?
    虛幻4在各路大神手中都呈現出極強悍的畫面表現能力,各類"CG級"、"照片級"截圖更是讓我們嘆為觀止,連連稱讚。再加上國外基於虛幻4引擎做出了無主之地等3A大作,所以在不少人心中,虛幻4就是"畫質好"的象徵。無人不知的名號,以及其高強的畫面表現力,加之其超過一百萬美元才會觸發的分成機制,使得許多國內廠商在選擇引擎的時候,都將虛幻4作為首選。
  • CG動畫電影《突變元年:伊甸之路》預告片公布
    Funcom旗下2018年推出的、廣受歡迎的遊戲《突變元年:伊甸之路》(是基於具有數十年歷史的瑞典桌面RPG遊戲),正在開發製作CG長片動畫電影
  • 實時渲染影視動畫專業解決方案
    傳統動畫學習不易,都是由專業美術設計團隊花費許多心力時間製作;動畫師需具備充足的技能從頭開始畫稿,熟練關鍵格動畫編輯、動作邏輯以及其他重要的美學概念。以創新的角色建制與操偶控制技術,徹底改變了動畫製作模式,不再是專業艱深的製作過程,藉助豐富的動畫資源庫讓任何科系的學生都可以體驗創作動畫的快感,動畫變得簡單有趣,發揮創意,體驗快速、有趣又精採的動畫創作。