図1は、本発明を適用した状態遷移プログラム編集装置1の一実施の形態の構成を示す図である。
状態遷移プログラム編集装置1は、アプリケーションソフトウェアプログラムにおけるUIのプログラムの開発を目的とした編集装置であり、各状態における動作、それぞれの状態における遷移時のイベント、および各イベント毎にどの他の状態に遷移するかを示す遷移方向の情報を含む状態遷移情報(ステートデータ)に基づいて、状態遷移図を生成すると共に、生成した状態遷移図を表示する。さらに、状態遷移プログラム編集装置1は、表示した状態遷移図が操作されることにより変更されると、変更された状態遷移図に対応して、状態遷移情報を更新する。
操作部11は、マウスやキーボードなどから構成されており、状態遷移プログラム編集装置1を操作するユーザによる操作に対応する信号を発生して編集部12に供給する。
編集部12は、ステート編集部31、トランジション編集部32、およびスクリプト編集部33より構成されており、操作部11より供給されてくる信号に基づいて、状態遷移情報(ステートデータ)を編集する。ステートデータは、各状態(ステート)毎に動作を示す情報(スクリプト情報)およびイベントに応じて遷移する状態の遷移先の情報(トランジション情報)が記述されている。
ステート編集部31は、状態(ステート)の新規生成、および表示位置や大きさなどの情報を編集し、編集結果をステートデータ格納部13に格納させる。トランジション編集部32は、各状態における動作が実行されている間に発生するイベントに応じて、遷移する遷移先となる状態の情報を編集し、ステートデータ格納部13に格納させる。スクリプト編集部33は、各状態における動作内容を編集し、ステートデータ格納部13に格納させる。スクリプト編集部33により編集される動作内容は、例えば、リンクデータ格納部14に格納されているアニメーションデータを再生させるといったものである。この場合、スクリプト編集部33は、リンクデータ格納部14に格納されたリンクファイルである、アニメーションデータのうち、再生させる開始フレームの情報も編集する。
ステートデータ格納部13は、各状態(ステート)ごとに編集部12によりトランジション情報やスクリプト情報が編集されたステートデータを格納し、必要に応じて状態遷移図生成部15および状態遷移エンジン16に供給する。
リンクデータ格納部14は、上述したスクリプト情報により所定の状態で実行される動作のうち、読み出されて実行されるリンクファイル(アニメーションファイルおよび動画ファイルなどを含む各種の実行ファイル)を格納しており、必要に応じて、状態動作実行部17、および表示制御部18にリンクファイルの情報を供給する。
状態遷移図生成部15は、ステート枠生成部41、トランジション生成部42、アイコン付加部43、およびリンクファイルステート検出部44から構成されており、ステートデータ格納部13に格納されているステートデータを読み出し、状態遷移図を生成する。ステート枠生成部41は、各状態ごとに矩形の枠(ステート枠)を生成すると共に、状態遷移エンジン16より供給される今現在の状態の情報に基づいて、今現在の状態を示すステート枠内の表示色を変化させて表示する。トランジション42は、各状態における動作中に発生するイベントごとに遷移先を示す矢印を生成する。アイコン付加部43は、リンクファイル付きステート検索部44により検索された状態情報のうち、リンクファイルが設定されているステート枠内に、リンクファイルが設定されていることを示すアイコンを付加する。リンクファイル付きステート検索部44は、ステートデータのうち、スクリプト情報を検索して、リンクファイルが設定されているステートを検索し、検索結果をアイコン付加部43に供給する。
状態遷移エンジン16は、ステートデータ格納部13に格納されているステートデータを読み出すと共に、イベント検出部20より供給されるイベントの情報に基づいて、今現在のステートを検索し、検索結果である今現在のステートを示す情報を状態遷移図生成部15および状態動作実行部17に供給する。
状態動作実行部17は、状態遷移エンジン16より供給される今現在の状態のステートデータに基づいて、必要に応じてリンクデータ格納部14よりリンクデータを読み出し、現在の状態の動作を実行し、実行結果を表示制御部18に供給する。
表示制御部18は、スクリプト表示制御部51、状態遷移図表示制御部52、ステートリスト表示制御部53、リンクリスト表示制御部54、および状態動作表示制御部55より構成され、表示部19に表示する表示画面を生成して表示させる。
スクリプト表示制御部51は、ステートデータ格納部13に格納されているステートデータよりスクリプト情報を読み出して、例えば、図2のスクリプト情報を示すスクリプト画面115を生成し、表示を制御する。尚、図2においては、表示部19で表示される表示画面101が示されている。表示画面101には、ステートリスト画面111、リンクリスト画面112、動作表示画面113、状態遷移図表示画面114、およびスクリプト画面115が設けられている。また、図2においては、スクリプト表示画面115には、スクリプトが記述されていないが、例えば、図13または図14で示されるように、スクリプトが表示される。このスクリプトの記述については、詳細を後述する。
状態遷移図表示制御部52は、状態遷移図生成部15より供給されてくる状態遷移図の情報に基づいて、例えば、図2の状態遷移図表示画面114を生成し、表示を制御する。図2においては、状態A(State A:ステートA)を示すステート枠131、状態B(State B:ステートB)を示すステート枠132、状態C(State C:ステートC)を示すステート枠133、および、状態D(State D:ステートD)を示すステート枠134が示されており、それぞれが、トランジション141乃至148で結ばれている。トランジション141乃至148は、それぞれ状態間を遷移する方向とイベントを示している。
より詳細には、トランジション141は、「KeyPress_x」と示され、矢印が状態Aから状態Dに向って表示されており、状態Aの動作が実行されている場合、操作部11の「x」のキーが操作されるというイベントが発生すると、状態Aから状態Bに遷移することを示している。
同様に、トランジション142は、「KeyPress_2」と示され、矢印が状態Aから状態Bに向って表示されており、状態Aの動作が実行されている場合、操作部11の「2」のキーが操作されるというイベントが発生すると、状態Aから状態Bに遷移することを示している。
また、トランジション143は、「KeyPress_3」と示され、矢印が状態Bから状態Aに向って表示されており、状態Bの動作が実行されている場合、操作部11の「3」のキーが操作されるというイベントが発生すると、状態Bから状態Aに遷移することを示している。
さらに、トランジション144は、「KeyPress_b」と示され、矢印が状態Bから状態Cに向って表示されており、状態Bの動作が実行されている場合、操作部11の「b」のキーが操作されるというイベントが発生すると、状態Bから状態Cに遷移することを示している。
また、トランジション145は、「KeyPress_a」と示され、矢印が状態Cから状態Bに向って表示されており、状態Cの動作が実行されている場合、操作部11の「a」のキーが操作されるというイベントが発生すると、状態Cから状態Bに遷移することを示している。
さらに、トランジション146は、「KeyPress_1」と示され、矢印が状態Cから状態Dに向って表示されており、状態Cの動作が実行されている場合、操作部11の「1」のキーが操作されるというイベントが発生すると、状態Cから状態Dに遷移することを示している。
また、トランジション147は、「KeyPress_0」と示され、矢印が状態Dから状態Cに向って表示されており、状態Dの動作が実行されている場合、操作部11の「0」のキーが操作されるというイベントが発生すると、状態Dから状態Cに遷移することを示している。
さらに、トランジション148は、「KeyPress_z」と示され、矢印が状態Dから状態Aに向って表示されており、状態Dの動作が実行されている場合、操作部11の「z」のキーが操作されるというイベントが発生すると、状態Dから状態Aに遷移することを示している。
図1の説明に戻る。ステートリスト表示制御部53は、ステートデータ格納部14に格納されているステートデータに基づいて、例えば、図2のステートリスト画面111を生成し、表示を制御する。図2のステートリスト画面111には、「Stage」フォルダ内における「logic」フォルダ内の「main logic」フォルダ内に、それぞれ「StateA」乃至「StateD」のアイコンが表示されており、「Stage」フォルダ内における「logic」フォルダ内の「main logic」フォルダ内に、ステート名がそれぞれ「StateA」乃至「StateD」となる状態A乃至Dのステート情報が格納されていることが示されている。
リンクリスト表示制御部54は、リンクデータ格納部14に格納されているリンクファイルの情報に基づいて、例えば、図2のリンクリスト画面112を生成し、表示を制御する。図2のリンクリスト画面112には、「(Main)test.ecd」フォルダ内に、それぞれ「flower」、「forest」、「temple」、および「flower2」のアイコンが表示されており、リンクファイルである「flower」、「forest」、「temple」、および「flower2」が「(Main)test ecd」フォルダ内に格納されていることが示されている。尚、このリンクファイルの各アイコンは、操作部11により操作されるポインタ150によりドラッグし、所望とするステート枠131乃至134でドロップすることにより、ドロップされたステート枠131乃至134に対応するステートで実行される。すなわち、リンクファイルが、音声データ、画像データ、またはアニメーションなどの場合、ドロップされた状態A乃至Dのいずれかにおいて、スクリプトA乃至Dが更新されて、リンクファイルのそれぞれ音声、画像、およびアニメーションを再生させる情報が記録される。
状態動作表示制御部55は、状態動作実行部17より供給される状態動作の実行結果に基づいて、例えば、図2で示されるような状態動作画面113を生成し、表示を制御する。尚、図2においては、スクリプトの記述がどのステートにもされておらず、実行されるものがないので、状態動作画面113は、黒の画面となっている。
表示部19は、CRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)などから構成され、表示制御部18により生成された画面を表示する。
次に、図3を参照して、ステートデータ格納部13に格納されるステート情報について説明する。
ステート情報は、例えば、図2の状態遷移図表示画面114で示されるような状態遷移図が構成されるような場合、図3で示されるような状態で、状態A乃至Dごとにステートデータ格納部13に格納されている。図3においては、左から状態A乃至Dの順にステート情報のデータ構造が示されている。
各ステート(状態)には、トランジション情報として、各イベントと対応する遷移先となる状態の情報が記録される領域が確保されている。また、各状態におけるスクリプトが記録される領域が確保されている。
すなわち、図3の状態A(State A)においては、トランジション情報として、イベント欄には「KeyPress_2」および「KeyPress_x」が記録され、対応する遷移先として、それぞれ「State B」および「State D」と記録されている。すなわち、このトランジション情報は、図2のトランジション142,141にそれぞれ対応する情報として記録されている。また、状態Aの場合、トランジション情報の下には、スクリプト情報として、「スクリプトA」が記録されている。
さらに、状態B(State B)においては、トランジション情報として、イベント欄には「KeyPress_3」および「KeyPress_b」が記録され、対応する遷移先として、それぞれ「State A」および「State C」と記録されている。すなわち、このトランジション情報は、図2のトランジション143,144にそれぞれ対応する情報として記録されている。また、状態Bの場合、トランジション情報の下には、スクリプト情報として、「スクリプトB」が記録されている。
さらに、状態C(State C)においては、トランジション情報として、イベント欄には「KeyPress_a」および「KeyPress_1」が記録され、対応する遷移先として、それぞれ「State B」および「State D」と記録されている。すなわち、このトランジション情報は、図2のトランジション145,146にそれぞれ対応する情報として記録されている。また、状態Cの場合、トランジション情報の下には、スクリプト情報として、「スクリプトC」が記録されている。
さらに、状態D(State D)においては、トランジション情報として、イベント欄には「KeyPress_z」および「KeyPress_0」が記録され、対応する遷移先として、それぞれ「State A」および「State C」と記録されている。すなわち、このトランジション情報は、図2のトランジション148,147にそれぞれ対応する情報として記録されている。また、状態Dの場合、トランジション情報の下には、スクリプト情報として、「スクリプトD」が記録されている。
次に、図4のフローチャートを参照して、編集部12による状態遷移プログラム編集処理について説明する。
ステップS1において、ステート編集部31は、操作部11より供給されてくる信号に基づいて、ステート編集が指示されたか否かを判定する。ステップS1において、例えば、ステート編集処理が指示されたと判定された場合、ステップS2において、ステート編集部31は、ステート編集処理を実行し、その処理は、元に戻る。尚、ステート編集処理については、図5を参照して後述する。
ステップS1において、例えば、ステート編集処理が指示されていないと判定された場合、ステップS3において、トランジション編集部32は、操作部11より供給されてくる信号に基づいて、トランジション編集が指示されたか否かを判定する。ステップS3において、例えば、トランジション編集処理が指示されたと判定された場合、ステップS4において、トランジション編集部32は、トランジション編集処理を実行し、その処理は、元に戻る。尚、トランジション編集処理については、図6を参照して後述する。
ステップS3において、例えば、トランジション編集処理が指示されていないと判定された場合、ステップS5において、スクリプト編集部33は、操作部11より供給されてくる信号に基づいて、スクリプト編集が指示されたか否かを判定する。ステップS5において、例えば、スクリプト編集処理が指示されたと判定された場合、ステップS6において、スクリプト編集部33は、スクリプト編集処理を実行し、その処理は、元に戻る。尚、スクリプト編集処理については、図7を参照して後述する。
以上の処理により、ステートデータが更新されることになるので、対応する状態遷移プログラムが更新される。
次に、図5のフローチャートを参照して、ステート編集処理について説明する。
ステップS21において、ステート編集部31は、操作部11からの信号に基づいて、新規のステート(状態)を生成する処理であるか否かを判定する。例えば、図2の表示画面101上の図示せぬボタンが操作され、新規のステートを生成する処理が指示された場合、ステップS22において、ステート編集部31は、新規のステートを生成する。すなわち、ステート編集部31は、新たな状態に対応するステート情報をステートデータ格納部13に記録する。
ステップS23において、ステート編集部31は、新規に生成されたステートを編集対象ステートに設定する。
ステップS24において、ステート編集部31は、編集対象ステートのステート情報に更新があるか否かを判定する。ここで更新の有無が判定されるのは、ステート情報のうちステート名や対応するステート枠の表示位置などの情報である。すなわち、ステート編集部31が編集するのは、ステート情報のうち、ステート名およびステート枠の表示位置の情報である。
ステップS24において、ステート情報のうち、ステート名およびステート枠の表示位置の情報に更新があると判定された場合、ステップS25において、ステート編集部31は、更新された、ステート名およびステート枠の表示位置の情報を編集対象ステートのステート情報に反映させて更新する。
一方、ステップS24において、更新がないと判定された場合、ステップS25の処理は、スキップされる。
ステップS26において、ステート編集処理の終了が指示されたか否かを判定し、終了が指示されない場合、その処理は、ステップS24に戻り、終了が指示されたと判定された場合、ステート編集処理は終了する。
また、ステップS21において、新規のステートの生成ではないと判定された場合、ステップS27において、既存のステートが選択されたか否かが判定される。すなわち、図12を参照して後述する表示処理により表示される、例えば、図2で示されるような状態遷移図表示画面114上に表示された既存のステート枠131乃至134のいずれかがポインタ150が操作部111により操作されて選択されたか否かにより、対応するステートA乃至Dのステートデータ格納部13により格納されているステート情報のいずれかが選択されたか否かが判定される。例えば、既存のステートのステート情報が選択された場合、ステップS28において、ステート編集部31は、選択されたステートを編集対象ステートに設定し、その処理は、ステップS24に進む。
一方、ステップS27において、既存のステートが選択されたと判定されなかった場合、その処理は、ステップS21に戻り、それ以降の処理が繰り返される。
すなわち、以上の処理により、新規のステート、または、既存のステートの何れかのステート情報について、ステート名およびステート枠の表示位置が、新たに設定されるか、または、更新されることになる。
次に、図6のフローチャートを参照して、トランジション編集処理について説明する。
ステップS41において、トランジション編集部32は、既存のステートが選択されたか否かを判定し、選択されるまで、その処理を繰り返す。すなわち、図12を参照して後述する表示処理により表示される、例えば、図2で示されるような状態遷移図表示画面114上に表示された既存のステート枠131乃至134のいずれかがポインタ150が操作部111により操作されて選択されたか否かにより、対応するステートA乃至Dのステートデータ格納部13により格納されているステート情報のいずれかが選択されたか否かが判定される。そして、ステップS41において、例えば、既存のステートのステート情報が選択された場合、ステップS42において、トランジション編集部32は、選択されたステートを編集対象ステートに設定し、その処理は、ステップS43に進む。
ステップS43において、トランジション編集部32は、編集対象ステートのステート情報のうち、遷移先が指定されたか否かを判定する。すなわち、例えば、図2の状態遷移図表示画面114で示されるように、ステート枠131乃至134で示される状態A乃至Dのうち、例えば、状態Aが選択され、編集対象ステートに設定された場合、操作部111によりポインタ150をドラッグして状態Aのステート枠131を基点として、例えば、状態Dのステート枠134を終点とするトランジション141で示されるような矢印を引いた場合、遷移先が状態Dに設定されることになる。
そこで、ステップS43においては、トランジション編集部32は、このようにトランジションの矢印が編集対象ステートの状態を示すステート枠から遷移先を示す状態のステート枠までの矢印が引かれたか否かにより、遷移先が設定されたか否かを判定する。
ステップS43において、遷移先が設定されたと判定された場合、ステップS44において、トランジション編集部32は、イベントを指定するように要求する。より具体的には、すなわち、例えば、遷移先を指定する処理として、図2のトランジション141がポインタ150により引かれた場合、トランジション編集部32は、トランジションの横にイベントを指定する図示せぬ空欄を表示し、入力を促す。
ステップS45において、トランジション編集部32は、遷移する際のイベントが指定されたか否かを判定し、指定されたと判定されるまで、その処理を繰り返す。すなわち、トランジション編集部32は、その空欄にイベントを指定する情報が入力されたか否かを判定し、イベントが指定されたか否かを判定する。
ステップS45において、イベントが指定されたと判定された場合、ステップS46において、トランジション編集部32は、ステートデータ格納部13にアクセスし、編集対象ステートのステート情報を読み出し、指定された遷移先とイベントの情報を反映させて更新する。すなわち、例えば、図2のトランジション141の場合、遷移先として「State D」が指定され、イベントとして、「KeyPress_x」が指定されるので、図3の左部で示されるように、遷移先とイベントに「State D」、および、「KeyPress_x」を追加して更新する。
ステップS43において、遷移先が指定されていない場合、ステップS44乃至S46の処理がスキップされ、ステップS47において、トランジション編集処理の終了が指示されたか否かを判定し、終了が指示されない場合、処理は、ステップS43に戻る。すなわち、トランジション編集処理の終了が指示されるまで、ステップS43乃至S47の処理が繰り返される。
そして、ステップS47において、トランジション編集処理の終了が指示された場合、その処理は終了する。
以上の処理により、ポインタ150を操作部111により操作し、編集対象ステートのステート枠から遷移先のステート枠に矢印を引くだけで、トランジションの情報を編集することが可能となる。
次に、図7のフローチャートを参照して、スクリプト編集処理について説明する。
ステップS61において、スクリプト編集部33は、既存のステートが選択されたか否かを判定し、選択されるまで、その処理を繰り返す。すなわち、図12を参照して後述する表示処理により表示される、例えば、図2で示されるような状態遷移図表示画面114上に表示された既存のステート枠131乃至134のいずれかがポインタ150が操作部111により操作されて選択されたか否かにより、対応するステートA乃至Dのステートデータ格納部13により格納されているステート情報のいずれかが選択されたか否かが判定される。そして、ステップS61において、例えば、既存のステートのステート情報が選択された場合、ステップS62において、スクリプト編集部33は、選択されたステートを編集対象ステートに設定し、その処理は、ステップS63に進む。
ステップS63において、スクリプト編集部33は、スクリプトが更新されたか否かを判定する。より詳細には、後述する表示処理により、図2で示されるスクリプト表示画面115には、編集対象ステートのスクリプト情報が表示される。そこで、ポインタ150が操作部111により操作され、スクリプト表示画面115が選択されると、操作部111のキーボードによりスクリプト情報の記述内容を入力または更新することができる。そこで、スクリプト編集部33は、スクリプト表示画面115の記述内容が、操作部111のキーボードにより更新されたか否かを判定する。
ステップS63において、例えば、スクリプト情報が更新されたと判定された場合、スクリプト編集部33は、ステートデータ13にアクセスし、編集対象ステートのステート情報を読み出し、スクリプト表示画面115上で編集された情報に基づいて、スクリプトを変更して、ステート情報を更新する。
ステップS65において、ステート編集部33は、ステート編集処理の終了が指示されたか否かを判定し、終了が指示されていない場合、その処理は、ステップS61に戻る。また、ステート編集処理の終了が指示された場合、その処理は、終了する。
一方、ステップS61において、既存のステートが選択されなかったと判定された場合、ステップS66において、スクリプト編集部33は、リンクファイルが選択されたか否かを判定する。すなわち、例えば、図2で示されるリンクリスト112上のいずれかのリンクファイルを示すアイコンがポインタ150が操作部111により操作されることにより選択されたか否かを判定する。
例えば、ステップS66において、リンクファイルが選択されたと判定された場合、ステップS67において、スクリプト編集部33は、選択されたリンクファイルがいずれかの状態を示すステート枠内にドロップされたか否かを判定する。すなわち、図2である場合、選択されたリンクファイルが、ステート枠131乃至134のいずれかにドロップされたか否かが判定される。
例えば、図2のリンクリスト表示画面112に表示されている「temple」と表示されたアイコンがポインタ150によりドラッグされ、状態Dを示すステート枠134にドロップされた場合、リンクファイルがドロップされたと判定され、その処理は、ステップS68に進む。
ステップS68において、スクリプト編集部33は、リンクファイルがドロップされたステート枠のステートを編集対象ステートに設定する。すなわち、今の場合、編集対象ステートは、ステート枠134で示される状態Dが設定される。
ステップS69において、スクリプト編集部33は、開始フレームを指定するためのダイアログボックスを表示する。すなわち、このダイアログボックスは、例えば、図8で示されるようなものである。図8において、ダイアログボックス151が表示されている。ダイアログボックス151の上部には、オブジェクト名表示欄152が設けられており、リンクファイルのファイル名が表示される。今の場合、「temple」と表示される。
オブジェクト名表示欄151の下には、開始位置指定欄154が設けられており、チェックボタン153がチェックされているとき、表示開始位置を示す情報をドロップダウンボタン154aを操作して設定する。ドロップダウンボタン154が押下されると、例えば、「Start」または「end」といった「temple」の動画の開始位置を指定する。また、チェックボタン155がチェックされると、アップボタン156a、およびダウンボタン156bを操作して直接フレーム番号指定欄156により開始フレーム番号を指定することができる。尚、図8において、「1≦Frame Number≦10」とあるのは、全部でフレーム数が10枚であった場合の例が示されており、開始フレーム番号としては、その範囲内で選択できることを示している。従って、「1≦Frame Number≦10」の記述は、そうフレーム数により変更するものである。
さらに、その下には、左側に「OK」ボタン157が設けられ、設定した内容に更新するよう指示するとき操作部111により操作される。同様に、右側に「Cancel」ボタン157が設けられ、設定した内容に更新しないように指示するとき操作部111により操作される。
ステップS70において、スクリプト編集部33は、開始フレームが設定されたか否かを判定し、設定されるまで、その処理を繰り返す。例えば、開始フレームが設定されたと判定された場合、スクリプト編集部33は、ステートデータ格納部13にアクセスし、編集対象ステートのステート情報を読み出し、編集対象ステートのドロップされたリンクファイルの情報に基づいて、編集対象ステートのスクリプトを更新する。すなわち、上述したように、「temple」というアニメーション動画がドロップされると、例えば、図9で示されるようにスクリプトが更新される。図9においては、「Exit /_esroot.temple.hide();_esroot.temple.stop();」および「Entry /_esroot.temple.show();_esroot.temple.gotoAndPlay();」と記述されており、状態Dの動作を終了するときには、「temple」というリンクファイルのアニメーションの表示を隠して、停止させることが示されており、状態Dの動作を開始するときには、「temple」というリンクファイルを表示し、アニメーションの再生を開始させることが示されている。
ステップS66において、リンクファイルが選択されなかった場合、その処理は、ステップS61に戻り、それ以降の処理が繰り返される。
以上の処理により、スクリプト表示画面115に直接スクリプトを入力するか、または、リンクファイルを直接ドラッグして、編集対象ステートにドロップすることにより、スクリプトが編集される。
次に、図10のフローチャートを参照して、状態遷移プログラム実行処理について説明する。
ステップS91において、状態遷移エンジン16は、操作部11より送信されてくる操作信号に基づいて、状態遷移図表示画面114上のいずれかのステートが選択されたか否かを判定し、選択されるまで、その処理を繰り返す。より詳細には、状態遷移エンジン16は、操作部11より供給されてくる信号に基づいて、例えば、図2の状態遷移図表示画面114上のステート枠131乃至134のいずれかが、ポインタ150により選択されたか否かを判定し、いずれかのステートが選択されるまで、その処理を繰り返す。
ステップS91において、例えば、いずれかのステートが選択された場合、ステップS92において、状態遷移エンジン16は、選択されたステートをカレントステートとして設定する。すなわち、状態遷移エンジン16は、操作部11からの信号に基づいて、例えば、図2の状態遷移図表示画面114上のステート枠131乃至134のうち、ポインタ150により選択されたステート枠に対応するステートをカレントステートに設定する。また、このとき、状態遷移エンジン16は、カレントステートがいずれのステートであるかを示す情報を状態遷移図生成部15に供給する。この情報により、図11のフローチャートを参照して、後述する状態遷移図生成処理においてカレントステートのステート枠の表示色を変えて表示させる。
ステップS93において、状態遷移エンジン16は、ステートデータ格納部13にアクセスし、カレントステートのステート情報を読み出し、状態動作実行部17に供給する。
ステップS94において、状態動作実行部17は、供給されたカレントステートのステート情報を解釈する。すなわち、状態動作実行部17は、供給されたカレントステートのステート情報のうち、特に、スクリプト情報を読み出して、その状態における動作を認識する。
ステップS95において、状態動作実行部17は、ステート情報により解釈された動作において、リンクファイルが設定されているか否かを判定する。
ステップS95において、例えば、リンクファイルが設定されていると判定された場合、ステップS96において、状態動作実行部17は、開始フレームを検索する。すなわち、状態動作実行部17は、リンクデータ格納部14にアクセスし、リンクファイルとして設定されているリンクファイルを読み出し、スクリプトに記述されている開始フレームの情報(位置、または、フレーム番号)に基づいて、開始フレームを検索する。
ステップS97において、状態動作実行部17は、検索された開始フレームからリンクファイルであるアニメーションファイルの再生を開始する。このとき、状態動作実行部17は、再生したアニメーションの画像情報を表示制御部18に供給する。
一方、ステップS95において、リンクファイルがないと判定された場合、ステップS98において、スクリプト情報に記述されている処理を実行する。尚、ここでは、スクリプト情報に記述されている処理とは、リンクファイルを再生する処理以外のものが実行されることを示している。
ステップS99において、状態動作実行部17は、状態遷移処理の終了が指示されたか否かを判定する。すなわち、状態動作実行部17は、操作部11からの信号に基づいて、状態遷移処理の終了が指示されたか否かを判定し、終了が指示されていない場合、その処理は、ステップS100に進む。
ステップS100において、状態遷移エンジン16は、イベントが発生したか否かを判定する。すなわち、状態遷移エンジン16は、イベント検出部20により検出されたイベントの情報が供給されてきたか否かを判定し、イベントがない場合、その処理は、ステップS95に戻り、以降の処理が繰り返される。すなわち、イベントが検出されるまで、ステップS95乃至S100の処理が繰り返される。一方、ステップS100において、イベントがあると判定された場合、その処理は、ステップS101に進む。
ステップS101において、状態遷移エンジン16は、供給されてきたイベントの情報により遷移先が設定されているか否かを判定する。すなわち、ステート情報が、図3で示されるものであって、現在の状態がステートAであった場合、例えば、イベントとして、操作部11のキーボードのうち「A」のキーが操作されるというイベントが発生したとしても、遷移先が設定されていないことになる。このため、このような場合、その処理は、ステップS95に戻る。すなわち、実質的に、イベントの発生がなかったものとして処理される。
一方、ステップS101において、遷移先があると判定された場合、すなわち、ステート情報が、図3で示されるものであって、現在の状態がステートAであった場合、例えば、イベントとして、操作部11のキーボードのうち「2」のキーが操作されるというイベントが発生すると、遷移先Bに設定されている。そこで、ステップS102において、状態遷移エンジン16は、遷移先のステートをカレントステートに設定し、その処理は、ステップS93に戻り、それ以降の処理が繰り返される。すなわち、この処理により、新たな遷移先となるステートBをカレントステートに設定し、ステップS93以降の処理が繰り返される。
以上の処理により、状態遷移エンジン16が、イベント検出部20より供給されてくるイベントの情報により状態遷移図に従って状態を変化させると共に、対応する状態のステート情報を読み出して、状態動作実行部17に供給することが可能となる。また、状態動作実行部17は、ユーザの操作に基づいて設定されている状態を変化させると共に、状態動作実行部17は、対応する状態においてスクリプトで規定される動作を実行することが可能となる、
次に、図11のフローチャートを参照して、状態遷移図生成処理について説明する。
ステップS121において、状態遷移図生成部15は、ステートデータ格納部13にアクセスし、格納されている全ステートデータを読み出す。
ステップS122において、ステート枠生成部42は、全てのステート情報毎に状態遷移図上のステート枠を生成すると共に、スクリプト情報に基づいて、全スクリプトの記述内容をステート枠内に記述する。
ステップS123において、トランジション付加部43は、ステート情報のうち、イベントと対応する遷移先の情報に基づいて、トランジションを生成する。
ステップS124において、リンクファイル付きステート検索部44は、全ステート情報におけるスクリプト情報のうち、リンクファイルが設定されているステートを検索し、検索結果をアイコン付加部43に供給する。
ステップS125において、アイコン付加部43は、リンクファイル付きステート検索部44より供給された、リンクファイルが設定されたステートのステート枠内にアイコンを付加する。
ステップS126において、ステート枠生成部41は、カレントステートが指定されているか否かを判定し、例えば、カレントステートが選択されていた場合、その処理は、ステップS127に進む。
ステップS127において、ステート枠生成部41は、カレントステートに設定されているステートのステート枠内の表示色を他のステート枠の表示色と異なる表示色に指定する。
ステップS128において、状態遷移図生成部15は、ステート枠生成部41により生成されたステート枠、トランジション生成部42により生成されたトランジションに基づいて、状態遷移図を構成する情報を生成し、表示制御部18に供給する。
一方、ステップS126において、カレントステートが設定されていない場合、ステップS127の処理はスキップされる。
以上の処理により、ステートデータ格納部13に格納されているステート情報に基づいて、状態遷移図が生成され、表示制御部18に供給することが可能となる。また、リンクファイルが設定されているステート枠内にはリンクファイルが存在することを示すアイコンが含まれることになるので、図12を参照して後述する表示処理により表示部19に表示される状態遷移図表示画面114において、ステート枠内にアイコンとして表示されることになるので、リンクファイルの有無を容易に認識することが可能となる。また、例えば、ステップS92(図10)のような処理により、カレントステートが設定されている場合、カレントステートが設定されたステート枠の表示色が、他のステート枠と異なる表示色となるため、カレントステートを容易に認識することが可能となる。
次に、図12のフローチャートを参照して、表示処理について説明する。
ステップS141において、状態遷移図表示制御部52は、状態遷移図生成部15より供給されてくる状態遷移図の情報に基づいて、状態遷移図表示画面114を表示する。
ステップS142において、ステートリスト表示制御部53は、ステートデータ格納部13にアクセスし、格納されているステート情報に基づいて、ステートリストを生成し、ステートリスト表示画面111を表示する。
ステップS143において、リンクリスト表示制御部54は、リンクデータ格納部14にアクセスし、リンクファイルとして使用可能なファイルを読み出してリンクリスト表示画面112を生成して表示する。
ステップS144において、状態動作表示制御部55は、状態遷移図生成部15より供給される情報に基づいて、カレントステートが指定されているか否かを判定する。ステップS144において、例えば、カレントステートが指定されていると判定された場合、ステップS145において、状態動作表示制御部55は、カレントステートとして設定されている、状態動作実行部17により実行されている動作内容に基づいて動作表示画面113を表示する。
ステップS146において、スクリプト表示制御部51は、ステートデータ格納部13にアクセスし、カレントステートに指定されているステート情報のうち、スクリプト情報を読み出して表示し、その処理は、ステップS141に戻る。
ステップS144において、カレントステートが指定されていない場合、ステップS145,S146の処理は、スキップされる。
以上の処理により、図2で示されるような、ステートリスト画面111、リンクリスト画面112、動作表示画面113、状態遷移図表示画面114、およびスクリプト画面115からなる表示画面101が表示部19に表示される。
以上、図4の状態遷移プログラム編集処理、図5のステート編集処理、図6のトランジション編集処理、図7のスクリプト編集処理、図10の状態遷移プログラム実行処理、図11の状態遷移図生成処理、図12の表示処理により以下のような動作が実現される。
例えば、図2におけるリンクリスト画像112の「temple」で示されるリンクファイルがドラッグされ、ステート枠134で示される状態D(State D)上でドロップされると、図4におけるステップS5において、スクリプト処理が実行されたものと判定され、ステップS6で示されるスクリプト編集処理が実行される。
さらに、図7のスクリプト編集処理におけるステップS61の処理において、既存のステートが編集されていないと判定されるので、ステップS66において、リンクファイルが選択されたと判定され、さらに、ステップS67において、リンクファイルがいずれかのステート枠内にドラッグアンドドロップされたと判定される。
また、ステップS68において、リンクファイルがドロップされたステートが編集対象ステートに設定され、ステップS69において、図8で示されるような開始フレームを指定するためのダイアログボックスが表示され、ステップS70において、開始フレームが指定されたと判定されると、ステップS71において、ドロップされたリンクファイルの情報に基づいて、編集対象ステートのステート情報が更新される。この結果、図9で示されるようにステート情報におけるスクリプトが、状態Dに遷移されるとき、ドロップされたリンクファイルの再生が開始され、状態Dから他の状態に遷移されるとき、ドロップされたリンクファイルの再生が停止されるような記述に更新される。
さらに、この状態で、ステート枠134が選択された状態となるため、図10のステップS91において、ステートが選択されたと判定され、ステップS92において、選択されたステート、すなわち、状態Dがカレントステートに設定される。
また、ステップS93において、カレントステートである状態Dのステート情報が読み出され、ステップS94において、カレントステートのステート情報が解釈される。さらに、ステップS95において、リンクファイルがあると判定されるので、ステップS96において、開始フレームが検索されて、開始フレームよりリンクファイルである「temple」のアニメーションの再生が開始される。
さらに、この状態で、図11の状態遷移図生成処理のステップS124において、スクリプトに基づいてリンクファイルが設定されているステートとして状態Dが検索され、ステップS125において、検索された状態Dのステート枠134内にリンクファイルが設定されていることを示すアイコンが付加され、ステップS127において、カレントステートであるステート枠134が他のステート枠とは別の表示色に設定される。
また、図12の表示処理のステップS141においては、図13の状態遷移図表示画面114で示されるように、ステート枠134内には、スクリプトDである「Exit /_esroot.temple.hide();_esroot.temple.stop();」、および「Entry /_esroot.temple.show();_esroot.temple.gotoAndPlay();」が記述されると共に、リンクファイルが設定されていることを示すアイコン134aが表示される。また、カレントステートである状態Dを示すステート枠134は、他のステート枠とは異なる表示色が表示される。
さらに、ステップS145において、カレントステートの状態動作が、動作表示画面113に表示される。図13においては、リンクファイル「temple」が再生されていることが示されている(寺社の画像が表示されている)。
また、ステップS146において、スクリプトDの情報が、スクリプト画面115に表示される。図13においては、「Exit /_esroot.temple.hide();_esroot.temple.stop();」、および「Entry /_esroot.temple.show();_esroot.temple.gotoAndPlay();」が表示され、ポインタ150を移動させることで、編集することが可能である。
また、図14は、上述の操作と同様の操作により、状態A,Cを示すステート枠131,133にそれぞれ「forest」、および「flower」がドラッグアンドドロップされた後の状態が示されている。
ステート枠131には、「Exit /_esroot.forest.hide();_esroot.forest.stop();」、および「Entry /_esroot.forest.show();_esroot.forest.gotoAndPlay();」と表示され、さらに、リンクファイルが存在することを示すアイコン131aが表示されている。また、同様に、ステート枠133には、「Exit /_esroot.flower.hide();_esroot.flower.stop();」、および「Entry /_esroot.flower.show();_esroot.flower.gotoAndPlay();」と表示され、さらに、リンクファイルが存在することを示すアイコン133aが表示されている。
さらに、図14においては、ポインタ150が、ステート枠133上に存在し、カレントステートとして設定されいるため、ステート枠133は他のステート枠とは表示色が異なっている。また、スクリプト表示画面115には、ステート枠133に記述されているスクリプトが表示されている。
また、動作表示画面113には、カレントステートである状態Cにおいて再生されるリンクファイル「flower」が再生されることが示されている。
さらに、図14の状態で、「flower2」で示されるアイコンが、状態Bのステート枠132上にドラッグアンドドロップされると、図7のステップS69の処理により、図15で示されるようなダイアログボックスが表示され、例えば、30フレーム目から再生を開始させるようにする場合、図15で示されるように、チェックボタン155’がチェックされ、フレーム番号指定欄156’に「30」が入力され、「OK」ボタン157が操作される。
このため、図16で示されるように、ステート枠132で示されるように、「Exit /_esroot.flower2.hide();_esroot.flower2.stop();」、および「Entry /_esroot.flower2.show();_esroot.flower2.gotoAndPlay();」と表示され、さらに、リンクファイルが存在することを示すアイコン132aが表示されている。
さらに、図16においては、ステート枠132が、カレントステートとして設定されいるため、ステート枠132は他のステート枠とは表示色が異なっている。また、スクリプト表示画面115には、ステート枠132に記述されているスクリプトが表示されており、動作表示画面115には、「flower2」のリンクファイルに対応するアニメーション画像が表示されている。
以上の処理により、図17で示されるように、ステートデータ格納部13に格納されている各ステート毎のステート情報は、スクリプトA乃至Dは、図15の状態遷移図表示画面114で示される状態遷移図が記述されるように更新されることになる。
ここで、図17においては、左から状態A乃至Dのステート情報が示されている。尚、イベントおよび遷移先については、図3における場合と同様である。
すなわち、状態A(State A)のスクリプトAは、「Exit /_esroot.forest.hide();_esroot.forest.stop();」、および「Entry /_esroot.forest.show();_esroot.forest.gotoAndPlay();」であり、状態B(State B)のスクリプトBは、「Exit /_esroot.flower2.hide();_esroot.flower2.stop();」、および「Entry /_esroot.flower2.show();_esroot.flower2.gotoAndPlay();」であり、状態C(State C)のスクリプトCは、「Exit /_esroot.flower.hide();_esroot.flower.stop();」、および「Entry /_esroot.flower.show();_esroot.flower.gotoAndPlay();」であり、状態D(State D)のスクリプトDは、「Exit /_esroot.temple.hide();_esroot.temple.stop();」、および「Entry /_esroot.temple.show();_esroot.temple.gotoAndPlay();」である。
以上の処理により、状態遷移図上で、リンクファイルをドラッグアンドドロップさせるだけで、ステート(状態)における、リンクファイルを再生させるという動作を指定するスクリプトを設定させることが可能となる。また、リンクファイルが存在する場合、ステート枠内にリンクファイルの存在を示すアイコンが表示されることになるので、状態遷移図表示画面114における各ステート枠を見るだけで、リンクファイルの有無を認識することが可能となる。
以上においては、リンクファイルが設定されているステート枠内にリンクファイルが設定されていることを示すアイコンを表示させる例について説明してきたが、リンクファイルが設定されているステート枠内で、リンクファイルであるアニメーションを再生させたり、または、アニメーションの代表画面を表示させるようにしてもよい。
図18は、リンクファイルが設定されているステート枠内で、リンクファイルであるアニメーションを再生させるようにした状態遷移プログラム編集装置1の一実施の形態の構成を示す図である。
図18の状態遷移プログラム編集装置1において、図1の状態遷移プログラム編集装置1と異なる点は、状態遷移図生成部15におけるアイコン付加部43に代えて、状態動作実行部201を設けた点であり、操作部11乃至リンクデータ格納部14、および、状態遷移エンジン16乃至表示部19は、図1と同様のものである。尚、図18において、図1と同一の機能を備えた構成については、同一の符号を付しており、その説明は適宜省略するものとする。
状態動作実行部201は、状態動作実行部17と基本的に同様のものであり、リンクファイル付ステート検索部44により検索されたステートのステート情報を読み出し、スクリプトを解釈して実行する。さらに、状態動作実行部201は、実行結果をステート枠内に表示させる画面を生成する。
次に、図19のフローチャートを参照して、図18の状態遷移プログラム編集装置1による状態遷移図生成処理について説明する。尚、図19におけるステップS161乃至S163、およびステップS169乃至S171の処理は、図11のフローチャートにおけるステップS121乃至123、およびステップS126乃至S128の処理と同様であるので、その説明は省略する。
ステップS164においては、リンクファイル付きステート検索部44は、全ステート情報におけるスクリプト情報のうち、リンクファイルが設定されているステートを検索し、検索結果を状態動作実行部201に供給する。
ステップS165において、状態動作実行部201は、ステートデータ格納部13にアクセスし、リンクファイルが設定されているステートのステート情報を読み出す。
ステップS166において、状態動作実行部201は、読み出したリンクファイルが設定されているステートのステート情報のうちスクリプト情報を解釈する。
ステップS167において、状態動作実行部201は、リンクファイルが設定されている各ステートの開始フレームの情報を検索する。
ステップS168において、状態動作実行部201は、リンクファイルが設定されている各ステート毎の開始フレームからリンクファイルであるアニメーションの再生を開始する。
以上の処理により、表示部19には、例えば、図20で示されるような表示画面101が表示される。すなわち、表示画面101の状態遷移図表示画面114には、状態A乃至Dに対応するステート枠171乃至174が表示されている。ステート枠171乃至174には、それぞれのステートに対応するアニメーションが表示されている。図20においては、花の画像上に「ABC」、「DEF」、「GHI」、および「JKL」の選択ボタンが表示されており、それぞれの表示ボタンが選択されると、他のボタンと異なる表示色で表示される。すなわち、図20の場合、ステート枠171においては、「ABC」の選択ボタンが異なる表示色で表示されており、ステート枠172においては、「DEF」の選択ボタンが異なる表示色で表示されており、ステート枠173においては、「GHI」の選択ボタンが異なる表示色で表示されており、ステート枠174においては、「JKL」の選択ボタンが異なる表示色で表示されている。
結果として、それぞれの状態において、リンクファイルが設定されていると、対応するアニメーションの表示が開始されることになるので、リンクファイルの設定の有無を認識することが可能になると共に、ステートごとにどのようなリンクファイルが設定され、実際には、どのようなアニメーションが再生されるのかを把握しながら、状態遷移プログラムを編集することが可能となる。尚、図18の状態遷移プログラム編集装置1における状態遷移プログラム編集処理、編集処理、トランジション編集処理、スクリプト編集処理、状態遷移プログラム実行処理、および、表示処理については、図1の状態遷移プログラム編集装置1における処理と同様であるので、その説明は省略する。
以上においては、全てのリンクファイルが設定されているステート枠内に、設定されているリンクファイルを再生させるようにした例について説明してきたが、複数の動画処理を並列的に実行させる必要があるため、ハードウェアに過大な負荷が掛かる可能性がある。そこで、カレントステートの遷移先となるステートにリンクファイルが設定されている場合にのみ、そのステート枠内に実行結果を表示させるようにしてもよい。
図21は、カレントステートの遷移先となるステートにリンクファイルが設定されている場合にのみ、そのステート枠内に実行結果を表示させるようにした状態遷移プログラム編集装置1の一実施の形態の構成を示す図である。図21の状態遷移プログラム編集装置において、図18の状態遷移プログラム編集装置1と異なる点は、リンクファイル付ステート検索部44、および、状態動作実行部201に代えて遷移先ステート検索部211、および、状態動作実行部212を備えている点であり、操作部11乃至リンクデータ格納部14、および、状態遷移エンジン16乃至表示部19は、図1,図18と同様のものである。尚、図21において、図1と同一の機能を備えた構成については、同一の符号を付しており、その説明は適宜省略するものとする。
遷移先ステート検索部211は、ステートデータ格納部13にアクセスし、カレントステートのステート情報を読み出して、トランジション情報から遷移先を検索し、読み出した遷移先のステートを状態動作実行部212に供給する。
状態動作実行部212は、状態動作実行部201と基本的に同様のものであり、遷移先ステート検索部211により検索されたステートのステート情報を読み出し、スクリプトを解釈して実行する。さらに、状態動作実行部212は、実行結果をステート枠内に表示させる画面を生成する。
次に、図22のフローチャートを参照して、図21の状態遷移プログラム編集装置1による状態遷移図生成処理について説明する。尚、図22のフローチャートにおけるステップS191乃至S194、およびステップS200の処理は、図19におけるステップS161乃至S163,S169,S170の処理と同様であるのでその説明は適宜省略する。
ステップS195においては、遷移先ステート検索部211は、全ステート情報におけるトランジション情報のうち、カレントステートに対して、遷移先となるステートを検索し、検索結果を状態動作実行部201に供給する。
ステップS196において、状態動作実行部212は、ステートデータ格納部13にアクセスし、カレントステートに対して、遷移先となるステートのうち、リンクファイルが設定されているステートのステート情報を読み出す。
ステップS197において、状態動作実行部212は、カレントステートに対して、遷移先となるステートのうち、リンクファイルが設定されているステートのステート情報のうちスクリプト情報を解釈する。
ステップS198において、状態動作実行部212は、カレントステートに対して、遷移先となるステートのうち、リンクファイルが設定されている各ステートの開始フレームの情報を検索する。
ステップS199において、状態動作実行部212は、カレントステートに対して、遷移先となるステートのうち、リンクファイルが設定されている各ステート毎の開始フレームからリンクファイルであるアニメーションの再生を開始する。
以上の処理により、図23で示されるように、表示画面101の状態遷移図表示画面114には、状態A乃至Dに対応するステート枠251乃至254が表示される。図23においては、状態Bを示すステート枠252が、他のステート枠と異なる表示色で表示され、カレントステートであることが示されている。状態Bの遷移先は、状態A,Cである。以上の処理により、遷移先である状態A,Cのステート枠251,253には、それぞれのステートに対応するアニメーションが表示されている。図23のステート枠251,253においては、花の画像上に「ABC」、「DEF」、「GHI」、および「JKL」と記述された選択ボタン251a乃至251dおよび253a乃至253dが表示されており、それぞれの選択ボタンが選択されると、他のボタンと異なる表示色で表示される。すなわち、図23の場合、ステート枠251においては、「ABC」の選択ボタン251aが異なる表示色で表示されており、ステート枠253においては、「GHI」の選択ボタン253cが異なる表示色で表示されている。また、図23においては、カレントステートである状態Bのステート枠252、および、カレントステートの遷移先とならない状態Dのステート枠254については、動作結果が表示されず、スクリプトが表示されるのみである。
結果として、それぞれの状態において、カレントステートの遷移先のステート枠内では、リンクファイルが設定されていると、対応するアニメーションが表示されることになるので、リンクファイルの設定の有無を認識することが可能になると共に、ステートごとにどのようなリンクファイルが設定され、実際には、遷移先のステートで、どのようなアニメーションが再生されるのかを把握しながら状態遷移プログラムを編集することが可能となる。しかもその際、実行結果は、遷移先となるステートのみで表示されることになるので、実行処理に掛かる負荷を低減させることが可能となる。
尚、図21の状態遷移プログラム編集装置1における状態遷移プログラム編集処理、編集処理、トランジション編集処理、スクリプト編集処理、状態遷移プログラム実行処理、および、表示処理については、図1の状態遷移プログラム編集装置1における処理と同様であるので、その説明は省略する。
以上においては、カレントステートの遷移先となるステートのステート枠内でリンクファイルが設定されている場合、リンクファイルであるアニメーションを再生させる例について説明してきたが、編集中にポインタを移動させて、ポインタの存在するステート枠内のステートの実行結果のみを表示させるようにしてもよい。
図24は、ポインタの存在するステート枠内のステートの実行結果のみを表示させるようにした状態遷移プログラム編集装置1の一実施の形態の構成を示す図である。図24の状態遷移プログラム編集装置1において、図21の状態遷移プログラム編集装置1と異なる点は、遷移先ステート検索部211、および、状態動作実行部212に代えてマウスオーバステート検索部271、および、状態動作実行部272を備えている点であり、操作部11乃至リンクデータ格納部14、および、状態遷移エンジン16乃至表示部19は、図1,図18と同様のものである。尚、図21において、図1と同一の機能を備えた構成については、同一の符号を付しており、その説明は適宜省略するものとする。
マウスオーバステート検索部271は、操作部11からの情報に基づいて、ポインタ150が存在するステート枠に対応するステートを検索し、状態動作実行部212に供給する。
状態動作実行部272は、状態動作実行部211と基本的に同様のものであり、マウスオーバステート検索部271により検索されたステートのステート情報を読み出し、スクリプトを解釈して実行する。さらに、状態動作実行部272は、実行結果をステート枠内に表示させる画面を生成する。
次に、図25のフローチャートを参照して、図24の状態遷移プログラム編集装置1による状態遷移図生成処理について説明する。尚、図25のフローチャートにおけるステップS221乃至S224、およびステップS230,S231の処理は、図22におけるステップS191乃至S193,S199,S200の処理と同様であるのでその説明は適宜省略する。
ステップS224において、マウスオーバステート検索部272は、操作部11からの信号に基づいて、ポインタ150が存在するステート枠に対応するステート(マウスオーバステート)を検索し、存在するか否かを判定する。ステップS224において、ステップS224において、例えば、存在すると判定された場合、ステップS225において、マウスオーバステート検索部271は、ポインタ150が存在するステートを検索し、検索結果を状態動作実行部272に供給する。
ステップS226において、状態動作実行部272は、ステートデータ格納部13にアクセスし、マウスオーバステートのうち、リンクファイルが設定されているステートのステート情報を読み出す。
ステップS227において、状態動作実行部272は、マウスオーバステートのうち、リンクファイルが設定されているステートのステート情報のうちスクリプト情報を解釈する。
ステップS228において、状態動作実行部272は、マウスオーバステートのうち、リンクファイルが設定されている各ステートの開始フレームの情報を検索する。
ステップS229において、状態動作実行部272は、マウスオーバステートのうち、リンクファイルが設定されている各ステート毎の開始フレームからリンクファイルであるアニメーションの再生を開始する。
以上の処理により、図26で示されるように、表示画面101の状態遷移図表示画面114には、状態A乃至Dに対応するステート枠291乃至294が表示される。図26においては、ポインタ150が存在するステート枠291には、そのステートに対応するアニメーションが表示されている。図26のステート枠291においては、花の画像上にそれぞれ「ABC」、「DEF」、「GHI」、および「JKL」と記述された選択ボタン291a乃至dが表示されており、それぞれの表示ボタンが選択されると、他のボタンと異なる表示色で表示される。すなわち、図26の場合、ステート枠291においては、「ABC」の選択ボタン291aが異なる表示色で表示されている。
結果として、ポインタ150がステート枠内に存在する場合、リンクファイルが設定されていると、対応するアニメーションが表示されることになるので、リンクファイルの設定の有無を認識することが可能になると共に、ステートごとにどのようなリンクファイルが設定され、実際には、遷移先のステートで、どのようなアニメーションが再生されるのかを把握しながら状態遷移プログラムを編集することが可能となる。また、実行結果は、ポインタ150が存在するステートのみで表示されることになるので、実行処理に掛かる負荷を低減させるだけでなく、ハードウェアに対して必要最低限の負荷で、任意のステートについて実行結果を認識することが可能となる。
尚、図24の状態遷移プログラム編集装置1における状態遷移プログラム編集処理、編集処理、トランジション編集処理、スクリプト編集処理、状態遷移プログラム実行処理、および、表示処理については、図1の状態遷移プログラム編集装置1における処理と同様であるので、その説明は省略する。
また、以上においては、全てのステート枠、遷移先となるステートのステート枠、またはポインタが存在するステート枠において、アニメーションの表示を開始させる例について説明してきたが、代表画面のみを表示させるようにしてもよく、このようにすることにより、画像処理に係る処理負荷をさらに低減させるようにすることが可能となる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図27は、図1,図18,図21,図24の状態遷移プログラム編集装置1の電気的な内部構成をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU501は、パーソナルコンピュータの全体の動作を制御する。また、CPU501は、バス504および入出力インタフェース505を介してユーザからキーボードやマウスなどからなる入力部506から指令が入力されると、それに対応してROM(Read Only Memory)502に格納されているプログラムを実行する。あるいはまた、CPU501は、ドライブ510に接続された磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリを含むリムーバルメディア521から読み出され、記憶部508にインストールされたプログラムを、RAM(Random Access Memory)503にロードして実行する。これにより、上述した図1,図18,図21,図24の状態遷移プログラム編集装置1の機能が、ソフトウェアにより実現されている。さらに、CPU501は、通信部509を制御して、外部と通信し、データの授受を実行する。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図27に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア521、または、プログラムが一時的もしくは永続的に格納されるROM502や、記憶部508を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部509を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
11 操作部, 12 編集部, 13 ステートデータ格納部, 14 リンクデータ格納部, 15 状態遷移図生成部, 16 状態遷移エンジン, 17 状態動作実行部, 18 表示制御部, 19 表示部, 31 ステート編集部, 32 トランジション編集部, 33 スクリプト編集部, 41 ステート枠生成部, 42 トランジション生成部, 43 アイコン生成部, 44 リンクファイル付ステート検索部, 51 スクリプト表示制御部, 52 状態遷移図表示制御部, 53 ステートリスト表示制御部, 54 リンクリスト表示制御部, 55 状態動作表示制御部, 201 状態動作実行部, 211 遷移先ステート検索部, 212 状態動作実行部, 271 状態動作実行部, 272 マウスオーバステート検索部