banner
Olimi

Olimi

SCUT 小菜鸡
github
bilibili

3D遊戲引擎入門課程5——角色動畫

寫在前面#

本專欄內容均為學堂在線慕課《3D 遊戲引擎架構設計基礎》中的內容。個人將其轉化成文字和圖片的版本(個人更加喜歡文字版本的教程,閱讀速度更快很多),方便查閱。
原課程鏈接:3D 遊戲引擎架構設計基礎

角色動畫#

角色動畫概述和表示方法#

角色是指推動遊戲劇情的載體,包括玩家、非玩家、怪獸和敵人等。

角色的表示#

  • 賽璐璐動畫
    在這裡插入圖片描述

  • 剛性層階式動畫
    在這裡插入圖片描述

  • 每頂點動畫
    在這裡插入圖片描述

  • 變形目標動畫
    在這裡插入圖片描述

  • 骨骼蒙皮動畫
    在這裡插入圖片描述
    其中骨骼蒙皮動畫是使用得最多的表現技術。

遊戲中的角色動畫建模過程:

  1. 蒙皮:建立角色的網格模型

  2. 骨骼:建立關節和關節層次樹,並將關節與對應的網格頂點綁定

  3. 皮膚或衣服:定義網格的材質和紋理貼圖

  4. 角色動畫:描述角色的動作,定義角色骨骼的位置移動

表現示例:

在這裡插入圖片描述

骨骼蒙皮動畫中重要的概念#

  • 自由度和關節類型:
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述
    在這裡插入圖片描述

  • 關節的空間變換
    在這裡插入圖片描述

  • 網格頂點和關節綁定
    在這裡插入圖片描述

  • 運動合成和運動控制

運動合成中的重要概念:

動畫片段:是指組成遊戲角色的動作的局部姿勢,如舉手、跳躍、一個走路或跑步的步幅等。

關鍵幀或關鍵姿勢:是指在動畫片段指定的時間點上設定的重要姿勢,通過關鍵幀,可以用線性插值或曲線插值算法自動生成中間的姿勢,即中間幀。關鍵幀可以被看成角色姿勢的一個靜態圖。而動畫片段是由若干個關鍵幀和中間幀組成,且所有幀按照設點的時間點顯示。動畫片段是角色動畫的一個局部姿勢,是動態的。

示例:
在這裡插入圖片描述

動畫片段的合成是指對應關節位置的計算,角色動作自動合成的方法包括:

  1. 線性混合
    在這裡插入圖片描述
  2. 骨骼分部混合
    在這裡插入圖片描述
  3. 加法混合。
    在這裡插入圖片描述

角色動畫實現實例#

OGEE 角色動畫#

OGRE 角色動畫渲染流程:
在這裡插入圖片描述
OGRE 節點類型與骨骼樹結構:
在這裡插入圖片描述
關節節點與場景圖的關係:
在這裡插入圖片描述
OGRE 角色動畫主要類:
在這裡插入圖片描述
下面是 OGRE 角色動畫的幾種核心類描述:
在這裡插入圖片描述
在這裡插入圖片描述
角色動畫的骨骼蒙皮動畫的示例:
在這裡插入圖片描述

OGRE 角色動畫總結:
在這裡插入圖片描述
在這裡插入圖片描述

Panda3D 角色動畫#

Panda3D 中角色動畫的概念:
在這裡插入圖片描述
Panda3D 中角色表示的類圖如下:
在這裡插入圖片描述
角色局部運動類:
在這裡插入圖片描述
最後是 Panda3D 動畫類:
在這裡插入圖片描述

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。