このページは、5.1.0を対象としています。
更新履歴
Flow Graph(略:FG)とは、CRYENGINEにおいて、様々な動作を設定するための、視覚的なスクリプトシステムです。 FGではノード(Node)と呼ばれる論理的な要素を組み合わせて動作を設定します。 ノードには、ノードの左側にある入力ポート(Input port)と右側にある出力ポート(Output port)があります。 入力ポートはデフォルト値を持っており、またEditorで値を設定することもできます。 さらに、あるノードの出力ポートから別のノードの入力ポートへリンク(Link)することができ、 リンクすることで複雑な動作を設定できます。
あらかじめBlankテンプレートのプロジェクトを作り、 exampleレベルを開いておいてください。 FGウィンドウを開くには、 メニューバー(Menu bar)から Tools -> Flow Graphを選択します。
FGウィンドウは次の5つの部分から成ります。
Flow Graph Editorはたくさんの情報を表示するので、有効に活用するためには広いスクリーンスペースが必要です。 はじめは分離していますが、 上部のFlow Graphと書かれているバーを左ドラッグすると結合したり移動したりできます。 マルチモニタ環境の方は、Flow Graph Editorを別のモニタへ移動し表示したままにしておくと、作業がはかどります。
FGには、特定のエンティティに属し、エンティティのプロパティとして保持されるものと、 UI Actionsなどのようにそうでないものがあります。 ここでは前者について説明します。 まず、ツール(Tools)の中から、 Create Objectタブを開き、 Default -> FlowgraphEntityを選択し、 ビューポートウィンドウ(Viewport Window) へドラッグアンドドロップしFlowgraphEntityを作成します。 次に、下の画像のように、作成したFlowgraphEntityを右クリックしコンテクストメニューからCreateFlowGraphを選択します。
Enter Group Name for the Flow GraphダイアログでHelloWorldと入力します。 これでFGが作成されました。
FGを削除するには3つの方法があります。 1つ目は、ビューポートでエンティティを選択し、EditメニューでDeleteを選択し、エンティティごとFGを削除します。。 2つ目は、下の画像のように、FGオーバービューでFGを右クリックし、Delete Graphを選択し、エンティティは削除せずにFGだけ削除します。。 3つ目は、ビューポートでエンティティを右クリックしコンテクストメニューからFlow GraphsからFGを選択し、その後FGオーバービューでFGを右クリックし、Delete Graphを選択します。
エンティティの名前を変更することでFGもリネームすることができます。 また、FGオーバービューからFGを右クリックでChange Folderを選択することでリグルーピングできます。
FGオーバービューからFGを右クリックでDisable・Enableを選択することでそのFGを無効・有効にすることができます。
FGに追加することができるノードには、エンティティノード(Entity nodes)とコンポーネントノード(Component nodes)があります。
エンティティノードはレベルに配置された特定のエンティティに対する操作を行うノードです。 エンティティノードを追加するには、 ビューポートウィンドウ(Viewport Window)でエンティティを選択してから、 FG Editorに移り、下の画像のように、メイン編集ペインを右クリックしてコンテクストメニューからAdd Selected Entityを選択します。
コンポーネントノードはレベルに配置されたエンティティは表さず、抽象的な機能を持ったノードです。 コンポーネントノードを追加するには、下の画像のように、 FG Editorのメイン編集ペインを右クリックしてコンテクストメニューからAdd Node内の追加したいノードを選択します。 また、前述したようにコンポーネントウィンドウからドラッグアンドドロップでも追加できます。
ノードを削除するにはノードを右クリックしてコンテクストメニューからDeleteを選択するか、 ノードを選択してからDeleteキーで削除することができます。
ノードを移動するにはノードの上部を左ドラッグで移動できます。
ノードを複数選択するには、Ctrlキーを押しながら左クリックすることで複数選択できます。
ノードを編集するには、前述したように入力ウィンドウで編集するか、 下の画像のように、ノードのポートを左ダブルクリックでも編集できます。
ゲーム開始時に何らかの処理を行いたい場合、Game:Startノードを追加しリンクして処理を作成します。 Game:StartノードはContext Menuから簡単に追加できます。 下の画像のように、Flow Graph Editorの中央にあるMain Editing Paneを右クリックするとContext Menuが開くので、 そこからAdd Start Nodeを選択してください。
リンクを維持したままノード群をコピーするには、張り付けするときCtrl+Shift+Vで貼り付けてください。
下の画像のように、Main Editing Painをクリックした後Qキーを押すと、QuickSearchNodeを追加できます。 デフォルトのGame:Startの部分に追加したいノードの名前を入力し、 上下のカーソルキーで候補から選択し、エンターキーで決定します。
2つのノードの間の新しいリンクを作るためには、下の画像のように、 あるノードの出力ポートから別のノードの入力ポートへ左ドラッグアンドドロップします。
1つの入力ポートには1つのリンクしか繋げないため、 1つの入力ポートに複数のリンクを繋げたいときは、Logic:Anyノードを使います。 下の画像では、キーボードの1または2が押されたときに、hello, world!というメッセージを表示します。
リンクを削除するためには、下の画像のように、 リンクされた入力ポートを左ドラッグして何もない場所でドロップします。
リンクが多くなりどれがどれに繋がっているか分かりにくいときは、リンクハイライティング(Link Highligting)を使うと便利です。 リンクハイライティングをするには、下の画像のように、単にリンクされた出力ポートの上にマウスを移動します。
下の画像のように、リンクの中央の小さな点を右クリックするとLink Context Menuを開けます。 そこからTime:Delayを選択するとTime:Delayノードを間に追加できます。
FGは他のレベルで使えるようにXMLファイルとしてエクスポートすることができます。 エクスポートするには、下の画像のように、 エクスポートしたいノードを選択した後、 メイン編集ペインを右クリックでコンテクストメニューを開き、 Selection - >Export Selected Nodesを選択します。
インポートするには、下の画像のように、 エクスポートしたFGを追加したいFGを開いた後、 上部メニューからFile -> Importを選択します。
また、下の画像のように、 メイン編集ペインを右クリックしコンテクストメニューからImportを選択することでもインポートできます。