magicavoxelのレンダリングが失敗したときに試してほしいこと(19.11.16追記)

magicavoxel上で作成したボクセルモデルをRenderモードでレンダリングする際、ボクセルモデルが埋まってしまうときやボクセルモデルの一部しか表示されないときの対処法を紹介します

使用ソフト:Magicavoxel 0.99.4.2(Winマイナーアップデート版)

ボクセルモデルが埋まってしまった時の対処法

クリックすると大きい画像が表示されます

magicavoxelのデフォルトサイズ(40×40×40ボクセル)を超える大きさのボクセルモデル(以下オブジェクトと記載します)を作成したときに起こります
World Editor画面にて座標を調整することで解決できます

1.WorldEditor画面に切り替える

クリックすると大きい画像が表示されます

各オブジェクトの位置はWorld Editorにて管理できます

  1. Renderモードになっている場合はModelモードに切り替えます
  2. 画面右上のWorld Editorボタンを押します

2.「Mode」タブから「Ground」ボタンを押して座標を調整する

クリックすると大きい画像が表示されます
  1. World Editor画面が開けたら位置を調整したいオブジェクトを選択します
    (Ctrlキーで複数選択可能)
  2. 「Move」タブを開き、「Ground」ボタンを押します

オブジェクトの位置が上がったら成功です
失敗した場合はオブジェクトの選択からやり直してください

クリックすると大きい画像が表示されます

Renderモードに戻してオブジェクト全体が表示されたら成功です
オブジェクトが浮いている場合にもこの方法は使えますので覚えておくと便利です

余談:大きい移動はオブジェクトの座標軸、小さい移動は「Move」

オブジェクト選択中に表示される3方向の座標軸をドラッグすると各方向に移動できます
大まかに移動するに適していますが細かい調整はしづらいと思います

先ほど使用した「Move」タブの中に+x,-x,+y,-y,+z,-zというボタンがあります
これらのボタンを使用することで1ボクセルごとの座標を調整することが出来ます
細かい調整に適していますが大まかな移動には不向きです

ボクセルモデルが大きい場合の対処法

対応バージョン: magicavoxel0.99.2以降
クリックすると大きい画像が表示されます

ボクセルモデルが大きい場合プレビュー画像にボクセルモデル中心部分しか表示されないことがあります
この場合はSparse Volumeを適用することで解決できます

1. Sparse Volumeをオンにする

クリックすると大きい画像が表示されます
  1. Renderモードに切り替えます
  2. 左の「Sample」カラムから「Sampling Setting」を選択します
  3. 「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の中にインストールされていますが必ずしもここにインストールされるわけではありません)

magicavoxelインストールフォルダ
magicavoxelがインストールされているフォルダ
./magicavoxel/config/フォルダ
configフォルダの中にconfig.txtが存在する

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モードに切り替えます
プレビューの段階で設定が反映されていたら成功です

参考ツイート: enphtracy氏(magicavovel開発元)