Fyrox Dialog

FyroxのRustゲームエンジン向け分岐会話&ダイアログシステム。5種類のノード、UI非依存のランナー、ブラックボード統合でRPGスタイルのダイアログツリーを構築。

Fyrox 1.0+ Rust 1.87+ MIT(無料) 5種類のノード UI非依存

ダイアログシステムの仕組み

会話グラフを設計し、純粋ロジックで実行し、独自のUIコードでイベントを処理します。

1
🗺

グラフを設計

テキスト、選択肢、条件、アクション、終了ノードでダイアログツリーを構築。分岐する会話に接続します。

2
🔄

DialogRunnerで実行

グラフをDialogRunnerに渡します。ノードを走査し、ブラックボード条件を評価し、イベントを発行 — UIとの結合はゼロ。

3
📡

イベントを処理

型付きイベントを受信:表示するテキスト、提示する選択肢、発火するアクション、ダイアログ終了。あなたのコード、あなたのルール。

4
🎨

UIをレンダリング

任意のUIアプローチを使用 — Fyrox UI、egui、カスタムHUD、コンソール出力も可能。システムがビジュアルを制限しません。

Free&Proティア

コアダイアログ機能は無料でMITライセンス。Proはビジュアル編集、エディタ統合、開発者ツールを追加します。

Free MIT

オープンソース、無料
  • 5種類のノードを持つダイアロググラフ(テキスト、選択肢、条件、アクション、終了)
  • DialogRunner — 純粋ロジック、UI非依存
  • ブラックボード統合(fyrox-aiのBlackboard&Conditionを再利用)
  • 完全なserdeシリアライゼーション/デシリアライゼーション
  • 最小限の依存関係:fyrox-ai-free、serde
  • あらゆるRustプロジェクトで使用可能

Pro 有料

itch.ioでの買い切り
  • Freeのすべての機能を含む
  • ビジュアルノードグラフエディタ(2パネル:グラフ+プロパティ)
  • DialogPlayerスクリプト(NPCにドロップ)
  • .dialogリソース形式+ホットリロード
  • DialogDebugLogger(11種類以上のイベント)
  • AutoAdvancer(時間ベースの進行)
  • JSON File I/O

例:ダイアロググラフの構築

Free版ではコードで会話を定義。Proではビジュアルエディタを使用できます。

use fyrox_dialog::{DialogGraph, TextNode, ChoiceNode, ConditionNode, ActionNode, EndNode};
use fyrox_ai::blackboard::Blackboard;

// シンプルな分岐ダイアログを構築
let mut graph = DialogGraph::new();

// ノードを追加
let greeting = graph.add_node(TextNode {
    speaker: "Merchant".into(),
    text: "Welcome, traveler! Looking to trade?".into(),
});

let choice = graph.add_node(ChoiceNode {
    choices: vec![
        "Show me your wares".into(),
        "Not today".into(),
        "Any special deals?".into(),
    ],
});

// 条件:プレイヤーのゴールドが十分か確認
let gold_check = graph.add_node(ConditionNode::from_blackboard(
    "gold", Condition::gte(100),
));

let deal_yes = graph.add_node(TextNode {
    speaker: "Merchant".into(),
    text: "I have a rare sword, just for you!".into(),
});

let deal_no = graph.add_node(TextNode {
    speaker: "Merchant".into(),
    text: "Come back when you have more coin.".into(),
});

let goodbye = graph.add_node(ActionNode { action: "close_shop".into() });
let end = graph.add_node(EndNode);

// グラフを接続
graph.connect(greeting, choice);
graph.connect_choice(choice, 0, deal_yes);   // "Show me your wares"
graph.connect_choice(choice, 1, goodbye);    // "Not today"
graph.connect_choice(choice, 2, gold_check); // "Any special deals?"
graph.connect_condition(gold_check, true, deal_yes);
graph.connect_condition(gold_check, false, deal_no);
graph.connect(deal_yes, end);
graph.connect(deal_no, end);
graph.connect(goodbye, end);

// ダイアログを実行
let mut runner = DialogRunner::new(&graph, &blackboard);
while let Some(event) = runner.next_event() {
    match event {
        DialogEvent::Text { speaker, text } => show_text(speaker, text),
        DialogEvent::Choice { choices } => {
            let pick = show_choices(&choices);
            runner.select_choice(pick);
        }
        DialogEvent::Action { action } => handle_action(action),
        DialogEvent::End => break,
    }
}
ブラックボード条件チェック付き分岐商人ダイアログの構築と実行

Free vs Pro 比較

各ティアに含まれる機能を一目で確認できます。

機能 Free Pro
ダイアロググラフ(テキスト、選択肢、条件、アクション、終了)
DialogRunner(純粋ロジック、UI非依存)
ブラックボード統合(fyrox-ai Blackboard&Condition)
完全なserdeシリアライゼーション
ビジュアルノードグラフエディタ(2パネル:グラフ+プロパティ)
DialogPlayerスクリプト(NPCにドロップ)
.dialogリソース形式+ホットリロード
DialogDebugLogger(11種類以上のイベント)
AutoAdvancer(時間ベースの進行)
JSON File I/O

よくある質問

Fyrox Dialogとは何ですか?

Fyrox Dialogは、FyroxのRustゲームエンジン向け分岐会話&ダイアログシステムです。5種類のノード(テキスト、選択肢、条件、アクション、終了)でダイアログツリーを構築し、純粋ロジックのDialogRunnerで実行できます。Free版はMITライセンスで、Pro版にはビジュアルノードグラフエディタ、エディタ統合スクリプト、デバッグログなどが追加されます。

ダイアログシステムはUI非依存ですか?

はい。コアのDialogRunnerはUI依存のない純粋ロジックです。型付きイベント(テキスト表示、選択肢提示、アクション発火、ダイアログ終了)を発行し、独自のレンダリングコードで処理します。Fyrox UI、egui、カスタムHUD、コンソールなど、任意の方法で使用でき、ダイアログシステムが会話の見た目を制限することはありません。

fyrox-aiと連携できますか?

はい。Fyrox Dialogはfyrox-aiのブラックボードとCondition型を直接再利用しています。AIステートマシン、ビヘイビアツリー、ダイアログツリーが同じブラックボードを共有でき、NPC行動と会話の緊密な統合が可能です。Free版はfyrox-ai-freeに依存しています。

ホットリロードはどのように動作しますか?

Fyrox Dialog Proでは、会話は.dialogリソース形式で保存されます。.dialogファイルへの変更を保存すると、Fyroxエディタが再起動なしで自動的に変更を反映します。これにより迅速なイテレーションが可能になり、会話ツリーを編集して実行中のゲームですぐに結果を確認できます。

Fyroxゲームに分岐ダイアログを追加

MITライセンスの無料コアで始めましょう。ビジュアル編集、ホットリロード、デバッグツールが必要ならProにアップグレード。