【Unity】ボス戦前の会話シーンとカメラワークの実装

基本的に、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コマンド

Sayコマンドでは、Characterで喋らせたいキャラクターを指定します。Story Textに実際に喋らせたいコメントを入力しましょう。

何ターン会話を続けるのかによってコマンドの数が異なると思いますが、私は上のフローチャートの画像のように2ターン程ボスと会話をするようにしています。

Call Methodコマンド

Call Methodでは、Target ObjectにCameraManagerスクリプトをアタッチしておいたオブジェクトを設定し、Method Nameに実行したいメソッド名を入力します。

後は、喋るキャラクターが変わる際に今作成したCall Methodコマンドを挟んでいけばOKです。