magicavoxel上で作成したボクセルモデルをRenderモードでレンダリングする際、ボクセルモデルが埋まってしまうときやボクセルモデルの一部しか表示されないときの対処法を紹介します
使用ソフト:Magicavoxel 0.99.4.2(Winマイナーアップデート版)
ボクセルモデルが埋まってしまった時の対処法(0.99.5.1以降)
magicavoxelのデフォルトサイズ(40×40×40ボクセル)を超える大きさのボクセルモデル(以下オブジェクトと記載します)を作成したときに起こります
World Editor画面にて座標を調整することで解決できます
1.WorldEditor画面に切り替える

各オブジェクトの位置はWorld Editorにて管理できます
- Renderモードになっている場合はModelモードに切り替えます
- 画面右上のWorld Editorボタンを押します
なお0.99.5.1以降のバージョンではオブジェクト外の部分をダブルクリックすることでWorld Editorへの移行がスムーズにできます
2.「Mode」タブから「Ground」ボタンを押して座標を調整する
Moveタブ横のアイコンをクリックすればオブジェクトが接地します
Move タブを開かなくても使用できるようになったので便利になったのではないでしょうか
ボクセルモデルが埋まってしまった時の対処法(0.99.5以前)
magicavoxelのデフォルトサイズ(40×40×40ボクセル)を超える大きさのボクセルモデル(以下オブジェクトと記載します)を作成したときに起こります
World Editor画面にて座標を調整することで解決できます
1.WorldEditor画面に切り替える
各オブジェクトの位置はWorld Editorにて管理できます
- Renderモードになっている場合はModelモードに切り替えます
- 画面右上のWorld Editorボタンを押します
2.「Mode」タブから「Ground」ボタンを押して座標を調整する
- World Editor画面が開けたら位置を調整したいオブジェクトを選択します
(Ctrlキーで複数選択可能) - 「Move」タブを開き、「Ground」ボタンを押します
オブジェクトの位置が上がったら成功です
失敗した場合はオブジェクトの選択からやり直してください
Renderモードに戻してオブジェクト全体が表示されたら成功です
オブジェクトが浮いている場合にもこの方法は使えますので覚えておくと便利です
余談:大きい移動はオブジェクトの座標軸、小さい移動は「Move」
オブジェクト選択中に表示される3方向の座標軸をドラッグすると各方向に移動できます
大まかに移動するに適していますが細かい調整はしづらいと思います
先ほど使用した「Move」タブの中に+x,-x,+y,-y,+z,-zというボタンがあります
これらのボタンを使用することで1ボクセルごとの座標を調整することが出来ます
細かい調整に適していますが大まかな移動には不向きです
ボクセルモデルが大きい場合の対処法
対応バージョン: magicavoxel0.99.2以降
ボクセルモデルが大きい場合プレビュー画像にボクセルモデル中心部分しか表示されないことがあります
この場合はSparse Volumeを適用することで解決できます
1. Sparse Volumeをオンにする
- Renderモードに切り替えます
- 左の「Sample」カラムから「Sampling Setting」を選択します
- 「GEOMETRY」タブを開き「Sparse」のラジオボタンをONにします
成功するとボクセルモデル全体が表示されます
Sparse Volumeにも最大割り当てメモリによって総ボクセル数の制限があるので注意してください
magicavoxelの使用最大メモリ(RAM)を変更する
対応バージョン: magicavoxel 0.99.4.2(Winマイナーアップデート版) 以降
※リリース日は2019年11月16日
config.txtを書き換えてmagicavoxelの使用最大メモリ(RAM)サイズを増やす方法です
デフォルトでは通常のレンダリング,Sparce Volume共に256MBに設定されています
値を大きくするとその分PCへの負荷がかかりますので、ご自身のPCのスペックと相談して値を変更してください
config.txtの場所
config.txtはmagicavoxelがインストールされているフォルダのconfigフォルダ内にあります
(スクリーンショットではProgram Filesの中にインストールされていますが必ずしもここにインストールされるわけではありません)
config.txtを変更する
config.txt 38~42行目のrender{}の中、'(シングルクォーテーション)で囲まれた2つの値を変更します
render : { dense_buffer : '512' // [16, 1024] MB sparse_buffer : '512' // [16, 2048] MB }
dense_fuffer(通常のレンダリングでの使用最大メモリ)は16MB~1024MBの間、
sparse_buffer(Sparse Volume適用時の使用最大メモリ)は16MB~2048MBの間で変更可能です
値が変更出来たらconfig.txtを上書き保存します
magicavoxelを再起動する
magicavoxelを再起動してRenderモードに切り替えます
プレビューの段階で設定が反映されていたら成功です