System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种Spine动画的淡入表现效果实现方法、系统及存储介质技术方案_技高网

一种Spine动画的淡入表现效果实现方法、系统及存储介质技术方案

技术编号:40706389 阅读:16 留言:0更新日期:2024-03-22 11:06
一种Spine动画的淡入表现效果实现方法、系统及存储介质,包括:获取Spine动画资源;将Spine动画资源导入至Unity中,并创建对应的SkeletonGraphic模式的预制体;获取用户指令,并对SkeletonGraphic组件的设置进行修改,Spine动画的Shader替换指令具体为:将Spine动画默认的Shader替换为新的Shader,新的Shader采用双通道分两次渲染Spine动画,第一通道对Spine动画的非透明部分进行渲染,第二通道对Spine动画的透明部分进行渲染;获取透明度修改指令,并对SkeletonGraphic组件的Color值的透明度进行修改。

【技术实现步骤摘要】

本专利技术涉及动画处理,特别是一种spine动画的淡入表现效果实现方法、系统及存储介质。


技术介绍

1、在游戏中常使用到spine动画,比如人物动态立绘,为了与ui场景结合,使用skeletongraphic模式。某些情形下,比如打开角色界面,角色界面带有人物立绘,需要spine动画做淡入表现,此时spine表现效果不佳,会出现透视效果。举例而言,一个人手持一个盾牌,正常情况下盾牌会挡住手臂,完全看不到盾牌后面的手臂。一旦做淡入表现,盾牌透明后,会透过盾牌看到盾牌后面的手臂,盾牌和手臂重叠部分颜色变深,使得整个人物的各个部位不处于同一透明度下,因此呈现效果较差,期望的效果是盾牌透明后同样看不见盾牌后面的手臂。

2、现有技术中,为了实现上述期望效果,常见的做法是将人物先单独渲染到一张图片上,然后将这张图片插入ui中显示,淡入表现通过改变这张图片的透明度来实现。但是,这种方法实现上较为繁琐,需要先用一个相机拍摄spine动画,渲染到一张图片上,不仅破坏了原本spine动画的渲染顺序,还会导致性能下降。

3、因此,现有的spine动画的淡入表现效果实现方法存在不仅破坏了原本spine动画的渲染顺序,还会导致性能下降的问题。


技术实现思路

1、本专利技术的主要目的在于提供了一种spine动画的淡入表现效果实现方法、系统及存储介质,旨在解决现有的spine动画的淡入表现效果实现方法不仅破坏了原本spine动画的渲染顺序,还会导致性能下降的技术问题。

2、为实现上述目的,本专利技术提供了一种spine动画的淡入表现效果实现方法,其包括以下步骤:获取spine动画资源;将spine动画资源导入至unity中,并创建对应的skeletongraphic模式的预制体;获取用户指令,并根据用户指令对skeletongraphic组件的设置进行修改,用户指令至少包括zspacing值修改指令、增加separaterenderer设置指令、增加reverserenderer设置指令与spine动画的shader替换指令;spine动画的shader替换指令具体为:将spine动画默认的shader替换为新的shader,新的shader采用双通道分两次渲染spine动画,第一通道对spine动画的非透明部分进行渲染,第二通道对spine动画的透明部分进行渲染;获取透明度修改指令,并根据透明度修改指令对skeletongraphic组件的color值的透明度进行修改,生成透明度值从0到1的过渡动画,以实现spine动画的淡入表现效果。

3、可选的,spine动画资源中非透明部件之间相互重叠或相互独立;spine动画资源中透明部件和非透明部件之间相互重叠或相互独立,若相互重叠,则令透明部件保持在非透明部件之上,当透明部件在非透明部件之下时,透明部件与非透明部件之间因重叠而产生的被遮挡部分为非透明的;spine动画资源中透明部件之间相互重叠或相互独立,若相互重叠,则重叠数量小于或等于预设限制数量。

4、可选的,预设限制数量为2层。

5、可选的,z spacing值修改指令具体为:将z spacing值从0修改至预设z spacing值。

6、可选的,预设z spacing值为-0.001。

7、可选的,增加separaterenderer设置指令具体为:对skeletongraphic组件增加separaterenderer设置,用于将spine动画的每个部件拆分为单独的渲染器。

8、可选的,增加reverserenderer设置指令具体为:对skeletongraphic组件增加reverserenderer设置,用于反转spine动画各个部件的渲染顺序。

9、可选的,第一通道对spine动画的非透明部分进行渲染,第二通道对spine动画的透明部分进行渲染,具体包括以下步骤:获取预设透明度值,用于区分spine动画中部件的透明部分与非透明部分,spine动画中部件的透明度值小于预设透明度值的部分为非透明部分,透明度值大于等于预设透明度值的部分为透明部分;第一通道对透明度值小于预设透明度值的非透明部分进行渲染,开启深度写入,并将深度测试设置为深度小于,将blend混合模式设置为srcalpha和oneminussrcalpha;第二通道对透明度值大于等于预设透明度值的透明部分进行渲染,关闭深度写入,并将深度测试设置为深度小于等于,将blend混合模式设置为srcalpha和oneminussrcalpha。

10、与所述spine动画的淡入表现效果实现方法相对应的,本专利技术提供一种spine动画的淡入表现效果实现系统,其包括:spine动画资源获取模块,用于获取spine动画资源;预制体创建模块,用于将spine动画资源导入至unity中,并创建对应的skeletongraphic模式的预制体;修改模块,用于获取用户指令,并根据用户指令对skeletongraphic组件的设置进行修改,用户指令至少包括z spacing值修改指令、增加separaterenderer设置指令、增加reverserenderer设置指令与spine动画的shader替换指令;spine动画的shader替换指令具体为:将spine动画默认的shader替换为新的shader,新的shader采用双通道分两次渲染spine动画,第一通道对spine动画的非透明部分进行渲染,第二通道对spine动画的透明部分进行渲染;生成模块,用于获取透明度修改指令,并根据透明度修改指令对skeletongraphic组件的color值的透明度进行修改,生成透明度值从0到1的过渡动画,以实现spine动画的淡入表现效果。

11、此外,为实现上述目的,本专利技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有spine动画的淡入表现效果实现程序,所述spine动画的淡入表现效果实现程序被处理器执行时实现如上文所述的spine动画的淡入表现效果实现方法的步骤。

12、本专利技术的有益效果是:

13、(1)与现有技术相比,本专利技术没有采用先将spine动画渲染成图片的方式实现淡入表现效果,而是通过根据用户指令对skeletongraphic组件的设置进行修改,基于双通道反序渲染的方式,将spine动画渲染两遍;第一遍将spine动画中每个部件的不透明部分先反序渲染一遍,剔除了部件重叠被遮挡部分,第二遍再正序渲染每个部件的透明部分,补全整个spine动画,虽然整个spine动画渲染了两遍,却没有改变spine动画和其他ui元素之间的渲染顺序关系,性能较好;并且,由于不需要先将spine动画渲染成图片,因此不会增加内存占用,即相比于现有技术的实现方法,能够降低游戏整体内存占用;

14、(2)与现有技术相比,本专利技术通过设置预设数量,限制spine动画资源中透明部件之间相互重叠的层数,能够保证较佳的最终呈现效果;

...

【技术保护点】

1.一种Spine动画的淡入表现效果实现方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的Spine动画的淡入表现效果实现方法,其特征在于:Spine动画资源中非透明部件之间相互重叠或相互独立;

3.根据权利要求2所述的Spine动画的淡入表现效果实现方法,其特征在于:预设限制数量为2层。

4.根据权利要求1所述的Spine动画的淡入表现效果实现方法,其特征在于:Z Spacing值修改指令具体为:将Z Spacing值从0修改至预设Z Spacing值。

5.根据权利要求4所述的Spine动画的淡入表现效果实现方法,其特征在于:预设ZSpacing值为-0.001。

6.根据权利要求1所述的Spine动画的淡入表现效果实现方法,其特征在于:增加SeparateRenderer设置指令具体为:对SkeletonGraphic组件增加SeparateRenderer设置,用于将Spine动画的每个部件拆分为单独的渲染器。

7.根据权利要求1所述的Spine动画的淡入表现效果实现方法,其特征在于:增加ReverseRenderer设置指令具体为:对SkeletonGraphic组件增加ReverseRenderer设置,用于反转Spine动画各个部件的渲染顺序。

8.根据权利要求1所述的Spine动画的淡入表现效果实现方法,其特征在于:第一通道对Spine动画的非透明部分进行渲染,第二通道对Spine动画的透明部分进行渲染,具体包括以下步骤:

9.一种Spine动画的淡入表现效果实现系统,其特征在于,包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有Spine动画的淡入表现效果实现程序,所述Spine动画的淡入表现效果实现程序被处理器执行时实现如权利要求1至8任一项所述的Spine动画的淡入表现效果实现方法的步骤。

...

【技术特征摘要】

1.一种spine动画的淡入表现效果实现方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的spine动画的淡入表现效果实现方法,其特征在于:spine动画资源中非透明部件之间相互重叠或相互独立;

3.根据权利要求2所述的spine动画的淡入表现效果实现方法,其特征在于:预设限制数量为2层。

4.根据权利要求1所述的spine动画的淡入表现效果实现方法,其特征在于:z spacing值修改指令具体为:将z spacing值从0修改至预设z spacing值。

5.根据权利要求4所述的spine动画的淡入表现效果实现方法,其特征在于:预设zspacing值为-0.001。

6.根据权利要求1所述的spine动画的淡入表现效果实现方法,其特征在于:增加separaterenderer设置指令具体为:对skeletongraphic组件增加separaterenderer...

【专利技术属性】
技术研发人员:张弦
申请(专利权)人:厦门极致互动网络技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1