2D RPG / Unity Project

NonFieldRPG

In Development

フィールド移動を中心にしない画面構成で、街・クエスト・戦闘を進める2D RPGです。 ゲームを構成する複数の処理を分け、それぞれを連携させる設計を学んでいます。

Overview

プロジェクト概要

Unity 6とC#を使用して制作している学習プロジェクトです。 Title、Town、Questの3つの主要シーンを用意し、シーン間の移動、会話、探索、敵との遭遇、戦闘、クエストクリアまでの流れを組み立てています。

Status
In Development
Engine
Unity 6(6000.2.13f1)
Language
C#
Libraries / Tools
TextMeshPro / Input System / DOTween / Git

Screenshots

ゲーム画面

城と橋を背景に、RPGとはじめるボタンを表示したNonFieldRPGのタイトル画面
タイトル画面。はじめるボタンからゲームを開始します。
街の背景にクエストへボタンと会話ウィンドウを表示したNonFieldRPGの街画面
街画面。会話表示後、クエストへ移動できます。
森の背景にステージ、進むボタン、HPとATを表示したNonFieldRPGの探索画面
探索画面。ステージを進めながらイベントや敵との遭遇を処理します。
森の背景にスケルトンのHPとプレイヤー能力を表示したNonFieldRPGの戦闘画面
戦闘画面。敵のHPとプレイヤーの能力を表示しています。

Implementation

実装している主な機能

会話表示

文章を一文字ずつ表示し、クリックで全文表示や次の行への移動ができる処理です。会話終了後のイベントも設定できます。

シーン遷移

暗転中にシーンを読み込み、BGMを切り替えてからフェードインする流れを管理しています。

BGM / SE管理

シーンをまたいで利用する管理クラスを用意し、Title、Town、Quest、BattleごとにBGMを切り替えます。

クエスト進行

ステージ進行、探索演出、敵との遭遇、戦闘後の再開、クエストクリアを順番に制御しています。

戦闘処理

敵を選択して攻撃し、HP表示を更新した後、敵が行動するターン制の流れを実装しています。

画面演出とUI

ダメージ時の揺れ、ヒットエフェクト、HP表示、ステージ番号、クリア表示などをゲーム状態に合わせて更新します。

Code Structure

処理の分け方

一つのスクリプトへ処理を集めず、役割ごとに管理クラスを分けています。 それぞれの責務と連携方法を確認しながら、コードを説明できる構成を目指しています。

DialogTextManager
会話文章の表示、入力、完了イベント
SceneTransitionManager / FadeIOManager
フェード演出とシーンの読み込み
SoundManager
BGMとSEの再生・切り替え
QuestManager
探索、敵との遭遇、進行、クリア判定
BattleManager
プレイヤーと敵のターン、ダメージ、戦闘終了

Current Status

現在の状況

基本的なゲーム進行を制作しながら、シーンをまたぐ管理、UIとゲーム状態の同期、コルーチンによる待機処理、複数クラスの連携を学習しています。 現在も制作途中であり、未完成の画面遷移や戦闘終了条件などを確認しながら改善を進めています。