unity3D技术分享Unity教程合集

Unity使用Dragbones骨骼动画

2016-11-16  本文已影响2184人  FindCrt

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里创建。

上一篇下一篇

猜你喜欢

热点阅读