聯(lián)系我們
總監(jiān):18066568306(微信同號(hào))
公司地址:陜西省西安市雁塔區(qū)唐延南路逸翠園i-都會(huì)4號(hào)樓1單元0412

游戲角色是怎么動(dòng)起來(lái)的?3D游戲動(dòng)畫(huà)系統(tǒng)介紹

時(shí)間:2021-08-02  來(lái)源:西安動(dòng)畫(huà)制作  作者:西安動(dòng)畫(huà)制作

動(dòng)畫(huà)控制了整個(gè)游戲角色戰(zhàn)斗的節(jié)奏,聲音、特效、鏡頭等表現(xiàn)元素要和位移做好匹配,才能有好的表現(xiàn)效果;游戲中有大量的A類和B類劇情動(dòng)畫(huà),動(dòng)畫(huà)數(shù)據(jù)占據(jù)了游戲中很大一部分的運(yùn)行時(shí)內(nèi)存和計(jì)算消耗……動(dòng)畫(huà)貫穿了游戲開(kāi)發(fā)的方方面面,所以,學(xué)好動(dòng)畫(huà)的相關(guān)知識(shí)對(duì)游戲開(kāi)發(fā)非常重要。

游戲角色是怎么動(dòng)起來(lái)的?3D游戲動(dòng)畫(huà)系統(tǒng)介紹

01 骨骼蒙皮動(dòng)畫(huà)

3D動(dòng)畫(huà)主要有幾種動(dòng)畫(huà)技術(shù):第一種是剛體層級(jí)動(dòng)畫(huà),它的特點(diǎn)是連接處有折斷、不自然,是適合機(jī)器人的動(dòng)畫(huà);第二種是頂點(diǎn)動(dòng)畫(huà),即在每一個(gè)關(guān)鍵幀改變頂點(diǎn)的位置,它的特點(diǎn)是效果棒、數(shù)據(jù)爆炸、工作量大;第三種是骨骼蒙皮動(dòng)畫(huà),它可以解決前兩種動(dòng)畫(huà)技術(shù)的缺點(diǎn)。首先介紹一下骨骼蒙皮動(dòng)畫(huà)的幾個(gè)概念。

骨架:在生物學(xué)中,骨架是由一系列關(guān)節(jié)以樹(shù)狀結(jié)構(gòu)組織而成,關(guān)節(jié)就是下圖中藍(lán)色球的部分,而關(guān)節(jié)之間的連接,即圖中紅色部分,稱為骨骼。而在游戲動(dòng)畫(huà)領(lǐng)域,骨骼就是指關(guān)節(jié),而關(guān)節(jié)之間的連接是沒(méi)有意義的。

姿勢(shì):姿勢(shì)就是骨骼的形態(tài),它描述了骨骼當(dāng)前的位置。

蒙皮:在游戲里是看不到骨骼的,骨骼只是一個(gè)邏輯數(shù)據(jù),玩家看到的是渲染的皮膚,也就是蒙皮之后的形象。蒙皮就是把皮膚綁定到骨骼上的過(guò)程,綁定好之后,皮膚才能隨著骨骼的運(yùn)動(dòng)而運(yùn)動(dòng)。

動(dòng)畫(huà)數(shù)據(jù):在動(dòng)畫(huà)內(nèi)容制作時(shí),動(dòng)畫(huà)師只會(huì)做關(guān)鍵幀的數(shù)據(jù),其余的部分都是通過(guò)插值來(lái)完成,通過(guò)插值可以取得任意點(diǎn)的姿勢(shì)。電影里的動(dòng)畫(huà)是以固定幀率來(lái)播放,并不需要插值,而游戲里面,它的幀率會(huì)隨時(shí)發(fā)生改變,會(huì)隨著當(dāng)前一幀需要計(jì)算的內(nèi)容變多而變少,所以中間狀態(tài)都需要插值算法來(lái)完成。

那么,為什么骨骼蒙皮動(dòng)畫(huà)可以解決掉剛體層級(jí)動(dòng)畫(huà)和頂點(diǎn)動(dòng)畫(huà)的缺點(diǎn)?首先,游戲在啟動(dòng)時(shí),需要去讀取骨骼的層級(jí)數(shù)據(jù)、動(dòng)畫(huà)數(shù)據(jù)、帶有蒙皮的網(wǎng)格數(shù)據(jù);在運(yùn)行時(shí),會(huì)根據(jù)時(shí)間從動(dòng)畫(huà)數(shù)據(jù)中算出骨骼的位置,再根據(jù)當(dāng)前骨骼的位置和蒙皮信息計(jì)算出網(wǎng)格頂點(diǎn)信息,最后根據(jù)網(wǎng)格信息和材質(zhì)渲染出角色。

骨骼動(dòng)畫(huà)的頂點(diǎn)是受多根骨骼影響的,關(guān)節(jié)處的皮膚會(huì)由多根骨骼拉伸而變形,這個(gè)變形和拉伸是符合規(guī)律的,所以它不會(huì)產(chǎn)生折斷。另外骨骼動(dòng)畫(huà)數(shù)據(jù)產(chǎn)生的方式是改變骨骼的位置,而不是改變頂點(diǎn)的位置,我們一個(gè)人一般會(huì)有幾十上百根骨骼,我們?nèi)ジ淖冞@些骨骼的位置,比直接改變幾千乃至幾萬(wàn)個(gè)頂點(diǎn)的數(shù)據(jù)量要小非常多,這個(gè)對(duì)動(dòng)畫(huà)師來(lái)說(shuō),需要做的工作同樣也會(huì)小很多,正是這些特點(diǎn)使得骨骼蒙皮動(dòng)畫(huà),成為當(dāng)前游戲開(kāi)發(fā)中應(yīng)用最多的一種動(dòng)畫(huà)技術(shù)。

02 動(dòng)畫(huà)是如何流轉(zhuǎn)的

動(dòng)畫(huà)融合

游戲的交互性,使得動(dòng)畫(huà)都是一個(gè)個(gè)的小片段,連接這些片段就需要?jiǎng)赢?huà)的融合。通常融合有兩種類型:一種是多個(gè)動(dòng)畫(huà)的融合;另一種就是一個(gè)動(dòng)畫(huà)到另一個(gè)動(dòng)畫(huà)的過(guò)渡,過(guò)渡的方式有兩種,一種是平滑過(guò)渡,一種是凍結(jié)過(guò)渡。

平滑過(guò)渡是在動(dòng)畫(huà)A還沒(méi)有結(jié)束的時(shí)候,就開(kāi)始向動(dòng)畫(huà)B融合,而凍結(jié)過(guò)渡是在動(dòng)畫(huà)A結(jié)束之后才開(kāi)始向動(dòng)畫(huà)B融合,游戲里面會(huì)根據(jù)表現(xiàn)的需要來(lái)選擇哪種過(guò)渡方式。

動(dòng)畫(huà)狀態(tài)機(jī)

游戲里有多種狀態(tài)機(jī)的結(jié)構(gòu),正是這種復(fù)雜的結(jié)構(gòu),才能支撐游戲里流暢自然的動(dòng)畫(huà)效果和良好的交互響應(yīng)。以外層狀態(tài)機(jī)為例,它的結(jié)構(gòu)分為Idle、Move和Fight。Idle,即待機(jī),包括戰(zhàn)斗待機(jī)、休閑待機(jī)等;Move,包括轉(zhuǎn)向移動(dòng)等;Fight,即攻擊動(dòng)畫(huà)。這些外層的大狀態(tài),可以通過(guò)驅(qū)動(dòng)信號(hào)來(lái)進(jìn)行相互之間的過(guò)渡,來(lái)達(dá)到動(dòng)畫(huà)片段流轉(zhuǎn)的目的。

動(dòng)畫(huà)邏輯管線

在游戲代碼里面,有AI和動(dòng)畫(huà)的接口層,AI會(huì)通過(guò)游戲接口層向動(dòng)畫(huà)狀態(tài)機(jī)發(fā)送各種信號(hào),比如跑、跳、攻擊,以及跑的速度、轉(zhuǎn)向角度等等,這些參數(shù)告訴動(dòng)畫(huà)狀態(tài)機(jī),狀態(tài)機(jī)會(huì)根據(jù)它自己的結(jié)構(gòu)來(lái)進(jìn)行跳轉(zhuǎn),或是融合到具體的動(dòng)畫(huà)片段,計(jì)算出當(dāng)前幀的骨骼偏移,再通過(guò)這些骨骼信息,計(jì)算出蒙皮網(wǎng)格,最后再渲染。

版權(quán)所有 ? 2013-2023 陜西韋河影視文化傳媒有限公司 陜ICP備2021006581號(hào)