【UE4】会話ウィンドウを作ろう
できること
会話ウィンドウを作ることができる。
用意するもの
- 構造体
- データテーブル
構造体を次のように作成
- Command・・・・・・このテキストが呼ばれるイベントのタイトル
- CharacterName・・・・・・会話ウィンドウで表示されるキャラクターの名前
- Text・・・・・・会話ウィンドウで表示される会話内容
- Enter・・・・・・Trueになるまでが同じページ。 入力待ちをする。
- Call_Event_NO・・・・・・会話終了後に呼び出すイベントの番号
・・・あれ?なんでCall_Event_NO だけスネークケース(文字の区切りがアンダーバー)になってるんだろう。
Enterが言葉で説明しようとすると難しい。
データテーブル
構造体だとチンプンカンプンだと思われます。なので例
scene_01を呼び出すと次のような感じ
-------- -------- -------- -------- -------- --------
女の子
ママ~うさぎさんが (EnterがFalseなので次の行も同じ1ページにいれよう)
月にお団子を持ってっちゃった~ (EnterがTrueなのでプレイヤーの入力待ちをしよう)
<<プレイヤーの入力>>
(お、プレイヤーの入力が来たぞ!)
(scene01はこれで終わりなので、Call_Event_NOが1のイベントを呼び出そう)
-------- -------- -------- -------- -------- --------
文字を表示してる部分
(階層)
会話ウィンドウ(今回必要なイベント会話をページの形に成型して、まとめて”会話スクリーン”に渡す)
L 会話スクリーン(文字を1ページずつ表示する)
緑色の文字はキャラクター名
白色の文字が本文
下記は会話スクリーンのBP
簡単に言うと、こいつに本の1章をちぎって渡して合図を送ると1ページずつめくってくれる。
合図が来たけど、めくるページがないとないよと言ってくれる。
ページを1つ進めたとき、左の3つのイベントから呼び出されます。
キャラクター名と本文を画面に表示して、次のページがなかった場合フラグを立てる処理を行ってます。
そしてフラグが立った状態でイベントを呼び出すと"会話ウィンドウ"に終わったとおくる。
Call_Eventの先はこういう感じで呼び出しイベントを作ってます。
その先は同じ感じでレベルBPへ繋がってます。
終わり
色々なプロジェクト、色々な場所に流用する予定で作ってたのに、1つのレベルBPにベッタベタにこびりついてしまった・・・
イベントを動的に呼び出したいなぁ
データテーブルも自由に変更できる方法をまだしらないので、ここらへんも自由に変更できるようにしてみたい。
あとは、色々なフォント使ってみたいな。