UG4L8-5——骨骼动画元件

FairyGUI支持的骨骼动画

FairyGUI支持使用骨骼动画
它目前只支持:

  1. Spine编辑器 支持3.8(!)(值得一提的是,你如果真的使用spine3.8导出的骨骼动画再导入到Unity则官方提供的3.8SDK将无法解析它)及更高版本,json格式和二进制格式都支持
  2. DragonBones龙骨编辑器 所有版本 导出的骨骼动画

将骨骼动画导入到FairyGUI中

在导入骨骼动画时,我们不需要导入贴图和图集描述文件
只需要导入骨骼动画描述文件即可

  1. Spine 只需导入 .json/.skel的描述文件
  2. 龙骨 只需导入 .json/.dbbin的描述文件

骨骼动画资源相关设置

image

  • 双击动画文件打开该窗口

  • 着色器:

    • Default:骨骼动画库自带的着色器,
      如果要遮罩动画需要用自定义遮罩,常规遮罩无法裁剪骨骼动画
    • FairyGUI/Image:FairyGUi用于显示图片的默认着色器,
      常规遮罩可以裁剪骨骼动画。但是没有预乘处理,
      如果骨骼动画贴图是预乘的,那么不会显示正确
  • 贴图是否已预乘:
    要和骨骼动画软件发布时选项一样,否则动画显示不正确

  • 预乘:就是提前把srcRGB*srcAlpha计算出来存在贴图的rgb通道中
    这样在渲染时就能少做一次乘法

在Unity中使用

  • 第一步:安装对应UnitySDK

  • 第二步:

    在使用之前 都需要添加脚本定义符号Scripting Define Symbols
    File——>Build Settings——>Player Settings——>Other Settings——>Scripting Define Symbols
    Spine添加:FAIRYGUI_SPINE
    龙骨添加:FAIRYGUI_DRAGONBONES

    ​​image​​

    龙骨额外操作:对_ske.json文件创建Unity Data
    (注意!Unity2021及以上版本,如果直接这样做会出现问题,你需要通过一些操作来解决它)

    image

补充:解决Unity2021及以上版本编辑器无法使用龙骨CreateUnityData

原文来自:关于新版本Unity编辑器无法使用龙骨CreateUnityData的问题,(感谢这位仁兄的帮助)

在Unity2021版本中,右键DB_ske文件并Create Unity Data将会产生几个警告(AssetDatabase路径无效)

​​image​​

报错的具体内容大概是无法解析龙骨配置信息文件,如果就这么直接运行,会导致龙骨动画无法受到GRoot控制而无法显示出来,
并且由于FairyGUI的导出配置文件中又存在了龙骨动画的元件的配置信息,从而会导致Unity抛出空引用异常(报错)

image

这是由于CreateUnityData选项产生的文件出现了一些问题

​​​image​​​

可以看到这里的Texture Atlas的列表元素为0,
那么这意味着它没有把龙骨动画的配置信息写入这个UnityData文件,所以我们需要手动关联龙骨动画的信息

具体做法是手动添加这个列表的元素,将后缀为_tex文件关联到Texture Atlas JSON下,
然后将图集关联到Texture下,如果有材质或着色器文件也要一同关联,

否则也会因为配置文件记录了信息但是实体文件不存在从而导致Unity抛出空引用异常,具体如下图

image

这样之后龙骨动画就可以显示在FairyGUI的GRoot中了