Minecraftに代表されるボクセル(Voxel)は8bitゲームの時代を彷彿とさせるデザインで人気があります。ペーパークラフトも幾つかあり、作ってみた経験がある方も多いのではないでしょうか。 そんなVoxelモデルを実際に印刷して組み立てられる模型に展開してくれるのがOrthogamiです。好きなモデルを作ってみると面白そうです。

Orthogamiの使い方

インストールはnpmで行います。

$ npm install orthogami

モデルの造形はコードで行います。

//First create a voxel set
//  0 = empty
var voxels = require('ndarray-pack')([
  [[0, 1],
   [2, 3]],
  [[0, 0],
   [0, 4]]
])

//Require the module (works with browserify)
var orthogami = require('orthogami')

//Set up options (can skip this if you like)
var options = {
  units: 'mm',            //Units
  bounds: [210, 297],     //Page size
  scale: 10,              //Size of voxel
  lineWidth: 0.1          //Size of dashed line
}

//Then run orthogami
var svgs = orthogami(voxels, options)

//Print out the result
var fs = require('fs')
svgs.forEach(function(svg, idx) {
  fs.writeFileSync('page' + idx + '.svg', svg)
})

結果はSVGファイルとして出力されます。なおVoxel Critter Creatorを使うとビジュアル的にOrthogamiの生成ができます。

例えばこのようなマリオを作ったとします。

Orthogamiで展開するとこのようになります。

見て分かる通り、単に展開しただけでなく、のりしろや差し込み口も生成されています。Orthogamiはブロックの組み合わせなので顔のようなイラストはありませんが、昔懐かしいドット絵を立体化できるだけでも面白いでしょう。

Orthogamiはnode/JavaScript製、MIT Licenseのオープンソース・ソフトウェアです。

mikolalysenko/orthogami