(57)【要約】【課題】  起点となる状態を正確に認識しながらトランジションを描画できるようにする。【解決手段】  編集部１２は、それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する。編集用トランジション生成部４４は、編集部１２により編集された状態遷移情報に基づいて生成された状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する。随伴ステート枠生成部４３は、編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する。本発明はステートマシンに適用させることができる。【選択図】      図１
2007079956.tif 000002
【特許請求の範囲】
【請求項１】
それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集ステップと、
前記編集ステップの処理により編集された状態遷移情報に基づいて、状態遷移図を表示する表示ステップと、
前記表示ステップの処理により表示された状態遷移図を操作する操作ステップと、
前記操作ステップの処理における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成ステップと、
前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成ステップとを含み、
前記操作ステップの処理における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する
情報処理方法。
【請求項２】
前記複写枠生成ステップの処理は、前記編集用トランジションの先頭位置に対して、所定の近傍の位置に、前記起点の状態枠の複写である複写枠を生成する
請求項１に記載の情報処理方法。
【請求項３】
前記複写枠の前記起点の状態枠に対する加工手法を設定する設定ステップをさらに含む
請求項１に記載の情報処理方法。
【請求項４】
前記設定ステップの処理は、前記複写枠の前記起点の状態枠に対する、前記複写枠の透明度、前記編集用トランジションの先頭位置から複写枠の表示位置までの距離、前記複写枠の前記起点の状態枠に対する縮小率、または前記複写枠の表示色を含む加工手法を設定する
請求項３に記載の情報処理方法。
【請求項５】
前記複写枠生成ステップの処理は、前記編集用トランジションの先頭位置に対して、所定の近傍の位置に、前記起点の状態枠の複写である複写枠を前記設定ステップの処理で設定された加工手法により加工して生成する
請求項３に記載の情報処理方法。
【請求項６】
それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集手段と、
前記編集手段により編集された状態遷移情報に基づいて、状態遷移図を表示する表示手段と、
前記表示手段により表示された状態遷移図を操作する操作手段と、
前記操作手段における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成手段と、
前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成手段とを含み、
前記操作手段における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する
情報処理装置。
【請求項７】
それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集ステップと、
前記編集ステップの処理により編集された状態遷移情報に基づいて、状態遷移図を表示する表示ステップと、
前記表示ステップの処理により表示された状態遷移図を操作する操作ステップと、
前記操作ステップの処理における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成ステップと、
前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成ステップとを含み、
前記操作ステップの処理における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する
コンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項８】
それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集ステップと、
前記編集ステップの処理により編集された状態遷移情報に基づいて、状態遷移図を表示する表示ステップと、
前記表示ステップの処理により表示された状態遷移図を操作する操作ステップと、
前記操作ステップの処理における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成ステップと、
前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成ステップとを含み、
前記操作ステップの処理における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理方法および装置、記録媒体、並びにプログラムに関し、特に、トランジションを接続する際、起点となるステートを認識しやすくできるようにした情報処理方法および装置、記録媒体、並びにプログラムに関する。
【背景技術】
【０００２】
アプリケーションソフトウェアプログラムの開発を支援する開発ツールが一般に普及しつつある。例えば、オブジェクト指向型のプログラムの開発を支援するものがある（例えば、特許文献１参照）。
【０００３】
また、UML（Unified Modeling Language）に代表される状態遷移図を用いたアプリケーションソフトウェアプログラムのUI（User Interface）の開発ツールも提案されている。
【０００４】
状態遷移図は、各状態毎に実行されるべき動作が論理的に記述されるとともに、各状態において発生する所定のイベントにより他の状態に遷移する方向が示された図である。上述したアプリケーションソフトウェアプログラムのUIの開発ツールは、プログラムを状態遷移図として表示させると共に、その表示された状態遷移図そのものが操作されると、状態遷移図の操作内容をプログラムに反映させることで、プログラムを編集するものである。
【０００５】
【特許文献１】特開平６−１１０７６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、上述したような開発ツールにおいては、状態を矩形状の枠（ステート枠）で表現し、第１の状態から第２の状態に遷移することを示すため、第１の状態を示すステート枠と、第２の状態を示すステート枠とを矢印状のトランジションにより結んでいる。トランジションは、矢印の基点となるステート枠の状態から、終点となるステート枠の状態に状態が遷移することを示し、トランジションの脇には、遷移のきっかけの動作であるイベントが表示される。
【０００７】
上述した開発ツールにおいては、ポインタを用いて、トランジションを状態遷移図に直接書き込む。より具体的には、起点にしたい状態のステート枠上にポインタを移動させ、ドラッグすると矢印の描画が開始され、ドラッグしたまま終点となる状態のステート枠上に移動され、ポインタが開放されると、矢印の描画が終了するものである。
【０００８】
しかしながら、状態遷移図は、表示画面上に必ずしもその全景が表示されるわけではないので、トランジションの描画を開始したステート枠と、終点のステート枠とが同一画面上に表示されないことがある。このような場合、トランジションを描画する先頭位置が画面からはみ出すような操作をすると、これに対応して、状態遷移図がスクロールする構成となり、ポインタのみがスクロールにより状態遷移図上を移動することになる。
【０００９】
この際、スクロールにより起点となるステート枠の状態が、画面から消えるため、操作の途中で起点となるステートを忘れてしまうようなことがあると、トランジションの起点と終点となる状態を誤って結んでしまったりすることがあった。また、操作の途中で起点となるステートを忘れてしまった場合、より正確にトランジションを描画させるには、一度、トランジションの描画を中止し、起点となる状態のステート枠が表示された位置まで状態遷移図をスクロールして再度確認する必要があり、トランジションの描画を面倒なものとしていた。
【００１０】
本発明は、このような状況に鑑みてなされたものであり、特に、トランジションを描画する際、起点となる状態を正確に認識しながら描画できるようにするものである。
【課題を解決するための手段】
【００１１】
本発明の一側面の情報処理方法は、それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集ステップと、前記編集ステップの処理により編集された状態遷移情報に基づいて、状態遷移図を表示する表示ステップと、前記表示ステップの処理により表示された状態遷移図を操作する操作ステップと、前記操作ステップの処理における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成ステップと、前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成ステップとを含み、前記操作ステップの処理における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する。
【００１２】
前記複写枠生成ステップの処理には、前記編集用トランジションの先頭位置に対して、所定の近傍の位置に、前記起点の状態枠の複写である複写枠を生成させるようにすることができる。
【００１３】
前記複写枠の前記起点の状態枠に対する加工手法を設定する設定ステップをさらに含ませるようにすることができる。
【００１４】
前記設定ステップの処理には、前記複写枠の前記起点の状態枠に対する、前記複写枠の透明度、前記編集用トランジションの先頭位置から複写枠の表示位置までの距離、前記複写枠の前記起点の状態枠に対する縮小率、または前記複写枠の表示色を含む加工手法を設定させるようにすることができる。
【００１５】
前記複写枠生成ステップには、前記編集用トランジションの先頭位置に対して、所定の近傍の位置に、前記起点の状態枠の複写である複写枠を前記設定ステップの処理で設定された加工手法により加工して生成させるようにすることができる。
【００１６】
本発明の一側面の情報処理装置は、それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集手段と、前記編集手段により編集された状態遷移情報に基づいて、状態遷移図を表示する表示手段と、前記表示手段により表示された状態遷移図を操作する操作手段と、前記操作手段における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成手段と、前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成手段とを含み、前記操作手段における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する。
【００１７】
本発明の一側面の記録媒体のプログラムは、それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集ステップと、前記編集ステップの処理により編集された状態遷移情報に基づいて、状態遷移図を表示する表示ステップと、前記表示ステップの処理により表示された状態遷移図を操作する操作ステップと、前記操作ステップの処理における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成ステップと、前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成ステップとを含み、
前記操作ステップの処理における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する。
【００１８】
本発明の一側面のプログラムは、それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集ステップと、前記編集ステップの処理により編集された状態遷移情報に基づいて、状態遷移図を表示する表示ステップと、前記表示ステップの処理により表示された状態遷移図を操作する操作ステップと、前記操作ステップの処理における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成ステップと、前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成ステップとを含み、前記操作ステップの処理における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する処理をコンピュータに実行させる。
【００１９】
本発明の一側面の情報処理方法および装置、並びにプログラムにおいては、それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報が編集され、前記編集ステップの処理により編集された状態遷移情報に基づいて、状態遷移図が表示され、表示された状態遷移図が操作され、操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションが生成され、前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠が生成され、操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報が編集される。
【００２０】
情報処理装置は、独立した装置であっても良いし、情報処理装置の情報処理を行うブロックであっても良い。
【発明の効果】
【００２１】
以上のように、本発明の一側面によれば、トランジションを描画する際、起点となる状態を正確に認識しながら描画することが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２３】
本発明の一側面の情報処理方法およびプログラムは、それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集ステップ（例えば、図４のステップＳ２，Ｓ４，Ｓ６の処理）と、前記編集ステップの処理により編集された状態遷移情報に基づいて、状態遷移図を表示する表示ステップ（例えば、図１６のステップＳ１４１の処理）と、前記表示ステップの処理により表示された状態遷移図を操作する操作ステップ（例えば、図６のステップＳ４１，Ｓ４７，Ｓ５５の処理）と、前記操作ステップの処理における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成ステップ（例えば、図６のステップＳ５２の処理）と、前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成ステップ（例えば、図６のステップＳ５３の処理）とを含み、前記操作ステップの処理における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する（例えば、図６のステップＳ６３の処理）。
【００２４】
前記複写枠生成ステップ（例えば、図６のステップＳ５３の処理）の処理には、前記編集用トランジションの先頭位置に対して、所定の近傍の位置に、前記起点の状態枠の複写である複写枠を生成させるようにすることができる。
【００２５】
前記複写枠の前記起点の状態枠に対する加工手法を設定する設定ステップ（例えば、図１７のステップＳ１６４の処理）をさらに含ませるようにすることができる。
【００２６】
前記設定ステップの処理（例えば、図１７のステップＳ１６４の処理）には、前記複写枠の前記起点の状態枠に対する、前記複写枠の透明度、前記編集用トランジションの先頭位置から複写枠の表示位置までの距離、前記複写枠の前記起点の状態枠に対する縮小率、または前記複写枠の表示色を含む加工手法を設定させるようにすることができる。
【００２７】
前記複写枠生成ステップ（例えば、図９のステップＳ８１，Ｓ８４の処理）には、前記編集用トランジションの先頭位置に対して、所定の近傍の位置に、前記起点の状態枠の複写である複写枠を前記設定ステップの処理で設定された加工手法により加工して生成させるようにすることができる。
【００２８】
本発明の一側面の情報処理装置は、それぞれの状態における動作、それぞれの前記状態における遷移時のイベント、および前記イベントによりどの他の前記状態に遷移するかを示す遷移方向の情報を含む状態遷移情報を編集する編集手段（例えば、図１の編集部１２）と、前記編集手段により編集された状態遷移情報に基づいて、状態遷移図を表示する表示手段（例えば、図１の表示部１８）と、前記表示手段により表示された状態遷移図を操作する操作手段（例えば、図１の操作部１１）と、前記操作手段における操作内容に応じて、前記状態遷移図上の起点となる状態を示す状態枠からの編集用トランジションを生成する編集用トランジション生成手段（例えば、図１の編集用トランジション生成部４４）と、前記編集用トランジションの先頭位置に対して近傍の位置に、前記起点の状態枠の複写である複写枠を生成する複写枠生成手段（例えば、図１の随伴ステート枠生成部４３）とを含み、前記操作手段における操作内容に応じて、前記編集用トランジションの先頭位置が、前記起点となる状態とは異なる状態の状態枠と接続される場合、前記編集ステップの処理は、前記起点となる状態とは異なる状態を、前記起点となる状態における遷移先とするように前記状態遷移情報を編集する。
【００２９】
このように、状態遷移図の編集においてトランジションの遷移先まで引く際、トランジションの先頭位置の近傍付近に、トランジションの起点となる状態のステート枠が表示されることにより、起点となる状態を認識しつつ、トランジションを描画することが可能となる。従って、仮に、状態遷移図がスクロールするなどして、実際の起点となる状態のステート枠が見えない状態になっても、正確に起点となる状態を認識しながらトランジションを描画することが可能となる。
【００３０】
図１は、本発明を適用した状態遷移プログラム編集装置１の一実施の形態の構成を示す図である。
【００３１】
状態遷移プログラム編集装置１は、アプリケーションソフトウェアプログラムにおけるUIのプログラムの開発を目的とした編集装置であり、各状態における動作、それぞれの状態における遷移時のイベント、および各イベント毎にどの他の状態に遷移するかを示す遷移方向の情報を含む状態遷移情報（ステートデータ）に基づいて、状態遷移図を生成すると共に、生成した状態遷移図を表示する。さらに、状態遷移プログラム編集装置１は、表示した状態遷移図が操作されることにより変更されると、変更された状態遷移図に対応して、状態遷移情報を更新する。
【００３２】
操作部１１は、マウスやキーボードなどから構成されており、状態遷移プログラム編集装置１を操作するユーザによる操作に対応する信号を発生して編集部１２に供給する。
【００３３】
編集部１２は、ステート編集部３１、トランジション編集部３２、およびスクリプト編集部３３より構成されており、操作部１１より供給されてくる信号に基づいて、状態遷移情報（ステートデータ）を編集する。ステートデータは、各状態（ステート）毎に動作を示す情報（スクリプト情報）およびイベントに応じて遷移する状態の遷移先の情報（トランジション情報）が記述されている。
【００３４】
ステート編集部３１は、状態（ステート）の新規生成、および表示位置や大きさなどの情報を編集し、編集結果をステートデータ格納部１３に格納させる。トランジション編集部３２は、各状態における動作が実行されている間に発生するイベントに応じて、遷移する遷移先となる状態の情報を編集し、ステートデータ格納部１３に格納させる。より詳細には、トランジション編集部３２は、操作部１１の操作内容に応じて、トランジションを矢印として描画しながら編集する。この際、トランジション編集部３２は、描画情報を状態遷移図生成部１４に供給する。スクリプト編集部３３は、各状態における動作内容を編集し、ステートデータ格納部１３に格納させる。
【００３５】
ステートデータ格納部１３は、各状態（ステート）毎に編集部１２によりトランジション情報やスクリプト情報が編集されたステートデータを格納し、必要に応じて状態遷移図生成部１４および状態遷移エンジン１５に供給する。
【００３６】
状態遷移図生成部１４は、ステート枠生成部４１、トランジション生成部４２、随伴ステート枠生成部４３、編集用トランジション生成部４４、および随伴ステート枠設定データ設定部４５から構成されており、ステートデータ格納部１３に格納されているステートデータを読み出し、状態遷移図を生成し、表示制御部１７に供給する。ステート枠生成部４１は、各状態毎に矩形の枠（ステート枠）を生成すると共に、状態遷移エンジン１５より供給される今現在の状態の情報に基づいて、今現在の状態を示すステート枠内の表示色を変化させて表示する。トランジション４２は、各状態における動作中に発生するイベント毎に遷移先を示す矢印を生成する。
【００３７】
編集用トランジション生成部４４は、編集部１２より供給される編集中のトランジションの情報に基づいて、起点となる状態のステート枠から引かれている編集用トランジションを生成する。
【００３８】
随伴ステート枠生成部４３は、編集用トランジションの先頭位置に対して、近傍の所定位置にトランジションの起点となる状態のステート枠のコピーを生成する。この際、生成されるコピーは、予め随伴ステート枠設定データ設定部４５により設定された随伴ステート枠設定データに基づいて生成される。
【００３９】
状態遷移エンジン１５は、ステートデータ格納部１３に格納されているステートデータを読み出すと共に、イベント検出部１９より供給されるイベントの情報に基づいて、今現在のステートを検索し、検索結果である今現在のステートを示す情報を状態遷移図生成部１４および状態動作実行部１６に供給する。
【００４０】
状態動作実行部１６は、状態遷移エンジン１５より供給される今現在の状態のステートデータに基づいて、現在の状態の動作を実行し、実行結果を表示制御部１７に供給する。
【００４１】
表示制御部１７は、状態遷移図表示制御部５１、および状態動作表示制御部５２より構成され、表示部１８に表示する表示画面を生成して表示させる。
【００４２】
状態遷移図表示制御部５１は、状態遷移図生成部１４より供給されてくる状態遷移図の情報に基づいて、例えば、図２の状態遷移図表示画面１１１を生成し、表示を制御する。図２においては、状態Ａ（State Ａ：ステートＡ）を示すステート枠１３１、状態Ｂ（State Ｂ：ステートＢ）を示すステート枠１３２、状態Ｃ（State Ｃ：ステートＣ）を示すステート枠１３３、および、状態Ｄ（State Ｄ：ステートＤ）を示すステート枠１３４が示されており、それぞれが、トランジション１４１乃至１４８で結ばれている。トランジション１４１乃至１４８は、それぞれ状態間を遷移する方向とイベントを示している。
【００４３】
より詳細には、トランジション１４１は、「KeyPress_x」と示され、矢印が状態Ａから状態Ｄに向って表示されており、状態Ａの動作が実行されている場合、操作部１１の「ｘ」のキーが操作されるというイベントが発生すると、状態Ａから状態Ｂに遷移することを示している。
【００４４】
同様に、トランジション１４２は、「KeyPress_2」と示され、矢印が状態Ａから状態Ｂに向って表示されており、状態Ａの動作が実行されている場合、操作部１１の「2」のキーが操作されるというイベントが発生すると、状態Ａから状態Ｂに遷移することを示している。
【００４５】
また、トランジション１４３は、「KeyPress_3」と示され、矢印が状態Ｂから状態Ａに向って表示されており、状態Ｂの動作が実行されている場合、操作部１１の「3」のキーが操作されるというイベントが発生すると、状態Ｂから状態Ａに遷移することを示している。
【００４６】
さらに、トランジション１４４は、「KeyPress_b」と示され、矢印が状態Ｂから状態Ｃに向って表示されており、状態Ｂの動作が実行されている場合、操作部１１の「b」のキーが操作されるというイベントが発生すると、状態Ｂから状態Ｃに遷移することを示している。
【００４７】
また、トランジション１４５は、「KeyPress_a」と示され、矢印が状態Ｃから状態Ｂに向って表示されており、状態Ｃの動作が実行されている場合、操作部１１の「a」のキーが操作されるというイベントが発生すると、状態Ｃから状態Ｂに遷移することを示している。
【００４８】
さらに、トランジション１４６は、「KeyPress_1」と示され、矢印が状態Ｃから状態Ｄに向って表示されており、状態Ｃの動作が実行されている場合、操作部１１の「1」のキーが操作されるというイベントが発生すると、状態Ｃから状態Ｄに遷移することを示している。
【００４９】
また、トランジション１４７は、「KeyPress_0」と示され、矢印が状態Ｄから状態Ｃに向って表示されており、状態Ｄの動作が実行されている場合、操作部１１の「0」のキーが操作されるというイベントが発生すると、状態Ｄから状態Ｃに遷移することを示している。
【００５０】
さらに、トランジション１４８は、「KeyPress_z」と示され、矢印が状態Dから状態Ａに向って表示されており、状態Ｄの動作が実行されている場合、操作部１１の「z」のキーが操作されるというイベントが発生すると、状態Dから状態Ａに遷移することを示している。
【００５１】
図１の説明に戻る。
【００５２】
状態動作表示制御部５２は、状態動作実行部１６より供給される状態動作の実行結果に基づいて、例えば、図２で示されるような状態動作画面１１２を生成し、表示を制御する。  
【００５３】
表示部１８は、CRT（Cathode Ray Tube）またはLCD（Liquid Crystal Display）などから構成され、表示制御部１７により生成された画面を表示する。
【００５４】
次に、図３を参照して、ステートデータ格納部１３に格納されるステート情報について説明する。
【００５５】
ステート情報は、例えば、図２の状態遷移図表示画面１１１で示されるような状態遷移図が構成されるような場合、図３で示されるような状態で、状態Ａ乃至Ｄ毎にステートデータ格納部１３に格納されている。図３においては、左から状態Ａ乃至Ｄの順にステート情報のデータ構造が示されている。
【００５６】
各ステート（状態）には、トランジション情報として、各イベントと対応する遷移先となる状態の情報が記録される領域が確保されている。また、各状態におけるスクリプトが記録される領域が確保されている。
【００５７】
すなわち、図３の状態Ａ（State A）においては、トランジション情報として、イベント欄には「KeyPress_2」および「KeyPress_x」が記録され、対応する遷移先として、それぞれ「State B」および「State D」と記録されている。すなわち、このトランジション情報は、図２のトランジション１４２，１４１にそれぞれ対応する情報として記録されている。また、状態Ａの場合、トランジション情報の下には、スクリプト情報として、「スクリプトＡ」（状態Ａにおいて実行される動作を示す記述）が記録されている。
【００５８】
さらに、状態Ｂ（State Ｂ）においては、トランジション情報として、イベント欄には「KeyPress_3」および「KeyPress_b」が記録され、対応する遷移先として、それぞれ「State A」および「State C」と記録されている。すなわち、このトランジション情報は、図２のトランジション１４３，１４４にそれぞれ対応する情報として記録されている。また、状態Ｂの場合、トランジション情報の下には、スクリプト情報として、「スクリプトＢ」が記録されている。
【００５９】
さらに、状態Ｃ（State Ｃ）においては、トランジション情報として、イベント欄には「KeyPress_a」および「KeyPress_1」が記録され、対応する遷移先として、それぞれ「State B」および「State D」と記録されている。すなわち、このトランジション情報は、図２のトランジション１４５，１４６にそれぞれ対応する情報として記録されている。また、状態Cの場合、トランジション情報の下には、スクリプト情報として、「スクリプトC」が記録されている。
【００６０】
さらに、状態D（State D）においては、トランジション情報として、イベント欄には「KeyPress_z」および「KeyPress_0」が記録され、対応する遷移先として、それぞれ「State A」および「State C」と記録されている。すなわち、このトランジション情報は、図２のトランジション１４８，１４７にそれぞれ対応する情報として記録されている。また、状態Dの場合、トランジション情報の下には、スクリプト情報として、「スクリプトD」が記録されている。
【００６１】
次に、図４のフローチャートを参照して、編集部１２による状態遷移プログラム編集処理について説明する。
【００６２】
ステップＳ１において、ステート編集部３１は、操作部１１より供給されてくる信号に基づいて、ステート編集が指示されたか否かを判定する。ステップＳ１において、例えば、ステート編集処理が指示されたと判定された場合、ステップＳ２において、ステート編集部３１は、ステート編集処理を実行し、その処理は、元に戻る。尚、ステート編集処理については、図５を参照して後述する。
【００６３】
ステップＳ１において、例えば、ステート編集処理が指示されていないと判定された場合、ステップＳ３において、トランジション編集部３２は、操作部１１より供給されてくる信号に基づいて、トランジション編集が指示されたか否かを判定する。ステップＳ３において、例えば、トランジション編集処理が指示されたと判定された場合、ステップＳ４において、トランジション編集部３２は、トランジション編集処理を実行し、その処理は、元に戻る。尚、トランジション編集処理については、図６を参照して後述する。
【００６４】
ステップＳ３において、例えば、トランジション編集処理が指示されていないと判定された場合、ステップＳ５において、スクリプト編集部３３は、操作部１１より供給されてくる信号に基づいて、スクリプト編集が指示されたか否かを判定する。ステップＳ５において、例えば、スクリプト編集処理が指示されたと判定された場合、ステップＳ６において、スクリプト編集部３３は、スクリプト編集処理を実行し、その処理は、元に戻る。尚、スクリプト編集処理については、図７を参照して後述する。
【００６５】
以上の処理により、ステートデータが更新されることになるので、対応する状態遷移プログラムが更新される。
【００６６】
次に、図５のフローチャートを参照して、ステート編集処理について説明する。
【００６７】
ステップＳ２１において、ステート編集部３１は、操作部１１からの信号に基づいて、新規のステート（状態）を生成する処理であるか否かを判定する。例えば、図２の表示画面１０１上の図示せぬボタンが操作され、新規のステートを生成する処理が指示された場合、ステップＳ２２において、ステート編集部３１は、新規のステートを生成する。すなわち、ステート編集部３１は、新たな状態に対応するステート情報をステートデータ格納部１３に記録する。
【００６８】
ステップＳ２３において、ステート編集部３１は、新規に生成されたステートを編集対象ステートに設定する。
【００６９】
ステップＳ２４において、ステート編集部３１は、編集対象ステートのステート情報に更新があるか否かを判定する。ここで更新の有無が判定されるのは、ステート情報のうちステート名や対応するステート枠の表示位置などの情報である。すなわち、ステート編集部３１が編集するのは、ステート情報のうち、ステート名およびステート枠の表示位置の情報である。
【００７０】
ステップＳ２４において、ステート情報のうち、ステート名およびステート枠の表示位置の情報に更新があると判定された場合、ステップＳ２５において、ステート編集部３１は、更新された、ステート名およびステート枠の表示位置の情報を編集対象ステートのステート情報に反映させて更新する。
【００７１】
一方、ステップＳ２４において、更新がないと判定された場合、ステップＳ２５の処理は、スキップされる。
【００７２】
ステップＳ２６において、ステート編集処理の終了が指示されたか否かを判定し、終了が指示されない場合、その処理は、ステップＳ２４に戻り、終了が指示されたと判定された場合、ステート編集処理は終了する。
【００７３】
また、ステップＳ２１において、新規のステートの生成ではないと判定された場合、ステップＳ２７において、既存のステートが選択されたか否かが判定される。すなわち、図１６を参照して後述する表示処理により表示される、例えば、図２で示されるような状態遷移図表示画面１１１上に表示された既存のステート枠１３１乃至１３４のいずれかが図示せぬポインタが操作部１１により操作されて選択されたか否かにより、対応するステートＡ乃至Ｄのステートデータ格納部１３により格納されているステート情報のいずれかが選択されたか否かが判定される。例えば、既存のステートのステート情報が選択された場合、ステップＳ２８において、ステート編集部３１は、選択されたステートを編集対象ステートに設定し、その処理は、ステップＳ２４に進む。
【００７４】
一方、ステップＳ２７において、既存のステートが選択されたと判定されなかった場合、その処理は、ステップＳ２１に戻り、それ以降の処理が繰り返される。
【００７５】
すなわち、以上の処理により、新規のステート、または、既存のステートの何れかのステート情報について、ステート名およびステート枠の表示位置が、新たに設定されるか、または、更新されることになる。
【００７６】
次に、図６のフローチャートを参照して、トランジション編集処理について説明する。
【００７７】
ステップＳ４１において、トランジション編集部３２は、操作部１１の操作ボタンが押下されただけの状態であるか否かを判定する。より具体的には、操作部１１は、例えば、マウスであるような場合、マウスの操作ボタンが押下されたか否かを判定する。例えば、ステップＳ４１において、操作部１１の操作ボタンが押下されたと判定された場合、その処理は、ステップＳ１４２に進む。
【００７８】
ステップＳ４２において、トランジション編集部３２は、ドラッグモードをオフに設定し、編集対象ステート（編集対象にする状態）の情報を初期化する。すなわち、現時点では、ドラッグモードがなされておらず、編集対象ステートも設定されていない状態となる。尚、ドラッグモードとは、操作部１１の操作ボタンが押下されることにより、編集対象の何れかをポインタ（マウスポインタ）に固定させ、ポインタと同期して移動可能なモードを示し、ドラッグモードではない場合、いずれの編集対象もポインタと同期して移動する設定がなされていないモードを示す。
【００７９】
ステップＳ４３において、トランジション編集部３２は、操作部１１からの信号に基づいて、ポインタの位置（Ｘｃ，Ｙｃ）を取得する。
【００８０】
ステップＳ４４において、トランジション編集部３２は、ステートデータ格納部１３にアクセスし、ポインタの位置（Ｘｃ，Ｙｃ）が何れかのステート枠内の位置であるか否かを判定する。例えば、図７で示されるようにポインタ１７１が、ステート枠１３１の状態Ａのステート枠内に存在するような場合、ポインタの位置（Ｘｃ，Ｙｃ）がステート枠１３１内に存在するので、ポインタの位置（Ｘｃ，Ｙｃ）を編集用トランジションの開始位置（Ｘｓ，Ｙｓ）に設定し、その処理は、ステップＳ４５に進む。
【００８１】
ステップＳ４５において、トランジション編集部３２は、ステート枠１３１の状態Ａを編集対象ステートに設定し、その処理は、ステップＳ４６に進む。
【００８２】
ステップＳ４６において、トランジション編集部３２は、操作部１１が操作されて、トランジションの編集の終了が指示されたか否かを判定し、終了が指示された場合、その処理は、終了する。一方、ステップＳ４６において、編集終了が指示されていないと判定された場合、その処理は、ステップＳ４１に戻る。
【００８３】
さらに、ステップＳ４４において、ポインタの位置（Ｘｃ，Ｙｃ）が何れかのステート枠内の位置ではない場合、ステップＳ４５の処理がスキップされ、いずれのステートも編集対象ステートではない状態が維持されたままとなる。
【００８４】
ステップＳ４１において、操作部１１の操作ボタンが押下されただけの状態ではないと判定された場合、ステップＳ４７において、トランジション編集部３２は、操作部１１の操作ボタンが押下され、かつ、移動されているか否かを判定する。ステップＳ４７において、操作部１１の操作ボタンが押下され、かつ、移動されていると判定された場合、ステップＳ４８において、編集対象ステートが存在するか否かを判定する。
【００８５】
例えば、図７で示される状態から操作部１１が操作されて、ポインタ１７１が押下され、かつ、いずれかの方向に移動した場合、編集対象ステートが、ステート枠１３１で示される状態Ａに設定されているので、編集対象ステートがあると判定され、その処理は、ステップＳ４９に進む。
【００８６】
ステップＳ４９において、トランジション編集部３２は、ポインタの位置（Ｘｃ，Ｙｃ）を取得する。
【００８７】
ステップＳ５０において、トランジション編集部３２は、ドラッグモードであるか否かを判定する。今の場合、ドラッグモードが設定されていないので、処理は、ステップＳ５１に進む。
【００８８】
ステップＳ５１において、トランジション編集部３２は、状態遷移図生成部１４を制御して、これまでに描画してきた編集用トランジションと、後述する随伴ステート枠を消去させる。このとき、状態遷移図生成部１４の随伴ステート枠生成部４３および編集用トランジション生成部４４は、これまでの処理で編集用に生成した（後述する表示処理により表示されていた）編集用トランジションと、随伴ステート枠とをいずれも削除する。
【００８９】
ステップＳ５２において、トランジション編集部３２は、状態遷移図生成部１４を制御して、編集対象ステートからポインタの位置（Ｘｃ，Ｙｃ）までの編集用トランジションを描画させる。このとき、状態遷移図生成部１４の編集用トランジション生成部４４は、例えば、図８で示されるような、編集対象ステートである状態Ａのステート枠１３１からポインタ１７１までの編集用トランジション１８１を生成し、表示制御部１７に供給する（生成された編集用トランジションは、後述する表示制御部１７による表示処理により表示される）。
【００９０】
ステップＳ５３において、トランジション編集部３２は、ポインタの位置（Ｘｃ，Ｙｃ）および開始位置（Ｘｓ，Ｙｓ）の情報を状態遷移図生成部１４に供給し、随伴ステート枠生成処理を実行させ、例えば、図８で示されるような随伴ステート枠１８２を生成させる。
【００９１】
ここで、図９のフローチャートを参照して、随伴ステート枠生成処理について説明する。
【００９２】
ステップＳ８１において、随伴ステート枠生成部４３は、図１７を参照して後述する随伴ステート枠設定データ設定処理により設定される随伴ステート枠設定データを随伴ステート枠設定データ設定部４５より読み出す。随伴ステート枠設定データには、随伴ステート枠を表示するときの透明度、距離Ｌ、編集対象ステート枠に対する縮小率、および前景色の情報が含まれている。尚、随伴ステート枠設定データについては、詳細を後述する。
【００９３】
ステップＳ８２において、随伴ステート枠生成部４３は、トランジション編集部３２からのポインタの位置（Ｘｃ，Ｙｃ）および開始位置（Ｘｓ，Ｙｓ）に基づいて、ポインタの位置（Ｘｃ，Ｙｃ）と開始位置（Ｘｓ，Ｙｓ）との距離（＝√（（Ｘｃ−Ｘｓ）2＋（Ｙｃ−Ｙｓ）2））が、予め設定された随伴ステート枠が表示可能な距離Ｌよりも離れているか否かを判定する。ここで、距離Ｌとは、図１０で示されるように、編集用トランジション１８１の先頭位置から随伴ステート枠１８２を表示する中心位置までの距離であり、この距離Ｌ以上の長さの編集用トランジション１８１が存在しなければ随伴ステート枠１８２が表示できない距離である。また、この距離Ｌについては、ポインタの位置（Ｘｃ，Ｙｃ）から近傍の距離であることが望ましい。
【００９４】
従って、ステップＳ８２において、編集用トランジション１８２の長さが、この距離Ｌ以上の長さのであれば、随伴トランジション１８２が描画できることになるので、その処理は、ステップＳ８３に進む。
【００９５】
ステップＳ８３において、随伴ステート枠生成部４３は、随伴ステート枠１８２の中心位置を求める。ここでは、中心位置（Ｘｄ，Ｙｄ）は、図１０で示されるように、編集用トランジション１８１上であって、ポインタ１７１の位置（Ｘｃ，Ｙｃ）から距離Ｌの位置である。尚、随伴ステート枠の中心位置は、図１０で示される位置のみならず、ポインタ１７１の近傍付近に設定されていればよく、例えば、編集用トランジション１８１上に被らないように、編集用トランジション１８１の延長上のポインタ１７１の位置（Ｘｃ，Ｙｃ）の近傍付近に設定するようにしても良い。
【００９６】
ステップＳ８４において、随伴ステート枠生成部４３は、随伴ステート枠設定データに基づいて、求められた中心位置（Ｘｄ，Ｙｄ）が中心となるように、編集対象ステート枠のサイズを縮小して生成し、設定された透明度と前景色で生成し、表示制御部１７に供給する（生成された随伴ステート枠は、後述する表示制御部１７による表示処理により表示される）。
【００９７】
以上の処理により、ポインタ１７１の位置に追従して、例えば、図８で示されるような、編集対象ステート枠１３４が縮小された付随ステート枠１８２が生成される。
【００９８】
ここで、図６のフローチャートの説明に戻る。
【００９９】
ステップＳ５４において、トランジション編集部３２は、ドラッグモードをオンにする。この結果、以降において、操作部１１の操作ボタンが押下されたままの状態で、ポインタ１７１が移動されると、ステップＳ５０において、ドラッグモードであると判定されることになるため、ステップＳ５１の処理がスキップされることになり、ステップＳ４１，Ｓ４７乃至Ｓ５０，Ｓ５２乃至Ｓ５４、並びにＳ４６の処理が繰り返されることにより、図８で示されるポインタ１７１の動きに追従して、編集対象ステート枠１３４が縮小された随伴ステート枠１８２が表示される続けることになる。
【０１００】
さらに、ステップＳ４７において、マウスが押下され、かつ、移動していないと判定された場合、ステップＳ５５において、トランジション編集部３２は、操作部１１の操作ボタンが開放されたか否かを判定する。例えば、遷移先のステート枠までポインタが移動したところで、操作部１１の操作ボタンが開放されると、操作ボタンが開放されたと判定されることになるので、処理は、ステップＳ５６に進み、トランジション編集部３２は、編集対象ステートが存在するか否かを判定する。今の場合、編集対象ステートは、状態Ａであるので、編集対象ステートが存在すると判定され、その処理は、ステップＳ５７に進む。
【０１０１】
ステップＳ５７において、トランジション編集部３２は、ドラッグモードであるか否かを判定する。今の場合、ステップＳ５４において、ドラッグモードがオンにされたままの状態であるので、ステップＳ５７においては、ドラッグモードであると判定され、その処理は、ステップＳ５８に進む。
【０１０２】
ステップＳ５８において、トランジション編集部３２は、操作部１１からの信号に基づいて、ポインタの位置（Ｘｃ，Ｙｃ）を取得する。
【０１０３】
ステップＳ５９において、トランジション編集部３２は、ステートデータ格納部１３にアクセスし、ポインタの位置（Ｘｃ，Ｙｃ）が、編集対象ステート枠を除いた何れかのステート枠内の位置であるか否かを判定する。例えば、図１１で示されるようにポインタ１７１が、ステート枠１３３の状態Ｃのステート枠内に存在するような場合、ポインタ１７１の位置（Ｘｃ，Ｙｃ）がステート枠１３３内に存在するので、その処理は、ステップＳ６０に進む。
【０１０４】
ステップＳ６０においては、トランジション編集部３２は、ポインタ１７１が存在する位置のステート枠のステートを遷移先のステート（状態）に設定する。このとき、トランジション編集部３２は、状態遷移図生成部１５の編集用トランジション生成部４４を制御して編集用トランジションを消去させ、トランジション生成部４２を制御して、本来の遷移先を示すトランジション２０１を描画させる。
【０１０５】
ステップＳ６１において、トランジション編集部３２は、イベントを指定するように要求する。より具体的には、すなわち、例えば、遷移先を指定する処理として、図１１のトランジション２０１がポインタ１７１により引かれた場合、トランジション編集部３２は、トランジション２０１の横にイベントを指定する図示せぬ空欄を表示し、入力を促す。
【０１０６】
ステップＳ６２において、トランジション編集部３２は、遷移する際のイベントが指定されたか否かを判定し、指定されたと判定されるまで、その処理を繰り返す。すなわち、トランジション編集部３２は、その空欄にイベントを指定する情報が入力されたか否かを判定し、イベントが指定されたか否かを判定する。
【０１０７】
ステップＳ６２において、例えば、図１１で示されるように、「KeyPress_Q」で示されるように、操作部１１の「Q」のキーが入力されるというイベントが指定されると、イベントが指定されたと判定され、その処理は、ステップＳ６３に進む。
【０１０８】
ステップＳ６３において、トランジション編集部３２は、ステートデータ格納部１３にアクセスし、編集対象ステートのステート情報を読み出し、指定された遷移先とイベントの情報を反映させて更新する。すなわち、例えば、図２のトランジション１４１の場合、遷移先として「State Ｃ」が新たに指定され、イベントとして、「KeyPress_Q」が指定されるので、図１２の左部で示されるように、遷移先とイベントに「State Ｃ」、および、「KeyPress_Q」を追加して更新する。
【０１０９】
一方、ステップＳ４８，Ｓ５６において、編集対象ステートが存在しない場合、その処理は、ステップＳ４６に進む。また、ステップＳ５９において、位置（Ｘｃ，Ｙｃ）にステート枠がないと判定された場合、ステップＳ６４において、トランジション編集部３２は、状態遷移図生成部１４の随伴ステート枠生成部４３および編集用トランジション生成部４４を制御して、これまでに引いてきた編集用トランジションおよび随伴ステート枠を削除させる。
【０１１０】
以上の処理により、ポインタを操作部１１により操作し、編集対象ステートのステート枠から遷移先のステート枠に矢印を引くだけで、トランジションの情報を編集することが可能となる。また、トランジションが編集される際、トランジションの遷移先が確定するまでの間、編集用トランジションが表示され、編集用トランジションの先頭位置に存在するポインタの移動に追従して、ポインタの近傍に、編集対象ステートのステート枠が縮小された状態の随伴ステート枠として表示されることになるので、トランジションを引く際に、状態遷移図表示画面１１１上で、状態遷移図がスクロールするなどして、編集対象ステートのステート枠がない状態となっても、随伴ステート枠に起点となる編集対象ステートの情報が表示されることになるので、編集対象ステート（トランジションの起点となる状態）を認識することが可能となり、トランジションの作成を容易なものとすることが可能となる。
【０１１１】
次に、図１３のフローチャートを参照して、スクリプト編集処理について説明する。
【０１１２】
ステップＳ１０１において、スクリプト編集部３３は、既存のステートが選択されたか否かを判定し、選択されるまで、その処理を繰り返す。すなわち、図１６を参照して後述する表示処理により表示される、例えば、図２で示されるような状態遷移図表示画面１１１上に表示された既存のステート枠１３１乃至１３４のいずれかが、図示せぬポインタが操作部１１により操作されて選択されたか否かにより、対応するステートＡ乃至Ｄのステートデータ格納部１３により格納されているステート情報のいずれかが選択されたか否かが判定される。そして、ステップＳ１０１において、例えば、既存のステートのステート情報が選択された場合、ステップＳ１０２において、スクリプト編集部３３は、選択されたステートを編集対象ステートに設定し、その処理は、ステップＳ１０３に進む。
【０１１３】
ステップＳ１０３において、スクリプト編集部３３は、スクリプトが更新されたか否かを判定する。より詳細には、スクリプト編集部３３は、スクリプト情報の記述内容が、操作部１１により更新されたか否かを判定する。
【０１１４】
ステップＳ１０３において、例えば、スクリプト情報が更新されたと判定された場合、ステップＳ１０４において、スクリプト編集部３３は、ステートデータ１３にアクセスし、編集対象ステートのステート情報を読み出し、スクリプトを変更して、ステート情報を更新する。
【０１１５】
ステップＳ１０５において、スクリプト編集部３３は、スクリプト編集処理の終了が指示されたか否かを判定し、終了が指示されていない場合、その処理は、ステップＳ１０１に戻る。また、ステート編集処理の終了が指示された場合、その処理は、終了する。
【０１１６】
以上の処理により、スクリプトが編集される。
【０１１７】
次に、図１４のフローチャートを参照して、状態遷移プログラム実行処理について説明する。
【０１１８】
ステップＳ１１１において、状態遷移エンジン１５は、操作部１１より送信されてくる操作信号に基づいて、状態遷移図表示画面１１１上のいずれかのステートが選択されたか否かを判定し、選択されるまで、その処理を繰り返す。より詳細には、状態遷移エンジン１５は、操作部１１より供給されてくる信号に基づいて、例えば、図２の状態遷移図表示画面１１１上のステート枠１３１乃至１３４のいずれかが、図示せぬポインタにより選択されたか否かを判定し、いずれかのステートが選択されるまで、その処理を繰り返す。
【０１１９】
ステップＳ１１１において、例えば、いずれかのステートが選択された場合、ステップＳ１１２において、状態遷移エンジン１５は、選択されたステートをカレントステートとして設定する。すなわち、状態遷移エンジン１５は、操作部１１からの信号に基づいて、例えば、図２の状態遷移図表示画面１１１上のステート枠１３１乃至１３４のうち、図示せぬポインタにより選択されたステート枠に対応するステートをカレントステートに設定する。
【０１２０】
ステップＳ１１３において、状態遷移エンジン１５は、ステートデータ格納部１３にアクセスし、カレントステートのステート情報を読み出し、状態動作実行部１６に供給する。
【０１２１】
ステップＳ１１４において、状態動作実行部１６は、供給されたカレントステートのステート情報を解釈する。すなわち、状態動作実行部１６は、供給されたカレントステートのステート情報のうち、特に、スクリプト情報を読み出して、その状態における動作を認識する。
【０１２２】
ステップＳ１１５において、状態動作実行部１６は、スクリプト情報に記述されている処理を実行する。
【０１２３】
ステップＳ１１６において、状態動作実行部１６は、状態遷移処理の終了が指示されたか否かを判定する。すなわち、状態動作実行部１６は、操作部１１からの信号に基づいて、状態遷移処理の終了が指示されたか否かを判定し、終了が指示されていない場合、その処理は、ステップＳ１１７に進む。
【０１２４】
ステップＳ１１７において、状態遷移エンジン１５は、イベントが発生したか否かを判定する。すなわち、状態遷移エンジン１５は、イベント検出部１９により検出されたイベントの情報が供給されてきたか否かを判定し、イベントがない場合、その処理は、ステップＳ１１５に戻り、以降の処理が繰り返される。すなわち、イベントが検出されるまで、ステップＳ１１５乃至Ｓ１１７の処理が繰り返される。一方、ステップＳ１１７において、イベントがあると判定された場合、その処理は、ステップＳ１１８に進む。
【０１２５】
ステップＳ１１８において、状態遷移エンジン１５は、供給されてきたイベントの情報により遷移先が設定されているか否かを判定する。すなわち、ステート情報が、図３で示されるものであって、現在の状態がステートＡであった場合、例えば、イベントとして、操作部１１のキーボードのうち「Ａ」のキーが操作されるというイベントが発生したとしても、遷移先が設定されていないことになる。このため、このような場合、その処理は、ステップＳ１１５に戻る。すなわち、実質的に、イベントの発生がなかったものとして処理される。
【０１２６】
一方、ステップＳ１１８において、遷移先があると判定された場合、すなわち、ステート情報が、図３で示されるものであって、現在の状態がステートＡであった場合、例えば、イベントとして、操作部１１のキーボードのうち「２」のキーが操作されるというイベントが発生すると、遷移先Ｂに設定されている。そこで、ステップＳ１０２において、状態遷移エンジン１５は、遷移先のステートをカレントステートに設定し、その処理は、ステップＳ１１３に戻り、それ以降の処理が繰り返される。すなわち、この処理により、新たな遷移先となるステートＢをカレントステートに設定し、ステップＳ１１３以降の処理が繰り返される。
【０１２７】
以上の処理により、状態遷移エンジン１５が、イベント検出部１９より供給されてくるイベントの情報により状態遷移図に従って状態を変化させると共に、対応する状態のステート情報を読み出して、状態動作実行部１６に供給することが可能となる。また、状態動作実行部１６は、ユーザの操作に基づいて設定されている状態を変化させると共に、状態動作実行部１６は、対応する状態においてスクリプトで規定される動作を実行することが可能となる、
【０１２８】
次に、図１５のフローチャートを参照して、状態遷移図生成処理について説明する。
【０１２９】
ステップＳ１３１において、状態遷移図生成部１４は、ステートデータ格納部１３にアクセスし、格納されている全ステートデータを読み出す。
【０１３０】
ステップＳ１３２において、ステート枠生成部４１は、全てのステート情報毎に状態遷移図上のステート枠を生成すると共に、スクリプト情報に基づいて、全スクリプトの記述内容をステート枠内に記述する。
【０１３１】
ステップＳ１３３において、トランジション生成部４２は、ステート情報のうち、イベントと対応する遷移先の情報に基づいて、トランジションを生成する。
【０１３２】
ステップＳ１３４において、状態遷移図生成部１４は、ステート枠生成部４１により生成されたステート枠、トランジション生成部４２により生成されたトランジションに基づいて、状態遷移図を構成する情報を生成し、表示制御部１７に供給し、その処理は、ステップＳ１３１に戻り、それ以降の処理が繰り返される。
【０１３３】
以上の処理により、ステートデータ格納部１３に格納されているステート情報に基づいて、状態遷移図が生成され、表示制御部１７に供給することが可能となる。
【０１３４】
次に、図１６のフローチャートを参照して、表示処理について説明する。
【０１３５】
ステップＳ１４１において、状態遷移図表示制御部５１は、状態遷移図生成部１４の編集用トランジション生成部４４より供給されてくる状態遷移図の情報に基づいて、状態遷移図表示画面１１１を表示する。
【０１３６】
ステップＳ１４２において、状態遷移図表示制御部５１は、状態遷移図生成部１４の編集用トランジション生成部４４より編集用トランジションが供給されてきているか否かを判定する。例えば、図６のトランジション編集処理におけるステップＳ５２の処理により、編集用トランジションの状態遷移図上における画像情報が供給されてくると編集用トランジションが供給されているものと判定され、ステップＳ１４３において、状態遷移図表示画面１１１に表示する。
【０１３７】
一方、ステップＳ１４２において、編集用トランジションが供給されてきていないと判定された場合、ステップＳ１４３の処理はスキップされる。
【０１３８】
さらに、ステップＳ１４４において、状態遷移図表示制御部５１は、状態遷移図生成部１４の随伴ステート枠生成部４３より随伴ステート枠が供給されてきているか否かを判定する。例えば、図６のトランジション編集処理におけるステップＳ５３の処理により、随伴ステート枠の状態遷移図上における画像情報が供給されてくると随伴ステート枠が供給されているものと判定され、ステップＳ１４５において、状態遷移図表示画面１１１に表示する。
【０１３９】
一方、ステップＳ１４４において、随伴ステート枠が供給されてきていないと判定された場合、ステップＳ１４５の処理はスキップされる。
【０１４０】
ステップＳ１４６において、状態動作表示制御部５２は、状態遷移図生成部１４より供給される情報に基づいて、カレントステートが指定されているか否かを判定する。ステップＳ１４６において、例えば、カレントステートが指定されていると判定された場合、ステップＳ１４７において、状態動作表示制御部５２は、カレントステートとして設定されている、状態動作実行部１６により実行されている動作内容に基づいて状態動作画面１１２を表示し、その処理はステップＳ１４１に戻る。
【０１４１】
ステップＳ１４６において、カレントステートが指定されていない場合、ステップＳ１４７の処理は、スキップされる。
【０１４２】
以上の処理により、図２で示されるような、状態遷移図表示画面１１１、および状態動作画面１１２からなる表示画面１０１が表示部１８に表示される。
【０１４３】
以上、図４の状態遷移プログラム編集処理、図５のステート編集処理、図６のトランジション編集処理、図１３のスクリプト編集処理、図１４の状態遷移プログラム実行処理、図１５の状態遷移図生成処理、図１６の表示処理により以下のような動作が実現される。
【０１４４】
図４の状態遷移プログラム編集処理における図５のステート編集処理、図６のトランジション編集処理、および図１３のスクリプト編集処理により遷移状態情報（ステートデータ）が編集され、図１４の状態遷移プログラム実行処理により編集された状態遷移情報に基づいて状態遷移処理が実行される。また、図１４の状態遷移プログラム実行処理により編集された状態遷移情報に基づいて状態遷移図が生成される。この際、図６のトランジション編集処理が実行されると、編集用トランジションおよび随伴ステート枠が、状態遷移図の情報として表示制御部１７に供給される。結果として、図１６の表示処理においては、編集された状態遷移情報に基づいた状態遷移図が表示されると共に、トランジションの編集処理が実行されている場合には、さらに、編集用トランジションおよび随伴ステート枠が表示されることになる。
【０１４５】
結果として、トランジションが編集される際、トランジションの遷移先が確定するまでの間、トランジションの先頭位置に存在するポインタの移動に追従して、その近傍に、編集対象ステートのステート枠が縮小された状態の随伴ステート枠で表示されることになるので、トランジションを引く際に、仮に状態遷移図表示画面１１１上に編集対象ステートのステート枠がなくても随伴ステート枠を見るだけで、編集対象ステートを認識することが可能となり、トランジションの作成を容易なものとすることが可能となる。
【０１４６】
次に、図１７のフローチャートを参照して、随伴ステート枠設定データ設定処理について説明する。
【０１４７】
ステップＳ１６１において、随伴ステート枠設定データ設定部４５は、随伴ステート枠設定データの設定が指示されたか否かを判定し、随伴ステート枠設定データの設定が指示されるまで、その処理を繰り返す。例えば、操作部１１が操作され、随伴ステート枠設定データの設定が指示された場合、ステップＳ１６２において、随伴ステート枠設定データ設定部４５は、設定画面を表示制御部１７を介して表示部１８に表示させる。
【０１４８】
このとき、随伴ステート枠設定データ設定部４５は、例えば、図１８で示されるような設定画面２５１を表示する。図１８においては、設定画面２５１の最上段に「コピーの表示属性」と表示されており、随伴ステート枠が編集対象ステート枠のコピーであり、その表示属性が、随伴ステート枠の設定データであることを示している。
【０１４９】
図１８においては、設定画面２５１の上から「透明度」、「Ｌ」、「縮小率」、および「前景色」と表示されており、随伴ステート枠を表示する際の透明度、距離Ｌ（図１０）、編集対象ステート枠に対する縮小率、および随伴ステート枠の前景色の設定項目が設けられている。透明度は、％表示されており０乃至１００の範囲で設定される。透明度は、値が高いほど透明度が高く、例えば、０％の場合は、完全に透明度がなく、１００％では、完全に透明な状態となって表示されない状態となる。距離Ｌは、図１０を参照して説明したように、ポインタの位置から表示される随伴ステート枠の中心位置までの距離をピクセル単位で示したものである。縮小率は、編集対象ステート枠に対する縮小率であり、％表示されており、０乃至１００の範囲で設定される。さらに、前景色は、随伴ステート枠の前景色を指定する項目であり、左からＲＧＢの光の３原色について、０乃至２５５の範囲で設定される。図１８の場合、Ｒ（Ｒｅｄ）が、０、Ｇ（Ｇｒｅｅｎ）が２５５、Ｂ（Ｂｌｕｅ）が０で設定され、前景色が緑で表示されることが示されている。
【０１５０】
ステップＳ１６３において、随伴ステート枠設定データ設定部４５は、随伴ステート枠設定データが設定されたか否かを判定し、設定されたと判定されるまで、その処理を繰り返す。例えば、全ての設定がなされたと判定された場合、ステップＳ１６４において、随伴ステート枠設定データ設定部４５は、図１８で示されるような随伴ステート枠設定データを更新して記憶する。
【０１５１】
以上の処理により、随伴ステート枠を表示するための随伴ステート枠設定データが設定されるため、所望の透明度、位置、大きさ、および色で随伴ステート枠を表示させるようにすることができる。
【０１５２】
以上によれば、トランジションが編集される際、トランジションの遷移先が確定するまでの間、トランジションの先頭位置に存在するポインタの移動に追従して、その近傍に、編集対象ステート（トランジションの起点となる状態）のステート枠が縮小された状態の随伴ステート枠として表示されることになるので、トランジションを引く際に、仮に状態遷移図表示画面１１１上に編集対象ステートのステート枠がなくても随伴ステート枠を見るだけで、編集対象ステートを認識することが可能となり、トランジションを描画する際、起点となる状態を正確に認識しながら描画することが可能となる。
【０１５３】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１５４】
図１９は、図１の状態遷移プログラム編集装置１の電気的な内部構成をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU５０１は、パーソナルコンピュータの全体の動作を制御する。また、CPU５０１は、バス５０４および入出力インタフェース５０５を介してユーザからキーボードやマウスなどからなる入力部５０６から指令が入力されると、それに対応してROM(Read Only Memory)５０２に格納されているプログラムを実行する。あるいはまた、CPU５０１は、ドライブ５１０に接続された磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリを含むリムーバルメディア５２１から読み出され、記憶部５０８にインストールされたプログラムを、RAM(Random Access Memory)５０３にロードして実行する。これにより、上述した図１の状態遷移プログラム編集装置１の機能が、ソフトウェアにより実現されている。さらに、CPU５０１は、通信部５０９を制御して、外部と通信し、データの授受を実行する。
【０１５５】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図１９に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスクを含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア５２１、または、プログラムが一時的もしくは永続的に格納されるROM５０２や、記憶部５０８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部５０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１５６】
なお、CPU５０１として、”Ｃｅｌｌ誕生”、日経エレクトロニクス、日経BP社、２００５年２月２８日、８９頁乃至１１７頁に記載されているＣｅｌｌを採用することができる。
【０１５７】
また、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１５８】
さらに、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１５９】
【図１】本発明を適用した状態遷移プログラム編集装置の一実施の形態の構成を示す図である。
【図２】表示画面の構成例を示す図である。
【図３】ステートデータ格納部に格納されるステート情報のデータ構造を示す図である。
【図４】図１の状態遷移プログラム編集装置による状態遷移プログラム編集処理を説明するフローチャートである。
【図５】図１の状態遷移プログラム編集装置によるステート編集処理を説明するフローチャートである。
【図６】図１の状態遷移プログラム編集装置によるトランジション編集処理を説明するフローチャートである。
【図７】図１の状態遷移プログラム編集装置によるトランジション編集処理を説明する図である。
【図８】図１の状態遷移プログラム編集装置によるトランジション編集処理を説明する図である。
【図９】図１の状態遷移プログラム編集装置による随伴ステート枠生成処理を説明するフローチャートである。
【図１０】図１の状態遷移プログラム編集装置による随伴ステート枠生成処理を説明する図である。
【図１１】図１の状態遷移プログラム編集装置によるトランジション編集処理を説明する図である。
【図１２】図１の状態遷移プログラム編集装置によるトランジション編集処理を説明する図である。
【図１３】図１の状態遷移プログラム編集装置によるスクリプト編集処理を説明するフローチャートである。
【図１４】図１の状態遷移プログラム編集装置による状態遷移プログラム実行処理を説明するフローチャートである。
【図１５】図１の状態遷移プログラム編集装置による状態遷移図生成処理を説明するフローチャートである。
【図１６】図１の状態遷移プログラム編集装置による表示処理を説明するフローチャートである。
【図１７】図１の状態遷移プログラム編集装置による随伴ステート枠設定データ設定処理を説明するフローチャートである。
【図１８】図１の状態遷移プログラム編集装置による随伴ステート枠設定データ設定処理を説明する図である。
【図１９】媒体を説明する図である。
【符号の説明】
【０１６０】
１１  操作部，  １２  編集部，  １３  ステートデータ格納部，  １４  状態遷移図生成部，  １５  状態遷移エンジン，  １６  状態動作実行部，  １７  表示制御部，  １８  表示部，  ３１  ステート編集部，  ３２  トランジション編集部，  ３３  スクリプト編集部，  ４１  ステート枠生成部，  ４２  トランジション生成部，  ４３  随伴ステート枠生成部，  ４４  編集用トランジション生成部，  ４５  随伴ステート枠設定データ設定部，  ５１  状態遷移図表示制御部，  ５２  状態動作表示制御部
【図１】
2007079956.tif 000003
【図２】
2007079956.tif 000004
【図３】
2007079956.tif 000005
【図４】
2007079956.tif 000006
【図５】
2007079956.tif 000007
【図６】
2007079956.tif 000008
【図７】
2007079956.tif 000009
【図８】
2007079956.tif 000010
【図９】
2007079956.tif 000011
【図１０】
2007079956.tif 000012
【図１１】
2007079956.tif 000013
【図１２】
2007079956.tif 000014
【図１３】
2007079956.tif 000015
【図１４】
2007079956.tif 000016
【図１５】
2007079956.tif 000017
【図１６】
2007079956.tif 000018
【図１７】
2007079956.tif 000019
【図１８】
2007079956.tif 000020
【図１９】
2007079956.tif 000021