magicavoxelは0.99版以降複数のオブジェクトを使用したボクセルモデルの作成が可能になりました
大きい作品を作るとなるとオブジェクトの数が100以上に上ることもあり単一レイヤーでの管理も難しくなっていきます
今回はmagicavoxelのレイヤー機能を中心に紹介していきたいと思います
オブジェクトの追加削除、移動といった基本的機能については下記の記事にて紹介しています
使用ソフト:magicavoxel 0.99.4.2(Winマイナーアップデート版)
World Panel基本機能
画面右上の⇄ボタンを押すとWorld Editor機能に切り替わります
ここではオブジェクトの追加削除、座標変更の他、オブジェクトを各レイヤーに仕分けたり複数のオブジェクトをグループにまとめたりすることが出来ます
[レイヤーの表示/非表示]
レイヤーをModel EditorやRenderモードで表示させるかどうかを選択します
表示中のレイヤーは●、非表示のレイヤーは空欄で表示されます
[新規に作成するオブジェクトのレイヤーを指定]
これから作成するオブジェクトがどのレイヤーに所属させるかを選ぶことが出来ます
オブジェクトの所属レイヤーは後から変更することが出来るのであまり使用しないかもしれません
[選択しているオブジェクトのレイヤーを指定]
選択中のオブジェクトがあるレイヤーには<のマークがついています
オブジェクトが増えてから各オブジェクトのレイヤーの整理をする事も可能です
オブジェクトのレイヤー指定/変更
magicavoxelには0~7までの計8つのレイヤーが用意されています
オブジェクトの種類によってレイヤーを変えていくと後から変更を加える際にもわかりやすいです
オブジェクトのレイヤーを変更して視認性を上げる
LAYERメニューの1番右の列で選択しているオブジェクトのレイヤーを指定できます
選択中のオブジェクトがあるレイヤーには<マークが表示されます
レイヤーを変更したい場合はオブジェクトの外枠をクリックし、置きたいレイヤーの右の空欄の枠をクリックするとレイヤーが変更できます
レイヤーの変更はいつでも行うことが出来ます
Shiftキーを押しながらオブジェクトの枠線をクリックし、同時に複数オブジェクトを選択した状態でレイヤー変更を行うと一度に複数のオブジェクトのレイヤーを変えることが出来ます
これから作成するオブジェクトのレイヤーを指定する
LAYERメニューの中央の列でこれから作成するオブジェクトのレイヤーを指定できます
オブジェクトが所属するレイヤーは後から変更できるので普段はあまり使用しないかと思います
既に作成したオブジェクトをコピー&ペーストして増殖させる際に便利なぐらいです
レイヤーの表示/非表示
World PanelのLAYERメニューの一番左の列で8つあるレイヤーの表示/非表示を選択できます
表示中のレイヤーは●マークがつきます
一方非表示のレイヤーは空欄で表示されます
オブジェクトがレイヤーごとに整理されている場合はレイヤーの表示/非表示を活用できます
作業中のオブジェクトをレイヤー0にすると視点変更が楽
作業中のオブジェクトを他のオブジェクトと別のレイヤーに一時的に指定し、他のオブジェクトが所属しているレイヤーをすべて非表示にすることで作業効率がアップします
理由は2つあります
1つ目は制作作業中に他のオブジェクトが邪魔になってカメラ視点を逐次変えるという回数が減ります
2つ目はオブジェクトを表示したときに比べて画面全体が小さくなりカメラ視点を変える事自体も容易になります
以上の理由から作業中のオブジェクトだけを一時的に別レイヤーに退避させると良いです
私はよく作業中のオブジェクトをレイヤー0に指定し、他のオブジェクトをレイヤー1以降に指定しています
グループ化されたオブジェクトとグループ内のオブジェクトのレイヤーは別
magicavoxelではオブジェクトをグループ化した際、オブジェクトのグループと各オブジェクトを別レイヤーにしてすることが出来ます
この項で使用している画像では以下のようなレイヤー構成にしています
- レイヤー0:グループ化されたオブジェクト
- レイヤー1:食器・什器
- レイヤー2:お菓子
- レイヤー3:ティースプーン・フォーク
グループ化されたオブジェクトを非表示にするとグループごと非表示に
グループ化されたオブジェクトのレイヤーを非表示にするとグループ内のオブジェクトはどのレイヤーに所属しているかを問わずすべて非表示設定になります
この画像の例ではグループ化されたオブジェクトが所属するレイヤー0を非表示にしたことで、他のレイヤーに所属しているグループ内のオブジェクト全ても非表示になりました
なおEnter Groupを押してグループ内を指定中の状態(右上のバーで↑クリックできる状態)でグループ化されたオブジェクトのレイヤーを非表示に設定したときの判定はややこしくなります
World Editor上ではグループ内のオブジェクトは非表示にはなりませんが、グループ内のオブジェクトを1つ選択してModel Editorに切り替えると選択したオブジェクト以外は非表示になります
またRender Modeに切り替えるとレイヤー設定の通りグループ内のオブジェクトも非表示の状態でレンダリングされます
レイヤーの非表示設定はグループ内のオブジェクトにも適用される
あるレイヤーを非表示にした際、そのレイヤーに所属しているオブジェクトはグループ化されたオブジェクトであっても非表示の判定を受けます
この画像の例ではレイヤー2のお菓子があるレイヤーを非表示にしました
このときレイヤー0のグループに入っているお菓子のオブジェクトもすべて非表示になります