Structure
Description
A state machine consists in a set of states, a set of possible inputs and rules to trigger transitions to another state or to itself for any of the possible inputs.
States
A state denotes a given logical status. Each state machine shall have an initial state, which is the entry point for the state machine. When a state machine is executed it starts always in the initial state.

A state can have a set of actions associated when the state is activated (On Entry) and when deactivated (On Exit). All actions defined for the state changes are executed when entering or leaving the state.

Transitions
One or more transitions can be defined between two states. A transition is executed when the associated condition is met.
A transition aggregates a sender object, a condition and an action. If the condition is evaluated to true, the action is executed. Transitions are evaluated based on their logical order according to their definition.

CGI Studio provides a large number of standard events for its controls and a predefined set of conditions to choose from.

Transitionの優先順位
同じステートに複数のTransitionが接続されている場合は、2つの方法によりTransitionの優先順位を設定することができます。複数のTransitionの発生条件が同一の場合などに有用な機能です。
- State Machine EditorツリーによるTransitionの優先順位設定
Transitionは、State Machine Editorの左上のツリービューに表示されます。Transitionは、優先度が高いものから上から順に表示されます。マウスのドラッグアンドドロップ操作により順序を入れ替えることができます。下図の場合、Transition_1の優先度が最も高く、Transition_3の優先度が最も低く設定されます。

- プロパティパネルによるTransitionの優先順位設定
Transitionは、プロパティパネルの [Transitions] > [ Exit Transitions ] に表示されます。Transitionは、優先度が高いものから上から順に表示されます。[ アイテムを下に移動 ] と [ アイテムを上に移動 ] アイコンにより順序を入れ替えることができます。下図の場合、ExitTransitions 0 (= Transition_1)の優先度が最も高く、ExitTransitions 2 (= Transition_3)の優先度が最も低く設定されます。

State Machine Behavior
The state machine behavior is a standard CGI Studio behavior which allows to configure a state machine instance. The associated state machine will receive all the events of the associated node and could trigger further actions as they are defined in the state machine.
