メインコンテンツへスキップ

フローチャート

Mahiru約1分

フローチャート

フローチャートは、ゲームのシナリオの節目(ノード)を図として表示する機能です。プレイヤーがノードを通過するとそのノードが解放され、以降はフローチャートで解放済みのノードを確認したり、ノードをクリックしてその時点の進行状況に戻ったりできます。

関連情報

フローチャートは v4.6.2 から利用できます。

フローチャートを有効にする

有効にするには、次の 2 つが必要です。

  1. config.txt に Enable_flowchart:true; を追加します。
  2. game フォルダに、フローチャートを記述した flowchart.json ファイルを置きます。

有効にすると、ゲームメニューと下部のコントロールバーに「フローチャート」の入口が表示されます。

ヒント

グラフィカルエディターを使う場合は、エディターのフローチャート画面で視覚的に編集できるため、flowchart.json を手書きする必要はありません。

flowchart.json の形式

以下は、メインストーリーと 1 つの個別ルートを含む例です。

{
  "flowcharts": [
    {
      "id": "main",
      "name": "メインストーリー",
      "type": "main",
      "nodes": [
        { "id": "start", "type": "root", "position": { "x": 0, "y": 0 }, "data": { "label": "プロローグ", "sceneName": "start.txt", "isRoot": true } },
        { "id": "ch1", "type": "chapter", "position": { "x": 0, "y": 120 }, "data": { "label": "第一章", "sceneName": "chapter1.txt" } }
      ],
      "edges": [
        { "id": "e-start-ch1", "source": "start", "target": "ch1" }
      ]
    },
    {
      "id": "route_a",
      "name": "キャラA ルート",
      "type": "character",
      "nodes": [
        { "id": "a1", "type": "chapter", "position": { "x": 0, "y": 0 }, "data": { "label": "キャラA ルート 第一章", "sceneName": "route_a/chapter1.txt" } }
      ],
      "edges": []
    }
  ]
}

flowcharts の各項目が 1 枚のフローチャートで、フローチャート画面ではタブで切り替えます。

フィールド説明
idフローチャートの一意な識別子
nameタブに表示される名前
typemain(メインストーリー)または character(個別ルート)。デフォルトは character です。id が main のフローチャートは常にメインストーリーとして扱われます。メインストーリーは常に表示され、個別ルートはネタバレを防ぐため、いずれかのノードが解放されるまで表示されません
nodesノードの一覧
edges接続線の一覧

各ノードのフィールド:

フィールド説明
idこのフローチャート内でのノードの一意な識別子
data.labelノードに表示される名前
data.sceneNameノードに対応するシーンファイル。scene フォルダからの相対パスで、例えば chapter1.txt や route_a/chapter1.txt
data.isRootフローチャートの起点とするかどうか
typeノードの種類。root、chapter、branch、ending、event など。エディターで使用されます
positionエディター上でのノードの位置。ゲーム内のフローチャートは接続線に基づいて自動的に配置され、この位置は使用されません

各接続線のフィールド:id は接続線の一意な識別子、source と target はそれぞれ始点と終点のノードの id です。

ノードの解放と巻き戻し

ノードに対応するシーンに入り、そのシーンの最初の台詞が表示されたときにノードが解放され、その時点の進行状況が記録されます。複数のフローチャートのノードが同じシーンに対応している場合は、同時に解放されます。解放済みのノードを再び通過すると、記録される進行状況は最新のものに更新されます。

フローチャートで解放済みのノードをクリックすると、記録された進行状況に戻ってゲームを続けられます。未解放のノードはクリックできません。

「オプション → システム」ですべてのデータを削除すると、フローチャートの解放状況も削除されます。

未解放ノードの表示

config.txt の Flowchart_Locked_Node_Visibility で、未解放ノードの表示方法を設定します。

値効果
nodeデフォルト。ノードを表示しますが、名前は表示しません
allノードと名前を表示します
none未解放のノードを完全に非表示にします
Enable_flowchart:true;
Flowchart_Locked_Node_Visibility:none;