2D RPG / Unity Project
NonFieldRPG
フィールド移動を中心にしない画面構成で、街・クエスト・戦闘を進める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
ゲーム画面
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とゲーム状態の同期、コルーチンによる待機処理、複数クラスの連携を学習しています。 現在も制作途中であり、未完成の画面遷移や戦闘終了条件などを確認しながら改善を進めています。