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

2020-07-27 14:55 更新

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

Animator 組件

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

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

Animator Controller

Animator Controller 可以從 Project 視圖創(chuàng)建一個(gè)動(dòng)畫控制器(執(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 組件中。

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

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

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

案例構(gòu)思

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

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

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

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

案例實(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)畫動(dòng)作,如下圖所示。

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

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

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

var obj:GameObject=null;
function Start(){
    obj=GameObject.Find("Constructor");
    obj.animation.wrapMode=WrapMode.Loop;
}                       //設(shè)置動(dòng)畫播放類型為循環(huán)
function Update(){
    if(Input.GetKeyDown(KeyCode.A))            //按鍵后播放不同動(dòng)畫
        {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)畫");
}

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

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)