新しいマッチ 3 のサンプルゲーム『Gem Hunter Match』から、ライティングと視覚効果の手法を学ぶ

Unity 公式の新しいサンプルプロジェクトである『Gem Hunter Match』は、Unity 2022 LTS のユニバーサルレンダーパイプライン(URP)で作成された人目を引くライティングと視覚効果により、2D パズル(マッチ 3 ゲーム)において競合に差をつける方法を紹介しています。
ミニマニュアルと併せてサンプルプロジェクトをダウンロードし、色鮮やかな宝石や海の生き物が生息するクリスタルブルーの海で、一攫千金を狙う世界に飛び込みましょう。2D スプライトに深みを加えるための準備とライティング方法、きらきらさせるための Sprite Custom Lit シェーダーの適用方法、グレアと波紋効果の作成方法を学びます。
『Gem Hunter Match』をダウンロード
『Gem Hunter Match』のスクリプトを Unity Samples で見る。

『Gem Hunter Match』は URP 3D サンプルと『Happy Harvest』に続き、Unity の複数のチームによって作成されたサンプルシリーズの最新作であり、3D と 2D のマルチプラットフォームプロジェクトに活用できる、Unity 2022 LTS の URP の機能を数多く紹介しています。この記事の末尾に、URP のさらに有益な学習リソースへのリンクを掲載しています。
このクロスプラットフォーム向けマッチ 3 パズルゲームの試作品は、Unity Asset Store または Unity Samples から入手可能です。所有しているアセットやゲームプレイ機能などを使用して『Gem Hunter Match』をカスタマイズしたり、または自身のプロジェクトにこのゲームのスプライト、シェーダー、効果、オーディオ、テクスチャ、スクリプトを再利用したりできます。

『Gem Hunter Match』のゲームボードの背景として、バブル、サンゴ、こちらを向いている人魚が配置されています。そして、真珠、ピンクサファイア、ルビー色のヒトデ、青い魚、金色の貝、眠そうなウミガメが、プレイ可能な 3 つのレベルでボードに登場します。3 つ以上のアイテムをマッチさせることで、宝石を消し、ブースターとコインを獲得できます。ブースターは、目標の達成に役立ちますが、失敗するとハートを 1 つ失います。木箱とロープは障害物で、木箱の場合はその横、ロープならその下でアイテムを 3 つ以上マッチさせると消すことができます。

このシンプルなゲームループには、再利用できるインベントリが含まれます。以下はその主な要素です。
メインシーン:この画面にはプレイ可能なすべてのレベルの一覧が表示され、一覧は、Data フォルダーに格納されている LevelList と呼ばれる ScriptableObject から参照されています。
レベルシーン:この画面は、ゲームプレイの設定を表示しています。ゴールセクションで要素を消す必要があります。
レベルの最後/ショップ:レベルを失敗またはコンプリートすると、ショップに移動し、ブースター、ハート、その他の通貨を購入できます。ショップのすべてのアイテムは、Data/ShopItems と明記されたフォルダーに格納されています(「Assets」 > 「Create」 > 「2D Match」から、独自のアイテムを追加することもできます)。ショップに含まれるアイテムは以下の通りです。
スター:スターは、各レベルをコンプリートすることで獲得できます。実際のマッチ 3 ゲームでは、スターはメタゲームの一部や装飾であったり、またストーリーを進める要素として使われたりします。

2D パズル(マッチ 3 ゲーム)の人気の理由は、かわいく、カラフルで、楽しく簡単に遊べて、そして誰もがほとんどどこからでもアクセスできることにあります。
美しいアートワークが施されることもありますが、カメラは固定されていて、ゲームプレイは反復的、そして多くの場合、ライティングとシャドウは事前計算(ベイク)されているという点から、この種のゲームは最先端の光と視覚効果で知られているわけではありません。しかし、ポップな輝きやきらめきを加えてさらに楽しいものにする方法はいくらでもあります。
Sprite Custom Lit シェーダーは、『Gem Hunter Match』の視覚効果の作成に使用された手法の 1 つです。このシェーダーがシーンライティングの代わりとなり、2D ライトのテクスチャ情報を変更し、各パーツのライティングを調整することができます。その結果、ピースの上を移動するきらめきのような効果など、スプライトの創造的な照明を実現できます。
ライトの位置データがシェーダーに移動されることで、シーン内に実際にライトオブジェクトを置く必要がなくなり、プロジェクトを整然とした状態に保つことができます。シェーダー内のオブジェクトごとのライティングのカプセル化は、より良い分離と大規模な編集に適しているため、バッチ処理が可能な場合にパフォーマンスを向上させます。
ライトとシャドウの情報はシェーダーに保持され、スプライトには色の情報のみが含まれます。法線マップは、各ピクセルの方向を計算するために 2D ライトシステムにより使用され、その位置に応じて、より多くまたはより少ない光を受けるようにします。マスクマップは、特定の RGB チャンネルに影響を与えるライトにより使用されます。
『Gem Hunter Match』のレベルシーンの Lights プレハブには、グリッド用の 2D ライトが含まれます。これらのライトはデフォルトの Sprite Lit シェーダーに影響を与え、光を受けるソートレイヤーに含まれるグリッドアイテムに適用されます。
以下の画像は、スプライトの作成手順と、Sprite Custom Lit シェーダーがどのようにその工程に組み込まれているかを示しています。

『Gem Hunter Match』では「架空の」ライトの位置が LightRotator ゲームオブジェクトで表現され、これにアニメーションがついて宝石を照らす効果が演出されます。2D ライトテクスチャの調整と Dot Product ノードを使ったハイライトの処理は、どちらもゲーム内の宝石に適用される TileShader シェーダーグラフで使用されます。

Dot Product ノードは、2D プロジェクトでライティングをカスタマイズしたい場合に便利です。Dot Product(ドット積)は、2 つのベクトルがどれだけ近いかを測定します。このサンプルでは、LightDirection の位置が法線マップの各ピクセルの見かけの方向と比較されます。サンプリングした白黒画像は、スプライトに光を加えるのに使用でき、同じシェーダーを使ってすべてのパーツの値を実行時に更新することができます。

Radial Warp シェーダーは URP 2D の Camera Sorting Layer Texture の設定を使用します。この便利な機能により、URP 2D レンダラーの設定で指定された Sorting Layer まで生成されたグラフィックスにアクセスでき、シェーダーグラフで効果を適用できます。Camera Sorting Layer Texture は、『Happy Harvest』のサンプルでは水の屈折効果を生み出すために、『Dragon Crashers』では煙の歪曲のために使用されました。このサンプルでは、衝撃波をシミュレートする歪曲が適用され、マッチした際に視覚的な魅力を加えています。プレイヤーの記憶に残るようなインパクトのある効果を生み出しています。

是非『Gem Hunter Match』をダウンロードして、遊び、カスタマイズして、使用されているグラフィックスの手法をご自身のプロジェクトにも試してみてください。これらの情報はすべて Unite 2023 セッション、『ライト、エフェクト、AI - 2D ゲームに役立つ最新テクニック』で紹介されています。
URP に関するその他のサンプル、e ブック、チュートリアルを是非ご覧ください。
- e ブック:『アーティストのための 2D ゲームアート、アニメーション、ライティング』
- :『上級 Unity クリエイター向けのユニバーサルレンダーパイプライン(URP)』
- Unite 2023:『URP の最新機能を使ってマルチプラットフォーム開発を加速する』
- ライブ配信:『What’s new in Unity’s Universal Render Pipeline?』
- 動画チュートリアル:『Happy Harvest:Custom crops and player notes』
- e ブック:『Unity で高度なビジュアルエフェクトを作成するためのガイドの決定版』
Unity フォーラムでのユニバーサルレンダーパイプライン(URP)に関する会話や、Unity Discussions に是非参加してください。