のぼるゲーム開発備忘録

ゲーム開発のプログラマーです。ゲーム開発関連、調べた内容をアップしていきます。Unityを使用して個人開発を行っています。

【Unity】【TopDownEngine】見下ろし型ゲーム作成

f:id:ikeball:20200724092647p:plain


はじめに

見下ろし型ゲームを作成するのに良さそうなTopDownEngineの紹介になります。

 多くの機能が実装されており、リソースを置き換えるだけでもオリジナルゲームの作成ができそうです。

デモシーンの完成度が高く、デモをベースに作成することで作りたいゲームをいち早く実装できそうです。

確認環境

Unity 2019.4.3f1

ライセンス 

2020/12/27 時点でのライセンス表記では、デモシーンで使用しているグラフィック、スクリプトは改造して使用してOK、サウンドは再利用NGと記載されています。

有名な見下ろし方のゲーム

TopDownEngineでどんなゲームが作れるかの考察します。

※ここで紹介しているゲームがTopDown Engineを使用して作成されているわけではありません。

Enter the Gungeon

このゲームを作るためにあるようなアセットです。銃を撃つ動作や画面移動など、このアセットを使いこなすことでGungeonを作ることができそうです。

store.steampowered.com 

ゼルダの伝説 夢をみる島

このアセットで頑張ればゼルダの伝説に近いゲームの作成もできそうです。

www.nintendo.co.jp

スーパーボンバーマン R

デモシーンで既にアイテム無しの状態で用意されているので、ボンバーマンは作ることができそうです。

ec.nintendo.com

デモシーン紹介

テンプレートアセットはデモシーンを確認することである程度、どんなことができるのかが把握できます。同梱されているデモシーンを確認しました。

作りたいと考えているゲームに近いデモから改造する形が良いと考えています。

LevelSelectionが各デモを起動するシーンとなっています。

Explodudes ... 爆発者

4人大戦のボンバーマンのデモになります。タイトルが表示された後、即ゲーム画面にいきます。キャラクターの移動、爆弾を仕掛けてブロックが破壊される、キャラクターやられ判定有り、エフェクト有り、サウンド有り、メニュー無し、アイテム無し。マス目に沿ったゲームの基盤に使用できそうです。

f:id:ikeball:20200724102248p:plain

Grasslands ... 見下ろし方ゼルダの伝説風の4人大戦ゲーム

ゲームとして完成しています。画面分割が4人大戦で、1分内に一番多くコインを取得したプレイヤーが勝利となっています。他プレイヤーへの攻撃判定や、壺への攻撃判定もあります。

f:id:ikeball:20200724103157p:plain

Koala2D ... 2Dコアラゲーム

KoalaDungeon

ゲームの要素が一通り入ったデモです。デモそのまま動かしていても楽しいです。

HPがなくなったらゲームオーバーで、リトライ画面が表示されます。

アクション:ジャンプ、ダッシュ、武器の切替、射撃(PC上ではマウスで照準)

敵AI:徘徊、部屋に入ったら攻撃

メニュー:アイテム・装備切り替え

ギミック:ワープ、落とし穴、鍵穴

実績機能にも対応しています。実績機能≒PS4のトロフィー機能のようなもの

※pc上でのAボタンはスペースキーが割り当てられています。

f:id:ikeball:20200724113300p:plain

KoalaRooms

操作方法はKoalaDungeonと同じです。マップの移動が部屋ごとに切り替わるようになっています。昔のゼルダの伝説のマップ移動みたいな形です。

部屋のつながりもUnity上で設定が行われています。

f:id:ikeball:20200724132525p:plain

LevelSelection ... 各デモの選択

f:id:ikeball:20200724133030p:plain

Loft3D ... 3D見下ろし

ゲームの要素が一通り入ったデモです。昔のメタルギアソリッドみたいな感じ。

操作方法はKoalaDungeonと同じです。部屋に入ると敵が銃で撃ってきます。

f:id:ikeball:20200724133818p:plain

Minimal2D ... 各デモ機能の2D最小限シーン

Minimal2D ... ユニット移動、メニュー最小限の構成

f:id:ikeball:20200724141842p:plain

Minimal2DCharacterSwap

キャラクター切り替えのサンプル。Pボタンで操作キャラクターの変更できます。

f:id:ikeball:20200724142347p:plain

Minimal2DCharacterSwitch

こちらもキャラクター切り替えのサンプル。Pボタンでその場で使用キャラクターの切替がきます。

f:id:ikeball:20200724143106p:plain

Minimal2DGrid

グリッド上の移動を行うデモです。ローグや、シミュレーション等マスに沿ったゲームのテンプレートとして使用できます。弾を打つと反動で位置ずれてしまうので、この部分は修正する必要があるかもしれません。

f:id:ikeball:20200724143402p:plain

Minimal2DRooms1 / Minimal2DRooms2

部屋切り替えのサンプルになります。部屋の移動には、接触したら移動、ボタンを押したら移動が用意されています。部屋の移動時にシーンの切替が行われています。

f:id:ikeball:20200724143631p:plain

MinimalSandbox2D

アイテムやギミック等、一通りの機能が確認できるデモになります。

往復する床や、箱をスイッチの上に乗せるなど確認できます。

2Dモードで使える機能の紹介デモです。

  • 武器切り替え、射撃 ... 武器、弾薬を広い任意の方向へ攻撃ができます。
  • 開閉する扉 ... ボタンを押すと開閉する扉があります。
  • 鍵付きの扉 ... 鍵を持っている場合に開閉する扉があります。鍵は使用したら無くなります。鉄の鍵、木の鍵がデモでは実装されています。
  • ワープ ... 対象に触れたら別の場所へ移動します。
  • アイテム ... アイテムメニューから使用できる回復アイテムがあります。
  • コイン ... 対象に触れたら、お金、スコア、アイテム取得
  • 押せるブロック ... 重さの設定ができます。ジャンプで乗ることもできます。
  • 押せるブロックギミックの扉 ... ブロックを移動させ特定の位置の上にある時だけ開く扉があります。
  • シーン切り替え ... 対象に触れたらシーンの切替ができます。
  • 的 ... 体力付きの箱、一撃で壊れる的があります。
  • スイッチ ... スイッチに連動して開く扉があります。
  • エネミーポータル ... スイッチに連動して敵が召喚される扉があります。
  • 会話 ... キャラの前でボタンを押すと吹き出しが出て話すことができます。
  • リフト ... 当たると押され、乗ることもできます。すり抜けることもあるので、判定は修正する必要があるかもしれません。
  • ダメージ床 ... 特定の床の上にいるときダメージを受けるギミックがあります。
  • 死亡床 ... 特定の床の上にいると死亡するギミックがあります。落とし穴やトゲの床などに使えそうです。

f:id:ikeball:20200724144214p:plain

Minimal3D ... 3D最小限シーン

MinimalAI3D

AIの動きを確認でいるデモになります。部屋に入ったら撃ってくる、付いてくる等の思考があります。

f:id:ikeball:20200724145040p:plain

MinimalGrid3D

マス目型の移動デモです。ボンバーマンやローグ、シミュレーションゲームが作れそうです。

f:id:ikeball:20200725145515p:plain

MinimalPathfinding3D

移動ルートを計算し、NPCを自動で移動させるデモです。PC上ではマウスクリックでポイントを指定します。

f:id:ikeball:20200725161036p:plain

MinimalPerformance

画面内、外を判定し自動でオブジェクトのON, OFFを切り替えるデモです。

ProximityManagedと言うコンポーネントがついているオブジェクトが対象になります。

f:id:ikeball:20200726125447p:plain

MinimalRooms3D

部屋移動のデモです。サンプルでは3部屋で移動を行う形となっています。

部屋の領域をまたぐとカメラが移動します。

f:id:ikeball:20200726143707p:plain

MinimalSandbox3D

3Dモードで使える機能の紹介デモです。

  • 角度別の坂、壁 ... 10度~90度まで用意されています。初期設定では45度まで登れます。
  • リフト ... 当たると押され、乗ることもできます。
  • 会話 ... キャラの前でボタンを押すと吹き出しが出て話すことができます。
  • ワープ ... 対象に触れたら別の場所へ移動します。
  • コイン ... 対象に触れたら、お金、スコア、アイテム取得
  • シーン切り替え ... 対象に触れたらシーンの切替ができます。
  • 範囲内タイムスケール変更 ... 指定の範囲内にいるオブジェクトのタイムスケールを変更。時間を操る攻撃に使えそうです。
  • 武器切り替え、射撃 ... 武器、弾薬を広い任意の方向へ攻撃ができます。
  • 押せるブロック ... 重さの設定ができます。ジャンプで乗ることもできます。
  • 落ちるブロック ... 一定時間乗っていると揺れだして落ちるブロックがあります。

f:id:ikeball:20200726153043p:plain

MinimalScene3D

3Dモードの移動のみのデモです。

f:id:ikeball:20200726201442p:plain

MinimalSword3D

3Dモード、武器が剣のデモです。CPUも視野に入り次第プレイーに近づいてきます。

剣を振ると、キックが出ます。ジャンプもできます。

f:id:ikeball:20200726201618p:plain

おわりに

自分の作りたいゲームイメージに近い部分があればTopDown Engineをベースに作ってみるのはありだと感じました。色々と作成したくなり悩みます。