アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE5/UE4】DialoguePluginの活用と他おすすめプラグイン紹介

アドカレ25日目の記事です!

今回はあまり使っていない今月の無料で配布されてた、

幾つかのコードプラグインの紹介と利用方法などを紹介します。

※その他で紹介したいプラグインもあるのでそれ別で紹介していけたらと思います。

※UE5・UE4両方で使えるかと思います。

※UE5.3で検証しています。

※書き間違え等あればコメントください!

DialoguePluginの設定と操作

それではDialoguePluginから紹介していきます。

DialoguePluginの購入リンクはこちらです。

まずはDialoguePluginをインストールしないと始まらないので、

使用しているエンジンにインストールしてあげます。

UnrealEngineのライブラリタグの下の方にある、

マイダウンロードからインストールできます。

dialogPluginをインストール

今回はサンプルプロジェクトが用意されているので、

こちらのサンプルプロジェクトを軸に説明していきます。

https://github.com/CodeSpartan/DialogueDemo

こちらは特にクローンしなくてもZipでダウンロードすれば、

プロジェクトを起動できますのでこちらを活用してみてください。

GithubからZipDownloadを行う。

続いて会話部分の基礎となるDialogueというファイルを選択して、

会話のツリーの流れを作っていきます。

ダイアログのファイルを追加

Dialogueを開くと黄色のノードが一つだけあります。

そちらを右クリックすると各種操作が行えます。

各種操作は下記の通りになります。

Add PC Answer ← プレイヤーの返答になる選択項目用ノード
Add NPC AnswerNPCが返答になる項目用ノード
Add Link ← 選択しているノードにリンク付け
Break Links With Node ←選択したノードのリンクを削除
Break Outgoing Links ← 移行先へのリンクを削除
Break Incoming Links ← 選択したノードへ移行するリンクを削除

他にも別ノードで幾つか選択があります。

Change To PCまたは Change To NPC ← ノードをNPCかPCに切り替え
Delete Node ← ノードの削除

※ちなみにノード以外を右クリックすると「Add Node」が表示されます。

各ノードのリスト設定

ノードにも設定項目がいくつかあります。

Text ← 表示されるテキスト
Is Player NPCかPCの切り替えFlag
Draw Bubble Comment ← コメントを表示するか否か
bubble Comment 吹き出し内のコメント文言の追加
Events ← 設定したイベントごとにアクションを行う(詳細は後述)
Conditions ← 指定した条件に応じて分岐を変更する
Sound ← 指定した音を再生
DialogueWave ← 字幕付きの会話(機能していない?)

各種ノードの設定

一旦作成したDialogueをNPCに適応してあげます。

色々説明したところで実際に設定するのを動画にしてみました。

上記動画のような形で追加していき最終的に今回は下記のような形にします。

DialogPluginの追加対応

ここまでできれば分岐は完了なので今度は各種イベントと分岐を作成します。

まずはイベントの分岐アクションを追加していきます。

その前に今回は一部用意されたキャラクターの一部を修正します。

キャラクターのBPはContent→TopDownBP→Blueprintsの中の、

TopDownCharacterになります。

BPの選択

開いたらBPにflagを追加します。
今回このflagは扉をすでに開けているかどうかを確認しています。

CharacterBP内にFlagを追加

次にイベント用のBPとなるデータを作成していきます。

BPを選択して親クラスをDialogueEventsを選択します。

DialogEventの追加

DialogueEventの方はシンプルに扉を開けるシーケンスを再生して、

何度も開かないようにisOpenのFlagをONにして二度と開かないようにします。

シーケンスを再生してFlagをオンにする

今度はイベント分岐用のBPを作成していきます。

BPを選択して親クラスをDialogueConditionを選択します。

DialogConditionの追加

こちらは親クラスで用意されている関数である「Is Condition Met」を、

オーバーライド指定して活用していきます。

is condition metを選択

isOpenで扉が開いてるかチェックする処理となっています。

扉が開いてるかチェックしているBP

分岐の動作と判定の処理ができたので実際にダイアログに設定します。

Dialogueの各ノードの設定項目にある「Events」と「Conditions」に、

先ほどのBPをそれぞれ指定します。

EventsとConditionのところに追加

下記動画は設定した際の動画になります。

処理の作成の一連の流れは以上になります。

そのほかにもいくつか行えることがあるので紹介していきます。

表示キャラ名を設定することができます。

名前の表示

ダイアログの名前の設定を行うことができます。

大本のダイアログを編集します。

DialoguePlugin内のWidgetを編集します。

Engine → Plugins → DemoDialogueを編集します。

DialogPluginのWidgetの改修

DemoDialogueを開いて関数で「Get_charname」という関数名で、

作成してReturn NodeにStringを一つ追加します。

変数の追加と関数の追加

最後に表示したいノードのTextに「%charname%」と入力します。

ノード内に%charname%を設定

設定して会話するとその通りに表示されます。

会話シーンの文字表示

リッチテキストの追加など

DialoguePluginではリッチテキストも活用できます。

まずはDialoguePluginContent内のRichTextが、

デフォルトで設定されているためこちらを開きます。

リッチテキストのデータテーブルの設定

続いてリッチテキストのデータテーブルを追加して、

好みの色に設定していきます。

リッチテキストの追加作業

設定したらこちらも会話のノードのところに、

「<Row Name>変更する文言</>」という形で変更するようにしてあげます。

リッチテキストを各タグに設定

するとその囲った部分だけが指定した文字色になります。

色の設定文言対応

リッチテキストの説明は以上になります。

・目次に戻る

今回の参考資料

今回紹介した資料に関しては下記になります。

Dialogue Plugin User Guide for UE 5.0+ - Google ドキュメント

Dialogue Plugin - Marketplace - Epic Developer Community Forums

それから私がChatGPTを使っていないので紹介していませんが、

ChatGPT経由の会話が可能です。

設定方法も動画にあるので気になる方はこちらもご覧ください。

Dialogue Plugin: ChatGPT integration - YouTube

・目次に戻る

その他開発に便利な無料配布アセットの紹介

今回紹介できなかった開発に便利そうなアセットを紹介していきます。

※今月の無料アセットの中から抽出しているので、
 こちらを見ている中で取りこぼしもあるかもしれません…

スキルツリーを作成するためのアセットになります。

ブループリントとしてすでに用意されているので、

そのまま活用が可能になっています。

ILIADはUE内で絵をかいたり、テクスチャの書き込みだったり、

ブラシをBPで編集したりできるデザイン用のプラグインになります。

psd(Photoshopのデザインの出力データ)をそのまま、

UMGとして使用することができるプラグインになります。

スナップ位置を指定してその位置に合わせて連結するように、

設定できる配置系のプラグインになります。

RPGの戦闘全般や各種設定を細かく行える

コードプラグインをになります。

アニメーションなどのモーションの流れを確認したり、

変更を可能にしているコードプラグインになります。

インストールしたアセットで不要なものを削除したりするための、

コードプラグインになります。

これは結構な方が利用されているかなと思います。

RPGでよくあるタスク受注形式のタスクを作ったり、

スキルツリー・会話・タスク報酬など多種多様な設定が行える

コードプラグインになります。

簡易的な群衆の動作を作成するためのコードプラグインになります。

高度に最適化されていて数百のAIを表現できるそうです。

以上がその他便利そうなコードプラグインの紹介でした。

・目次に戻る

最後に

様々なコードプラグインを活用して、

皆さんの開発を効率向上につながればよいかなと思います。

ここまで見ていただきありがとうございました。

・目次に戻る