前回まででマップができたので、ゲームをRPGっぽくするうえで重要な「会話イベント」を作っていきます。ここからは最初にインポートした「Fungus」(ファンガス)というアセットを使って、NPC(プレイヤー以外のキャラクター)に近づいたときに会話イベントが発生するようにしてみましょう。
Fungusの概要
まずはFungusの概要を説明します。Fungusは会話イベントを簡単に作れるUnityのアセットで、フローチャートを使って会話イベントを作ります。フローチャートのお陰で視覚的に会話の流れを作れるのでとても便利です。
フローチャートとブロック
それでFungusの「フローチャート(=流れ図)」は次の画像のようなものです。
フローチャートは「ブロック」とよばれる処理のカタマリの繋がりで構成されます。各ブロックには「コマンド」を使って実際の処理内容を書いていきます。
コマンド
各ブロックに書く「コマンド」は処理内容を制御する単純な構文です。
上の画像で言うと「Commands」のリストに並べられているのがコマンドですね。コマンドにはいろいろな種類があり、簡単にメッセージウィンドウに文章を表示したり、顔グラフィックや立ち絵を表示・変更したり、次のブロックを呼び出したりすることができます。
Fungusの基本的な使い方
ではここからFungusの使い方について説明します。Fungusはかなり多機能なので詳しい機能の紹介まではできませんが、基本的な使い方の流れだけをザックリと解説しますね(※具体的な会話イベントは次回作ります)。
Fungusの使い方の手順は次の通りです。
- 「Flowchart」スクリプトを持つオブジェクトを作る
- 「Character」スクリプトを持つオブジェクトを作り、キャラクターを登録する
- フローチャートを編集する
手順1:「Flowchart」スクリプトを持つオブジェクトを作る
まずは新しいフローチャートを作成します。
メニューバーの「Tools」→「Fungus」→「Create」→「Flowchart」を選ぶと、シーンにキノコマークの「Flowchart」オブジェクトが作成されます。
これがフローチャート情報を格納するゲームオブジェクトです。
ちなみにフローチャートをもつオブジェクトはシーンにいくつあってもOKなのと、先ほどの手順で作らなくても既存のゲームオブジェクトにFlowchartスクリプトをアタッチするだけでも作れるので、そのことを覚えておきましょう。
手順2:「Character」スクリプトを持つオブジェクトを作り、キャラクターを登録する
そうしたら、次に会話イベントに登場するキャラクターを登録します。
メニューバーの「Tools」→「Fungus」→「Create」→「Character」を選ぶと、シーンに「Character」オブジェクトが作成されます。ここにはキャラクター情報を格納する「Character」スクリプトがアタッチされているので、そこに名前や顔グラフィックを登録していきましょう。
とりあえず、
- 「Name Text」にキャラクターの名前
- 「Portraits」に顔グラフィック
をそれぞれ登録すればOKです。
なお、Characterオブジェクトは登場するキャラクターの数だけ作りましょう。
フローチャートを編集する
ここまでで準備ができたので、あとはフローチャートを編集して会話イベントを作っていきます。フローチャートのゲームオブジェクトを選択し、「Open Flowchart Window」をクリックしてフローチャート画面を出しましょう。
そうするとブロックが1つだけあるフローチャート画面が表示されます(※もし、新しいブロックを作りたいときは何もないところで右クリック→「Add Block」から作成できます)。
ブロックをクリックするとインスペクターにブロックの編集画面が表示されます。
Execute On Eventsの設定
それでブロックを設定する際にまず重要なのが「Execute On Event」の項目です。ここには「どのタイミングでそのブロックを実行するか?」を指定します。通常は「None」でOKですが、たとえば「最初のブロックをゲーム開始時に実行したい」という場合は最初のブロックを「Game Started」に設定しておく必要があります。
変数の追加
次に、フローチャートには変数を追加することもできます。フローチャート画面左下の「Variables」をクリックすると、変数のリストが表示されます(下の図は実際に変数を追加した場合の例です)。
Fungusでは色々な変数を追加できるので便利です。
コマンドの追加
以上の設定ができたら、あとはコマンドを追加していくだけです。
コマンドは右下の「+」マークから追加できます。Fungusにはいろいろなコマンドが用意されていますが、ここでは最低限知っておいた方が良いコマンドだけ紹介しますね。
- Say:
メッセージウィンドウを表示して、指定したキャラクターに文章を喋らせる。 - Call:
指定したブロックを呼び出す。 - Set Variable:
変数の値を変更する。
ここまで理解できればFungusで会話イベントを作ることができます。次のページではNPCを作り、実際の会話イベントを試作してみます。