Magica Voxel: 功能全面,界面美观的体素建模工具

作者:indienova
2016-06-08
42 90 7

自从 Minecraft 和 Cube World 等游戏流行后,体素风格引起了越来越多人的关注。有别于传统以三角网格表现的立体世界,体素风格不仅仅是一种新的 3D 视觉表现形式,也为开发者建构游戏世界提供了新的可行方式。使用体素风格能够避免传统三角网格3D游戏开发中可能遇到的许多问题,但也会迎来一些新的挑战,比如,不确定哪一款建模工具适合用于体素风格。今天介绍的开源软件 Magica Voxel 就是一款能够在 Window 和 Mac 平台使用,功能全面、界面美观的体素模型编辑器。

Magica Voxel 是一款自由软件,使用完全免费,可以用于任何开源或商业项目,无需任何额外的授权。

演示视频

效果展示

编辑界面则如下:
snap0152
snap_home
console

.VOX 格式简单说明

本工具的模型文件使用类似 RIFF 的自定义格式 .VOX

模型文件中的数据以继承的块状结构组织,文件头部如下:

4 bytes : magic number ( 'V' 'O' 'X' 'space' ) 
4 bytes : version number ( current version is 150 )
{ MAIN chunk }

( all the magic number used here is big endian, for example, 'M''A''I''N', M is at 0 bytes, N is at 3 bytes )

每一个数据块则像下面这样:

// chunk 
{ 
    // header 
    4 bytes : chunk id 
    4 bytes : size of chunk contents ( n ) 
    4 bytes : total size of children chunks ( m ) 

    // chunk content 
    n bytes : chunk contents 

    // children chunks : m bytes 
    { child chunk 0 } 
    { child chunk 1 } 
    ... 
} 
( so the total chunk size is 4 + 4 + 4 + n + m )

在主干的数据块内还会有若干个子数据块:

MAIN chunk : 
    id : ( 'M' 'A' 'I' 'N' ) 
------------------------------------------------- 
SIZE chunk : 
    id : ( 'S' 'I' 'Z' 'E' ) 
    content : ( 4 bytes x 3 : x, y, z ) 

VOXEL chunk : 
    id : ( 'X' 'Y' 'Z' 'I' ) 
    content : 
        ( numVoxels : 4 bytes ) 
        ( each voxel : 1 byte x 4 : x, y, z, colorIndex ) x numVoxels


// 注意 : 
// 1. 如果调色盘数据块不存在,则使用默认的调色盘;
// 2. 放在最末的颜色不会使用(只使用头 255 种颜色);
// 3. 第一种颜色(位置为0)绑定到颜色索引 1 上。
PALETTE chunk (optional) : 
    id : ( 'R' 'G' 'B' 'A' ) 
    content : 
        ( each pixel : 1 byte x 4 : r, g, b, a ) x 256 

如果需要配色信息,可以先将调色盘导出为 .act 文件,然后从中读取颜色。

  • 注意第一个有效颜色对应的体素目录为 1(因为 0 留作表示空体素方块了);
  • .act 文件中第一个有效颜色的位置为 0(因此最后一个颜色不会被使用)。
.act :( each pixel : 1 byte x 3 : r, g, b ) x 256 

注意:
在老的模型中有时会保留一些无用的数据块,忽视它们就好。

命令行功能

除了通过图形界面控制外,Magica Voxel 也提供了一些命令行功能。
按下 TAB 可以激活或输入命令。
按下 Enter 来输入命令。
按下 UP/DOWN 来选择历史命令。

命令格式 命令描述 示例
rand [min max] 使用以指定范围内数字为索引的随机颜色为模型上色 rand 10 15
flood [colorIndex] 当 colorIndex == 0 时, 移除所有不可见的体素方块 flood 0
或者,用 colorIndex 填充所有不可见的空间 flood 73
noise [seed scale min max] 默认值: scale = 0.03 min = 0.2 max = 0.5 noise 123 0.03 0.2 0.5
pal mask 屏蔽所有未使用的调色盘
pal fill [index] 使用所选中的颜色索引填充调色盘 pal fill 100
pal bw/mac 生成灰度或默认的 mac 调色盘 pal bw
dil [axis] 膨胀 dil +z (仅限正方向), dil xyz (正负皆可)
ero [axis] 镂空 ero +z-yx (z为正, y为负, x 正负皆可)
maze [edge length] 生成迷宫 maze 8
o [file type] 导出模型 o obj
odir [file type] 导出当前模型列表中显示的所有模型 odir obj
xs [shader name] [arg0] [arg1] ... 执行自定义的体素渲染效果 [shader/] xs poly 5
xs [numIterations] [shader name] [arg0] [arg1] ... 执行自定义的体素渲染效果 [shader/] 多次迭代执行 xs 10 dil

下载地址

Magica Voxel

体素建模渲染工具 下载

近期点赞的会员

 分享这篇文章

indienova 

indienova - 独立精神 

您可能还会对这些文章感兴趣

参与此文章的讨论

  1. 至尊小夜猫 2016-06-08

    纪念碑谷风格的最棒了。

    最近由 至尊小夜猫 修改于:2016-06-08 23:11:53
  2. 林可 2016-06-09

    非常感谢推荐,十分棒而且便携的软件

  3. Laneing 2016-06-16

    Unity能不能直接导入.vox格式文件?

  4. yuyistudio 2016-10-06

    导出为 obj 就可以导出到unity了,不过貌似应该remove doubles处理一下顶点。在blender里面可以看到大量重复顶点,不过如果每个顶点的uv坐标不一样,最终应该还是有多个顶点吧

  5. liaoyagame 2016-11-13

    软件太棒了,可以PS画完后直接导入进去,接着建模。

  6. Allen.雅伦 2017-06-03 微信会员

    这个软件可以做骨骼动画么

  7. HcAndersen 2017-12-29

    这东西好顶赞,简直666啊

您需要登录或者注册后才能发表评论

登录/注册