T.TAO
コア制作

ストーリーシステム

ストーリーシステムは Alfheim のコアモジュールで、ゲームのストーリーを執筆・整理・テストするために使用します。ビジュアルノードグラフエディター、内蔵の会話編集ツール、即時プレビュー機能を提供します。

機能概要

  • Episode(章)単位でストーリーを整理
  • 8種類のノードタイプをサポートするノードグラフのビジュアル編集
  • 話者選択とスクリプト編集をサポートする内蔵会話エディター
  • 条件分岐とランダム分岐
  • 章レベルの変数システム
  • フォルダによるグループ管理
  • 即時テスト実行

3つの作業タブ

ストーリーパネル上部には3つのタブがあります:

ストーリー計画

ノードグラフキャンバスと関連パネルを含むメインのストーリー編集環境です。

世界樹(Yggdrasil)

タイムラインとカレンダーシステム。詳細は Yggdrasil タイムライン を参照してください。

テスト実行

プレイヤー視点で現在のストーリーを体験します。詳細は本ページの テスト実行 セクションを参照してください。

Episode 管理

Episode(章)はストーリーの基本組織単位です。各 Episode は独自のノードグラフと変数を持つ独立したストーリーファイルです。

Episode の作成

  1. ストーリー計画ページで、上部の ストーリーセレクター をクリックします。
  2. 新規ストーリー をクリックします。
  3. Episode 名を入力して作成を確認します。

切り替えと削除

  • 上部のドロップダウンメニューで Episode 間を切り替えます。
  • ストーリーセレクターで不要な Episode を削除できます。

フォルダグループ

ノードはフォルダでグループ化して整理できます:

  1. 左側の フォルダ パネルで新規フォルダをクリックします。
  2. フォルダに名前を付けます。
  3. ノードをフォルダにドラッグして分類します。

フォルダに割り当てられていないノードは「未分類」グループに表示されます。

ノードタイプ

ストーリーは異なるタイプのノードを接続して構成されます。ツールバーの ノードを追加 メニューから新しいノードを作成します。

開始ノード

各 Episode のエントリーポイントです。各 Episode には開始ノードが1つだけあり、ストーリーはここから実行を開始します。

会話ノード

キャラクターの会話とナレーションを担う最もよく使われるノードタイプです。会話ノードには複数行の台詞を含めることができ、各行には異なる話者を指定できます。

条件ノード

変数の値に基づいてストーリーの流れを決定します。条件を設定すると、条件ノードは異なる分岐パスを出力します。

ランダムノード

複数の出力分岐からランダムに1つのパスを選択して実行します。ランダム性が必要なシーンに適しています。

変数設定ノード

変数の値を変更します。整数、浮動小数、文字列、ブール値の変数に対して代入や演算操作を実行できます。

イベントノード

シーン切り替え、効果音の再生など、ゲーム内の特殊イベントをトリガーします。

コメントノード

ノードグラフにメモや説明を追加するために使用します。実際のゲーム実行には影響せず、クリエイターの参考用です。

終了ノード

ストーリーの終了点をマークします。1つの Episode に複数の終了ノードがあり、異なるエンディングを表すことができます。

ノードグラフ編集

ノードの接続

ノードの出力ポートを別のノードの入力ポートにドラッグして接続を確立します。接続はストーリーの流れの方向を表します。

編集モードと閲覧モード

ツールバーには2つのモード切り替えがあります:

  • 編集モード:ノードの移動、接続の作成、内容の変更が可能です。
  • 閲覧モード:キャンバスをロックし、閲覧のみ可能。レビュー時に適しています。

ノードインスペクター

任意のノードを選択すると、右側の インスペクター パネルにそのノードの詳細が表示されます:

  • ノード ID(コピー可能)
  • ノード名
  • ノードタイプ
  • 進入条件(オプション)
  • 変数操作(オプション)
  • 会話プレビュー(会話ノードのみ)
  • 備考

会話編集

会話ノードをダブルクリックするか、インスペクターで 編集 をクリックすると会話エディターが開きます。

ライターモード

ストーリークリエイター向けの WYSIWYG 編集環境:

  • 台詞を1行ずつ執筆
  • 各行に話者(キャラクターまたはナレーター)を選択
  • 分岐オプションを追加

プログラムモード

細かい制御が必要な上級ユーザー向け:

  • スクリプトエディターで会話データを直接編集
  • シンタックスハイライトとオートコンプリートをサポート

章変数

各 Episode は、その章内の条件分岐と状態追跡のために独自のローカル変数を定義できます。

  1. インスペクターの 章変数 エリアで追加をクリックします。
  2. 変数名を入力し、タイプ(整数、浮動小数、文字列、ブール値)を選択します。
  3. デフォルト値を設定します。

章変数はグローバル変数とは独立しています。章をまたいで共有する変数が必要な場合は、変数システム のグローバル変数を使用してください。

章キャラクター

ストーリー計画ページで、現在の Episode で使用するキャラクターを管理できます:

  1. 章キャラクター パネルを開きます。
  2. プロジェクト内の既存キャラクターを検索して追加します。
  3. 追加したキャラクターは会話編集で話者として選択できます。

テスト実行

テスト実行 タブに切り替えると、プレイヤーと同じようにストーリーを体験できます。

インターフェース構成

  • ダイアログボックス:現在の台詞を表示。クリックで会話を進めます。
  • キャラクターステージ:話しているキャラクターの立ち絵を表示します。
  • オプションパネル:分岐オプションが出現したときにプレイヤーが選択します。
  • ノード情報パネル:現在のノードのデバッグ情報を表示します。
  • 再生コントロール:早送り、一時停止、リセットなど。
  • デバッグコンソール:変数状態と実行ログを確認します。

使用方法

  1. ストーリー計画でテストする Episode を選択します。
  2. テスト実行タブに切り替えます。
  3. ストーリーは開始ノードから自動的に実行され、ダイアログボックスをクリックして進行します。
  4. 分岐時はオプションパネルで選択します。
  5. デバッグコンソールで変数の変化を監視します。

ヒント

  • コメントノードを活用してノードグラフに重要な情報をマークし、チーム協力を容易にします。
  • 定期的にテスト実行でストーリーの流れを確認し、すべての分岐パスが正常に動作することを確認してください。
  • フォルダグループは大規模プロジェクトでのノード管理効率を大幅に向上させます。
  • ノード ID はインスペクターからコピーでき、スクリプトでの参照に便利です。