- Learning Game AI Programming with Lua
- David Young
- 217字
- 2021-08-05 17:02:16
Skeletons and meshes
First, we need to cover some basics on how animations are represented and used by the sandbox.
Mesh skeletons
So far, we've learned how to create mesh representations within the sandbox. We're now going to deal with an additional asset called a skeleton. Ogre, which is the underlying renderer for the sandbox, stores the skeleton and animations within a single .skeleton
file. Any animated Ogre mesh within the sandbox references its animations from the media/animations
folder, and in the case of our soldier, animations are located at media/animations/futuristic_soldier/futuristic_soldier.skeleton
.
Loading an animated mesh
Loading an animated mesh is exactly the same as loading a normal mesh within the sandbox. Simply create an animated mesh with the Core.CreateMesh
function:
Sandbox.lua
:
function Sandbox_Initialize(sandbox) local soldier = Core.CreateMesh( sandbox, "models/futuristic_soldier/" .. "futuristic_soldier_dark_anim.mesh");
Showing a skeleton
By default, there is nothing visually different when loading a standard mesh or an animated mesh unless we render the skeleton. The sandbox provides an easy debug representation of the skeleton with a SetDisplaySkeleton
call:
Sandbox.lua
:
function Sandbox_Initialize(sandbox) ... Animation.SetDisplaySkeleton(soldier, true);
The following screenshot shows you the soldier mesh with the debug skeleton information drawn. By default, animated meshes will show up typically in a T-pose when no animations are being applied to the skeleton.

Animated mesh showing you the debug skeletal information
- 大數據技術基礎
- 從零開始學Hadoop大數據分析(視頻教學版)
- 大數據可視化
- MySQL從入門到精通(第3版)
- Lean Mobile App Development
- Oracle高性能自動化運維
- 基于OPAC日志的高校圖書館用戶信息需求與檢索行為研究
- 金融商業(yè)算法建模:基于Python和SAS
- 一本書講透Elasticsearch:原理、進階與工程實踐
- 數據修復技術與典型實例實戰(zhàn)詳解(第2版)
- Access數據庫開發(fā)從入門到精通
- 商業(yè)智能工具應用與數據可視化
- 數據分析思維:產品經理的成長筆記
- Google Cloud Platform for Architects
- 數據庫技術與應用:SQL Server 2008