切换皮肤版本会重新加载页面,这是正确的设计
Java 版的编辑器是围绕 64 像素构建的,而基岩版的则是围绕 128 像素。这个常数是硬编码的,所以两者无法互相传递画布——这就是为什么每个版本都是一个真实的 URL,而不是一个切换按钮。
这里的皮肤编辑器是两个程序,而不是一个带设置的程序。选择 Java 版或基岩版会加载不同的构建并重新加载页面,理解其原因很有价值,因为它能解释一类“为什么我的皮肤无法导入”的问题。
两种构建,两种纹理尺寸
- Java 版 —
TEXTURE_SIZE64。接受 64 × 64,或旧版 64 × 32。拒绝所有其他尺寸。 - 基岩版 —
TEXTURE_SIZE128。只接受 128 × 128。
这个常数不是运行中的编辑器会查询的变量;它被硬编码到每个构建中。因此,两者无法互相传递画布——它们之间没有共享的表示形式可以传递。在运行时交换一个值会导致程序的一半以错误的单位工作。
所以版本切换会重新加载。URL 中的 #bedrock 会打开基岩版构建,这使得每个版本都成为一个可以链接、收藏和分享的真实地址,而不是一个新访客无法访问的隐藏切换状态。
彼此都无法显示对方的皮肤
这部分会以支持问题的形式出现。加载到基岩版编辑器中的 Java 版皮肤不会以四分之一的尺寸渲染;它会被拒绝。基岩版皮肤在 Java 版编辑器中也会被拒绝。
人们的直觉是 128 × 128 是“相同的布局,更大的尺寸”,所以它应该可以缩放。但事实并非如此——它是一个不同尺寸、不同部位的 UV 布局。没有一种重采样方法可以将其相互转换,任何声称能做到这一点的工具都只是在猜测。
如果你手头的文件与你正在使用的编辑器不符,解决方法是切换版本,而不是使用图像编辑器。
这对你的工作流程意味着什么
在开始绘制之前决定目标平台,而不是之后。一个完成的 Java 版皮肤并非只需一步导出就能成为基岩版皮肤。
如果你需要两者,它们是两项碰巧看起来相似的工作——它们之间共享的是设计,而不是文件。