Unityのアセットストアで購入したアドベンチャーゲーム制作アセットAdventure Creatorの公式サイトに掲載されている英語のチュートリアルを翻訳しながら進行中。今回は会話の作成を勉強します。
今回はチュートリアルで作成するセリフ部分も日本語(適当)に翻訳して進めていきたいと思います。
プレイヤーにNPCと会話させることは、アドベンチャーゲームの共通の特徴です。彼らは、プレイヤーが会話の選択肢を選択して、NPCから反応によって動作します。このチュートリアルでは、カバについて2階層の会話ツリーを作成します。誰もがカバを好きだから!
画像:カバのイラスト かわいいフリー素材集 いらすとや
会話をするにはNPCが必要ですが、このチュートリアルではキャラクターを作成することはありません。こちらでいくつかのキャラクター制作のチュートリアルをみることができます。
デモのために、NPCスクリプトをGameObjectに添付するだけで、簡単に「空の」NPCを作成できます。このスクリプトはそれ自体ではグラフィックスやアニメーションを生成しませんが、会話にはプレイヤー以外のスピーカーを割り当てることができます。
手順としては、[Hierarchy]ウィンドウ > [Create]ボタンをクリック > Create Emptyを選択。作成されたGameObjectの名前を”My NPC”に変更します。[Inspector]ウィンドウ > [Add Component]ボタンをクリック。 > Adventure Creator > Charactars > NPCを選択ます。NPC (Script)コンポーネントの設定は今回は変更しません。
音声テキスト(セリフ字幕)とプレイヤーの対話オプションの両方を表示するメニューを定義する必要があります。こちらでは、メニューシステムのチュートリアルを見ることができます。
しかし、デモゲームには、必要なものすべてを持っている独自のメニューセットが付属しています。[AC Game Editor] > [Menu]タブ:Menu managerの上部で、Asset file: をDemo_MenuManagerに設定して、ゲームにロードするだけです。
しかし、”Demo_MenuManager”を割り当てるとファイル名の下に注意メッセージが表示されます。
デモ用のManagerファイルはAdventure Creatorアセットをアップデートした際に上書きされてしまい、設定した内容を失います。New Game Wizard で新しいManagerセットを作成してください。
というわけで、”Demo_MenuManager”を複製(ショートカットキーCtrl+D)して使用しましょう。
これらのメニューは、New Game Wizardを使用するときにNanagerファイルを保持することを選択した場合、Menu managerにも表示されます。
今回は新規のシーンファイルを使用するので、メニュー:File > New Sceneを選択。[AC Game Editor] > [Scene]タブ:Scene manager > Basic structure > Organise room objects: [With folders]ボタンをクリックしてシーン階層を作成しましょう。
これで、ダイアログツリーを構築する準備が整いました。このツリーの各「レベル」は別々のConversationプレハブに保存されます。[AC Game Editor]ウィンドウ > [Scene]タブ:Scene manager > Scene prefabs > Logoc > [Conversation]ボタンをクリック。[Conversation]パネル > New prefab name: フィールドに”Hippo base conv”と入力。[Add new]ボタンをクリック。
このオブジェクトは、質問のような他のレベルに分岐できる会話階層の「ベースレベル」を保存します。[Hierarchy]ウィンドウ > _Logic > _Conversations > Hippo base convを選択し、[Inspector]ウィンドウを表示します。
プレイヤーに3つのオプションを選択させてみましょう。Dialog options > [Add new dialogue option]ボタンを 3回クリックします。
オプションが選択されると、そのプロパティを編集することができます。一番上のものは、メニューに表示されるラベルテキストです。3つの対話オプションのLabel: フィールドを次のように設定します。
プロパティリストのInteraction: フィールドに注目してください。ここでは、オプションが選択されたときに実行されるアクションのリストを定義できます。ただし、2階層の会話を作成するため、これらのアクションを一度に定義する方が簡単になります。それが今のところ意味することを心配しないでください。ただ、これらのフィールドを空白のままにしておきます。
[AC Game Editor]ウィンドウ > [Scene]タブ:Scene managerに戻り、別のConversationプレハブを作成します。今回は”Hippos questions”と名前を付けます。前と同じように、3つの対話オプションのLabel: フィールドを次のように設定します。オプションが設定できたので、それらをトリガーにするアクションを作成し、レスポンスを処理することができます。[AC Game Editor]ウィンドウ > [Scene]タブ:Scene manager > Scene prefabs > Logoc > [Cut scene]ボタンをクリック。”Talk about hippos”という名前で新しいCutsceneプレハブを作成します。
Cutsceneプレハブ”Talk about hippos”に作成するアクションには分岐オプションが必要なので、[ActionList Editor]ウィンドウ内で編集するのがいいでしょう。このウィンドウは、[Hierarchy]ウィンドウ > _Cutscenes > Talk about hipposの右側にあるアイコンをクリックすると簡単に開くことができます。(またはメニュー:Adventure Creator > Editor >ActionList Editorを選択)
編集しやすいように[ActionList Editor]ウィンドウを大きなスペースにドッキングします。最初のアクションのAction type: フィールドを[Dialogue] [Start conversation]設定します。そして、Conversation: フィールドを[Hippo base conv]に設定します。
Conversationプレハブの設定でDialgue options > Interaction: フィールドを空白にしたのを覚えていますか?これはプレイヤーがCutsceneでオプションを選択したときに何をすべきかをゲームに伝えるための設定箇所です。Override defaults?をチェックします。3つの出力ソケットが表示されます(各オプションに1つずつ表示されます)。
“もう行く時間です”から始めて、上方向に進みましょう。アクションの下を右クリックし、メニューから[Add new Action]を選択します。3番目のオプション”もう行く時間です”の出力ソケットから矢印をこの新しいアクションにドラッグします。他の方法としてはソケットを空のスペースにドラッグするとアクション作成されて接続できます。
この新しいアクション(および接続する他のアクション)は、プレイヤーが3番目のオプション”もう行く時間です”を選択したときに何が起こるかを指定します。アクションを次のものに置き換えます。
Player line [✓]
Line text: [もう行く時間です!]
2番目のアクションは実行が終了すると[Stop]に設定されるため、Cutsceneは終了し、会話は終了します。このブランチが終了したら、ノードの左上にある矢印[ ]をクリックして、これらのアクションを両方とも折りたたみ、[ActionList Editor]ウィンドウのツールバーにある[Auto-arrange]をクリックします。
次に、2番目の選択肢の応答を作成しましょう。2つの新しいアクションを作成し、次のように設定します。
Player line [✓]
Line text: [もちろん私はカバが大好きです。]
再び、アクションを折りたたみ、それらを自動配置します。
しかし、この選択肢については、これら2つの会話アクションが完了したら3つの選択肢に戻りたいと思います。これを行うには、2番目のActionの出力ソケットから[Dialogue: Start conversation]アクションにワイヤをドラッグするだけです。
最初の対話オプションの準備が整ったので、2階層目の対話、Hippos questionsのConversationプレハブを表示することができます。最初選択肢の出力ソケットから次の2つのアクションを作成します。
1番目の[Dialogue: Play speech]アクションを折りたたみ、2番目のアクションのActiontype: フィールドを[Dialogue] [Start conversation]に設定、Override defaults?をチェックします。
ということで、1階層目の会話ができたところで、いったんゲームを再生して確認してみましょう。再生する前にCutsceneプレハブ”Talk about hippos”をゲームスタート時に実行する設定が必要です。[AC Game Editor] > [Scene]タブ:Scene manager > Scene cutscenes > On start: フィールドにCutsceneプレハブ”Talk about hippos”を割り当てます。
ゲームを再生すると画面左側に選択肢が表示されます。マウスクリックするとセリフは画面中央下に表示される形になっています。
ちゃんと設定した通りにセリフが表示できました。
ちょっと長くなったので今回はここまでにしたいと思います。次回は2階層目の会話の作成を進めていきます。