官术网_书友最值得收藏!

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

主站蜘蛛池模板: 嘉义县| 阳原县| 安福县| 柳州市| 横峰县| 林西县| 上林县| 页游| 雷州市| 偏关县| 牟定县| 沽源县| 万年县| 常宁市| 乌兰县| 盐边县| 麟游县| 苏州市| 尚志市| 莱阳市| 始兴县| 化州市| 阿坝县| 蓬溪县| 衡阳县| 潮安县| 禹州市| 界首市| 长沙市| 安乡县| 尤溪县| 江孜县| 兴义市| 利辛县| 客服| 金塔县| 汨罗市| 曲阜市| 万年县| 大同市| 彩票|