🦁

[UE5] 独自のDialogSystemにあたってのメモ

2023/01/23に公開

(学習の傍らにとっているノートです)

Step1: 既存のアセットを使えるか調べる

キーワード「Dialog」などで調べ回って、現存する会話システム関連のアセットをリスト化してみました。
1万円を超えるようなものは最初から除外してしまっていましたが、安いものだとどれも一長一短で、どうにも購入まで踏み切れず。
結局、そこまで複雑なことをする予定はないのと、UE自体の勉強にもなるかなと思って独自実装に踏み切ることに。

Step2: 実装する要件のとりまとめ

NarrativeSystem

シナリオやカットシーンを表現する仕組み自体のこと。

EventScene

何らかの条件によりプレイヤーの自由操作を奪って、カメラが動いたり音楽が鳴ったりダイアログが表示されたりし初めてから終わるまでの1セット。
NarrativeSystemによってコントロールされる。
Conversationを持つことがある。

Conversation

ダイアログが表示されて一連の会話のやりとりが行われてから終わるまでの1セット。
複数のSentenceが置かれる。
特定のDataTableと1:1で紐づくイメージ。

Talker

Conversationに参加するPawn。

Sentence

横幅にあわせて自動改行するためWrapBoxを使う。
複数のCursorCharが置かれる。
Talkerのアニメーション情報、カメラの位置情報、シーケンスなどを持つ。

CursorChar

1文字ずつ抽出してWidget化し、それを表示することで流れていく感じにする際の「現在の文字」を格納

参考にするURL

全体の構成

https://pafuhana1213.hatenablog.com/entry/Soldat-TalkSystem

↑にカメラ操作を組み合わせる参考

https://qiita.com/koorinonaka/items/11109395f4959b26cab4

Step3: 実装

参考・メモ

文字の抜き出し

抜き出した文字をWrapBoxに追加

Discussion