由臺詞、語音自動生成角色的表情!SE分享FF7 RE中的新技術

騎馬與砍殺2

9月2日到9月4日,日本計算機娛樂協會(CESA)在線上主辦瞭日本最大的面向遊戲開發者的會議“計算機娛樂開發者大會2020”(CEDEC 2020)。

本稿件基於會議首日關於《最終幻想7 重制版》(後文簡稱《FF7 RE》)動作的演講《<FINAL FANTASY VII REMAKE>中的角色動畫技術》的演講進行報道。

騎馬與砍殺2

全篇演講分為兩部分,前半部分講角色的身體動作,由史克威爾艾尼克斯的動畫主程序原龍先生進行解說;後半部分講角色的面部表情,由面部指導巖澤晃先生進行解說。

雖然主要是關於關於開發技術的內容,但其中有意思的內容也不少,《FF7 RE》的粉絲也請不要說“沒興趣”,務必讀一讀看看。

騎馬與砍殺2

圖左為原龍先生,圖右為巖澤晃先生

至今為止的動作技術的集合

包括《FF7 RE》在內的3A遊戲為瞭讓遊戲中的動作顯得更加真實豐富,都需要給角色制作許多的動作。為瞭減少這一部分的工作量,開發者們就采用瞭能夠按照預先設定的命令,自動生成動作或者自動補完動作與動作之間的空隙的“procedual動畫”技術。

首先是角色的身體動作部分。《FF7 RE》使用瞭大部分遊戲都在使用的時下主流的遊戲引擎虛幻四。原先生表示,在角色的身體動作上,《FF7 RE》中並沒有使用什麼特別新穎的技術,正如目前在CEDEC中說到的那樣,所使用的是現存的技術的集合。

騎馬與砍殺2

《FF7 RE》作為一款RPG,同時也是按下按鍵會攻擊敵人,前推搖桿會閃避敵人攻擊的高動作性遊戲。因此,隻要按下按鍵,遊戲中的角色也必須瞬間做出反應。但是同樣要保證不會做出奇怪的動作,不讓動作產生破綻。

因此,本作使用瞭能夠補完動作與動作之間的空隙的“慣性補間”技術。以往的方法是將動作與動作自動混合,在其中用動作連接起來,而“慣性補間”簡單來說,就是參照即將要混合的動作的姿勢數據,將它與下一個動作的最開始混合起來的方法。

騎馬與砍殺2

騎馬與砍殺2

慣性補間示意圖

使用瞭這種方法之後,動畫能夠更加自然,隨著玩家的操作而改變的動作也顯得沒有違和感瞭。同時,在面向海外開發者的大會,GDC2018的《戰爭機器》系列相關部分也展示瞭這種方法。

騎馬與砍殺2

演講中還按快速、慢速、通常三種速度演示瞭克勞德揮劍連擊的動作,不管哪個揮劍動作都自然流暢。

戰鬥中則是由方法來決定,簡單來說,如果隻是要從克勞德揮劍的動作A轉變到進行追擊的動作B,那麼這兩個動作之間的動作補間自然也就不難瞭。但是,在移動的情況下,走、跑、停這樣的動作,根據玩家的操作就需要制作很多的動作瞭。

因此,在從動作A能夠轉變到動作B、C、D這樣有多個候補動作候補的情況,就要一並使用“Pose Matching”技術來比較後續動作之前的姿勢,來自動選出一致的動畫。

騎馬與砍殺2

比較要轉變為的動作的姿勢(Pose Matching)

要轉變成為的動作有多個候補的情況下,對姿勢進行比較之後自動選出。

根據角色單位,可以指定追加候補動作。(Scalable)

設定Notify之後能夠追加或者限制要轉變為的候補的幀數。

進行姿勢比較時不需要比較所有的骨骼,可以在設定時進行指定。(比如兩足步行時隻需要比較下半身的基本骨)

騎馬與砍殺2

慣性補間+Pose Matching

在補間前後的姿勢差距不大的情況下,慣性補間加算的值接近0,因此就算blend時間很長也不會產生違和感。

默認blend時間設定的稍長。

Locomotion = 12F(0.4sec)

Field & Battle Action = 9F(0.3sec)

Field Cinema = 30F(1.0sec)

原先生接著介紹瞭奔跑動作、臉的朝向、在斜面上的平衡保持等等更加細致的動作技術。

騎馬與砍殺2

移動輸入補正

根據控制器或者AI的輸入對骨骼單位的回轉補正進行設定。

在preview環境中,在角色做出動作的同時實時編集。

設定可通過IK Control Rig共享。

騎馬與砍殺2

Look At

補間邏輯隻有慣性補間和線形補間。

每個骨骼的重要和角速度都能設定。

在使用慣性補間的時候可以根據結束為止的時間設定Randombias。

角度限制用Pitch和Yaw進行區分。

為瞭維持動作姿勢,可以在Mesh空間中計算骨骼的朝向。

騎馬與砍殺2

Aim

補間邏輯隻有EaseOut和線形補間。(因為對象一直在動所以不適合使用慣性補間)

在設定時對Aim Group進行定義,再從Notify中指定呼出Aim Group。

能夠單獨設定group×骨骼的重量和角速度。

騎馬與砍殺2

Hand IK

算法使用瞭FABRIK。

IK Target有兩種:

  指定global坐標的Manual設定。

  指定effector相對位置的Lock設定

騎馬與砍殺2

因為Lock追蹤的是補正之前的位置,故而可以完成因為Look At或者Foot IK姿勢發生瞭變化時的回溯。

騎馬與砍殺2

FABRIK(Forward And Backward Reaching Inverse Kinematics)

對照IK Target移動末端骨骼時,不使用回轉行列就能將各骨骼的位置配置並決定到線上的方法。

因為不需要逆行列計算,隻需要很少的計算就能得到近似解。

本案例中在 Hand IK/Foot IK中使用。

因為Sub Base,Fullbody IK就沒有利用已經實裝的內容的機會瞭。

和其他遊戲一樣,《FF7 RE》中的腳部動作需要感知地面的凹凸,並自動改變腳的位置。此外本作還能僅僅固定腳部的位置,隻改變腰的高度。由此在防禦姿態中,角色可以在放低腰部同時自然地步行。

此外,還有不移動腳,就能讓腳從地面部分離開的技術。此技術在CEDEC2016的《生化危機7》相關部分也有涉及。

騎馬與砍殺2

Foot IK & Hip Control

檢查出地面的凹凸之後進行腳的位置改變。

根據Foot Lock(腳位置固定),對腰的位置進行動態補償。

戰鬥中的防禦行走動作,沿用瞭通常的行走動畫,不過由於重心下降,將腰的位置下降瞭10CM左右。

騎馬與砍殺2

保證瞭在不移動腳的前提下,Base Height(從腳後跟到腳尖,離地面最近的高度)部分能從地面移開。

在站立或者行走的時候,根據重心腳所接觸地面的高度改變腰部位置。

根據傾斜角度回轉Root骨骼,對腰的位置進行補正。

騎馬與砍殺2

Balance

使用Foot IK或者Hip Control之後,身體的主軸會偏移,根據傾斜角對骨骼進行回轉補正。

能夠設定的項目如下:

對應Pitch的加算值

對應Pitch絕對值的加算值

對應Roll的加算值

騎馬與砍殺2

遊戲引擎上的Control Rig是必須的嗎?

能夠在運行時間進行補正和調整作業很重要。

即使有瞭專用的preview環境,有時也會需要在遊戲運行的同時調整參數。

積極對遊戲引擎內的Control Rig進行瞭對應的人,在應對環境(背景物或者周圍的角色)的變化導致的結果的變化時,也能更快地調整。

敵方被打倒的動畫之類,則使用瞭史克威爾艾尼克斯正在開發中的系統。(這套系統)不是單單使用物理演算將敵人打飛,比如劍擊中瞭敵方的手,(這套系統)能夠即時生成手被擊打到並倒地的動畫。

騎馬與砍殺2

BodyDriver(物理動畫)

技術推進部正在開發中的物理動畫系統。

在一部分角色的死亡演出中使用。

和簡單的物理演算動畫不同,這套系統能夠運行時間生成擊中手時手被壓制、在行走的同時摔倒等等演出效果。

騎馬與砍殺2

物理限制補正

使用Position Based Dynamics[MHHR07]應用物理限制條件之後進行補正處理。

將物理限制條件預置化並組合後在Mesh中設定為用戶數據。

左側是角色沿著Spline移動時對身體的扭曲進行補正。

騎馬與砍殺2

一部分的角色同時使用瞭加算後生成的傷害動作和物理限制補正。

因為根據攻擊的方向圖像會變化,擊中時會給到玩家很良好的反饋。

騎馬與砍殺2

因為Mesh空間內物理模擬的負荷很小,因此簡單的背景物品也使用瞭這種技術。

騎馬與砍殺2

物理的開關、重力、速度之類在gameplay中很容易控制。

騎馬與砍殺2

PBD是一種先單純根據速度計算出物理物體的位置,再根據設定好的限制條件迭代並將位置修正之後,根據位置之間的差距確定速度的方法。

這個方法本身比較簡單所以穩定性高,因為處理代價小特別適合遊戲。

限制條件可以根據遊戲內容自行調整,即使那些在物理上不合理的動作也能輕易實現。

此外,角色們的骨骼使用瞭次世代的技術,如果骨頭歪瞭,當然角色們的肉體也會歪。使用瞭這種技術之後,能夠根據3D角色自動生成更加正確的骨骼,自動生成的動作也能更加自然。

騎馬與砍殺2

KineDriver(輔助骨)

科技推進部開發的輔助骨系統。

在DCCTool上能夠設定實時動作的表現,在遊戲實時運行中也能得到同樣的結果。

使用本技術前的克勞德的右手稍稍有一點歪。

騎馬與砍殺2

Bonamik(骨物理)

技術推進部開發的骨物理系統。

在角色的動作整體中使用。

設計者能夠輕松使用,根據情況還可以在Notify中調整參數。

使用的是在《最終幻想15》中積累下來的技術

參照臺詞自動生成表情!

以上都如原先生所說,是用已有的技術進行搭配的結果。但是在角色的表情和面部動作制作中,則使用瞭新的配合。

本作中角色的眼睛不會停止,而是會像人類一樣上下左右搖動,不斷重復進行眼球運動。此外,(角色們)在和其他人對話時,心理上也會和人類一樣,眼神會無意識地飄開。而這些都是實時發生的。

騎馬與砍殺2

騎馬與砍殺2

Saccade(眼球運動)

視線移動時,眼球會在短時間內不斷重復移動和停止。(12.5-17.5Hz)

已經移動過的角度會產生限制。

僅在移向視線指向的對象物體時會線性移動。

因為Micro Saccade,視線在沒有移動的時候眼球動作也不會停止。這時移動和停止的周期比Saccade還要短。(0.5-3.0Hz)

騎馬與砍殺2

Gaze diversion(移開視線)

即使在註視著什麼東西時,視線也會無意識移開。

特別是在對話時,視線的移開是一種無聲的交流,如果凝視對方則是敵對心的表現。

因為完全按照條件來會造成較重的負擔,根據時間隨機移開視線就不會有這種問題瞭。

眨眼基本上是隨機發生。在突然改變視線的位置或者臉的朝向時也會眨眼。此外,(眨眼時)也不會到完全合上眼皮的程度,而是會保持眼睛仍然稍稍張開,在此前提下,結合動作blend技術和一些隨機要素,遊戲中會發生各種各樣的眨眼。這些都是根據身體的動作和臉的朝向自動生成的。

騎馬與砍殺2

眨眼

隨時間經過周期性眨眼,在2-10秒內之中隨機發生。

因為劇烈的眼球運動而發生的反射性眨眼。在Look At對象位置發生大幅移動時發生。

在完全閉眼的眨眼發生時無視Saccade的移動角度限制。

騎馬與砍殺2

根據身體動作自動生成Saccade

根據身體和臉的朝向自動生成眼球運動(saccade)。

Jenkin中所有對應身體動作的curve都經過bake。

在沒有從AI處得到Look At要求時使用。(fieldgimmick或戰鬥動作)

此外可以說是本次演講的一大焦點的則是一個叫做“HappySadFace”的自動口型(lip synchronization)生成系統(和角色臺詞的聲音對應,好像正在說出這種語言一樣的口型)。

這個口型是參照聲音數據和文本輸出數據,生成的口型動畫。演講中還展示瞭本作支持的日語、英語、法語、德語四種語音下同樣的臺詞對應的克勞德的不同口型。

騎馬與砍殺2

日語語音對應的口型

騎馬與砍殺2

英語語音對應的口型。能看到英語特有的咬下唇的動作。

騎馬與砍殺2

HappySadFace(自動口型)

科技推進部開發中的自動口型系統。

從聲音和文本中輸出專用格式,用Maya和虛化4生成口型動畫。

支持日語、英語、法語、德語。

因為時間線數據是簡單的文本數據,為瞭使動畫整體更加流暢可以整體進行過濾。

騎馬與砍殺2

HappySadFace(自動口型)

因為從語音中將音素抽出的形狀數據的目錄被做成瞭時間軸,如果改變瞭形狀數據,(口型)也會同樣變化。

音素與形狀的對應表根據語言的不同分別制作。

為瞭表現因感情產生的表情變化,形狀數據的預設也做瞭替換。

有瞭這個系統之後,即使不用人工去做,也能做出與語言對應的大量臺詞的口型。但是“HappySadFace”也還有作為參考的文本數據可能有錯誤,聲優如果即興發揮,口型的對應就會變難的問題。而且,自動生成的口型如果出現不與語音對應的錯誤的話,目前隻能通過人眼看來發現。

騎馬與砍殺2

此外,還有能夠從語音的音量自動生成眉毛動畫的“ST Emotion”技術,這一技術還可以從聲優們的聲音中推定感情的參數,自動對感情的表情進行blend。由於有此技術,就算僅僅有臺詞,也能在任何場景都用很像人類的表情表現角色們的對話。

騎馬與砍殺2

根據語音音量生成眉毛動畫。

感知語音的起始,根據音量生成眉毛上揚的加算動畫。

因為是加算所以在一小段時間內連續重復放送也沒問題。

準備好眉毛上揚狀態的姿勢動作,根據blend率進行加算。

騎馬與砍殺2

根據語音音量生成上半身加算動畫。

感知語音的起始,根據音量生成上半身前後傾,頭和脖子扭動的加算動畫。

因為是加算所以在一小段時間內連續重復放送也沒問題。

加算值用IK Control Rig作為預設定義。具體再放送哪個預設,需要在再放送時隨機決定。

騎馬與砍殺2

根據聲音生成表情動畫。

使用ST Emotion根據聲音推測感情。

對符合感情參數變化的各種表情進行blend。

感情參數並不是以一種語音為單位,而是一種時間軸數據,所以即使在一種語音中也會出現表情的變化。

雖然推測的精度能夠達到70%,但如果發生差錯,表情的含義可能完全不同。

以上的表情都是由設計者指定後手動輸入的,場景也很宏大,但遊戲中也有不進行指定就進行對話的場景。如果將以上技術全部結合起來就能夠不用過場動畫,在吃飯、動作、自然的對話等等場景中品味表情豐富的對話瞭。

騎馬與砍殺2

使用這些技術之後,表情更有人味

巖澤先生表示,“ST Emotion”已經在各種領域得到應用,十分值得信任瞭,但在遊戲領域的應用,《FF7 RE》還是第一個。今後也許在許多遊戲中都得到應用吧。

但是也有問題,比如巴雷特常常操著仿佛發怒的腔調,就很容易被判斷為發怒的表情;孩子們的聲音較為高亢,則很容易被判斷為喜悅的表情。

騎馬與砍殺2

ST Emotion SDK

能夠實時運作的感情解析模塊。

能夠從人聲中檢測出五種感情,各分為十個階段。(包括喜悅、憤怒、悲傷、平常、興奮)

在遊戲領域的第一次技術合作就是和本作,此前已經有在許多項目中使用的實績,十分值得一用。

以上就是本次演講的全部內容,在您再次遊玩《FF7 RE》的時候,試著關註一下這些無心的動作或者過場動畫以外的表情,也許能從新的角度來享受遊戲。

文章來源:GameLook.com.cn

暫無評論

相關推薦

微信掃一掃,分享到朋友圈

由臺詞、語音自動生成角色的表情!SE分享FF7 RE中的新技術