是否有可能将Maya中的纹理组合成某种图集?

时间:2013-10-16 02:28:18

标签: unity3d textures maya atlas

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

enter image description here

我想知道是否有办法自动将纹理组合成图集,使所有多边形与图集使用相同的材​​质,并更正其UV图,使它们仍然指向图集的右侧部分。现在,我可以反过来手动完成:我可以使用其他工具在Maya外部制作图集,然后在材质上使用图集并手动校正每个多边形的UV贴图。但这是一个非常漫长的过程,如果我需要改变纹理,我必须重新做一遍。所以我想知道是否有办法实现自动化。

我试图这样做的原因是在Unity中保存绘制调用。据我所知,Unity可以批量对象,只要它们共享相同的材料。因此,我不想对角色中的每个多边形进行绘制调用,而是希望对整个角色进行一次绘制调用。我对Maya很新,所以任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:3)

如果要在Maya中进行atlassing,可以通过复制网格并使用“传递贴图”工具将所有不同的网格作为单个模型烘焙到副本上来完成。步骤将是:

1)复制网格

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

3)使用转移地图... 工具将原始网格投影到新网格上,使用"使用拓扑"选项以确保投影是干净的。

最终结果应该是新模型具有与原始模型相同的几何形状和外观,但将所有纹理组合到单个材料上并附着到单个材料上。

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

您可能会发现使用脚本或assetPostprocessor在Unity中重新处理字符会更灵活。 Unity具有原生纹理atlassing函数,记录为here。 Unity附带了一个用于组合静态网格物体的脚本,但您需要实现自己的; theres'一个关于统一维基的例子,可能会做你想要的:http://wiki.unity3d.com/index.php?title=SkinnedMeshCombiner(警告:我们在工作中做了类似的事,但我无法分享它;我没有使用过一个在这个链接)。 FWIW Unity的原生atlassing仅适用于矩形,因此它不像你能为自己做的那样有效。