【unity】2Dトップダウンゲームで動的に画像を前後に表示させたいクリエイター!!ちょっと来い!!<キャラクター位置によって、動的に表示順を変更する方法>

unity2021.1.7f1にて解説。

【こーゆー表現】オブジェクトの手前や奥にまわりこめる表現のこと

こーゆー表現にあこがれたツクラー、手ーあげてー!!

はーい!(70億人挙手)

それ、簡単にできるよ。

unityならね。

オブジェクトの後ろとかに回り込みたい。あと、回り込まれたい

2Dでドット絵RPGなんぞを作っていいると、まあ、こだわりたいコトがたくさん出てくる。
キャラの位置によって、動的に表示プライオリティーを変更して、マップオブジェクトの後ろとか前とかに表示させたい。

なども、その典型だ。

ツクールでもできる。でもちょっと大変。

unityでもできる。こっちは超楽。

しかもノーコーディング。

やらない選択肢なんてない!(独断と偏見)
めちゃクオリティー上がるんだし!!

と言うわけで、さっそく、セッティング方法を見ていこう。

透明度ソートモードをカスタムする

設定はProject Settingsから行う。

🚩1⃣編集 > プロジェクト設定をクリックする。

プロジェクト設定ウインドウを開く

🚩2⃣Project Settingsウインドウで「グラフィックス」を選択する。

🚩3⃣透明度ソートモードを「カスタム軸」に設定する。

🚩4⃣透明度ソート軸を「X0」「Y1」「Z1」に設定する。

ソートモードとソート軸の設定

透明度ソートモードがないよ?

URPで2Dレンダラーを設定してる場合は、プロジェクト設定からは透明度ソートモードとソート軸にはアクセスできない。

代わりに「2Dレンダラー」からアクセスする。

🚩1⃣プロジェクトウインドウで2Dレンダラーを選択する。

🚩2⃣インスペクターから「▼一般」を展開する。

URPで2Dレンダラーを導入している場合の、透明度ソートモードへのアクセス

ここから画像のように設定しよう。

なお、unityのバージョンによっては2Dレンダラーからもアクセスできない可能性がある。
その場合は、プロジェクト設定でURPを一旦はずす。
すると透明度ソートモードが出現するので、設定後に再びURPを適用すればOKである。


設定はこれで完了だ。
project settingsを閉じて、確認してみよう。

もうできた

もう自動的にソートしてくれている。
なにこれ。超簡単なんですが。

プレイヤーの位置によって自動で描画順を調整してくれている。最高か。

秒で破綻した

キャラクターと同じサイズ感の画像なら、いい塩梅に前後位置を調整してくれるこの機能。
対象オブジェクトがキャラクターより大きかったり、小さかったりすると、秒で破綻する。

【デカい場合】う、後ろに隠れねぇぇ!!!

【小さい場合】め、めり込んできやがるっっ!!

こいつを解消するには、オブジェクトごとにトランスフォームの位置Z値を調整してやる必要がある。

デカいオブジェクトを調整する

プレイヤーよりもデカいゲームオブジェクトの前後位置をいい塩梅にするには、デカいオブジェクトの位置Zをマイナス方向に微調整すると、大概上手くいく。

コツは、シーンで「このあたりからは後ろに隠れてほしい」あたりにプレイヤーを移動させた状態で、デカいオブジェクトの位置Zを調整することである。閾値をこえると、勝手に後ろにまわってくれる。

デカいオブジェクトのトランスフォームの位置Zをマイナス補正してやる。

小さいオブジェクトを調整する

プレイヤーよりも小さいゲームオブジェクトの前後位置をいい塩梅にするには、小さいオブジェクトの位置Zをプラス方向に微調整すると、大概上手くいく。

小さいオブジェクトのトランスフォームの位置Zをプラス補正してやる。

もっかい、やってみる

ヒャッハー!完璧だぜぇぇ~!!

大きいオブジェクトの後ろを通り、小さいオブジェクトもめり込んでこなくなった。
完璧である。

まとめ

こんなに簡単に実装できていいんですか?級に簡単だったと思う。
ぜひ活用して、イケイケドンドンで2Dゲーム制作にまい進していただきたい。
なお、今回のケースと似たような演出として立体交差を実装することも可能なのだが。

それは、また別の話🎮


BOOTHでドット絵素材のお店やってまーす。

下のハートボタンは、砂塒のやる気スイッチに直結しています。
押すなよ~!絶対に押すなよ~!

・・・押してよぉぉぉぉ~!!!

コメントを残す