Blender 模型中转流程

单位换算

模型和贴图用计算单位:

  • Magica Voxel 中 1 体素的边长为 9 cm,即 1.8 m 的人需要 20 个体素高度
  • 贴图要求默认大小为 512×512,视情况可以是 512 的倍数。512像素(px)对应 MV 中 64 个体素,即模型 1 体素 = 0.09 m = 8px,则贴图 1px = 0.01125 m

导出模型后的实际单位:

  • 实际上 Magica Voxel 中 1 体素的边长为 10 cm
  • 贴图要求默认大小为 512×512,视情况可以是 512 的倍数。512像素(px)对应 MV 中 64 个体素(6.4 m),即导出时模型 1 体素 = 0.1 m = 8px,则贴图 1px = 0.0125 m

在MV中做模型和贴图请关注“模型和贴图用计算单位”即可,“导出模型后的实际单位”主要针对在 Blender 贴图和 Unity 引擎中的单位换算,建模和贴图可以不用在意

  • Unity 中,1 cm 对应 Unity 空间的 0.01 m(transform.postion 的单位为米),由于需要统一2d 和 3d 素材尺寸,所以导出的模型需要在模型尺寸中设置为 0.9(属于历史遗留问题)

Maguca Voxel 模型导出流程

模型导出前的处理

为了避免世界锚点问题,在 MagicaVoxel 导出模型前:

  • 切换到“场景概要(Outline)” ,选中导出需要的“组”或“物体”
  • 在“编辑(Edit)”列中找到“变换(Move)”项点击“移动物体到地面(Ground)”按钮,将物体底部与世界地面(即 xOy 平面)对齐

在场景概要中选中该物体,然后移动到地面

模型导出

不同的导出格式对应后续不同的处理操作

  • .obj:布线很乱,需要在 UV 从 Palette 材质采样做区分,再重新展UV
  • .ply:纯几何数据没有材质信息。这就意味着无法靠在 MV 中上色来区别模型,一种思路是只建纯色的体素块,在 Blender 里再进行需要的切割工作,并重新展开UV、做贴图
  • .vox:可以配合 blender 插件“MagicaVoxel VOX importer”使用导入 Blender,但是会将 MV 中所有的体素按照一个个 cube 导入

Blender 中转流程

通用处理:

  • 重命名物体名称
  • MV 导出的物体材质都是相同的但并不是使用的同一个材质球,需要将相同的材质使用同一个材质球并重命名

.obj 格式处理

  1. 全选所有物体,重置中心到几何中心

A:全选所有物体

  1. 通过 UV 从 Palette 材质采样不同颜色对“面”进行有限融并

X:有限融并

  1. 合并顶点。在编辑模式下选择所有顶点按照距离合并

M:Merge by Disrance 合并顶点

  1. 新建材质并规范命名
  2. 对指定的面进行指定材质和重新展开UV,可以考虑块面投影,对应 512 贴图下的矩形尺寸为 6.4

U:展开 UV

  1. 对 Mesh 进行三角面化

Ctrl+T:三角面化

  1. 应用变换,导出

其它可用参考操作或快捷键

Ctrl+J:合并

Shift+G:选择相似 -> 共面

Ctrl+F2 :批量重命名

选择 -> 按特征全选 -> 非流形,可以快速选择出边界,用来进行设置为缝合边等操作

选择 -> 选择相连元素 -> 材质

选择 -> 选择相连元素 -> 相连的平展面

选择多个物体后 Shift 点击要复制材质的物体 -> 复制材质至选中

Blender UV 编辑窗口左上角有个双箭头“UV选区同步”可以将 UV 与编辑模式下的 Mesh 选区保持同步

物体模式下,右上角选项“变换”->“仅影响原点”


贴图规范

公用贴图:

512 x 512

PS中可以利用如“Seamless”等插件进行无缝拼接检查:

无缝拼接检查