マガジンのカバー画像

3Dローグライクゲームの作り方

110
Unityを使用した3Dのローグライクの作り方についてまとめています。
運営しているクリエイター

2020年6月の記事一覧

【Unity】3Dローグライクゲームの作り方〜Step11-2〜

【Unity】3Dローグライクゲームの作り方〜Step11-2〜

前回の記事はこちら。
前回は体力ゲージなどの表示を行いました。

ステータスの表示ステータスウィンドウを別に作成して表示するというのも確かに手なのですが、今回は表示する項目が少ないので、ゲージの下に簡易表示することで対応しようと思います。
まずMessageWindowが含まれている方のCanvasの階層下にテキストを追加し、名前を「ParameterText」にします。
そしてそれをゲージの下あ

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step11-1〜

【Unity】3Dローグライクゲームの作り方〜Step11-1〜

前回の記事はこちら。
前回はレベルアップの実装をしました。

体力ゲージ(+etc)本ステップでは本来ゲームのレベル調整を行うことになっています。
しかしレベルデザインについては今回は解説しないということになっていました。
なので、筆者の記事では今までのステップで解説できなかった細かい部分の実装について解説する回としたいと思います。
最初に行うのは体力ゲージの実装です。因みに筆者が想定しているデザ

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step13-2〜

【Unity】3Dローグライクゲームの作り方〜Step13-2〜

前回の記事はこちら。
前回はキャラクターを倒して、経験値を得られるようにしました。

経験値が貯まったらレベルアップさせる今回はレベルアップの実装をしていきたいと思います。
ActorParamsControllerクラスに新たなメソッドを追加し、既存のメソッドを変更して下さい。

// メソッドを追加/*** 現在の経験値が貯まっていたらレベルアップする*/public void LvUpJud

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step13-1〜

【Unity】3Dローグライクゲームの作り方〜Step13-1〜

前回の記事はこちら。
前回は敵をランダム配置しました。

キャラクターを倒せるようにする今回からレベルアップのコードを書いていきたいと思います。
まずはキャラクターを倒せるようにするところから始めます。
ActorParamsControllerクラスに新しいメソッドを追加し、体力を減少するメソッドを変更します。

// メソッドを追加/*** 死亡判定*/private bool DeathJu

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-13〜

【Unity】3Dローグライクゲームの作り方〜Step12-13〜

前回の記事はこちら。
前回は自動生成されたダンジョンにマーキングしました。

敵をランダム配置する
今回は敵をランダム配置していきたいと思います。
まずFieldクラスに新しいメソッドを追加し、SetObjectメソッドを変更します。

// 新しいメソッドを追加/*** フィールドに敵を設置する* nameに「Random」が指定されていた場合はその場所にランダムな敵を設置する*/private

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-12〜

【Unity】3Dローグライクゲームの作り方〜Step12-12〜

前回の記事はこちら。
前回は敵を固定マップにて自動巡回させました。

ターゲットが近くにいたら追尾するターゲット(主にプレイヤー)が近くにいたら敵を追尾させるようにします。EnemyOperationクラスに新しいパラメーターとメソッドを追加し、Operateメソッドを変更して下さい。

// パラメーターを追加public int detectDistance = 5;// メソッドを追加/**

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-11〜

【Unity】3Dローグライクゲームの作り方〜Step12-11〜

前回の記事はこちら。
前回はアイテムをランダム配置しました。

部屋と通路の接続口をマーキングする今回は敵の移動AIを改良したいと思います。
まずは固定マップを一周させられるようにします。その為に通路口にマーキングをしましょう。
マップデータファイルを開いて、以下のようにオブジェクトを配置して下さい。

部屋側の方にTypeに「Connection」を指定したオブジェクトを置いて下さい。また、曲が

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-10〜

【Unity】3Dローグライクゲームの作り方〜Step12-10〜

前回の記事はこちら。
前回はキャラクターIDの定数を定義し、オブジェクトの出現テーブルを作成しました。

アイテムをランダム配置するアイテムをランダム配置させてみようと思います。
まずFieldクラスに新しいパラメーターとメソッドを追記し、SetObjectメソッドを以下のように書き換えましょう。

// スクリプトの最初に以下を追記using System.Collections.Generic

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-9〜

【Unity】3Dローグライクゲームの作り方〜Step12-9〜

前回の記事はこちら。
前回はダンジョンの自動生成を改良しました。

キャラクターID今回は最初にキャラクターのIDを列挙定数化する所から始めたいと思います。
まずEActorスクリプトを作成し、以下のように列挙定数を定義して下さい。

public enum EActor{ PLAYER = 0, SLIME = 1}

このID名は適宜書き換えましょう。
これができたら、Paramsクラ

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-8〜

【Unity】3Dローグライクゲームの作り方〜Step12-8〜

前回の記事はこちら。
前回はダンジョンの自動生成を実装しました。

孫の区画に接続する今のままだと自動生成されたダンジョンが一本道なので面白味がありません。なので孫の区画にも接続することで、変化を付けようと思います。
RandomDungeonクラスのCreateRoadsメソッドを変更します。

private void CreateRoads(){ for (int i = 0; i <

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-7〜

【Unity】3Dローグライクゲームの作り方〜Step12-7〜

前回の記事はこちら。
前回は2階のマップを作成し、それを読み込みました。

今回参考にさせて頂いた記事いつもお世話になっております。ありがとうございます!

ダンジョンの自動生成の手順一般的なダンジョンは以下の手順で生成しています。
1. マップ配列(Array2D)を初期化
2. 全てを壁(=1)にする
3. マップ配列と同じサイズの区画を作成する
4. それ以上分割できないところまで区画を2等

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-6〜

【Unity】3Dローグライクゲームの作り方〜Step12-6〜

前回の記事はこちら。
前回は階層移動を実装しました。

2Fのマップを作成する今回は2Fのマップを作成する所から始めたいと思います。
マップデータファイルを開いて、新しいGroup Layerを作成し、名前を「1F」にします。その中に今まで使用していたレイヤーを全て入れましょう。
次は「2F」という名前の新しいGroup Layerを作成し、その中に「Tile Layer」と「Object Lay

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-5〜

【Unity】3Dローグライクゲームの作り方〜Step12-5〜

前回の記事はこちら。
前回は階段メニューを表示できるようにしました。

「上る」、「下りる」を選んだらマップを読み込み直すまずはプレイヤーの位置は考えず、マップを読み込み直す所からコードを書いていきたいと思います。
LoadFieldMapクラスに新しいメソッドを加えて、Startメソッドを変更します。

// メソッドを追加/*** マップを読み込む*/public void Load(){

もっとみる
【Unity】3Dローグライクゲームの作り方〜Step12-4〜

【Unity】3Dローグライクゲームの作り方〜Step12-4〜

前回の記事はこちら。
前回は階段の位置をセーブできるようにし、階段メニューの外形を作成しました。

シーケンス図・改:階段メニュー階段メニューを表示する前に、整理のために階段メニューを加えたシーケンス図を作成しましょう。

階段メニューはプレイヤーが移動した時かつ全員が行動し終わった後に表示されます。つまりターンエンド直前に足下に階段があるかどうか確認すれば良いということですね。

プレイヤーと階

もっとみる