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

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

主站蜘蛛池模板: 嵊泗县| 策勒县| 宁波市| 施秉县| 金秀| 仁怀市| 雷州市| 吉水县| 朝阳区| 西乡县| 桂平市| 淮安市| 锦州市| 巴中市| 安陆市| 苏尼特右旗| 乌苏市| 安阳县| 伊宁市| 海宁市| 漯河市| 宁强县| 高陵县| 宣恩县| 海原县| 招远市| 察隅县| 于田县| 大港区| 阜新市| 容城县| 徐州市| 武陟县| 防城港市| 上林县| 佛冈县| 溆浦县| 都江堰市| 南昌市| 吉林省| 夏河县|