基本的に、RPGにおけるボス戦の前には主人公とボスとの会話が繰り広げられる展開が多いです。
というわけで今回は、ボス戦に入る前の会話シーンとカメラワークの実装について考えていきます。
【Unity】ボス戦前の会話シーンとカメラワークの実装
まず、会話シーンですが以前おすすめアセットとして紹介した事がある「Fungus」を使って実装します。無料アセットながらとても強力なアセットですので、会話シーンを簡単に作りたい場合は是非おすすめです。
一方カメラワークですが、2台のサブカメラを用意してUnityちゃんが喋っているときは、Unityちゃんを映すようにして、ボスが喋っているときはボスを映すようにしたいと思います。
サブカメラの作成
まずは、シーン上に2台のカメラを作成します。名前は「SubCam1」「SubCam2」としておきます。
カメラの位置を移動させましょう。画像はとりあえずのボスと思ってください。もう一方のカメラは逆にプレイヤーを映すように調整します。
CameraManagerスクリプトの作成
カメラを切り替えるためのスクリプトを作成します。
CameraChangeメソッドを呼び出して先ほど作成した2つのカメラのオン・オフを行います。
続いて、空のオブジェクトを作成してこのスクリプトをアタッチしましょう。インスペクタから2つのカメラを設定しておきます。
Fungusの設定
Fungusをインポートしたら「Tools」→「Fungus」→「Create」→「Flowchart」を選択します。
続いて、プレイヤーとボスのキャラクター情報を会話イベントに登録します。「Tools」→「Fungus」→「Create」→「Character」をクリック。
Name Textには、誰が喋っているのか分かるようにプレイヤーの名前を入力します。同様に同じ手順てボスの分も作ります。
続いて、ヒエラルキー上のFlowchartを選択して「Open Flowchart Window」をクリック。
ゲーム開始時のブロックを選択して名前を「BossBattle」に変更します。
今回使うコマンドは「Nrrative/Say」と「Scripting/Call Method」です。
「+」ボタンをクリックしてそれぞれのコマンドを検索して実装します。
Sayコマンドでは、Characterで喋らせたいキャラクターを指定します。Story Textに実際に喋らせたいコメントを入力しましょう。
何ターン会話を続けるのかによってコマンドの数が異なると思いますが、私は上のフローチャートの画像のように2ターン程ボスと会話をするようにしています。
Call Methodでは、Target ObjectにCameraManagerスクリプトをアタッチしておいたオブジェクトを設定し、Method Nameに実行したいメソッド名を入力します。
後は、喋るキャラクターが変わる際に今作成したCall Methodコマンドを挟んでいけばOKです。