頑張らないために頑張る

ゆるく頑張ります

TopDown engineを使って見下ろし型のゲームを作る(1)〜インストールからテンプレートの実行まで〜

Posted at — Aug 16, 2022

概要

TopDown engineとは、Unityで「見下ろし型(TopDown)」ゲームを作成するためのアセットです。3D、2D問わず利用可能ですが、見下ろし型というゲームの形式上2Dのほうが直感的にわかりやすいでしょう。

なお、同じデベロッパーが開発している有名なエンジンでCorgi Engineがあります。こっちはいわゆる2D横スクロールアクションゲームを作るためのエンジンです。

今回からは、このTopDown Engineを使ったゲーム開発を行います。とはいえ、この1記事では言及できないほどの機能や設定を備えているので数回に分けて書いていきます。数回で終わるんかな?_(┐「ε:)_

なにはともあれインストール

基本的には、普段のUnityにおける新規作成の手順に準拠しています。違いは、新規作成した直後のプレーンな状態のプロジェクトに、TopDown Engineをインポートすることです。既存のプロジェクトにインポートする場合、競合を避けるため少なくとも(存在するなら)古いTopDown Engineのフォルダを最初に削除することをオススメします。

また、TopDown Engineが機能するためにいくつかのアセットと依存関係にあります。インポート時にエラーが発生することは考えられますが、これ自体はオフィシャル曰く「通常のこと」らしいです。エラーが出た場合は、こことかを参考にしつつインポートを進めることになると思います。

今回はインストール時を含め、発生したエラーは基本的に掲載する方向で記事を作成しています。ただし、当方の環境では発生しなかったと言って、別の環境で発生する可能性がないわけではないので、そのあたりはご了承ください。

環境

念の為、記事作成時点でも環境をメモしておきます。

新規プロジェクトを作成する

まずは、Unity Hubでいつもどおり新規プロジェクトを作成します。ここはいつもどおり。

pic

ここでは2Dを選択しています。名称は適当に「TopDown」としました。

アセットのインポート

新規プロジェクトが立ち上がったらTopDown Engineを追加します。メニュー「Window」>「Package Manager」を選択します。

pic

Package Managerの画面は、起動した直後だとPackageの欄が「In Project」になっているはず。

pic

Packageを「My Assets」に変更すると、購入済みのアセットが一覧になって表示されるはず。表示されない場合はUnityエディタのコンソールを確認します。

pic

上記のようにエラーメッセージが出ていることがあります。今回は「1回サインアウトしてから再度サインインしてね」とメッセージが表示されているので、そのとおりに従います。

pic

正常にサインインできていれば、上記のように購入済みのアセットが表示されるはず。TopDown Engineが表示されているはずなので、選択して右下のDownloadボタンを押してからImportボタンを押します。ダウンロード済みの場合は最初からImportボタンが押せます。

pic

「本当にインポートしていいの?」と聞かれるので、Importボタンを押します。

pic

上記のようなメッセージが表示された場合は、Install/Upgradeボタンを押します。

pic

今度は、TopDown Engineのどのコンポーネントをインポートするか選択するウィンドウが表示されます。基本的には全部インポートするので、そのままImportボタンを押せばOKです。あとはインポートが終わるまでしばらく待ちます。そこそこ時間がかかる(5分くらい?)なので、軽く休憩でも取りましょう。

pic

インポートが終わると、Assetsフォルダの中にTopDown Engineのフォルダが作成されています。このフォルダには各種デモが格納されています。その中の「LevelSelection」というフォルダ内にあるSceneを実行すると、各種デモを選択できる画面が表示されます。

pic

上記スクショは、LevelSelectionのSceneファイルをダブルクリックして選択した様子。ここからゲームを実行してみます。

pic

任意のゲームを選択すると、自動的にシーンが切り替わってゲームが開始されます。ゲーム実行中にEscキーを押すと左側にメニューが表示され、LevelSelection画面に戻れます。

デモゲーム本体でのキー操作は上記の通りです。なお、ゲームによってキー設定が異なっており、使えるキーと使えないキーが存在します。

それと、現状だと当方の環境では「KoalaProcedural」というデモゲームを実行しようとするとエラーが表示されます。

Tilemap Generator : you need to specify a Tile to paint with.
UnityEngine.Debug:LogError (object)
MoreMountains.Tools.MMTilemapGenerator:GenerateLayer (MoreMountains.Tools.MMTilemapGeneratorLayer) (at Assets/TopDownEngine/ThirdParty/MoreMountains/MMTools/Tools/MMProcedural/MMTilemapGenerator/MMTilemapGenerator.cs:108)
MoreMountains.Tools.MMTilemapGenerator:Generate () (at Assets/TopDownEngine/ThirdParty/MoreMountains/MMTools/Tools/MMProcedural/MMTilemapGenerator/MMTilemapGenerator.cs:82)
MoreMountains.TopDownEngine.TilemapLevelGenerator:Generate () (at Assets/TopDownEngine/Common/Scripts/Procedural/TilemapLevelGenerator.cs:64)
MoreMountains.TopDownEngine.TilemapLevelGenerator:Awake () (at Assets/TopDownEngine/Common/Scripts/Procedural/TilemapLevelGenerator.cs:55)

「KoalaProcedural」以外のゲームはとりあえず動作するので、そっちで確認しています。なお、この記事を書いている現在でもまだエラーが解消していないです。どうしよ_(┐「ε:)_

最小構成のシーン

デモにも含まれていますが、2Dまたは3Dのゲーム向けに「最小構成のシーン」が用意されています。

「Minimal」と名前のつくシーンがそれで、「Minimal3D」なら3D向け、「Minimal2D」なら2D向けのシーンとなっています。「Minimal2D」フォルダに2Dシーンのサンプルが、「Minimal3D」フォルダに3Dシーンのサンプルが格納されています。基本的な内容は一緒ですがカメラのみ異なっているので注意。

ここでは、Minimal2Dからもっともプレーンなシーン「MinimalScene2D」を選択します。このシーンを任意のフォルダへコピーします。

pic

ここではAssetsフォルダ配下に「topdown」というフォルダを作成してコピーし、「MainGameScene」という名前にリネームしています。ここでリネームしたシーンをダブルクリックして開き、ゲームを開始します。

pic

開始すると、こんな感じのゲームが始まるはずです。デモ画面で見たゲームを同じものなのでWASDで動かせますが、最小構成であるためアイテムなどが存在しません。

このシーンをベースにして、プレイヤーキャラクターを自作のものに変更したり、ゲームステージ(TDEではステージのことをレベルというのでTDE関連のドキュメントを読む際は注意)を作成したり、BGMやSEが再生されるよう編集したりなどを行っていくわけです。

まとめ

ここまででインストールから最小構成のシーンまでを準備しました。

2Dに限りませんが、ゲームシステムを含めた環境構築は、ゲームの根っこ部分であり大事なわりに、どうしても派手さがないのでやっててツラくなりがちです。ならない?

こういうアセットで根っこ部分を代用して自分が欲しいシステムを構築するっていうのも、時間や労力の節約になるしその分フォーカスしたいところに注力できるので、個人的にはどんどん取り入れていきたいものです。

次はデモ用プレイヤーを自作のプレイヤーに置き換えるところから再開したいと思います。

reference

  1. TopDown engine
  2. How to install the TopDown Engine
  3. Recipes
  4. 【Unity】【TopDownEngine】TopDown Engine の使い方紹介
  5. TopDown Engine 入門 Part 3 ~最小構成編~
  6. TopDown Engine 入門 Part 4 ~ステージ編~
comments powered by Disqus