当サイトを閲覧いただきありがとうございます。
本記事では、Game Creator 2のモジュールのひとつである「Dialogue」(ダイアログ・会話システム)について詳しく解説します。
DialogueはNPCとの会話・分岐選択肢・ランダム返答・ポートレート/表情・スキン切替・タイムライン付きアニメ連携・動的値差し込みまでを備えた包括的な会話システムです。
公式ドキュメント:Game Creator 2 Documentation
Dialogueとは
- 分岐会話システム。NPCとのトーク、選択肢、条件分岐、表情変化、ポートレート表示、タイピング演出などを一式でまかなう
- 会話ツリーはノード列として構成(Text/Choices/Randomの3種)
- Actor(話者)アセットでNPCのキャラ設定を再利用
- Skin(UIテーマ)を差し替えることで、フキダシ風・SMS風・ピクセル・Cyberpunk風などに一瞬で変更可能
導入
- Asset Storeから Dialogueモジュール を購入
Window > Package ManagerからインストールGame Creator > Install...で以下サンプルが選べる:- Examples:ユースケース別のサンプルシーン集
- Skin Default:シンプルな標準スキン
- Skin Message:SMS/チャット風
- Skin Pixel:ファンタジー向けフロート表示
- Skin Cyberpunk:グリッチ付きHUD風
- ExamplesはSkin全種に依存(自動解決)
Dialogueコンポーネント
作成
- Hierarchy右クリック →
Dialogue > Dialogue - または既存GameObjectに
Add Component > Dialogue
会話テキストはすべてこのコンポーネント内に書き込まれ、複数のパネルを展開/収納して編集します。
Anatomy of a Dialogue(4パネル構成)
Top Toolbar
- 左:新規ノード追加(Text/Choice/Random)
- Shiftを押しながらクリックすると「現ノードの子/兄弟」の扱いを反転
- 右上:歯車ボタン(Settings左サイドバー開閉)/四角ボタン(Inspector右サイドバー開閉)
Settings サイドバー
- Configuration:使用するSkin/タイムスケールの影響を受けるかなど
- Actors:会話で使われるActorの一覧(自動収集)。各Actorにシーン参照をバインド
- Editor:エディタ表示の見た目(ゲーム挙動には無影響)
Conversations(中央メイン)
会話フローのツリー表示です。上から順に、子ノード優先で評価され、終わったら次の兄弟へ進みます。
- ノードをダブルクリックすると右Inspectorを開閉+フォーカス
- ノードをドラッグ&ドロップで順序変更。他ノードの上にドロップすると子ノードになる
Inspector サイドバー
選択中ノードの詳細を編集します。主なフィールド:
- Type:Text/Choice/Random
- Conditions:このノードを実行するための条件
- Portrait:ポートレート表示位置(None/Primary/Alternate)
- Actor:話者Actorアセット。Expressionsがあれば表情も選択
- Text:表示テキスト(リッチテキスト可)
- Add Value…:動的値(後述)
- Audio:ボイス音声クリップ
- Animation:Animation Timeline(後述)
- On Start / On End:表示開始時・終了時に走る命令
- Duration:表示時間。以下のいずれか
- Until Interaction:ユーザー入力まで待機(デフォルト)
- Timeout:指定秒
- Audio:音声クリップの終了まで
- Animation:アニメクリップの終了まで
- Jump:次に進むノード指定。タグへジャンプ/Dialogue終了なども選べる
Audio/AnimationをDurationに選びつつアセット未設定だと、即スキップされます。
Nodes(ノード)
Text(最も基本)
画面にテキストを1行表示するノードです。子ノードを持てます(親Textの条件が合えば子も評価)。<color> <size> などのリッチテキストタグが使用可能です。
Choices
プレイヤーに選択肢を提示するノードです。子ノード(通常はText)が自動的に選択肢になります。
主なオプション:
- Hide Unavailable:条件不成立の選択肢を隠す/グレーアウト
- Hide Visited:一度選んだ選択肢を消す
- Skip Choice:選択肢を選んだ後、そのText本体を読み上げずに飛ばす
- Shuffle Choices:並び順をランダム化
- Timed Choice:制限時間を付ける
- Duration:制限秒
- Timeout:タイムアウト時に選ぶ先(ランダム/先頭/末尾)
Random
ランダム抽選で1つの子ノードを選びます(ユーザー入力なし)。
- Allow Repeat:同じ選択が連続可能か
用途:商人の挨拶を毎回違わせる等。
Dynamic Values(動的値差し込み)
テキストに変数・ステータス・ローカル値を埋め込む仕組みです。
Local Dynamic Values
- ノード単位で設定。インデックス(0始まり)で参照
- テキスト中で
{0}と書くとindex 0の値に置換 - 個別に Bold / Italic / Color を付与可能
Global Dynamic Values
- プロジェクト全体で共通。
Game Creator > Settings > Dialogueで作成 - 各エントリは Key(一意ID)を持ち、テキスト中で
{player-name}のようにキーを波括弧で囲む - Bold / Italic / Color指定可
プレイヤー名など、全Dialogueで共通の値はGlobalを使うのが効率的です。
Animation Timeline
各ノードの Animation フィールドは単なるGesture再生ではなく、タイムラインで任意の時刻に命令を差し込めるツールです。
- Animation Clipをドロップすると、下にプレビュー+シーケンサUIが現れる
- Markers(菱形):タイムライン上の特定点で命令を発火。ドラッグで位置調整可
+ボタンで新規Markerを現在位置に追加、-で選択中Markerを削除
重要:Dialogue行がアニメ終了前にスキップされると、残りのMarkerは実行されません。必ず走らせたい処理は On Start / On End に置いてください。
Tags(ノード識別子)
- ノードを右クリック →
Tag...で名前を付与 - 用途1:
Jumpフィールドでタグへの飛び越しによるループ会話 - 用途2:Condition
Tag Visitedで「その行に到達済みか」を判定
タグ名はDialogue内で一意、かつ英数字(スペース・記号不可)です。
Actors(話者)とExpressions(表情)
Actorアセット
Create > Game Creator > Dialogue > Actor で作成します。
- Name / Description:表示名と説明(任意)
- Expressions:表情リスト。怒り・驚き・混乱などを列挙
- Effects:
- Typewriter:1文字ずつ表示。Frequency で秒当たり文字数を指定
- Gibberish:ボイスのないキャラに「それっぽい音」を鳴らす。ピッチ/スピードをランダム化
- Optional Skin:Actor個別のSpeech Skin上書き(例:ロボットキャラだけ別フォント/フキダシ)
- Default Portrait:ポートレート既定位置
Expressions(表情)
Actorの子要素として追加します。
- ID:一意名
- Sprite:ポートレート画像
- Speech Skin:任意。Actor設定を上書きする
- On Start / On End:表情切替時の命令(Gesture再生・State遷移など)
On Endは次のExpression切替時に呼ばれるため、同じ表情で連続発話する間は発火しません。
Skins(スキン)
Dialogue Skin(テーマ)
会話UI全体の見た目です。Settings サイドバーからドラッグで設定します。
主な構成:
- Prefab:UIプレハブ(Canvas + Dialogue UIコンポーネント)
- Animations:開始/ループ/終了時のアニメ
- Sound Effects:Start(開始時)、Finish(終了時)、Select(選択肢ホバー)、Submit(選択肢送信)
- Nodes(2.2.8以降):Text/Choice/Randomの既定値
Speech Skin(フキダシ)
話者1人分のフキダシUIです。Dialogue Skinが参照しますが、Actor単位で上書きも可能です。
- Prefab:UIスキーマ
- Animations:開始時・ループの指定。毎行再生/同じ話者連続時は省略 なども選べる
- Sound Effects:行開始時/終了時の音
- Override Log:ログUIのレイアウト上書き
User Interface(カスタムスキンの作り方)
公式推奨:既存スキンを複製して改変するのが最短ルートです。
Custom Dialogue Skinの最低構成
ルートGameObjectに:
- Canvasコンポーネント
- Dialogue UI コンポーネント(2フィールド)
- Speech:Speech Skinをインスタンス化するRectTransform
- Default:規定のSpeech Skin
任意追加コンポーネント
| コンポーネント | 役割 |
|---|---|
| Dialogue Unit Timer UI | Timed Choiceのカウントダウン表示 |
| Dialogue Unit Choices UI | 選択肢の配置・見た目 |
| Dialogue Unit Logs UI | 過去ログ表示 |
| Dialogue Unit Portraits UI | 現話者のポートレート表示 |
Custom Speech Skinの最低構成
ルートに Speech UI コンポーネント。主フィールド:
- Active:発話中だけ表示するGameObject参照
- Actor Name / Actor Description:対応Text参照(自動更新)
- Active Portrait / Portrait Image:ポートレート表示切替とSprite反映
- Text:本文のTextコンポーネント(必須)
- Skip:「次へ」カーソル用GameObject
Visual Scripting リファレンス
Instructions(4)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Play Dialogue | Dialogueを再生 | Dialogue/Wait to Finish |
| Stop Dialogue | 再生中のDialogueを停止 | Dialogue |
| Choice Index | 選択肢をインデックス(1始まり)で選ぶ | Index |
| Skip Line | 現在行を終了/次行へ進める | Speech UI |
Conditions(2)
| 条件 | 判定 |
|---|---|
| Dialogue Played | 指定Dialogueが再生されたか |
| Tag Visited | 指定Dialogue内のTagが通過済みか |
Events(4)
| イベント | 発火タイミング |
|---|---|
| On Start Dialogue | Dialogueの再生開始時 |
| On Finish Dialogue | Dialogueの再生終了時 |
| On Start Dialogue Line | 1行の表示開始時 |
| On Finish Dialogue Line | 1行の表示終了時 |
Tipsと注意点
- Jumpの扱い:Jump先のノードtagが存在しない/タイポだとエラー。早めに確認してください
- Skip Choice = ON は「言わずに進む」モード。UIに選択肢としては出すが、本文Textは読まれません
- Single Choiceの自動選択:選択肢が1つしか条件成立しないとプレイヤー操作が省略されます
- Duration = Audio/Animationで空:即スキップされるため、必ずアセットを入れてください
- Animation Markerはスキップで失効:重要な処理はOn Start/On Endに置く
- Expressionの On Endタイミング:同じ表情のまま続く間は呼ばれません。終了時にリセットしたいなら最後に別表情を明示的に挟む
- TypewriterとGibberish:組み合わせると「古典的RPG風」が簡単に作れます
- Global Dynamic Valuesは設定画面経由:
Game Creator > Settings > Dialogueタブで全プロジェクト共通に管理 - Skinsはインストールで4種同梱:近いものをコピーして改変するのが最短です
- Tag名にスペース/記号は不可:
hello-worldのようにハイフンつなぎが安全
実践的な使い方 ― やりたいこと別の構成ガイド
NPCに近づいて話しかけると会話が始まる
NPC側にTrigger(Event: On Interact)を配置し、Play Dialogue 命令で再生します。Wait to Finish をONにすると会話終了まで後続の処理が待機します。
プレイヤーに選択肢を提示し、選んだ内容で分岐する
Choice ノードの子に Text ノードを複数配置します。各選択肢TextにConditionを付けると、条件未達の選択肢を非表示/グレーアウトにできます。
時間制限付きの選択肢(タイムドチョイス)
Choiceノードの Timed Choice をONにし、DurationとTimeout(時間切れ時の挙動)を設定します。
NPCがランダムに違う台詞で挨拶する
Random ノードの子に複数のTextを配置するだけです。Allow Repeat をOFFにすると同じ台詞が連続しません。
Statsと連動した条件付き選択肢
各選択肢TextノードのConditionsに Compare Stat を追加します(例:str >= 15)。条件不成立なら子ノードも含めてスキップされます。
会話中にプレイヤー名などの動的な値を表示する
ローカル:ノード下の「Add Value…」でインデックスを追加し、本文に {0} と記述。
グローバル:設定画面でKeyを定義し、本文に {key-name} と記述。
会話中にキャラクターの表情を切り替える
ActorアセットのExpressionsリストに表情を追加し、各ノードのInspectorでExpressionをドロップダウンから選択します。On Startに表情のState開始、On EndにState停止を入れるのが定石です。
キャラクターごとにテキスト表示速度を変える
ActorアセットのTypewriterセクションの Frequency(秒当たり表示文字数)を調整します。Gibberishと組み合わせると古典的RPG風の演出が簡単に作れます。
特定キャラだけ見た目の異なる吹き出しにする
Actorアセットの Optional Skin フィールドに専用のSpeech Skinを設定します。
会話中に特定タイミングでアニメーションイベントを挟む
AnimationフィールドにAnimation Clipをドロップし、タイムライン上のMarkerで任意のタイミングにInstructionを配置します。
会話のJumpでループ会話を作る
ループ先のノードにTagを付け、最後のノードのJumpにTag名を指定します。Tag Visited で初回/2回目以降の分岐も可能です。
ボイス付き会話でクリップ終了まで自動待機する
AudioフィールドにボイスのAudioClipを設定し、Durationを Audio に選択します。
公式リンク
- Game Creator 2 公式ドキュメント
- Game Creator 2 — Unity Asset Store
- Dialogue 2 | Game Creator 2 — Unity Asset Store
まとめ
本記事では、Game Creator 2のDialogueモジュールについて解説しました。如何だったでしょうか。
Dialogueモジュールは分岐会話・選択肢・ランダム返答・表情切替・タイプライター演出・動的値差し込みまで、ゲームの会話演出に必要な機能を一式備えています。
特にSkin(UIテーマ)の差し替えで見た目を一瞬で変更できる点と、Actor・Expressionの仕組みでキャラクターごとの個性を簡単に表現できる点が大きな強みです。
それでは次の記事も閲覧いただけると幸いです。
📚 シリーズ:Game Creator 2 完全ガイド(9/16)



