Unityとcorgi engineで初めてゲームを作った話。

はじめに

突然ですが3か月前からゲームを作っていました。

3か月間コツコツと積み上げて、ついにゲームが完成し12月25日(2020年)にSteamで発売することとなりました!

「DRAGON’S TOWER(ドラゴンズタワー)」というタイトルです。

DRAGON'S TOWER on Steam

充実した3か月だったので、ゲーム作成の過程をブログとしてまとめる事としました。

空いた時間の暇つぶしにでもお読みください。

きっかけはYouTube動画

今年(2020年)は、コロナによって何もかもが変わった年。

外に出る時間が圧倒的に減ったので、家に籠る時間も長くなりました。

何もしなくても時間は過ぎて行く…普段から時間があればやりたいと思っていることは沢山あるけど、案外時間ができてもやらないものです。

とにかく今までチャレンジしたかったことを順番に試してみようと思いました。

※このブログもチャレンジの1つです。

そんな中でとあるYouTube動画に出会いました。

ひろはすさんの「ゲームクリエーター養成所」っていう動画です。

ゲームの作り方だけではなく、ゲームクリエイターとして活動するためのノウハウを紹介しているチャンネルですが、このチャンネルの内容がとても心に突き刺りました。

特に影響を受けたのが、ゲームを企画し発売するまでをシリーズ化している動画です。

サブチャンネルの動画ですが、非常に内容が濃く説明も丁寧なので、一気に見てしまいました。

※このシリーズは最近更新は止まってしまってますが、現在公開されている内容は、使用したアプリも含めて参考にさせていただきました。

この動画の影響で火がついてしまい、
ゲームを制作すると同時にゲームを販売するところまでを目標と考えました

そもそも何故ゲーム?

僕らの時代はファミコンが発売されて大ブームとなっていたので、ファミコンのゲームは沢山遊んだし、ゲームといえばファミコンなんですけども、ファミコン以前にゲームを好きになるきっかけとしてパソコンのゲームがありました。

当時はパソコン用の雑誌も沢山あって、雑誌に掲載されているゲームのプログラムをパソコンに入力すれば、そのゲームが遊べたので頑張って入力したものです。

中高生になってゲーム熱は段々と薄くなってきたのですけど、大学受験の際は出来ればパソコンやゲームに携わる仕事がしたいと思っていたので情報系の学科に進学しました。

そして卒業してから1年間はゲーム関係ではないですが、プログラマーとして働きました。

※その後、20年間はプログラムとは全く無縁の生活していたので、プログラミングに関しては初心者同然です…

YouTube動画に出会ったからといっても、ゲームやプログラミングに興味がなければ、動画をみるだけで終わったかもしれませんが、

そんな経緯もあったので改めてゲーム制作にチャレンジしたいと想いがよみがえりました。

あと直接は関係ないんですけど、以下のゼルダの伝説の動画海外のゲームクリエイターの動画を観てモチベーションがあがりました。


ゲームの製作についてはPCさえあれば作業ができるし、仕事以外の時間でもできるので、生活スタイルにあまり影響されません。

また今現在ある環境で始められるのもポイントでした。

ゲーム制作の環境を作る

Unity

まずはゲームを制作するための環境を考えました。

動画を参考に作業を進めるので、ゲームエンジンは「Unity」を使うことにします。

※ゲームエンジンとはゲームを作るための専用のソフトみたいなものです。
Unityは商用利用でも、結構な利益が無ければ無料で利用できるのもポイントです。

Unityの特徴としては「PCのスペックが低くても動く」「解説やアセットが充実している」とのこと。

実際、Unityを学ぶための動画や情報はネットにゴロゴロ転がっています。それを観ているだけでも楽しめます。

アセットとはゲーム開発に必要なツールや素材の事なんですけど、有料のものも有れば無料のものもあります。

かなり強力アセットもあるので、簡単にゲームを作る手助けとなります。

Unityはプログラミング言語としてc#(シーシャープ)っていう言語を使います。
この時点ではc#については理解がありませんでしたが、Unityを使うためにc#の全てを理解する必要はないので、必要に応じて勉強するつもりでした。

また、自分のもっているパソコンが低スペックなので(mouseのwindowsノートPC+ LGの外部モニタ)ちょうどよいです。

Unity のリアルタイム開発プラットフォーム | 3D/2D、VR/AR のエンジン

どんなゲーム?ターゲットは?

まず1本通してゲームを作るとすれば、自分の作りたいものを作るのが近道と考えたので、ターゲットは自分を含めた「同世代のアクションゲーム好き」と決定しました。

大まかにどんなゲームにしたいか、とりあえずまとめてみました。

・2Dの横スクロールアクションゲーム。スーパーマリオmeetsドルアーガの塔をイメージ。
・純粋なアクション操作を楽しむゲームにしたい。スーパーマリオは慣れれば15分程度でクリアできたので、クリアまで時間がかからないもの。
・選択肢はあまりない単純なもの。アイテムを選択する要素も省きシンプルにしたい。
・ジャンプ力、ダッシュ力、攻撃、守備力などの調整で、ただ操作しているだけで楽しいゲーム。
・グラフィックに関して、ファミコンとスーファミの間くらいのドット絵で表現したい。
・色数等の再現にはこだわらず、あくまで雰囲気の再現。
・音楽、効果音はファミコンに近い音で制作。これも雰囲気の再現で音数にはこだわりません。
・攻撃方法について、「ドルアーガの塔」の剣を出して交差する戦闘がとても気に入っていたので、それを取り入れたい。
・出来れば沢山の人に広めたいので、文字情報は少なめにして英語圏の人にも楽しんでほしい。
・ドラゴンを倒したい。
・ボスキャラ4種類。雑魚キャラ15種類ほど。
・アイテムについて。拾ったアイテムは画面上に表示したい。
・アイテムを装備したらキャラに反映したい。
・アイテムは選択できないが段々と集まっていく楽しみは欲しい。

上記のようにゲームの概要を考えました。この時点でタイトルは出来るだけ簡単にと考えていたのですぐに「DRAGON’S TOWER(ドラゴンズタワー)」と決めました。

塔を登ってドラゴン倒しすんだなーって一発でわかります

さて、これをUnityでどのように制作するのか。

まず、Unityって何ができるの?ってところからなんですけど(笑)
ざっくりと以下の要素があれば考えたゲームが制作できると考えました。

・キャラクターのドット絵を描く。
・地形、背景を描く。
・音楽、効果音を作る。
・キャラクタのアニメを制御する。
・地形、背景を置く。
・主人公、敵を動かす。
・主人公、敵の攻撃。
・敵を倒す。
・主人公が倒される。
・アイテムを手に入れてパワーアップ。
・アイテムを表示する。
・音楽、SEを再生する。
・タイトル、エンディング。

この中でドット絵描いたり、音楽作る事以外は全部Unityでできますが、Unity以外にドット絵を作るソフトと音楽を作るソフトが必要になります。

ドット絵は「Piskel」、音楽は「Magical8bitPlug」という無料のプラグイン、効果音は「Bfxr」というソフトをインストールします。詳細は後述。

実際、Unityを使ってキャラを動かすテストをしてみました。

近くにあったクレヨンしんちゃんの絵が目に入ったので、それを左右に動かしてジャンプするテストです。

この場合、実際にプログラミングが必要なのは、キーを押したらしんちゃんを左右に動かす。キーを押すとしんちゃんがジャンプする部分だけです。

※この辺のプログラムは以下の動画を参考にしました。この動画も非常にわかりやすいです。


Unityでこれを実現する場合、地面が当然のように地面になるし、ジャンプ後にしんちゃんが重力によって地面に落ちてきます。

また、しんちゃんが動いた軌跡が残らないよう消す処理をプログラミングする必要ないのです。

と、当たり前の事のようですが、子供の頃のプログラミングはこの当たり前もプログラミングしないといけなかったので自分にとってはすごい事です。

とはいえ、敵を動かしたり、攻撃を判定したり、それなりにプログラミングしないといけない要素は沢山あります。

corgi engine(コーギーエンジン)

そこで今回はひろはすさんの動画でも使用している、2Dゲームに特化したアセット「corgi engine(コーギーエンジン)」を導入することにしました。

corgi engine(コーギーエンジン)は2Dゲームを作る際に必要な様々な機能が詰め込まれたアセットで、実装したい機能のほとんどがプログラミングせずに利用できます。

前述のしんちゃんの動きもcorgi engine(コーギーエンジン)を使えばプログラミング不要となります。

これは感覚でいうとスーパーマリオメーカーに近い感じです。ゲームエンジンって凄い。

corgi engine(コーギーエンジン)は有料のアセットで、自分が購入した時は$60でしたが、この機能を実装しようとしたらどれだけ時間がかかるかわからないので導入いたしました。

自分は、corgi engine(コーギーエンジン)のおかげでゲームが作れたので、超絶おススメいたします!

※導入といっても簡単で、アセットストアでポチって、インストールするだけです。

今はセールで50オフみたいです。

羨ましい…

Corgi Engine - 2D + 2.5D Platformer | Systems | Unity Asset Store
Use Corgi Engine - 2D + 2.5D Platformer from More Mountains to elevate your next project. Find this & more Systems and templates on the Unity Asset Store.

さあ、これで環境が整いゲームの概要も出来あがりました。

corgi engine(コーギーエンジン)については、色々な方が解説のブログをアップしてくれているので、とても参考になりました!

さあ、ゲーム開発

とりあえず最初に主人公を描いてみました。かなりドルアーガの塔な感じです。見習い剣士という設定にしたいので、可愛いキャラになりました。

このキャラが出来た事で全体的なキャラのイメージも湧きました。

ドット絵の制作については「Piskel」という無料アプリを使いましたが、これは本当に使いやすいです。凄く丁寧に基本的な機能が使えるようになっています。

アニメーションのパターンも作れるうえに無料です。

下書きなしでいきなりドット絵を描きたいので、簡単な操作が嬉しいです。

Piskel – Free online sprite editor (piskelapp.com)

できたドット絵を今度は動かす作業になるのですが、corgi engine(コーギーエンジン)ではキャラの機能を色々とカスタム出来るのでとても便利。

今回の主人公にはジャンプ(1段)とダッシュ攻撃、泳ぎとロープに捕まるスキルもつけときます。この辺の動作についてはプログラミングは不要です。

※他にも銃を撃ったり、ロケット噴射が使えたり色んなスキルがあります。

主人公のキャラができたところで、全体的なマップの広さをイメージするために、レンガの絵を描いてマップをレンガで区切ってみました。

大体100画面分くらいのマップをイメージして大まかな枠組みを決めてみました。このマップの中を動いているだけでも、かなりワクワクします。100画面を移動するだけで結構時間がかかるものです。

次にボスキャラのドラゴンを作りました。ドラゴンのドット絵を描くと同時に、動きも考えます。

※このボスキャラから作るという方法もひろはすさんの動画を参考にしました。

ボスキャラにも色々なタイプがありますが、今回のボスキャラは何はともあれ強いタイプにします。小細工なしに強いやつ。

火に合わせて当たり判定の位置を変えたり、火を吹いた際に音がでるようにしたり、ここで敵キャラを作る際の基本操作が学べました。

corgi engine(コーギーエンジン)ではAIブレインという機能があって、プログラミング無しに敵キャラの動作を指定する事ができます。

例えば…とりあえず敵キャラを左右に動かして、プレイヤーが敵キャラに近づくと攻撃を仕掛けるとか、

一定時間空けてから次の行動に移るなどの行動を決めたり、敵キャラは飛ばす事も出来るし、その延長で泳がす事もできます。

組み合わせれば結構な数の動作を作ることができます。

ボスキャラの中で特に大変だったのはタコのキャラクター

水の中を自由に動き不規則にジャンプする動作は色々と試行錯誤しましたが、中々良く出来たと思います。

敵キャラの作り方は理解できたので、あとはひたすらドット絵を描いて行く作業。

ドット絵については描いてはボツ、描いてはボツだったので単行本一冊くらいは絵を描いたと思いますが、作ったキャラクターが動いてくれるのはとても感動するし楽しいです。

ここまでプログラミングをせずに制作ができたのは、corgi engine(コーギーエンジン)のおかげ。

ただ、corgi engine(コーギーエンジン)は英語のマニュアルしかないので、corgi engine(コーギーエンジン)の機能を理解するのには少々苦労します。

※英語をちゃんと読めるわけではないので、Google翻訳の機能にお世話になりました。たまに英語の方がわかりやすいときもあります(笑)

特に苦労したのがルームシステムという機能です。これは一定のエリアを一つの部屋として管理する機能です。

以下の動画やドキュメントを参考にしました。

Rooms System | Corgi Engine Documentation
This page explains in details how to split a level into

ドラゴンズタワーで言うとゲーム画面は100画面ありますが部屋としては全部で25個くらいの部屋で管理しています。

部屋に入ったら敵キャラが全部生き返るとか、部屋を出た時に敵キャラを一旦消去するなどの動作を決める事が出来ます。

ほとんどの機能はcorgi engine(コーギーエンジン)の機能でおぎなえましたが、アイテムの動作についてはプログラミングが必要となりました。

corgi engine(コーギーエンジン)でもアイテム用のUIなど用意はあるのですが、多機能なので、単純なUIなら作った方が早そうでした。

実際にプログラムを組んだのは以下の機能です。

・アイテムを拾った際に画面に表示する。
・アイテムを拾った際にプレイヤーのパラメーターを変化させる。
・アイテムによりアニメを切り替える処理。
・敵が物を落とす処理。
・ダッシュ攻撃中無敵にする。
・ゲームオーバー処理。
・エンディング処理。

基礎的な内容しか使ってないですが、勉強しながら実装したのでそれなりに大変でした…

ある程度ゲームとして形になってきたので、ビルドを行ってみました。
ビルドというのは、Unity無しにゲームだけ単体で実行できるようにする作業です。

Unityではビルドをすればwindows、Mac、Android、iPhoneなどで実行できるファイルを作る事ができます。

一つゲームを作れば色んなプラットフォームでゲームが遊べるのは本当に素晴らしい機能です。

このビルドを行うと、ゲームの最終系を確認する事ができて、この段階で気づく事も多いので、こまめにビルドして遊んでみる事は大事です。

自分で作ったゲームを自分で評価するのは難しいことだと思うんですが、自分的にはとても面白いゲームができたと感動しました(笑)ファミコン時代のゲームの感覚が盛り込めたと思います。

コツコツとトライアンドエラーを繰り返して積み上げて作ったのですが、最後まで頭を悩ませたのが、主人公が壁をすり抜けてしまう現象です。

これは調べると対処方があるのですが、ごく稀にですが、特定の場所でどうしてもすり抜けてしまう…特定の場所だったので、ここは割り切ってマップを変更しました。出来ないものは出来ない(笑)

ゲームのタイトルはとりあえず荒いドット絵風で描いてみたんですが…

Steamに提出する画像では解像度が高いタイトルが必要と感じたのでアウトライン化して綺麗に仕上げました。

ゲームの大筋は出来たので、マップに少しずつ背景や小物を加えて行くわけですが、ゲーム中には特別に触れてないですけど、細かい裏設定見たいのを考えながら作りました。

自分しか知らない設定ですが、ただ黙々と作るよりも楽しかったです。

ゲームを作るうえで隠れキャラみたいのも作りたいと思ったのでお姫様をつくりました。めっちゃ理不尽な場所に隠れています。

一応マルチエンディングになってるので、どなたかが発見してくれるのを楽しみにしています。

効果音については「Bfxr」という無料アプリで作成しました。

Bfxr. Make sound effects for your games.

このアプリはランダムで効果音を作ってくれます。何度も効果音を作ってるとそのうち自分の期待超える効果音が生まれたりします。

発想自体も面白いし、ランダムだけではなくカスタマイズできるのも良いです。

パワーアップの音とかダッシュの音等、ゲーム中の効果音はほとんどこのアプリで制作しました。

特にドラゴンの炎の音が理想通りの音に仕上がって気に入っています。

そしてBGMは「Magical8bitPlug2」というプラグインと無料のDAW(Cakewalk)で作りました。

https://ymck.net/app/magical-8bit-plug

https://www.bandlab.com/products/cakewalk

「Magical8bitPlug2」はファミコン風の音楽を作るために特化した素晴らしいプラグインです。

使える音色は大きく分けて矩形波、三角波、ノイズの三種類。矩形波がメロディ、三角波がベース、ノイズがドラムの役割になります。

ノイズの音色だとドラムのバスドラの音がないので、ベーシストとしては非常に作りづらい…でもバスドラがないのがファミコンの特徴というか大きなポイントです。

今のPCで使えるオーディオインターフェイスがないので、まずiPhoneのガレージバンドで作曲して、それをポチポチとPCに入力する方法で作りました。

ボスの曲が4曲、メインBGM、エンディングの曲と全部で6曲。

1番気にいっているのはドラゴンのBGMで、めっちゃ速弾き風ギターが入ってます。

エンディングの曲もお気に入りなので是非聴いてもらいたいです。

というわけで、このような作業を積み重ねて、ゲームは完成しました。

トータル3か月の短期間ですが寝てる時間と仕事の時間以外はすべて費やしたので、感覚的には1年くらいたっている気がしています。

※Steamで販売するための、手続きについても記録に残す予定ですが、更に長くなるので今回はここまで力つきました…

子供の頃に憧れていたゲームを自分で作る作業は、想像以上に楽しめました。大げさにいうと夢の実現…チャレンジして良かったです。

もし興味を持たれた方はぜひチャレンジしてみて下さい!!

タイトルとURLをコピーしました