實戰(zhàn)案例!聊聊游戲的AI劇情動畫輔助管線

推薦閱讀

我們的偵探解密游戲開發(fā)接近尾聲,于是開發(fā)者們開始瘋狂的折磨 AI。眾所周知,開發(fā)者玩 AI 游戲基本不會玩游戲,所以折磨 AI 就成了大家日常解壓的工具。好在我們的 AI 角色一個個脾氣好性格好,不會急,就開心的淪為了群聊的視頻素材。

當(dāng)視頻在手機上無法加載,可前往PC查看。

既然如此今天我們就不聊游戲,聊聊我們對 AI 視頻生產(chǎn)管線的一些探索和思考。

傳統(tǒng)的游戲動畫生產(chǎn)流程中,如果是個簡單的劇情對話類的動畫,大概需要經(jīng)過以下步驟:

  1. 整體劇情方向確定
  2. 寫劇本,直到劇本確定
  3. 根據(jù)劇本,拆分任務(wù)流程,確定角色表演臺本
  4. 根據(jù)任務(wù)流程,確認(rèn)演出區(qū)域和演出角色(還可以包括提資源需求)
  5. 設(shè)置舞臺,布置角色站位、位移動線
  6. 制作演出鏡頭
  7. 制作角色演出表現(xiàn),動作表情等(在這一步其實算是初版了)
  8. 加入配音、特效材質(zhì)、燈光等處理
  9. 根據(jù)整體動畫節(jié)奏,進行調(diào)優(yōu),比如表情卡配音的重音點
  10. 完成,導(dǎo)出。

在與團隊協(xié)作不斷反復(fù)這個工業(yè)化流程時,我們慢慢覺得可以將流程轉(zhuǎn)變?yōu)椋?/p>

①前期準(zhǔn)備

  1. 創(chuàng)建世界觀和各種知識庫(給 AI 用的你懂的)
  2. 創(chuàng)建各種表演用的資產(chǎn)庫(鏡頭庫、動作庫、效果庫)
  3. 創(chuàng)建角色卡,關(guān)聯(lián)各種庫。

②在 AI 的輔助下續(xù)寫劇情,根據(jù)需求輸出各種庫的資產(chǎn)需求。

③根據(jù)任務(wù)流程,在 AI 的輔助下確認(rèn)演出區(qū)域和演出角色。

④在對應(yīng)的引擎內(nèi)位置,在 AI 的輔助下生成動畫序列初版(一次性生成語音、表情、動作、鏡頭、燈光、特效)。(動畫序列:UE:Sequence/Unity:Timeline)

⑤根據(jù)整體動畫節(jié)奏,進行調(diào)優(yōu),先調(diào)整表演節(jié)奏,再微調(diào)燈光和鏡頭。

⑥完成,導(dǎo)出。

也就是說,借助 AI 的能力不斷的迭代和滾動一組項目的庫,而讓 AI 輔助設(shè)計師和開發(fā)者進行動畫生產(chǎn)的提效工作。隨著互相的熟悉應(yīng)該可以異步協(xié)作,越來越快。

既然已經(jīng)涉及到了各種公共庫和各種 AI 能力,那么,這個工具本身就要從一個本地工具變成一個“關(guān)聯(lián)本地”的 SaaS 服務(wù)。我們思考了很久,這樣一個 SaaS 該按照什么順序進行開發(fā),最終決定:以終為始。從末端開始,逐步向前開發(fā),用后一步的結(jié)果逆推前一步需要的東西都是什么。

經(jīng)過相當(dāng)長的一段時間的嘗試,我們將劇情動畫的要素按照以下內(nèi)容進行分類:

①攝像機控制

  1. 機位選擇
  2. 切鏡頭時機
  3. 運鏡方式

②角色控制

  1. 角色姿態(tài)控制
  2. 角色間互動關(guān)系控制
  3. 角色移動控制
  4. 角色表演播放控制

實戰(zhàn)案例!聊聊游戲的AI劇情動畫輔助管線

那么下一步就是探索如何將這些東西準(zhǔn)確的擺出來。已知條件是我們的對白臺本已經(jīng)有了。那么我們就可以以此為始進行整個動畫序列生成。

一般情況下,游戲所使用的劇情對話表必然會存在兩列:說話角色名和角色說的話。于是我們就可以知道角色的身份信息,結(jié)合上下文 AI 可以進一步分析出角色的情緒。我們還可以通過角色卡知道角色應(yīng)該用哪個音頻模型,用合適的情緒生成配音。拿到配音之后,我們終于確定了表演上的第一個基準(zhǔn)線:音頻時長。

接著,就是在這個基礎(chǔ)上去擴展表演的內(nèi)容:動作。一個 AI 負(fù)責(zé)生成口型,另一個 AI 通過分析臺詞,將合適的動作創(chuàng)建在合適的時間點。這時可能會出現(xiàn)一次對時間的調(diào)整——配音的時長不一定足夠角色的動作表演完整。

實戰(zhàn)案例!聊聊游戲的AI劇情動畫輔助管線

此時,這個 Seuqnce 的基本內(nèi)容已經(jīng)有個底子了。下一步就該導(dǎo)演 AI 上場了。作為賽博導(dǎo)演,他的主要工作就是決定合適啟用哪個攝像機,以及決定這個相機該怎么動。他現(xiàn)在知道這些信息:角色的站位,每句臺詞的時長和情緒,角色的說話順序。他需要利用這些信息,將角色之間的互動關(guān)系進行整理,并將合適的機位選擇出來。

這個家伙雖然叫導(dǎo)演,但是往往需要聽從甲方(人類)的指揮,所以他有一組專門的配置表,讓他知道他的甲方希望他用哪些鏡頭。他在其中選擇最合適的,并且去避免出現(xiàn)越軸等常識性錯誤。(如果手勤快的話,它甚至可以不是個 AI)

實戰(zhàn)案例!聊聊游戲的AI劇情動畫輔助管線

最后就是燈光師,根據(jù)機位和角色的位置,選擇啟用合適的燈光(對,它也可以不是個 AI)。

其實一個 Sequence 的確認(rèn)過程,必然離不開人類的不斷產(chǎn)生“新想法”以及作為甲方“再試試內(nèi)樣來一個”的需求。同時還要做好“還是第一版好”的準(zhǔn)備。因此,整個動畫生產(chǎn)管線需要支持用戶在這個過程中手動調(diào)整,并重新順次調(diào)整后續(xù)的結(jié)果。以及,記錄每一次生成的 Seed,用于回滾(叫固化結(jié)果也行)。

實戰(zhàn)案例!聊聊游戲的AI劇情動畫輔助管線

解決完這個視頻生成階段的問題,我們繼續(xù)向上游走,也就是劇情對白的生產(chǎn),這也就是常規(guī)意義上的劇情續(xù)寫。重點的思考過程在于,希望整個過程變成一個持續(xù)滾動,可以異步并行的管線。劇情設(shè)計者和動畫的制作人員和 AI 都能時刻保持“資源和知識是最新的”。

①在劇情書寫的過程中,有幾個 AI 助理在時刻保持知識庫的更新。

  1. 角色需要知道的知識
  2. 劇情世界觀上發(fā)生的事情
  3. 各種實體關(guān)系的變化
  4. 關(guān)鍵信息
  5. … …

上述知識都需要根據(jù)對應(yīng)的時間/章節(jié)/任務(wù)/(更符合項目使用的方式)進行管理,并加上對應(yīng)的標(biāo)簽。(如果團隊里的人類不夠多,可能還需要一個專門的 AI 來管理標(biāo)簽)

實戰(zhàn)案例!聊聊游戲的AI劇情動畫輔助管線

②同時,美術(shù)同學(xué)在確定項目所需的基礎(chǔ)骨骼之后就可以開始根據(jù)策劃需求輸出的動畫資產(chǎn)了。而策劃要在此基礎(chǔ)上建立動作庫。

  1. 動作庫不是所有動作的列表,而是每個角色可以用的動作列表。
  2. 一個項目理論上會有“無論如何都一定要有的資產(chǎn)”,這些資產(chǎn)可以在不等策劃的情況下直接開整。
  3. 而隨著劇情中涉及“表演”的內(nèi)容不斷出現(xiàn),助理 AI 就需要將其中的動作需求整理出來。此處涉及到資產(chǎn)需求的撰寫,相同資產(chǎn)的合并以及人工審核。
  4. 當(dāng)確認(rèn)可用的資產(chǎn)不斷變多,前文提到的劇情表演就有了更多優(yōu)化的空間,可以讓邏輯驅(qū)動再跑一次。

③當(dāng)角色卡、知識庫和美術(shù)資產(chǎn)庫(尤其是動作庫)在一起時,就可以實現(xiàn)讓動畫生成管線根據(jù)角色卡的配置調(diào)用符合角色當(dāng)前狀態(tài)的“專用表演”內(nèi)容了。

隨著項目的開發(fā),我們已經(jīng)將這款工具的一部分加入到游戲運行時,讓游戲內(nèi)的實時表演也能有更好、更合理的效果。而這款方便的管線,也讓我們通過已有的游戲輸出視頻宣傳素材變得很容易。尤其是 AI 游戲,它就是靠對白來做內(nèi)容的,簡直太好了。

收藏 12
點贊 38

復(fù)制本文鏈接 文章為作者獨立觀點不代表優(yōu)設(shè)網(wǎng)立場,未經(jīng)允許不得轉(zhuǎn)載。