陜西工業職業技術學院 趙革委
針對如何實現VR游戲場景中角色轉態轉換過程的動畫流暢性,本文以軟件的動畫合成功能為基礎,利用代碼控制取代以前動畫狀態硬切的方式,實現角色由一種動畫狀態向另一種動畫狀態逐步轉化,大大提升動畫狀態轉化的流暢性,極大的增強了VR游戲的可視性和真實性。
隨著5G的普及和推廣,極大的提升了VR游戲場景調度的實時性和復雜場景調度的可能性,VR游戲的發展進入一個新時代。但是游戲玩家對游戲的可視性、真實性、流暢性要求也越來越高。因此,游戲開發過程細節處理也成為游戲是否受歡迎的一個衡量標準。本文介紹一種動畫狀態流暢轉化到另一中動畫狀態的制作方法,增加游戲的可視性和真實性,提升玩家的視覺觀感,提高游戲的歡迎度。
目前游戲中常采用的動畫狀態轉換方式,基本都采用兩個動畫狀態直接切換,即直接從上一個動畫狀態轉換為下一個動畫狀態,中間最多增加一個過渡過程。例如從原地到奔跑,先制作一個原地站立動畫和一個奔跑動畫,當需要切換動畫轉態時,先調用第一個站立動畫轉態,然后再調用第二個奔跑動畫狀態,在動畫狀態之間增加一個基本切換效果。由于人眼具有視角暫留現象,因此能保障兩個動畫狀態之間的切換不會出現畫面閃爍現象,但是沒有辦法實現從站立到行走,再從行走到奔跑的逐漸變換的過程,因此玩家的視覺觀感稍差,動畫轉態轉換過程示意圖如圖1所示。

圖1 常用動畫轉態轉換示意圖
Animator是Unity 3D提供的動畫系統,具有極強的動畫創建功能。基于U3D的動畫轉態轉換方法就是以Animator動畫系統中的骨骼動畫設置為基礎,先在Unity中設置骨骼動畫狀態,然后根據需要調用相應的動畫,由于人物的運動基本是手部帶動胳膊運動,因此還需設置逆向動畫,然后把各種動畫通過代碼控制,實現動畫逐次疊加,進而提高動畫狀態轉化的流暢性,既可以節省資源,同時也能使得狀態轉化過程具有極強的真實感和流暢度。下面根據制作過程,從四個部分詳細講解這種狀態轉換方法的實現過程。
在進行動畫系統骨骼設置之前,先要了解動畫中骨骼動畫的分類情況,然后才能在動畫制作軟件Animator中進行大類骨骼設計制作。骨骼動畫一般可以分為二足動畫骨骼、四足動畫骨骼,具有雙翼的動畫骨骼一般也采用四足動畫骨骼完成。游戲場景中的角色大部分使用二足動畫就能夠滿足。所以下面以二足動畫制作為例完成游戲角色動畫制作。
打開Animator動畫系統,導入準備好的骨骼,進行骨骼匹配設置,如圖2所示。

圖2 骨骼匹配設置
目前的二足骨骼是游戲中所有二足角色的父骨骼,將所有的二足骨骼組件按照規則命名,然后進入編輯窗口,按照游戲需求進行骨骼動畫設計與制作。制作的骨骼動畫具有通用性和公用性,能被所有的二足對象調用,也就是說所有相同動作動畫一次制作完成。這樣大大節省動畫制作的時間,降低動畫制作的復雜度。動畫制作窗口如圖3所示。

圖3 骨骼動畫制作
創建行走、跳躍、站立、死亡等各種動畫,按照邏輯關系分別連接。向里添加向前走、向后走、向前跑、向右跑等動畫,完成所有的動畫形式設置。左邊的動畫可以通過放入右邊動畫后點擊后面的格子來映射相反的動畫,減少動畫的制作量。紅色點是代表人物正在播放的動畫,藍色點代表我們添加進去的動畫,如圖4所示。

圖4 動畫連接調整
角色的射擊動畫部分需要使用逆向動畫實現。在人物動畫控制器中建立頭部層、左右臂層,如圖5所示。并勾選IK選項,實現由角色骨骼根部帶動整個身體,這部分具體的實現將由代碼控制。至此,一個完整的角色動畫就完成了。

圖5 層設置
但角色的基本動畫設置完成后,下面就只需要撰寫代碼,完成動畫狀態轉換逐漸變化,使得兩個轉態逐漸融合,形成更加真實的狀態轉換動畫效果。例如從原地到奔跑,其呈現出的過程應該是從慢到快逐漸變化,不能從走直接變為跑。代碼實現過程是這樣:首先調用站立的動畫狀態,然后逐漸切換為走,接著通過代碼控制走動畫的速度,逐漸變快,之后走逐漸消失,跑動畫狀態逐漸出現。過程這樣的代碼控制,就實現了從原地到奔跑動畫狀態的流暢轉換過程。示意圖如圖6所示。

圖6 基于U3D的動畫轉態轉換示意圖
眾所周知,人們在這個真實生活中,當目前處于站立轉態,突然要開始奔跑時,一定會有一個由慢到快的過程。而游戲,需要實現有站立到奔跑,是需要使用兩個動畫站立和奔跑切換,特別是游戲中奔跑動畫通常是勻速的。采用以前的方法實現從站立開始奔跑,玩家先看見角色是站立的,然后就是勻速奔跑。隨著VR游戲的發展,這一點已經是許多玩家感到不真實。
基于U3D的動畫轉態轉換,核心是用代碼控制動畫的播放速度。當有站立轉變為奔跑時,奔跑動畫的播速度可以根據起跑的時間逐步實現由較慢到慢,再到正常播放,所以比較接近真實效果。而且玩家可以根據需要,中間添加其它動畫。比如說,角色需要這樣一個動畫過程,先是站立,然后走,最后在奔跑,基于U3D的動畫轉態轉換,依然可以通過代碼實現,只是中間過程增加一個走動畫,其它部分代碼控制與由站立轉態到奔跑轉態沒有區別。
使用以前的方法實現從站立開始奔跑,也可以增加真實感,但是得采用增加中間過渡動畫的方式,這種方式特別耗費資源的,不但制作過程麻煩,也會大大怎加游戲硬件要求,可能丟失跟更多的玩家。
基于U3D的動畫轉態轉換方法則主要依靠代碼實現,既不需要增加動畫師的工作量,也不需要提升硬件要求。只是在原來的基礎上,在Unity多增加一些設置,而且代碼增加量也很少,但是動畫狀態的流暢性卻大大提高了。
結束語:2016年被稱為虛擬技術元年,但是之后,虛擬技術由于實時性、場景調度以及體感差等原因幾乎處于停滯狀態。5G技術的發展為虛擬現實技術提供了新的發展契機和活力,但在此后的發展過程中,VR的可視性、真實性,玩家的既視感,都是VR游戲發展的核心,本文希望能夠拋磚引玉,部分解決游戲的真實性、流暢性的問題。