fhyie000

在Unity UGUI中,如果给spine动画添加CanvasGroup组件或者给动画的父节点添加CanvasGroup组件,改变CanvasGroup的alpha值,会让Spine动画的颜色和透明度变得不正常,变成高亮了。因为项目里经常会让整个UI的CanvasGroup做DOFade操作,Image,Text颜色变化正常,但是SkeletonGraphic就显示不正常了。这样得单独处理spine动画,做起来不方便,而且让项目代码不好看。希望官方修复这个BUG,也希望大神给个临时的解决方案~
您没有权限查看这个主题的附件。
fhyie000
  • 帖子: 2

Harald

感谢您报告此问题。
Thanks for reporting this issue.

我们刚刚发布了一个错误修正,您可以像往常一样在这里下载最新的unitypackages:
We have just released a bugfix, you can download the latest unitypackages here as usual:
Spine Unity Download

在最新版本中,所有 Spine/SkeletonGraphic 着色器都提供了一个CanvasGroup Compatible 参数,可以启用该参数以支持 CanvasGroup alpha。 为了获得正确的结果,您应该在 SkeletonGraphic 检查器的“高级”部分中禁用Pma Vertex Colors
In the latest versions all Spine/SkeletonGraphic shaders provide a parameter CanvasGroup Compatible which can be enabled to support CanvasGroup alpha. For correct results, you should then disable Pma Vertex Colors in the SkeletonGraphic Inspector, in section Advanced.
头像
Harald

Harri
  • 帖子: 3479

fhyie000

非常感谢,完美解决了问题。
fhyie000
  • 帖子: 2

Harald

很高兴听到您的声音,感谢您再次与我们联系。
Glad to hear, thanks for getting back to us.
头像
Harald

Harri
  • 帖子: 3479

qq497547369

Harald 写道:感谢您报告此问题。
Thanks for reporting this issue.

我们刚刚发布了一个错误修正,您可以像往常一样在这里下载最新的unitypackages:
We have just released a bugfix, you can download the latest unitypackages here as usual:
Spine Unity Download

在最新版本中,所有 Spine/SkeletonGraphic 着色器都提供了一个CanvasGroup Compatible 参数,可以启用该参数以支持 CanvasGroup alpha。 为了获得正确的结果,您应该在 SkeletonGraphic 检查器的“高级”部分中禁用Pma Vertex Colors
In the latest versions all Spine/SkeletonGraphic shaders provide a parameter CanvasGroup Compatible which can be enabled to support CanvasGroup alpha. For correct results, you should then disable Pma Vertex Colors in the SkeletonGraphic Inspector, in section Advanced.
我按照您所说的将所有 Spine/SkeletonGraphic 着色器的CanvasGroup Compatible 参数 全部启用,并且在 所有SkeletonGraphic 检查器的“高级”部分中禁用Pma Vertex Colors 有一些spine的颜色不太对了,然后我把SkeletonGraphic 检查器的“高级”部分中的Multiple CanvasRenderers选项开启,效果才会正确,请问这是为什么呢?
qq497547369
  • 帖子: 6

Harald

恐怕自动翻译已含糊不清地翻译了您的问题。 您的意思是在启用“多个 CanvasRenderers”时看到正确的结果,而在禁用“多个 CanvasRenderers”时看到不正确的结果? 如果是这样,您是否使用了多个图集纹理或多个插槽混合模式?
-----
I'm afraid automatic translation has translated your question ambiguously. Do you mean that you see correct results with Multiple CanvasRenderers enabled and incorrect results when Multiple CanvasRenderers is disabled? If so, do you have multiple atlas textures or multiple slot blend modes in use?
头像
Harald

Harri
  • 帖子: 3479

qq497547369

Harald 写道:恐怕自动翻译已含糊不清地翻译了您的问题。 您的意思是在启用“多个 CanvasRenderers”时看到正确的结果,而在禁用“多个 CanvasRenderers”时看到不正确的结果? 如果是这样,您是否使用了多个图集纹理或多个插槽混合模式?
-----
I'm afraid automatic translation has translated your question ambiguously. Do you mean that you see correct results with Multiple CanvasRenderers enabled and incorrect results when Multiple CanvasRenderers is disabled? If so, do you have multiple atlas textures or multiple slot blend modes in use?
image.png

你好,很抱歉回复晚了,这种叹号提示的应该是你说的使用了多个图集纹理 需要启用 多个 CanvasRenderers
多个插槽混合模式 具体指的是什么 我不是很清楚 是否可以通过SkeletonGraphic 的属性面板上的一些属性 辨识出来 或者通过spine导入到unity中生成的几个文件 查看是否是多个插槽混合模式。
我再详细说下我的问题 Unity ugui SkeletonGraphic添加CanvasGroup组件,改变alpha,动画的颜色泛白严重 然后我应用了这篇文章的回复 将所有的材质球都勾选了CanvasGroup Compatible 所有的SkeletonGraphic组件关闭了Pma Vertex Colors 有的
SkeletonGraphic 这个组件表现出来 颜色就不对了 但是好像开启多个 CanvasRenderers 颜色就对了 我想知道 除了那种黄叹号提醒开启多个 CanvasRenderers 还有什么情况也是需要开启 多个 CanvasRenderers?
您没有权限查看这个主题的附件。
qq497547369
  • 帖子: 6

Harald

不用道歉。

当骨架网格中有多个子网格时,需要Multiple CanvasRenderers。 在以下情况下会出现这种情况:
1) 附件在具有不同插槽混合模式的插槽中同时可见。
2) 使用多个图集页面(多个导出的图集 .png 文件)。

检查骨架上是否使用了其他混合模式(混合模式“正常”除外)的一种方法是查看SkeletonDataAsset。 在此混合模式下找不到插槽时,您可以在此处看到带有 0 个数组元素的Blend Mode Materials。 如果材质计数为 1 或更高,则骨架中具有此混合模式的插槽。
-----
No need to apologize.

Multiple CanvasRenderers is required when you have more than one submesh at the skeleton mesh. This will be the case when:
1) Attachments are visible at the same time at Slots with different Slot blend mode.
2) Multiple atlas pages (multiple exported atlas .png files) are used.

One way to check whether additional blend modes (other than blend mode normal) are used at a skeleton is to look at the SkeletonDataAsset. Here you can see Blend Mode Materials with 0 array elements when no slots are found with this blend mode. If the material count is 1 or higher, you have Slots with this blend mode in the skeleton.

multiple-blendmode-materials.png


no-additional-blendmode-materials.png
您没有权限查看这个主题的附件。
头像
Harald

Harri
  • 帖子: 3479


回到 中国Spine用户