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

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

主站蜘蛛池模板: 皮山县| 仙桃市| 仲巴县| 高邑县| 宜兰市| 滁州市| 济宁市| 阳高县| 江北区| 汉沽区| 淅川县| 元江| 沂源县| 玉龙| 郑州市| 大理市| 浮山县| 鹰潭市| 甘德县| 勃利县| 喀什市| 聂拉木县| 庄河市| 集贤县| 黄浦区| 长治市| 霍城县| 台北市| 岚皋县| 玉龙| 崇左市| 庆安县| 托克托县| 迁安市| 江口县| 西盟| 岑巩县| 丹东市| 怀化市| 五台县| 麟游县|