ゲームプログラミング独学ブログ

ゲームプログラミングを初心者・未経験から独学で身に着けるための情報をまとめていきます。Unityを使った2D・3Dゲームの開発方法やゲームクリエイターになるための情報もまとめていきます。

Unityでノベルゲームを作成:CSVファイルの活用法

Unityを使ってノベルゲームを作りたいと思ったことはありませんか?

ノベルゲームは、ストーリーを楽しむことができるゲームで、キャラクターのセリフや選択肢を通じて物語が進んでいくのが特徴です。

今回は、そんなノベルゲームをUnityで作る方法と、シナリオを効率的に管理するためのCSVファイルの活用法について解説します。

 

Unityとノベルゲームの基本

まずは、Unityとノベルゲームの基本からおさらいしていきましょう。

Unityは、C#というプログラミング言語を使用してゲームを作成する強力なツールです。

ノベルゲームの基本概念や、Unityでの開発手法を知ることで、スムーズにゲーム制作を始められます。

 

ノベルゲームとは何か

ノベルゲームは、プレイヤーが物語を読み進めながら、キャラクターのセリフや選択肢を選ぶことで物語が進行するゲームです。

代表的なものに『逆転裁判』や『シュタインズ・ゲート』などがあります。

物語重視のため、テキストの表示やキャラクターの演出が重要な要素となります。

 

Unityの基本操作とプロジェクトの設定

次に、Unityの基本操作について説明します。

Unityを使うためには、まずUnity Hubをインストールし、プロジェクトを新規作成します。

プロジェクトの作成が終わったら、基本的なUIの操作方法や、スクリプトの書き方を学びましょう。

これらの基本操作をマスターすることで、ノベルゲームの開発がスムーズに進みます。

 

CSVファイルの準備と利用方法

次に、ノベルゲームのシナリオを管理するためのCSVファイルの準備方法について解説します。

CSVファイルを使うことで、シナリオデータを効率的に整理し、簡単に管理することができます。

 

CSVファイルとは?

CSVファイルとは、Comma Separated Valuesの略で、データをカンマで区切って記述したテキストファイルのことです。

エクセルやGoogleスプレッドシートなどで簡単に作成でき、多くのプログラムで読み込みやすい形式です。

ノベルゲームのシナリオデータをCSVファイルにすることで、シナリオの修正や追加が簡単になります。

 

シナリオデータのCSV

具体的にノベルゲームのシナリオデータをCSVファイルにまとめる方法を紹介します。

例えば、以下のような形式でシナリオを記述します:


ID,キャラクター名,セリフ,画像ファイル,選択肢1,選択肢2,次のシナリオID
1,主人公,「こんにちは!私は主人公です。

」,hero.png,次に進む,戻る,2 2,ヒロイン,「こんにちは!私はヒロインです。

 

」,heroine.png,次に進む,,3 3,主人公,「次に進む選択肢を選びました。

 

」,hero.png,,,4

 

このように、キャラクターのセリフや画像ファイルのパス、選択肢などを一行ずつ記述していきます。

 

UnityでのCSVファイルの読み込みと実装

それでは、実際にUnityでCSVファイルを読み込み、ノベルゲーム内で活用する方法を見ていきましょう。

CSVファイルの読み込みには、C#のストリームリーダーを使います。

 

CSVファイルの読み込み方法

UnityでCSVファイルを読み込むための基本的なスクリプトを紹介します。

以下のコードを使うことで、CSVファイルの内容を読み込むことができます:


using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.IO;

public class CSVReader : MonoBehaviour
{
    public TextAsset csvFile; // CSVファイルをUnityにインポートしておく
    private List<string[]> csvData = new List<string[]>();

    void Start()
    {
        StringReader reader = new StringReader(csvFile.text);
        while (reader.Peek() != -1)
        {
            string line = reader.ReadLine();
            csvData.Add(line.Split(','));
        }
    }

    public string[] GetLine(int index)
    {
        return csvData[index];
    }
}

このスクリプトでは、CSVファイルを読み込み、各行のデータをリストに格納しています。

 

CSVデータの表示と制御

読み込んだCSVデータを実際にノベルゲーム内で表示し、制御する方法を説明します。

以下の例では、読み込んだデータをテキストとして表示する方法を紹介します:


using UnityEngine;
using UnityEngine.UI;

public class NovelGameController : MonoBehaviour
{
    public Text dialogueText;
    public CSVReader csvReader;
    private int currentLine = 0;

    void Start()
    {
        ShowNextLine();
    }

    public void ShowNextLine()
    {
        if (currentLine < csvReader.csvData.Count)
        {
            string[] line = csvReader.GetLine(currentLine);
            dialogueText.text = line[2]; // セリフを表示
            currentLine++;
        }
    }
}

このスクリプトを使うことで、CSVファイルから読み込んだセリフを順番に表示することができます。

 

まとめ

今回の記事では、Unityを使ったノベルゲームの作成方法と、CSVファイルを活用したシナリオ管理の方法について解説しました。

以下に、重要なポイントをまとめます:

  • ノベルゲームとは、ストーリーを楽しむゲームで、選択肢やキャラクターのセリフが重要
  • Unityは、ノベルゲームを作成するための強力なツール
  • CSVファイルを使うことで、シナリオデータを効率的に管理できる
  • UnityでCSVファイルを読み込み、データをゲーム内で表示する方法を紹介

Unityでのノベルゲーム制作は、初心者でも簡単に始められます。

今回紹介した方法を参考に、ぜひ自分だけのオリジナルノベルゲームを作ってみてください。