Unity使用Dragbones骨骼动画

作者: FindCrt | 来源:发表于2016-11-16 16:18 被阅读2184次

    github库上的说明不是很清楚,所以梳理下。

    1. 下载github上的Dragbones的Unity的运行库
    2. 解压后有3个文件夹:
    /3rdParty
    /DragonBones
    /Unity
    
    1. 新建unity工程后,把解压目录/DragonBones/src/DragonBones这个文件夹整个的方法项目的Assets/Scripts/目录下。
    2. 解压目录/Unity/src/DragonBones/unity这个文件夹放到Assets/Scripts/目录下
    3. 解压目录/3rdParty里的MiniJSON脚本放到Assets/Scripts/目录下,这3步目录都一样。

    然后编写脚本构建动画角色:

    1. 从DragBones软件里做好了动画后导出文件,目前包含3个文件:xxx_ske.json,xxx_tex.json,xxx_tex.png,我的理解是这三个分别是骨骼的数据,纹理数据和纹理的资源图。这3个文件放在同一个文件夹里,然后把这个文件夹导入到unity的Resources文件夹下。
    2. 新建一个场景,如sceneA.场景初始只有一个主摄像机,这时建立一个空物体,即Create->Create Empty,在这个空物体上绑定一个脚本,在这个脚本的start()方法里构建动画角色,这样在游戏开始时,这个空物体被加载时就会调用start()方法,从而把动画角色构建出来。
      这个是我从他们给的Demo例子看出来的,我是新手,猜想应该还有更好的方式,特别是同一时刻有众多角色的时候。
      3.脚本的内容就参考如下:
    using UnityEngine;
    using DragonBones;
    public class Bones :MonoBehaviour
    {
        void Start()
        {
            //这两步先加载数据,一个骨骼、一个纹理;Dragon/Dragon_ske替换成你的动画文件名
            UnityFactory.factory.LoadDragonBonesData("Dragon/Dragon_ske"); // DragonBones file path (without suffix)
            UnityFactory.factory.LoadTextureAtlasData("Dragon/Dragon_tex"); //Texture atlas file path (without suffix) 
                  //这里构建动画,Dragon替换成你要构建的动画角色名
            var armatureComponent =UnityFactory.factory.BuildArmatureComponent("Dragon"); // Input armature name
            // 播放动画,walk替换成你需要的动画名
            armatureComponent.animation.Play("walk");
    
            // Change armatureposition.
            armatureComponent.transform.localPosition = new Vector3(0.0f, 0.0f,0.0f);
        }
    }
    

    4.运行游戏,角色就构建出来了。


    11/24更新

    1. BuildArmatureComponent这句代码里的名字不是随便取的,要根据你在DragonBones里面创建的动画角色来决定。默认是Armature,所以导出文件取成自己想要的名字后,后面用这个名字构建角色出错。如果是多个角色嵌套的,使用xxx/yyy类似文件路径这种写法。

    2.除了使用代码,还可以在gameObject里面选择DragonBones来构建,和其他的游戏类型构建是一样的。在菜单里的gameObject选择或者在hierarchy里创建。

    相关文章

      网友评论

        本文标题:Unity使用Dragbones骨骼动画

        本文链接:https://www.haomeiwen.com/subject/ybsrpttx.html