はじめに
3Dが出来ないけど、3Dゲームを作りたいという人向けです。
2.5Dといえば、2.5HDみたいなゲームを次のツクールは作れるっぽいですね。
おーすげーって思いながら、自分で使うことはなさそうだけど…。
私は3Dは作れるけど、blenderに持ってってunityに連携してっていうのが面倒くさいタイプ。
フォトショで画像編集して、スプライトで力技で動かしてます。
こんな感じのマップになります。
2Dスプライトを3Dっぽく表示してるだけですね。
そこに3Dのアセットで小物を配置すると良い感じになります。
スプライトの表示テストですが、左から3Dアセットの木、スプライトの石、ドット絵の木って感じ。
採取できるアイテムはなんぼ見やすくもいいからね。
でもそんなに違和感もなく使えると思います。
タイルパレットの追加
タイルパレットは2Dと作り方は同じです。私はこのアセットを使ってます。
2D Hand Painted系のを使ってます。種類いっぱいあって使い勝手良いです。

このXを0にしたら壁として使えます。
カメラを見ながら位置調整していきます。
適当にマップを書き込んだら、カメラの角度を30~40にします。
ついでに後ろの壁も合わせて角度~10くらいにすると自然な感じになります。
このマップを書き込むって作業がタイルマップだと3Dに比べて圧倒的に楽なんですよね。
高低差の表現は難しいんですけど。
オブジェクトの追加
次は3Dのオブジェクトを置いてそれっぽくしていきます。
私が使ってるアセットはkaykitさんのものです。なんか丸っこくてかわいい。
適当に置いてみました。
ただこのままだと2Dマップに3Dの影は投影されないので、マテリアル設定をしていきます。
(元々は私Angleってアセット使ってて、これだと2Dスプライトの影も全部投影してくれてたのに、unity6のアプデでマテリアルが全部ピンクになって、アセットの対応もなくて全部使えなくなっちゃったんだよね!!
)
マテリアル設定
こんな感じのマテリアルを適用してあげると、影が表示されます。
ただ、上の草とかはマップレイヤー変えてるんですが、微妙に埋もれて表示されなくなるので、Y軸を0.1とかにしてあげましょう。
ちなみに橋はちょっと高低差があって、このままだと登れません。
橋には"Deck"ってタグが付けてあるんですが、
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("Deck"))
{
onBridge = true;
}
}
void OnTriggerExit(Collider other)
{
if (other.CompareTag("Deck"))
{
onBridge = false;
}
}
onBridgeってのを切り替えて、
private float bridgeY = 0.5f;
targetPos.y = onBridge ? bridgeY : baseY;
bool movingToBridge;
movingToBridge = Mathf.Abs(rb.position.y - targetPos.y) > 0.01f;
if (movingToBridge)
{
rb.constraints = RigidbodyConstraints.FreezeRotation;
}
else
{
rb.constraints =RigidbodyConstraints.FreezeRotation | RigidbodyConstraints.FreezePositionY;
}
Y軸固定解除、位置+0.5f、みたいなことをやってあげてます。
スプライト追加
次はスプライトでオブジェクトを足していきます。
絵を描ける人はここで力を発揮すると個性あるマップに出来るんじゃないかなー。
スプライトはpsbファイルで作って、skinningEditorとかで光らせたり動かしたりすると2.5Dマップぽくていい感じになります。
スプライトは必ずここのテクスチャタイプをスプライト(2DとUI)にしましょう。
ツクールとかのキャラチップを想像すると分かりやすいと思うんですけど、高さがあるスプライトは分割して、下部分にコライダーを付けて、上部分はキャラの上に表示するようにレイヤーを変えてあげるといい感じになります。
スプライトの影が投影されない問題は力技で解決していきます。
影っぽいタイルチップを描いて、置いていきます。
花の下の部分も描いておきます。
置いた部分に合わせてスプライトを動かしていい感じにします。
サンプル完成
ちなみに通行禁止とかは2Dだったら一気に出来るんですが、私はコライダーを確認しながら透明な壁を作っていくことしか出来ない…。
もっと楽な方法あるのかなー。









