1

我开始使用 Maya 制作 2D 角色的一些骨骼动画,该角色由几个不同的部分(腿、身体、头部、武器等)组成。我将每个部分放在一个单独的 .PNG 图像文件中。现在我每个部分都有一个多边形,有自己的材质和纹理:

在此处输入图像描述

我想知道是否有一种方法可以自动将纹理组合到图集中,使所有多边形使用与图集相同的材料,并纠正它们的 UV 贴图,使它们仍然指向图集的正确部分。现在,我可以手动反向进行:我可以在 Maya 外部使用其他工具制作图集,然后在材质上使用图集并手动校正每个多边形的 UV 贴图。但这是一个非常漫长的过程,如果我需要改变纹理,我必须从头再来。所以我想知道是否有办法让它自动化。

我尝试这样做的原因是为了在 Unity 中保存绘图调用。据我了解,Unity 可以批处理对象,只要它们共享相同的材质即可。因此,我不想对角色中的每个多边形进行一次绘制调用,而是对整个角色进行一次绘制调用。我对 Maya 很陌生,所以任何帮助将不胜感激!

4

1 回答 1

3

如果您想在 Maya 中进行图集,您可以通过复制网格并使用 Transfer Maps 工具将所有不同的网格烘焙到副本上作为单个模型来实现。步骤是:

1)复制网格

2) 使用 UV 布局确保复制的网格没有重叠的 UV(或仅在适当的地方有它们,如镜像部分。

3) 使用Transfer Maps...工具将原始网格投影到新网格上,使用“使用拓扑”选项确保投影干净。

最终结果应该是新模型具有与原始模型相同的几何形状和外观,但其所有纹理都组合到附在单一材料上的单张纸上。

此方法的局限性在于,某些类型的网格(尤其是自相交的网格)可能无法正确投影,需要您手动修改图集纹理。与任何图集解决方案一样,您可能会在纹理中看到一些软化,因为图集纹理不是用于像素复制的像素,而是投影,因此是重采样。

您可能会发现在 Unity 中使用脚本或资产后处理器重新处理角色更加灵活。Unity 具有原生纹理图集功能,在此处记录。Unity 附带了一个用于组合静态网格的脚本,但您需要自己实现;在统一 wiki 上有一个示例,它可能会执行您想要的操作:http ://wiki.unity3d.com/index.php?title=SkinnedMeshCombiner (警告:我们在工作中会做类似的事情,但我不能分享它;我没有使用此链接中的那个)。FWIW Unity 的原生图集仅适用于矩形,因此它的内存效率不如您自己可以做的事情。

于 2013-10-16T16:55:04.037 回答