Unityで作られているRPGゲームを作るための6つのステップ
19/02/13 17:15:48 19/02/17 19:53:57
Unityでゲームを作ってみたいけれど何から始めれば良いのかわからない、とりあえずRPGでも作ってみようかな、といった状況の人がいるかと思います。
そこでこのページでは、Unityをまったく触ったことのない人でもわかるよう順を追って手順を解説していきます。
Unityをまったく操作したことのない人だけでなく、ある程度経験のある人もざっと目を通すことで気づくことがあるかもしれません。前半は初歩的なことなので、知っている部分は飛ばして知らない部分のみ目を通していただければと思います。
目次
ステップ1. Unityをインストールする
すでにインストール済みの人はリンクを踏む必要はありません。まだUnityをインストールしていない人は、以下のリンクからインストールしてください。
バージョンについては特に作りたいシステムや見ているテキストなどがない場合、最新バージョンをインストールしておけば良いかと思います。何か参考書などを使ってゲームを作る場合は、そこで使用されているバージョンに合わせると良いでしょう。
バージョンが違うと微妙にコードやツールが異なる場合がありますが、大幅に違うわけではありません。バージョンの違いから完全に解説通りにいかない可能性もありますが、少し自分の環境に合わせるだけなので、バージョンの違いはそこまで気にする必要もありません。
ステップ2. 3Dマップの大枠作成
Unityでも2Dの場合もありますが、今回は3Dゲームを作成していきます。そして、まずキャラクターの前にマップを作成します。キャラクターから先に作っても良いのですが、サイズ感等を考えるとマップから作ってキャラクターをそれに合わせていった方が合理的です。
Unityを起動したら新しいプロジェクトを作成し、Assetをロードします。UnityではAsset Storeというものでいろいろなツールをダウンロードできるのですが、このAsset Storeからダウンロードしたものを使用するための設定がAssetです。これでマップの大枠を作ります。
ステップ3. マップの細部の作成
マップの大枠ができたら細部を作りこみます。RPGなら大地や草木などが必要になることが多いでしょう。この辺は自由ですが、基本的に自分で実装するのではなくAssetの機能で設定していきます。
たとえば大地を作る場合、以下のように設定します。
GameObject → 3D Object → Terrain(大地)を選択
これで大地の土台となる平面が登場しました。この上に草木の設定をしていくことでよりRPGらしいリアルなマップになっていくのですが、簡単に設定できることがわかったかと思います。
Unityなしでゼロから作るとなると大地も自分でコーディングしなければならないのですが、Unityを使えば簡単です。そして草木の追加の方法ですが、これもGUIからできます。ウィンドウから木のマークをクリックするだけで木のモデルが追加されます。
同じ方法で草も追加できます。地形もスクリプトなしで変形させることが可能で、ペイント機能でドラッグするだけで直感的に変形させることができます。たとえば、地面を上に引っ張れば地面が隆起します。
ステップ4. キャラクターを動かす
マップがある程度できてきたら、次にキャラクターです。3DのキャラクターでもAssetの機能を使えばスクリプトなしで実現できます。3Dのキャラクターを作るのであれば、unity-chanというAssetがおすすめです。
適当な名前ではありますが、高機能で無料です。Asset Storeでunity-chanと検索すればすぐに見つかります。Unity-chanにはもともとAnimatorコントローラ付いているため、そこから状態遷移の設定を行うことができます。
ただし、詳細な設定を行うにはスクリプトの記述が必要です。
以下はサンプルコードです。
using UnityEngine;
using System.Collections;
[RequireComponent(typeof (Animator))]
[RequireComponent(typeof (CapsuleCollider))]
[RequireComponent(typeof (Rigidbody))]
void Start ()
{
anim = GetComponent<Animator>();
col = GetComponent<CapsuleCollider>();
rb = GetComponent<Rigidbody>();
cameraObject = GameObject.FindWithTag("MainCamera");
orgColHight = col.height;
orgVectColCenter = col.center;
}
コンポーネントの追加・取得、メインカメラの取得、といった作業を行っています。またキャラクターの移動処理に関する処理は以下のような形です。
void FixedUpdate ()
{
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
anim.SetFloat("Speed", v);
anim.SetFloat("Direction", h);
anim.speed = animSpeed;
currentBaseState = anim.GetCurrentAnimatorStateInfo(0);
rb.useGravity = true;
velocity = new Vector3(0, 0, v);
velocity = transform.TransformDirection(velocity);
===中略===
}
transform.localPosition += velocity * Time.fixedDeltaTime;
transform.Rotate(0, h * rotateSpeed, 0);
ステップ5. カメラの設定
カメラはキャラクターの前面、背面、自動、などいろいろな角度からの撮影が可能で、設定できます。Unity-chanのデフォルトでは当たり判定があった際にオブジェクトを追従するのですが、そのせいでユーザーからするとプレイしにくくなることがあります。自分の操作しているキャラクターからカメラが離れるとその間操作できないことになるため、設定を変えます。
Inspector → Auto CamのTargetパラメータが”None”になっていますが、Unity-chanをドラッグ&ドロップして追尾の準備をします。
ステップ6. 画面をキレイする
この作業は余力があればで問題ありません。RPGは画面がキレイな方が臨場感やそのゲーム独自の世界観が作りやすいので、最終的には画面にもこだわった方が良いでしょう。
具体的な方法としてはAntialiasing、Sun Shafts、Screen Space Ambient Occulusion、Depth of Fieldなどの設定がありますが、今回は基本編なので割愛します。
以上のステップで、RPGの基本の基本ができます。この後画面をキレイにするだけでなくゲームの詳細を詰めていく必要があります。
【Unity関連記事】
▼Unityの基礎編
・ 【unityのフリーランス求人・案件情報】エンジニア需要や開発単価、未経験でもいける?
・ 【unity入門】ゲーム開発だけじゃない、Unityで出来ること
▼Unityの外部アセット、リソース編
・ UnityでMMDモデルを自由自在に動かしてみよう!
・ Unity adsを使って簡単に広告を導入しよう
・ Unityのアセットストアの上手な使い方
・ Unityで作られているARアプリをまとめてみました
▼Unityのコンポーネント編
・ Unityのrigidbodyを使って物理演算を導入してみよう
・ コードを使わずにUnityでキャラ追従のカメラを作る方法
・ Unityで簡単にアニメーションを作成する方法をまとめました
・ Unityでオブジェクトを回転させる方法をわかりやすくまとめました
・ Unityのtransformを使ってオブジェクトの座標や回転を操作する
・ Unityのアニメーターを簡単に作成する方法まとめ
・ UnityのShaderの解説と使い方まとめました
・ Unityで「当たり判定」(衝突判定)を付ける方法
・ Unityのgetcomponentの上手な使い方と使用時の注意点まとめ
・ Unityでキャラの移動を制御する方法まとめ
・ Unityのraycastを使って出来ることをまとめました
▼Unityのデフォルト機能、ゲーム製作編
・ blenderで作ったオブジェクトをUnityで組み込んでみよう
・ Unityのコルーチンとは?使い方をまとめました
・ (この記事)Unityで作られているRPGゲームを作るための6つのステップ
・ Unityのパーティクルを使って演出できるエフェクト例
・ UnityでのUIデザインの基礎をまとめてみました
・ Unityのcloud buildの便利な点をまとめました
・ Unityを使って半日でFPSゲームを作ってみよう
人気記事