Unity 3D角色動(dòng)畫(huà)在游戲中的應(yīng)用

2020-07-27 14:55 更新

我們對(duì)人形動(dòng)畫(huà)有了一定的了解,接下來(lái)我們將介紹一下在游戲開(kāi)發(fā)中人形角色動(dòng)畫(huà)的具體應(yīng)用步驟。

Animator 組件

Animator 組件是關(guān)聯(lián)角色及其行為的紐帶,每一個(gè)含有 Avatar 的角色動(dòng)畫(huà)模型都需要一個(gè) Animator 組件。Animator 組件引用了 Animator Controller 用于為角色設(shè)置行為,具體參數(shù)如下表所示。

參 數(shù) 含 義 功 能
Controller 控制器 關(guān)聯(lián)到角色的 Animator 控制器
Avatar 骨架結(jié)構(gòu)的映射 定義 Mecanim 動(dòng)畫(huà)系統(tǒng)的簡(jiǎn)化人形骨架結(jié)構(gòu)到該角 色的骨架結(jié)構(gòu)的映射
Apply Root Motion 應(yīng)用 Root Motion 選項(xiàng) 設(shè)置使用動(dòng)畫(huà)本身還是使用腳本來(lái)控制角色的位置
Animate Physics 動(dòng)畫(huà)的物理選項(xiàng) 設(shè)置動(dòng)畫(huà)是否與物理屬性交互
Culling Mode 動(dòng)畫(huà)的裁剪模式 設(shè)置動(dòng)畫(huà)是否裁剪以及裁剪模式

Animator Controller

Animator Controller 可以從 Project 視圖創(chuàng)建一個(gè)動(dòng)畫(huà)控制器(執(zhí)行 Create→Animator Controller 命令),同時(shí)會(huì)在 Assets 文件夾內(nèi)生成一個(gè)后綴名為 .Controller 的文件。

當(dāng)設(shè)置好運(yùn)動(dòng)狀態(tài)機(jī)后,就可以在 Hierarchy 視圖中將該 Animator Controller 拖入含有 Avatar 的角色模型 Animator 組件中。

通過(guò)動(dòng)畫(huà)控制器視圖(執(zhí)行 Window→Animator Controller 命令)可以查看和設(shè)置角色行為,值得注意的是,Animator Controller 窗口總是顯示最近被選中的后綴為 .Controller 的資源的狀態(tài)機(jī),與當(dāng)前載入的場(chǎng)景無(wú)關(guān)。

最后在 Inspector 屬性編輯器 Conditions 列表中單擊“+”創(chuàng)建參數(shù),并選擇所需的參數(shù)即可,如下圖所示。

實(shí)踐案例:模型動(dòng)畫(huà)

案例構(gòu)思

模型動(dòng)畫(huà)是常見(jiàn)的游戲動(dòng)畫(huà)類型,玩家通過(guò)特定的操作對(duì)模型進(jìn)行動(dòng)作指定,從而完成交互功能。

本案例旨在通過(guò)模型動(dòng)畫(huà)的制作,讓讀者了解骨骼綁定后的 fbx 模型動(dòng)畫(huà)在 Unity 3D 軟件中的使用方法。

案例設(shè)計(jì)

本案例在 Unity 3D 內(nèi)導(dǎo)入一個(gè)綁定好骨骼動(dòng)畫(huà)的第三人稱人物模型,人物身上綁定了若干個(gè)動(dòng)作,通過(guò)代碼實(shí)現(xiàn)鍵盤(pán)與模型動(dòng)畫(huà)的交互功能,如下圖所示。

案例實(shí)施

步驟 1):創(chuàng)建項(xiàng)目并保存場(chǎng)景。

步驟 2):執(zhí)行 Assets→Import Package→Characters 命令載入人物資源。

步驟 3):將模型添加到 Scene 視圖中,按 F2 鍵將其重新命名為 Constructor,調(diào)整好位置,如下圖所示。

步驟 4):在右側(cè)的 Inspector 面板中設(shè)置動(dòng)畫(huà)動(dòng)作,如下圖所示。

其中有關(guān)的參數(shù)功能如下:

  • Animation:默認(rèn)動(dòng)畫(huà)。
  • Size:動(dòng)畫(huà)數(shù)量。
  • Play Automatically:是否自動(dòng)播放動(dòng)畫(huà)。
  • Animate Physics:是否接收物理碰撞。
  • Culling Type:動(dòng)畫(huà)裁剪模式。

步驟 5):創(chuàng)建 JavaScript 腳本,并將其連接到攝像機(jī)上。

var obj:GameObject=null;
function Start(){
    obj=GameObject.Find("Constructor");
    obj.animation.wrapMode=WrapMode.Loop;
}                       //設(shè)置動(dòng)畫(huà)播放類型為循環(huán)
function Update(){
    if(Input.GetKeyDown(KeyCode.A))            //按鍵后播放不同動(dòng)畫(huà)
        {obj.animation.Play("idle");}
    if(Input.GetKeyDown(KeyCode.B))
        {obj.animation.Play("run");}
    if(Input.GetKeyDown(KeyCode.C))
        {obj.animation.Play("walk");}
    if(Input.GetKeyDown(KeyCode.D))
        {obj.animation.Play("jump pose");}
}
function OnGUI(){                                 //顯示提示信息
    GUILayout.Label("按字母鍵A、B、C、D切換播放模型骨骼動(dòng)畫(huà)");
}

步驟 6):?jiǎn)螕?Play 按鈕測(cè)試,可以通過(guò)鍵盤(pán) A、B、C、D 鍵控制人物動(dòng)作。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)