UE5で会話システムを実装する方法②
こんにちは! かにまろです。
前回の続きで、今回はブループリントを設定していく前準備です!
前回の記事は、下のリンクからご覧ください。
▼前準備編
BPI_Interactをつくる
まずは、BPI_Interactから作っていきましょう。
前回の記事の図にある通り、BPI_Interactに情報が預けられるときに走る処理がいくつかあるので、最初にこれがあるとブループリントの作業がしやすくなります。
コンテンツブラウザの追加ボタンを押して、「ブループリント>ブループリントインターフェース」を選んでください。
追加したブループリントインターフェスをBPI_Interactとしました。
BPI_Talkとかでも良いのですが、会話の他に"調べる""拾う"等もここにまとめていきたいので、この名前にしています。
画面右側の「マイブループリント」から新しい関数を追加して、BPI_TalkStartと名付けましょう。
同じやり方で、BPI_TalkEndという関数を追加してください。BPI_TalkStartは、会話開始時に各BPから情報を受け取って別のBPに流す関数、BPI_TalkEndは会話終了時に情報を受け取って流す関数です。
次は、これらの関数に渡せる情報を設定していきます。
「BPI_TalkStart」を選択した状態で「詳細>インプット」のプラスを選択してください。
会話ウィンドウの情報を受け渡しできるようにしたいので、追加されたNewParamのBooleanをクリックして「WBP_Talk」を検索してオブジェクト参照として入れてください。
NewParamは、わかりやすいように「WBP_Talk」に変えておきましょう。
同じ手順で、他にもインプットを追加してください。
EndTalk:会話中かどうかを各BPに知らせるものです
NPCName:会話ウィンドウに表示するNPCの名前です
TalkText:会話ウィンドウに表示する会話テキストです
NPC:会話中のキャラクターは誰かを指定するものです
TalkTextは、1つのデータに複数会話を入れておきたいと思います。
1度話しかけたら、「おはよう!」「今日はいい天気だね!」のように、続けて複数の会話を表示するイメージです。
Stringの右側の楕円をクリックして、単一ではなく配列を選んでください。
後は、BPI_TalkEndを設定したらBPI_Interactの設定は終わりです。画像を参考に、インプットを設定してみてください。
終わったら、左上からコンパイル→フロッピーアイコンから保存しておきましょう。
Struct_Talkをつくる
会話データを作るにあたり、会話データにはどんな情報を入れるかをルール化しておく必要があります。コンテンツブラウザの追加から、「ブループリント>構造体」を追加し、名前を「Struct_Talk」に設定してください。
左上の「変数を追加」を押して、画像の通り3つの変数を設定してください。TalkTextのところは、非表示になっている欄を開いて「複数行テキスト」にチェックを入れておいてください。
NameTextとTalkTextは、BPI_Interactに設定したものと同じ用途です。CanBeTalked?は、会話のフラグを設定するために用意しました。この会話を再生していい場合はTRUEに、ダメな場合はFALSEに切り替えて使う想定です。(まだこのパラメーターをちゃんと管理できるかわからないのですが……)
DT_TalkDataをつくる
Struct_Talkの設定が終わったら、会話データを用意しましょう。
コンテンツブラウザの追加から、「その他>データテーブル」を追加しましょう。
続けて出てくる画面では、先ほど作った「Struct_Talk」を選んでください。
データテーブルが追加されたら、名前を「DT_TalkData」にしておいてください。
「DT_TalkData」を開くと、このようになっています。
行の名前は、一旦上から順に1、2、3…と入れていく運用で考えています。NameText、TalkText、CanBeTalked?は、先ほどご説明した使い方をします。
行をクリックして、画面下にパラメーターを入れましょう。
私はこのように入れましたので、ご参考までに。
BP_NPCをつくる
最後にNPCを用意しましょう!
下の記事の、「NPCを作る」項目を参考に、NPCを入れておいてください。
アクションガイドを実装するブループリントの設定はやらなくて大丈夫ですが、ブループリントの実装はアクションガイドを入れている前提で進めていきますので、わからなくなっちゃいそうな方は済ませていただいたほうが良いかもしれません。
いったんここまで!
今回の記事ではここまでとします!
これで、実装に必要な要素がそろいました。次は、各ブループリントの中身について説明していきますので、記事の更新をお待ちいただければと思います🙇♀️