この作品はC++とDirectX11を使用して、企画から開発まで一人で制作した作品です。
この作品は、一輪車を練習するひつじを、プレイヤーが道づくりでサポートしてゴールまで導くパズルゲームです。
タイトルに「ユニロード」という聞きなれない単語があると思います。この単語はUnicycle(一輪車)とRoad(道)を組み合わせた造語です。
プレイ画面の構成はこんな感じで
操作画面(実際には画面右側にある)で操作したことがメイン画面(実際には画面左側にある)にも反映され、基本的には、ひつじ君をゴールまで導ければクリア、進めなくなったり落下するとゲームオーバーです。
この作品で特に注力した点は、柔軟かつ拡張性の高いタイルの設計です。
マップ上には「最初からあるタイル」と「プレイヤーが設置できるタイル」の二種類があり、それぞれ形や役割が決まっています。各タイルは固有のイベント処理を持っており、タイルに入った瞬間やタイルから出た時、タイルの中心にひつじ君が到達した時に発生させることができる設計にしました。ひつじ君は「今どのタイルの上にいるか」を自動で判定して、各タイミングでイベントを呼び出す仕組みになっています。例えば、直線タイルなら「そのまままっすぐ進む」イベント、ゴールのタイルなら「クリア判定」や「効果音再生」のように、タイルごとに処理の内容が変わるようになっています。
また、クリアした時に発生する紙吹雪のパーティクルにもこだわりました。
紙吹雪一粒一粒に違いを出すために、ジオメトリシェーダーの中で毎回異なる回転や色を計算しています。その結果、カラフルでひらひらと舞う紙吹雪を表現することに成功しました。
この紙吹雪は、CPUとGPUの役割分担を工夫しています。CPU(C++)側では、四角形の頂点データを直接送るのではなく、1つの頂点データだけをたくさん送るようにしました。その一点をジオメトリシェーダーで四角形に展開して、さらに一粒一粒ごとに違う動きや色、大きさをつけています。
つまり、データ転送は少なく、計算はGPUの並列処理で大量にこなすことで、たくさんの多彩な紙吹雪をスムーズに描画できるようになっています。
前作の「シグナルレイダーズ」で開発に集中するあまり、遊びの面白さを十分に活かしきれなかった部分がありました。
そこで今作の「ひつじのユニロード」では、まず“遊んで楽しいこと”を一番に考えて制作し、そのうえで地面にのみ投影される影や細かな動きの表現にもこだわりました。
結果として、前作よりも短い期間で完成させることができ、自分の成長を感じています。