Unityで東京版のGTAのようなゲームを開発してみた - IG Unityゲーム開発部

Unityで東京版のGTAのようなゲームを開発してみた

記事タイトルの通り、Unityで東京版GTAのようなゲームを開発してみます。

実際に開発してリリースした情報

以下のIGジャパン公式サイトで実際にリリースした情報をまとめています。

本ゲームを開発する環境

本ゲームを開発する環境は以下です。

  • Windows 11 Pro
  • Intel Core i7
  • NVIDIA GeForce RTX 4060
  • Unity 6
  • URPのプロジェクト

使用するアセットと各アセットの詳細

以下のアセットをアセットストアで購入して使用します。

  • Japanese City
  • Character Customizer
  • Invector ShooterとInvectorのアドオン
  • MIS (MyMobilin)関連アセット
  • Realistic Car Controller
アセット名用途価格
Japanese City東京調の街のマップ$299.99
Environment Sounds Pack街の環境音$19.99
AllSky Free – 10 Sky / Skybox Set空の設定$0
Character Customizerキャラクターの3Dモデル$119.99
Invector Shooter(Invector Third Person Controller – Shooter Template)キャラクターの操作$89.99
Invector Shooter Cover Add-onキャラクターの操作$24.99
Invector FSM AI TemplateNPCなどのAI$49.99
MIS-Middleware For Invector Templateキャラクターの操作と車の操作の統合$0
MIS-CarRider-RCCキャラクターの操作と車の操作の統合$34.99
Realistic Car Controller
※Invectorとの統合の関係でProではなく無印版を使用
車の操作$40
Realistic Traffic Controller車の操作$20
Dialogue System for Unityキャラクターの会話$95.00
Easy Save – The Complete Save Data & Serializer Systemデータのセーブ$59.00

開発費はトータルで??ドル(日本円1ドル=150円で計算:円)になります。消費税は別途かかります。Unityのアセットは頻繁にセールをやっているので、定期的にアセットストアを確認することで安くアセットの購入費を抑えることができます。

Japanese City

日本の東京を舞台にしたマップのアセット。今回はこのアセットのマップをもとにゲームを開発していきます。

Environment Sounds Pack

環境音を再現します。

AllSky Free – 10 Sky / Skybox Set

空の設定ができる無料アセットです。

Character Customizer

Unity内で3Dのキャラクターモデルを作成するアセットです。

Invector Shooter

InvectorのShooterアセットを使って銃でのアクションを実装します。

Invector FSM AI Template

InvectorのAIに関するアセットです。市民や銃を持っている敵など、様々なAIを実装できるテンプレートです。

MIS-Middleware For Invector Template

MyMobilinが提供する、Invectorと他のアセットを紐づけるために必要なミドルウェア、テンプレートです。

https://assetstore.unity.com/packages/add-ons/mis-middleware-for-invector-template-201846

MIS-CarRider-RCC

Invector と Realistic Car Controller を統合するために使います。MIS-Middleware For Invector Templateと組み合わせて使用します。

https://assetstore.unity.com/packages/add-ons/mis-carrider-rcc-207824

Realistic Car Controller

車の操作に関するアセットです。MIS-Middleware For Invector TemplateでInvectorと統合してInvectorのキャラクターが車に乗って車の操作をできるようにします。

Dialogue System for Unity

キャラクターの会話や、クエストなどの機能を実装します。

Easy Save – The Complete Save Data & Serializer System

セーブ機能を実装します。

アセットのインポートとセットアップ

まずは上記で紹介したアセットをプロジェクトにインポートしていきます。今回はUnity 6.0(6000.0.40.f1)でURPのプロジェクトを立ち上げます。

Windows11のパソコンでUnity6のURPにアセットをインポートしていく

アセットをインポートしていきます。Windows11、Unity6、URPのプロジェクトにインポートしていきます。

インポートするアセットの順番は以下です。

  1. RCCP
  2. Invector
  3. MIS Middleware他MISシリーズ
  4. Japanese City
  5. FSM AI Template
  6. Character Customizer
  7. SkyBox
  8. Environment Sound

RCCPのインポート

車の操作に関するアセット、RCCP(Realistic Car Controller Pro)からインポートしていきます。
※ProがMIS-CarRider RCCと互換性がないのでProではなく無印を使用しますが、いったん誤ってProをインポートしてしまったのでその証跡も掲載しておきます。

※MIS CarRider RCCがPro対応していないので無印のRCCをインポートしなおしました。

Invector Shooter Template

Invector Shooter Templateをインポートします。

RCCPがインポートされているプロジェクトにInvectorをインポートしていきます。

MIS Middleware For Invector Template

RCCPとInvectorを組み合わせるためにMobilinのアセットをインポートしていきます。

まずはMIS-Middlewareから。

次にMIS-CarRider RCCをインポート。

以下の記事で詳細をまとめています。以下の記事に従ってInvector とRCCが紐づけられていることを前提として以下話を進めていきます。

Japanese Cityのインポート

次に街のマップをインポートします。

ピンク色なので訂正します。

Assets > JapaneseCity に入っているURP向けのUnity Packageファイルを実行します。

訂正できました。

SkyBoxをインポート

空の設定をしていきます。以下のアセットをインポートします。

あとでゲームシーンに対してLightningタブから空を設定します。

キャラクターに関するアセットをインポートする

以下のキャラクターに関するアセットをインポートします。

アセットをインポートします。

街の環境音に関するアセットをインポートする

街の環境音に関するアセットをゲーム内に取り込みます。

実際に開発していく

アセットをインポートし終わったので実際に開発を進めていきます。

Japanese Cityのデモシーンをベースに開発する

マップのアセット、JapaneseCityのデモシーンをベースに開発します。

以下のデモシーンをコピーして開発を進めていきます。

Assets > Scenesにシーンをコピーしました。

InvectorとRCCの車をシーンに追加する

まずはMyMobilinのデモシーンを開いて、その後そのシーン上にある必要なゲームオブジェクトをコピーしたシーンに貼り付けます。

以下のゲームオブジェクトをコピーします。

JapaneseCityのデモシーンをコピーしたシーンにそのゲームオブジェクトを貼り付けます。

MyMobilinのデモシーンのマップが残っているので無効化しておきます。右上の「Scene」の左横にあるチェックボックスをクリックしてチェックを外します。

車の場所とキャラクターの場所が高すぎるので下に下げます。ゲームオブジェクトを選択した下へ移動します。

一応関連するゲームオブジェクトをすべて選択して下に下げます。

この状態でいったんPlayモードにして動作を確認してみます。

まずは左上のFile>Saveからシーンの編集を保存します。

次に再生ボタンをクリックしてPlayモードにします。

問題なく動きましたが、影が濃すぎるので調整します。

影の濃さの調整をする

Window>Rendering > LightningでLightningタブを開きます。

Baked Lightningmapsタブを開き、+ボタンを押してLightning Dataを設定します。

いい感じに影が薄くなり、見やすくなりました。

シーンにSkyBoxを設定する

LightningタブのEnvironmentからSkyBox Materialを選んで空を設定します。

Default-SkyboxをEpic_BlueSunsetへ変更しました。

この状態でPlayモードにして動作を確認してみます。

問題なくきれいな空が表示されました。

ここまでの段階での開発の状態を動画にしました。

Character Customizerでキャラクターのデータを作る

Character Customizerのデモシーンを参考にしてキャラクターのデータを作成します。

Invectorのテンプレートにキャラクターを適用させる

インポートしたキャラクターのアセット(Character Customizer)のデータをInvectorに適用してキャラクターの操作をできるようにします。

ある程度できてきたら実際に操作してみる

Playモードにして動作することを確認します。

まとめ

GTAのようなゲームを東京で開発してみました。