Unity 3D でのドット絵表現 3 パターン
この記事について
インディーゲームやリメイクゲームに多い「ドット絵」の表現。
その代表は「マインクラフト」だと思います。ドット絵や立方体はマインクラフトの独特な世界観を作り出しています。ゲーム性だけでなくその世界観への人気は、ゲーム内の剣や敵キャラを模したグッズの評判からもうかがえます。
また、他にも表現としてのドット絵を使ったゲームは多く存在します。
「ポケットモンスター」シリーズは「ダイヤモンド・パール」からマップが 3D になっていますが、画面はドット絵になるように絵柄にスタイルが付けられています。後続の「ブラック・ホワイト」ではさらに動きの多いマップやポケモンを、ドット絵で綺麗に表現しています。
「F-ZERO 99」はリメイクゲームということで、3D ゲームでありながら原作に近いドット絵の表現を取り入れています。
このように、「ドット絵を表現に取り入れた 3D ゲーム」は多く存在しますが、その表現方法はゲームによって少しずつ異なります。今作っているゲームにドット絵的表現を取り入れたいと思っているので、いくつかの方法を試して比較してみることにしました。
3D ゲームにドット絵を組み込む方法
大きく以下のような方法があります。
1. テクスチャにドット絵を使用
3D オブジェクトのテクスチャにドット絵を使用する方法です。
マインクラフトの表現に近いですが、マインクラフトは後述の Voxel の方が近い気がします…。
2. ドット絵風エフェクト
一旦 3D でゲームを作り、後からドット絵風になるように画面にエフェクトを入れる方法です。 今どきは 3D ゲームの素材が溢れているので、これが一番簡単な方法のような気がします。
例としては、ポケモンの建物などがこの方法を使っていると思います。ただ、ポケモンの場合は境界線などが綺麗に映るように 3D モデル、エフェクトともにかなり気を使っていそうです。
3. Voxel を使用
ドット絵とは少し異なりますが、近い表現なので比較します。3D の小さい立方体で構成された Voxel と呼ばれる 3D モデルを使用します。マインクラフトなどが Voxel と言えます。
(4.) 2D のドット絵を 3D 空間に配置する
F-ZERO 99 の方法です。描画処理が軽いことから、レトロゲームではよく使われていた手法です。各方向から見たオブジェクトのドット絵素材を用意する必要があり、現在では逆に手間が大きくあまり採用されないと思います。 今回はこちらは比較しません。
比較してみる
ゲームで使う円柱の石柱をモチーフに比較してみます。
1. テクスチャにドット絵を使用
Blender で円柱のモデルを作成する際、メッシュを UV 展開して以下のような展開図をエクスポートします。
この展開図に合わせてペイントソフトでドット絵の模様を作成します。作成した PNG 画像を Unity 上で円柱モデルの Base Map のテクスチャに設定することで、円柱の表面にドット絵を表示させます。
2. ドット絵風のエフェクトをかける
こちらは ProPixelizer という Unity アセットを使用しました。
ドット絵風エフェクト自体は簡単に解像度を下げるだけでもそれなりになると思いますが、 ディテールで不自然な部分が出てきてしまうと思うのでアセットを使用することを推奨します。
3. Voxel を使用
3D モデルを Voxel 変換してくれる 「Online Voxelizer」という web サービスを利用しました。
web サービス以外にも手元で動くソフトウェアなどがいくつかあるので、適したものを使用するのが良さそうです。
感想
今回試してみた 3 つの比較としては、
1 → あまり使わなさそう。物理演算などが絡むゲームで、「3D モデルの形は綺麗に表示したいけどレトロな雰囲気も出したい」ときに使えるかも?
2 → ドット絵らしさがあって良い感じ。少し雑に 3D モデルを用意してもエフェクトで統一してくれそうなので、ゲームの世界観を統一しやすそう。
3 → ローポリな雰囲気・3D 空間を動き回るようなゲームだと良さそう。
というのが個人的な印象でした。