有时我会遇到这样一种情况:在 Object Mode 中使用 Join 功能合并两个或更多对象后,其中一个或多个原始对象的 UV Map 会消失。即使在执行 Join 之前,每个对象的 UV Map 都清晰可见,包括在多对象选择的情况下也是如此。
本教程不提供中文配音。您可以在下方观看英语配音的视频,并选择中文、英文或其他语言的字幕。视频下方提供了翻译成中文的文字稿。
视频文字稿
有时我会遇到这样一种情况:在 Object Mode 中使用 Join 功能合并两个或更多对象后,其中一个或多个原始对象的 UV Map 会消失。即使在执行 Join 之前,每个对象的 UV Map 都清晰可见,包括在多对象选择的情况下也是如此。
仔细检查后可以发现,这些对象的 UV Map 实际上仍然存在,只是被缩小成了左下角的一个小点。这种情况通常发生在 UV layout 没有正确展开,或者操作过程中出现错误的时候。

导致这种特殊结果的原因可能有很多,但在 99% 的情况下,问题在于原始对象的可见 UV Map 名称不同。当合并来自不同项目,甚至不同软件的对象时,这种情况非常容易发生,因为它们的主 UV Map 名称可能各不相同。
我之所以特别说明“可见”或“主”UV Map,是因为一个对象可以拥有多个 UV Map,例如游戏引擎中的 lightmap。不过其中只有一个会被视为可见 UV Map。即使在合并多个对象之后,这种唯一性仍然会被保留,因为所有 UV Map 都会被保存,但只能有一个处于可见状态,这也正是问题产生的原因。


在我视频展示的示例中,有三个对象:一个苹果、它的果柄,以及一支穿过苹果的箭。这三个对象彼此独立,共享同一个材质和同一个 UV layout,并且没有重叠。通过选择所有对象并进入 Edit Mode 就可以确认这一点。
分别查看每个对象在 Object Data Properties 标签中的 UV Maps 部分,可以看到苹果和果柄都有两个 UV Map,但主 UV Map 的名称是 uv_set_1,而第二个名为 UVMap 的贴图则没有正确缝合的 layout。
现在执行 Join 操作后,其中一个 UV layout 将不再可见……但它其实仍然存在,只是被放到了第二个 UV Map 中。随后我撤销这次 Join,回到三个对象仍然分离的状态。
在这个具体示例中,你只需要在执行苹果与箭头的 Join 之前,将箭头的 UVMap layout 重命名为 uv_set_1,这样再次执行 Join 时,就会得到正确的结果。


