図1は、本発明を適用した編集装置1の一実施の形態の構成を示す図である。
編集装置1は、UI構成データを編集する装置である。編集装置1は、テキストデータで構成されたUI構成データを、テキスト編集により直接編集することもできるが、その他に、UI構成データをタイムラインや状態遷移図として表示することもでき、タイムラインや状態遷移図がユーザにより編集されると、タイムラインや状態遷移図の編集内容に応じてUI構成データを編集することもできる。
UI構成データは、アニメーション表示ルール、イベント処理ルール、およびラベルの情報からなり、複数のオブジェクト毎のアニメーションファイルが、各オブジェクトのアニメーションファイルごとに設定されるアニメーション表示ルールに基づいて実行されて表示される。また、各オブジェクトのアニメーションが表示されるタイミングは、イベント処理ルールに基づいて、時刻単位、または、フレーム単位で相互に関連付けられている。
より詳細には、アニメーション表示ルールは、アニメーションファイルごとに開始時刻、表示時間の情報を持ち、例えば、10乃至50msの間表示、50乃至100msの間非表示、100乃至120msの間表示などのように、各アニメーションについて表示される時間及び表示されない時間を定義するルールである。また、アニメーション表示ルールは、時刻表示のみではなく、フレーム番号でも同様に定義することができる。尚、以降においては、30fpsにおける1フレーム単位で定義する例について説明するものとするが、当然のことながらこれ以外のフレームレートのフレーム単位とするようにしてもよい。
ラベルの情報とは、これらのラベルの時刻、または、フレームを示す情報である。ラベルは、タイムラインにおける時刻またはフレーム番号により定義されるものであるが、一方で、状態遷移図における状態(ステート)の単位でもある。
イベント処理ルールは、発生するイベントにより、タイムライン上の再生位置や、状態遷移図上の状態を定義することで、イベントごとの処理内容を決定するルールである。
このように、アニメーション表示ルール、イベント処理ルール、および、ラベルの情報により、発生するイベントに応じたUIのアプリケーションプログラムと、アニメーション(デザイン)の開発とを独立させることが可能となるため、アニメーションとイベント応じたUIとを個々に開発することが可能となっている。また、イベント処理ルールのみを設定するだけで既存のアニメーションをつなぎ合わせて、容易にUIを開発することができるようになるため、UIの開発効率を向上させることが可能となっている。また、アニメーション表示ルールと、ラベルの情報に基づいて、例えば、所定の状態におけるUIとして表示するアニメーションをデザインや挙動の異なる別のアニメーションに容易に差し替えることが可能となっている。
尚、以下の例においては、UI構成データは、複数のアニメーションをそれぞれ様々なタイミングで表示させることで、UIを実現させるものとするが、UI構成データにより実行されるUIは、アニメーションを用いたものに限るものではなく、例えば、いわゆる、実写の動画データを再生させるようにしてもよいし、実写の動画データをCG(Computer Graphics)技術により編集した画像などであってもよい。
タイムライン抽出部11は、アニメーション表示ルール抽出部11a、イベント処理ルール抽出部11b、およびラベル抽出部11cを備えており、それぞれUI構成データ保持部21のUI構成データから読み出される、アニメーション表示ルール、イベント処理ルール、およびラベルの情報に基づいて、タイムラインを構成して、CRT(Cathode Ray Tube)やLCD(Liquid Crystal Display)などから構成される編集画面表示部20に供給すると共に、タイムラインを構成する情報をタイムライン編集部12に供給する。
タイムライン編集部12は、マウス、ポインタ、または、キーボードなどから構成される操作部17が、ユーザにより操作されるとき、その操作に応じて発生される操作信号に基づいて、タイムラインの編集内容を認識して、認識した編集内容と、対応するUI構成データの編集に必要な情報をタイムライン抽出部11より読み出し、アニメーション表示ルール設定部13、イベント処理ルール設定部18、およびラベル設定部16にそれぞれ供給する。
状態遷移図抽出部14は、アニメーション表示ルール抽出部14a、イベント処理ルール抽出部14b、およびラベル抽出部14cにより、UI構成データ保持部21のUI構成データよりそれぞれ読み出される、アニメーション表示ルール、イベント処理ルール、およびラベルの情報に基づいて、状態遷移図を構成して、CRTやLCDなどから構成される編集画面表示部20に供給すると共に、状態遷移図を構成する情報を状態遷移図編集部15に供給する。
状態遷移図編集部15は、マウス、ポインタ、またはキーボードなどから構成される操作部17が、ユーザにより操作されるとき、その操作に応じて発生される操作信号に基づいて、状態遷移図の編集内容を認識して、認識した編集内容と、対応するUI構成データの編集に必要な情報を状態遷移図抽出部14より読み出し、アニメーション表示ルール設定部13、イベント処理ルール設定部18、およびラベル設定部16にそれぞれ供給する。
アニメーション表示ルール設定部13は、タイムライン編集部12または状態遷移図編集部15より供給されてくるタイムライン、または、状態遷移図の編集内容に応じてUI構成データを取得し、取得したUI構成データと、編集内容に基づいて、アニメーション表示ルールを設定し、UI構成データ編集部19に供給する。アニメーション表示ルール設定部13は、アニメーション読込部13aを備えており、アニメーション表示ルールを編集するとき、編集内容に応じて、図示せぬアニメーションストレージより所定のアニメーションファイルを読み出し、アニメーション表示ルールと共にUI構成データ編集部19に供給する。
イベント処理ルール設定部18は、タイムライン編集部12または状態遷移図編集部15より供給されてくるタイムライン、または、状態遷移図の編集内容に応じてUI構成データを取得し、取得したUI構成データと、編集内容に基づいて、イベント処理ルールを設定し、UI構成データ編集部19に供給する。
UI構成データ編集部19は、アニメーション表示ルール設定部13、イベント処理ルール設定部18、およびラベル設定部16より供給されてくるアニメーション表示ルール、イベント処理ルール、およびラベルの情報に基づいて、UI構成データ保持部21に格納されているUI構成データを編集し、更新する。また、UI構成データ編集部19は、操作部17により直接編集されるアニメーション表示ルール、イベント処理ルール、およびラベルの編集情報に基づいて、UI構成データ保持部21に格納されているUI構成データを編集し、更新することもできる。
編集画面表示部20は、タイムライン抽出部11より供給されるタイムライン、状態遷移図抽出部14より供給される状態遷移図、および、UI構成データ保持部21に保持されているUI構成データのそれぞれの編集用ウィンドウを個別に図示せぬディスプレイに表示する。尚、当然のことながら、状態遷移図、タイムライン、およびUI構成データを表示する3枚のウィンドウ(例えば、図4のウィンドウ101乃至103)は、同時に3枚表示することもできるが、いずれか1枚だけ表示することも、また、いずれか2枚だけ表示することも可能である。また、それぞれのウィンドウは、いずれも同一のUI構成データに基づいて表示されるものであるため、同一のUI構成データを編集するためのものであり、例えば、タイムラインの編集用ウィンドウが編集されれば、対応して、状態遷移図、およびUI構成データのウィンドウも対応して編集された状態が表示される。
UI構成データ保持部21は、例えば、ハードディスクなどから構成され、UI構成データ編集部19により編集された、または、更新されるUI構成データを保持する(記憶する)と共に、必要に応じてタイムライン抽出部11、または状態遷移図14にUI構成データを供給する。
UI構成データ出力部22は、UI構成データ保持部21に保持されているUI構成データを読み出して、後述する再生装置31に供給する。
次に、図2を参照して、再生装置31の一実施の形態の構成について説明する。
再生装置31は、上述した図1の編集装置1などにより編集されたUI構成データを再生紙、実際にUIとして実行させるものである。
再生用データ読込部41は、編集装置1により編集されたUI構成データの再生用データを読み込み、イベント処理ルール保持部42およびアニメーション保持部43に供給する。イベント処理ルール保持部42は、再生用データに含まれるイベントハンドラ及びラベルを基に構成されるイベント処理内容を記述したイベント処理ルールを管理する。アニメーション保持部43は、再生用データ読込部41により読み込まれたUI構成データのうち、表示するアニメーションと、それぞれのアニメーション表示ルールを抽出して保持し管理する。イベント検出部44は、検出されたイベントをイベント処理部45に通知する。
イベント処理部45は、イベントが発生したことを示す通知に基づいて、発生したイベントに応じて、アニメーション再生位置変更部(画像データ再生位置変更部)46を制御し、アニメーション保持部43に保持されているアニメーションの再生位置を、アニメーション表示ルールと、イベント処理ルールとに基づいて変更させ、アニメーション合成部48に供給させる。また、イベント処理部45は、アニメーション変更部(画像データ変更部)47を制御し、ボタンやキャラクタといったアニメーション中に存在するパーツの色(テクスチャ含む)や模様、大きさ、位置といった属性を、アニメーション表示ルールと、イベント処理ルールとに基づいて変更させ、その情報をアニメーション合成部48に供給させる。
アニメーション合成部(画像データ合成部)48は、アニメーション再生位置変更部46より供給されてくるアニメーションの再生位置の情報と、アニメーション変更部47より供給されてくるアニメーション中のパーツと、その属性情報とに基づいて、読み込んだ複数のアニメーションを一つのアニメーションとして扱えるように合成し、アニメーション再生部49に供給する。アニメーション再生部(画像データ再生部)49は、アニメーション合成部48より供給されてくるアニメーションを再生し、図示せぬCRTやLCDからなるディスプレイ装置に表示させる。
イベントとしては、例えば、ユーザによるマウスのクリック操作、ドラッグアンドドロップ操作、またはキー入力といった操作によるユーザイベントや、タイマによる再生アニメーション切り替えなどデータが再生される際に発生するシステムイベントがある。また、動作状態を示すイベントも同様に扱うことができ、例えば、バッテリの残量が少なくなったことをイベントとして認識することもできる。
次に、編集装置1によるUI構成データの編集処理について説明するにあたり、先に、再生装置31によるUI構成データの再生処理について説明し、併せて、UI構成データの構造、並びに、UI構成データと、状態遷移図、およびタイムラインとの関係を説明する。
ステップS1において、イベント処理部45は、アニメーション保持部43が、それぞれ再生用データ読込部11から読み込んだ、アニメーション表示ルールに基づいて、アニメーション再生位置変更部46、およびアニメーション変更部47を制御させて、所定のアニメーションと、その再生位置とをアニメーション合成部48に出力させる。アニメーション合成部48は、供給されてくる所定のアニメーションと、その再生位置との情報に基づいてアニメーションを合成して、アニメーション再生部49より図示せぬディスプレイに表示させる。すなわち、最初の処理では、イベントの有無と無関係に再生されるアニメーションが再生されることになる。
ステップS2において、イベント処理部45は、イベント検出部44を監視して、イベントが発生したか否かを判定する。例えば、ステップS2において、イベントが検出された場合、ステップS3において、イベント処理部45は、イベント処理ルール保持部42よりイベント処理ルールを読み出し、検出されたイベントの内容がイベント処理ルールに適合するか否かを判断する。
ここで、図4を参照して、UI構成データの構造について説明する。
図4には、編集装置1により表示される状態遷移図による編集画面を表示する表示ウィンドウ101、タイムラインによる編集画面を表示する表示ウィンドウ102、および、UI構成データを直接編集する場合の表示ウィンドウ103が表示されている。ウィンドウ101乃至103は、いずれもウィンドウ103に記述されているUI構成データに基づいて表示されるものである。尚、ウィンドウ103の左側に1行ずつ付されている番号は、説明の便宜上行番号が記述されているが、通常、行番号はウィンドウ103に表示されないようにすることができる。
そこで、まず、図4のウィンドウ103に記述されているUI構成データを参照して、UI構成データの構造について説明する。
UI構成データは、アニメーションプール、アニメーション表示ルール、イベント処理ルール、および、ラベルの情報より構成されている。
アニメーションプールは、例えば、ウィンドウ103の行番号1で示されるように記述される。この記述においては、「a1」、「a2」で示されるアニメーションファイルが表示に用いられるファイルであることが示されている。図3においては、2個のアニメーションファイルのみが用いられる例について示されているが、さらに多い場合、{}内に記述される。尚、以降のアニメーション表示ルールにおいては、アニメーションを識別するIDは、0,1であり、それぞれアニメーションファイル「a1」、「a2」で示されるファイルである。
アニメーション表示ルールは、例えば、アニメーションの表示における表示開始フレーム(時刻:UIの全体のアニメーションが再生されるときの全体の中のタイミングを示すフレーム番号または時刻)、表示終了フレーム(時刻:UIの全体のアニメーションが再生されるときの全体の中のタイミングを示すフレーム番号または時刻)、アニメーションファイルを識別するID、および、アニメーションファイル内の表示開始フレームのフレーム番号が記述される。
例えば、図4においては、アニメーション表示ルールの記述は、行番号2乃至7の「A_rule[]」以降の記述である。すなわち、行番号3には、{7,11,0,start=1}と記述され、アニメーションを識別するIDが「0」である、アニメーションファイル「a1」における第1フレームからのアニメーションを、第7フレーム乃至第11フレームの直前までのタイミングで再生させることが記述されている。また、行番号4には、{12,17,1,start=1}と記述され、アニメーションを識別するIDが「1」である、アニメーションファイル「a2」における第1フレームからのアニメーションを、第12フレーム乃至第17フレームの直前までのタイミングで再生させることが記述されている。さらに、行番号5には、{7,11,1,start=1}と記述され、アニメーションを識別するIDが「1」である、アニメーションファイル「a2」における第1フレームからのアニメーションを、第7フレーム乃至第11フレームの直前までのタイミングで再生させることが記述されている。また、行番号6には、{12,17,0,start=0}と記述され、アニメーションを識別するIDが「0」である、アニメーションファイル「a1」における第1フレームからのアニメーションを、第12フレーム乃至第17フレームの直前のタイミングで再生させることが記述されている。
イベント処理ルールは、例えば、イベントが切り替わる開始フレーム(時刻:UIの全体のアニメーションが再生されるときの全体の中のタイミングを示すフレーム番号または時刻)、終了フレーム(時刻:UIの全体のアニメーションが再生されるときの全体の中のタイミングを示すフレーム番号または時刻)、イベントを識別する情報、および、処理内容の情報からなる。図4においては、例えば、ウィンドウ103の「E_rule[]」以降の行番号8乃至13の記述が、イベント処理ルールの記述となる。行番号9においては、{1,2,reach,goto(A)}と記述されており、第1フレームから開始し、第2フレームの直前に到達したとき、ラベルAで設定されるフレームに処理をジャンプさせることが示されている。また、行番号10においては、{6,7,reach,goto(B)}と記述されており、第6フレームから開始し、第7フレームの直前に到達したとき、ラベルBで設定されるフレームに処理をジャンプさせることが示されている。さらに、行番号11においては、{11,12,reach,goto(C)}と記述されており、第11フレームから開始し、第12フレームの直前に到達したとき、ラベルCで設定されるフレームに処理をジャンプさせることが示されている。また、行番号12においては、{16,17,reach,goto(A)}と記述されており、第16フレームから開始し、第17フレームの直前に到達したとき、ラベルCで設定されるフレームに処理をジャンプさせることが示されている。
ラベルの情報は、例えば、所定の処理区間を示すものである。図4においては、例えば、ウィンドウ103の行番号9乃至14の記述が、ラベルの情報の記述である。ただし、行番号10行目においては、{1,start}と記述されており、開始から第1フレーム直前のタイミングが、処理の基点であることを示すのみの記述となっている。
行番号11においては、{2,A}と記述されており、第2フレーム以降が、ラベルAの区間であることを示している。また、行番号12においては、{7,B}と記述されており、第7フレーム以降が、ラベルBの区間であることを示している。さらに、行番号13においては、{12,C}と記述されており、第12フレームの以降が、ラベルCの区間であることを示している。
ここで、フローチャートの説明に戻るが、ウィンドウ101,102の詳細については、後述するものとする。
例えば、ステップS3において、検出されたイベントが、イベント処理ルールに適合する場合、ステップS4において、イベント処理部45は、イベント処理ルールに記述されている、検出されたイベントに対応した処理を実行させる。すなわち、イベント処理部45は、イベント処理ルールに基づいて、必要に応じてアニメーション保持部43より新たなアニメーション表示ルールとアニメーションのファイルを読み出して、アニメーション再生位置変更部46およびアニメーション変更部47にそれぞれ供給する。
したがって、ステップS3において、例えば、最初の処理として行番号9のイベント処理ルールに適合するものであった場合、ステップS4において、イベント処理部45は、アニメーションの再生を開始して、第2フレームの直前のタイミングに到達するというイベントが発生すると、ラベルAの区間である第2フレームにジャンプさせるイベント処理が実行できるように、アニメーション保持部43より新たなアニメーション表示ルールとアニメーションのファイルを読み出して、アニメーション再生位置変更部46およびアニメーション変更部47にそれぞれ供給する。
ステップS5において、アニメーション再生位置変更部46およびアニメーション変更部47は、イベント処理部45より供給されてきたアニメーション表示ルールとアニメーションのファイルとに基づいて、新たなアニメーション再生位置と、アニメーションとをそれぞれアニメーション合成部48に供給する。アニメーション合成部48は、アニメーション再生位置の情報に基づいて、変更された複数のアニメーションを合成し、アニメーション再生部49にUIとしてアニメーションを表示させる。
ステップS6において、イベント処理部45は、イベント検出部44よりUIの表示の終了を指示するイベントが検出されたか否かを判定し、終了が指示するイベントが検出されていない場合、その処理は、ステップS2に戻り、それ以降の処理が繰り返される。
ステップS2において、イベントが発生していない、または、ステップS3において、イベント処理ルールに適合しないと判定された場合、ステップS4の処理はスキップされる。すなわち、この場合、イベント処理ルールに基づいた処理がなされないので、今現在の状態が維持されることになる。
ステップS6において、終了を指示するイベントが検出されたと判定された場合、その処理は、終了する。
以上のような動作により、UI構成データに基づいて、UIが実行されることになる。
次に、UI構成データの編集について説明する。上述したようにUI構成データは、タイムラインでも、状態遷移図でも表現することが可能であるため、そのいずれの形式で表示される状態でもUI構成データを編集することが可能である。
そこで、編集の説明に進む前に、図4を参照して、UI構成データ、タイムライン、および状態遷移図の関係を説明する。まず、UI構成データと状態遷移図との関係について説明する。
上述したように、ウィンドウ103に記述されているUI構成データの行番号9乃至12の記述では、それぞれフレーム2,7,12,17の直前のタイミングで、フレーム2,7,11,2にジャンプすることが記述されている。したがって、状態遷移図を考える場合、状態が遷移する条件が記述されていると考えることができる。また、遷移する先(イベントが発生したときにジャンプする先のフレーム)は、ラベルの情報として決定されているフレーム番号であることから各ラベルは、状態と考えることができる。したがって、ウィンドウ103に記述されたUI構成データに基づいた状態遷移図は、ウィンドウ101で示されるように表示されることになる。すなわち、ラベル「A」、「B」、および「C」は、状態A乃至Cとして状態枠St2乃至4として表現される。ここで、ラベル「start」は、上述したように処理の基点であるのみであるので、状態枠St1として表現されてはいるが、一般的な状態とは異なるものである。
また、行番号9の記述によれば、処理が開始される基点から第2フレームの直前に到達すると、第2フレームにジャンプすることにより、結果として、状態は、基点から状態Aに遷移することになる。したがって、この場合、遷移方向を示すトランジションT1が、状態枠St1から状態枠2に向かって記述される。
また、行番号10の記述によれば、第6フレームから第7フレームの直前に到達すると、第7フレームにジャンプすることにより、結果として、状態は、状態Aから状態Bに遷移することになる。したがって、この場合、遷移方向を示すトランジションT2が、状態枠St2から状態枠St3に向かって記述される。
また、行番号11の記述によれば、第11フレームから第12フレームの直前に到達すると、第12フレームにジャンプすることにより、結果として、状態は、状態Bから状態Cに遷移することになる。したがって、この場合、遷移方向を示すトランジションT3が、状態枠St3から状態枠St4に向かって記述される。
さらに、行番号12の記述によれば、第16フレームから第17フレームの直前に到達すると、第2フレームにジャンプすることにより、結果として、状態は、状態Cから状態Aに遷移することになる。したがって、この場合、遷移方向を示すトランジションT4が、状態枠St4から状態枠St2に向かって記述される。
結果として、ウィンドウ101のUI構成データは、ウィンドウ101の状態遷移図として表現される。
次に、UI構成データとタイムラインとの関係について説明する。
上述した図4のウィンドウ103の行番号9乃至12の記述は、いずれも、フレーム2,7,12,17におけるイベントの発生について記述されている。そこで、イベントの発生した区間については、例えば、「a」と丸印を記述する。したがって、図4のウィンドウ102の右部においては、第1,6,11,16フレームにおいては、上から第2段目において、「a」と丸印が記述されている。さらに、アニメーションの区間の先頭位置に丸印が記述されている。すなわち、イベントが発生したタイミングの次のフレームにおいては、アニメーションの区間が開始されることになるので、第2,7,12フレームには、丸印が設けられており、区間の開始が示される。さらに、ラベルが設定されている先頭位置が、示されており、図4のウィンドウ102においては、ラベルL1乃至L4の下に凸の黒三角が記述されている。また、図4のウィンドウ102については、左部にラベルL1乃至L4に対応するラベルリストが表示されており、ウィンドウ103のUI構成データにおける行番号14乃至19の「Label[]」以降の記述に基づいて、図中左側には開始フレームの番号が示され、右側にはラベルを識別する情報が記述されている。
図4のウィンドウ102の右部においては、最上段のメモリがフレーム番号を示し、第2段目がイベントに対応する区間を示しており、第3,4段目がそれぞれアニメーションファイル「a1」,「a2」のそれぞれの表示タイミングを示している。
より詳細には、第3段目の左部においては、アニメーション表示ルールにおける行番号3の記述に対応しており、UIを表現する一連の動作における第7フレームから第11フレームの直前のタイミングで、アニメーションファイル「a1」が第1フレームから表示されることが示されている。第3段目の右部においては、アニメーション表示ルールにおける行番号4の記述に対応しており、UIを表現する一連の動作における第12フレームから第17フレームの直前のタイミングで、アニメーションファイル「a2」が第1フレームから表示されることが示されている。
また、第4段目の左部においては、アニメーション表示ルールにおける行番号5の記述に対応しており、UIを表現する一連の動作における第7フレームから第11フレームのタイミングで、アニメーションファイル「a2」が第1フレームから表示されることが示されている。第4段目の右部においては、アニメーション表示ルールにおける行番号6の記述に対応しており、UIを表現する一連の動作における第12フレームから第17フレームの直前のタイミングで、アニメーションファイル「a1」が第1フレームから表示されることが示されている。尚、図4においては、黒丸がキー入力によるイベントの発生を示しており、縦長の四角がキー入力により発生したイベントで開始される区間の終了位置を示している。
次に、図5のフローチャートを参照して、編集装置1により、上述したUI構成データに基づいて表示されるタイムラインを編集することにより、UI構成データを編集するタイムライン編集処理について説明する。
ステップS11において、タイムライン抽出部11は、タイムライン表示処理を実行する。
ここで、図6のフローチャートを参照して、タイムライン表示処理について説明する。
ステップS31において、タイムライン抽出部11のアニメーション表示ルール抽出部11aは、UI構成データ保持部21に保持されているUI構成データよりアニメーション表示ルールの情報を抽出して読み出す。例えば、図4のウィンドウ103のUI構成データの場合、行番号2乃至7の情報が読み出されることになる。
ステップS32において、タイムライン抽出部11は、読み出されたアニメーション表示ルールに基づいて、各アニメーションファイルの区間情報を読み出す。すなわち、図4のウィンドウ103のUI構成データの場合、行番号3乃至6に記述されている区間の情報が読み出される。
ステップS33において、タイムライン抽出部11は、読み出されたアニメーションの区間情報に基づいて、アニメーションの区間情報を描画して、編集画面表示部20に表示させる。すなわち、図4の場合、ウィンドウ102で示されるタイムラインの第3,4段目で示されるようにアニメーションの表示区間が描画される。
ステップS34において、イベント処理ルール抽出部11bは、UI構成データ保持部21に保持されているUI構成データよりイベント処理ルールの情報を抽出して読み出す。例えば、図4のウィンドウ103のUI構成データの場合、行番号8乃至13の情報が読み出されることになる。
ステップS35において、タイムライン抽出部11は、読み出されたイベント処理ルールの情報に基づいて、イベント処理ルールの情報を描画して、編集画面表示部20に表示させる。すなわち、図4の場合、ウィンドウ102で示されるタイムラインの第2段目で示されるように区間の開始位置やイベントの発生位置が描画される。
ステップS36において、ラベル抽出部11cは、UI構成データ保持部21に保持されているUI構成データよりラベルの情報を抽出して読み出す。例えば、図4のウィンドウ103のUI構成データの場合、行番号14乃至19の情報が読み出されることになる。
ステップS37において、タイムライン抽出部11は、読み出されたラベルの情報に基づいて、ラベルを描画して、編集画面表示部20に表示させる。すなわち、図4の場合、ウィンドウ102で示されるタイムラインのラベルL1乃至L4で示されるようにラベルが描画される。
以上の処理により、UI構成データに基づいて、タイムラインを編集するためのウィンドウ102が表示されるので、ユーザは、編集しようとするUI構成データがタイムラインとして表現された状態を認識することが可能となる。
ここで、図5のフローチャートの説明に戻る。
ステップS12において、タイムライン編集部12は、操作部17が操作されて、タイムラインに編集操作が加えられたか否かを判定する。
ここで、UI構成データが、例えば、図7で示されるような初期状態であったところに、図8で示されるように新たにイベント処理ルールが加えられた場合を例にして説明を進める。
図7においては、UI構成データのウィンドウ103で示されるように、行番号1では、アニメーションファイルが記述されている。ただし、初期状態であるため、アニメーションを指定するファイル名が入力されていない。また、行番号2には、アニメーション表示ルールが記述されているが、同様に初期状態であるので、ルールそのものが記述されていない。
さらに、行番号3乃至6には、イベント処理ルールが記述されている。この中で、行番号4には、{1,2,reach,goto(A)}と記述されており、第1フレームから開始し、第2フレームの直前に到達したとき、ラベルAで設定されるフレームに処理をジャンプさせることが示されている。同様に、行番号5には、{6,7,reach,stop()}と記述されており、第6フレームから開始し、第7フレームの直前に到達したとき、処理を停止させることが示されている。
また、行番号7乃至10には、ラベルの情報が記述されており、行番号8においては、基準となるラベルが示されており、行番号9においては、{2,A}と記述されており、第2フレーム以降が、ラベルAの区間であることを示している。
これらの情報が、タイムラインで表示されると、図7のウィンドウ102で示されるようになる。すなわち、第2段目には、第1フレームの位置に、「a」と白丸印が記述され、UI構成データの行番号4のイベント処理ルールが反映される。また、第2段目には、第6フレームの位置に、「a」と白丸印が記述され、UI構成データの行番号5のイベント処理ルールが反映される。さらに、ラベルL1,L2がラベル情報に基づいて記述される。尚、ウィンドウ102の左部には、図中左側には開始フレームの番号が示され、右側にはラベルを識別する情報が記録されており、図7においては、処理の基点となる第1フレームについてはラベルがなく、第2フレームからの区間がラベルAに設定されている。
すなわち、図7で示されるウィンドウ102のタイムラインであった場合、例えば、操作部17が操作されて、図8のウィンドウ102で示されるように、第7フレームに「a」と白丸が新たに記述され、タイムラインに編集操作が加えられたと判定された場合、変更があったものとみなし、ステップS13において、タイムライン編集操作に基づいたUI構成データ編集処理が実行される。
ここで、図9のフローチャートを参照して、タイムライン編集操作に基づいたUI構成データ編集処理について説明する。
ステップS51において、タイムライン編集部12は、操作部17の操作内容からタイムライン編集操作に基づいて、アニメーション表示ルールが変更されたか否かを判定する。例えば、アニメーション表示ルールが変更されたと判定された場合、ステップS52において、タイムライン編集部12は、操作部17からの操作内容に応じて、変更されたアニメーション表示ルールの情報をアニメーション表示ルール設定部13に供給する。アニメーション表示ルール設定部13は、変更内容の情報に基づいて、UI構成データのうちアニメーション表示ルールを生成し、UI構成データ編集部19に対して供給する。UI構成データ編集部19は、編集操作に基づいて、新たに供給されてきたアニメーション表示ルールで、UI構成データ保持部21に保持されているUI構成データを更新して記憶させる。
ステップS53において、タイムライン編集部12は、操作部17の操作内容からタイムライン編集操作に基づいて、イベント処理ルールが変更されたか否かを判定する。例えば、イベント処理ルールが変更されたと判定された場合、ステップS54において、タイムライン編集部12は、操作部17からの操作内容に応じて、変更されたイベント処理ルールの情報をイベント処理ルール設定部18に供給する。イベント処理ルール設定部18は、変更内容の情報に基づいて、UI構成データのうちイベント処理ルールを生成し、UI構成データ編集部19に対して供給する。UI構成データ編集部19は、編集操作に基づいて、新たに供給されてきたイベント処理ルールで、UI構成データ保持部21に保持されているUI構成データを更新して記憶させる。
例えば、図7で示される状態から図8で示される状態となるように、新たに第7フレームに、新たな区間を生成するように、操作部17によりタイムラインが操作された場合、ステップS54の処理により、図8のウィンドウ103の行番号6で示されるように、新たにイベント処理ルールとして、{7,8,reach,stop()}が新たに記述され、第7フレームから第8フレームの直前に達したら処理を停止させることが新たに記述されることになる。
ステップS55において、タイムライン編集部12は、操作部17の操作内容からタイムライン編集操作に基づいて、ステート生成要因が発生しているか否か(ラベルの情報が変更されたか否か)を判定する。ステート生成要因が発生するとは、所定のフレームにラベルの情報が更新される(ラベルが付される)条件が満たされることを示している。ここで、ラベルが付されるフレームの条件は、例えば、一連のアニメーション表示の先頭フレーム(編集中のタイムラインの先頭フレーム)であること、ラベルがユーザにより指定されたフレームであること、イベント処理ルールにより動作が指定された先頭フレームであること、キー操作によるイベントにより動作が指定されているフレームであること、または、キー操作によるイベントにより指定された一連の動作の最終フレームの次のフレームであることなどである。ステートとは、状態遷移図における状態枠により表現される1つの「状態」である。ラベルは、タイムラインにおける1つの連続した動作を実行する区間を示すものであるが、1つの連続した動作を実行する区間は、状態遷移図におけるステートに相当するものである。したがって、ラベルが付されるのは、状態が1つ増えることと同一の意味を持つことになる。
今の場合、図8で示されるように第7フレームに新たなイベント処理ルールが加えられて更新されることにより、新たなイベント処理ルールが先頭フレームで設定されている。そこで、ステップS55においては、ステート生成要因が発生している、すなわち、新たにラベルが付される条件であると判定されることになるので、その処理は、ステップS56に進む。
ステップS56において、タイムライン編集部12は、ラベルが付される条件であることをラベル設定部16に通知する。ラベル設定部16は、この通知に基づいて、ラベルを新たに発生するラベルの情報を生成し、UI構成データ編集部19に対して供給する。UI構成データ編集部19は、編集操作に基づいて、新たに供給されてきたラベルの情報で、UI構成データ保持部21に保持されているUI構成データを更新して記憶させる。
例えば、今の場合、この処理により、図8のウィンドウ103で示されるように、行番号11で示されるように{7,B}と記述されると共に、ウィンドウ102の左部のラベルリストで示されるように、新たなラベルの区間の開始位置として第7フレームが記述され、ラベル名として「B」が設定される。
ステップS51において、アニメーション表示ルールに変更がないと判定された場合、ステップS52の処理は、スキップされる。また、ステップS53において、イベント処理ルールに変更がないと判定された場合、ステップS54乃至S56の処理がスキップされる。さらに、ステップS55においてステート生成要因が発生していないと判定された場合、ステップS56の処理がスキップされる。
以上のタイムライン編集操作に基づいたUI構成データ編集処理に伴って、UI構成データが書き換えられ、その処理は、ステップS11(図5)に戻り、それ以降の処理が繰り返される。したがって、UI構成データが書き換えられると、ステップS11の処理において、更新された情報が反映されたUI構成データに基づいて、ウィンドウ101,102,103が表示されることになるので、例えば、上述したようにラベルが付されると、図8で示されるようにラベルL3が描画されて表示される。
以上によれば、各区間の長さ(ステート長)が認識しやすいタイムラインを編集することで、UI構成データを編集することが可能となる。
次に、図10のフローチャートを参照して、編集装置1により、上述したUI構成データに基づいて表示される状態遷移図を編集することにより、UI構成データを編集する状態遷移図編集処理について説明する。
ステップS71において、状態遷移図抽出部14は、状態遷移図表示処理を実行する。
ここで、図11のフローチャートを参照して、状態遷移図表示処理について説明する。
ステップS91において、状態遷移図抽出部14のラベル抽出部14cは、UI構成データ保持部21に保持されているUI構成データよりラベルの情報を抽出して読み出す。例えば、図7のウィンドウ103のUI構成データの場合、行番号7乃至10の情報が読み出されることになる。
ステップS92において、タイムライン抽出部11は、読み出されたラベルの情報に基づいて、状態枠を描画して、編集画面表示部20に表示させる。すなわち、図7の場合、ウィンドウ101で示されるように、行番号8の記述に基づいて、基点となる状態枠St11が描画され、行番号9の記述に基づいて、ラベルAに対応する状態Aの状態枠St12が描画される。
ステップS93において、イベント処理ルール抽出部14bは、UI構成データ保持部21に保持されているUI構成データよりイベント処理ルールの情報を抽出して読み出す。例えば、図7のウィンドウ103のUI構成データの場合、行番号3乃至6の情報が読み出されることになる。
ステップS94において、状態遷移図抽出部14は、読み出されたイベント処理ルールの情報に基づいて、トランジションを描画して、編集画面表示部20に表示させる。すなわち、図7の場合、ウィンドウ103で示される行番号4の記述に基づいて、第2フレームの直前のタイミングに到達すると、ラベルAに相当する状態Aにジャンプすることが記述されているので、ウィンドウ101で示されるように、状態枠St11を基点として、St12を終点とするトランジションT11を示す矢印が描画されることになる。
ステップS95において、状態遷移図抽出部14のアニメーション表示ルール抽出部14aは、UI構成データ保持部21に保持されているUI構成データよりアニメーション表示ルールの情報を抽出して読み出す。例えば、図4のウィンドウ103のUI構成データの場合、行番号2乃至7の情報が読み出されることになる。
ステップS96において、状態遷移図抽出部14は、読み出されたアニメーション表示ルールに基づいて、各アニメーションファイルの区間情報を読み出す。すなわち、図4のウィンドウ103のUI構成データの場合、行番号3乃至6に記述されている区間の情報が読み出される。
ステップS97において、タイムライン抽出部11は、読み出されたアニメーションの区間情報、および、アニメーションファイル名を、対応する状態枠に描画して、編集画面表示部20に表示させる。尚、図7においては、ウィンドウ101において状態枠St12内にテキストとして表示されるのみであるので、図示が省略されている。ただし、アニメーションファイル名などは、状態枠内で別の表記とするようにしてもよく、例えば、アイコンなどにして状態枠内で表示させるようにしてもよい。
以上の処理により、UI構成データに基づいて、状態遷移図を編集するためのウィンドウ101が表示されるので、ユーザは、編集しようとするUI構成データが状態遷移図として表現された状態を認識することが可能となる。
ここで、図10のフローチャートの説明に戻る。
ステップS72において、状態遷移図編集部15は、操作部17が操作されて、状態遷移図に編集操作が加えられたか否かを判定する。
ここでも、UI構成データが、例えば、図7で示されるような初期状態であって、図8で示されるように新たにイベント処理ルールが加えられた場合を例にして説明を進める。
すなわち、図7で示されるウィンドウ101の状態遷移図であった場合、例えば、操作部17が操作されて、図8のウィンドウ101で示されるように、状態枠St13が、状態遷移図に記述されることにより、編集操作が加えられたと判定された場合、ステップS73において、状態遷移図編集操作に基づいたUI構成データ編集処理を実行する。
ここで、図12のフローチャートを参照して、タイムライン編集操作に基づいたUI構成データ編集処理について説明する。
ステップS111において、状態遷移図編集部15は、操作部17の操作内容から状態遷移図編集操作に基づいて、アニメーション表示ルールが変更されたか否かを判定する。例えば、アニメーション表示ルールが変更されたと判定された場合、ステップS112において、状態遷移図編集部15は、操作部17からの操作内容に応じて、変更されたアニメーション表示ルールの情報をアニメーション表示ルール設定部13に供給する。アニメーション表示ルール設定部13は、変更内容の情報に基づいて、UI構成データのうちアニメーション表示ルールを生成し、UI構成データ編集部19に対して供給する。UI構成データ編集部19は、編集操作に基づいて、新たに供給されてきたアニメーション表示ルールで、UI構成データ保持部21に保持されているUI構成データを更新して記憶させる。
ステップS113において、状態遷移図編集部15は、操作部17の操作内容から状態遷移図編集操作に基づいて、イベント処理ルールが変更されたか否かを判定する。例えば、イベント処理ルールが変更されたと判定された場合、ステップS114において、状態遷移図編集部15は、操作部17からの操作内容に応じて、変更されたイベント処理ルールの情報をイベント処理ルール設定部18に供給する。イベント処理ルール設定部18は、変更内容の情報に基づいて、UI構成データのうちイベント処理ルールを生成し、UI構成データ編集部19に対して供給する。UI構成データ編集部19は、編集操作に基づいて、新たに供給されてきたイベント処理ルールで、UI構成データ保持部21に保持されているUI構成データを更新して記憶させる。
例えば、図7で示される状態から図8で示される状態となるように、新たに状態が追加された場合、最小区間のタイムラインを発生させるときと同様に処理され、ステップS114の処理により、図8のウィンドウ103の行番号6で示されるように、新たにイベント処理ルールとして、{7,8,reach,stop()}が新たに記述され、第7フレームから第8フレームの直前に達したら処理を停止させることが新たに記述されることになる。尚、新たに状態が付加される場合、タイムラインで表現すると、他の状態には遷移しない、すなわち、所定の区間が終了してもどこのフレームにもジャンプしない状態であるため、新たに状態が付加される場合、イベント処理ルールとして「stop()」が設定されている。
ステップS115において、状態遷移図編集部12は、操作部17の操作内容から状態遷移図編集操作に基づいて、ステート生成要因が発生しているか否か(ラベルの情報が変更されたか否か)を判定する。状態遷移図におけるステートとラベルが同一のものとして扱えることは上述した通りであるので、状態枠が追加されるような場合、ステートが1つ増えることになるので、ステート生成要因が発生していることになる。
そこで、ステップS115において、新たにラベルが付される条件であると判定されることになり、処理は、ステップS116に進む。
ステップS116において、状態遷移図編集部15は、ラベルが付される条件であることをラベル設定部16に通知する。ラベル設定部16は、この通知に基づいて、ラベルを新たに発生する情報を生成し、UI構成データ編集部19に対して供給する。UI構成データ編集部19は、編集操作に基づいて、新たに供給されてきたラベルの情報で、UI構成データ保持部21に保持されているUI構成データを更新して記憶させる。
例えば、今の場合、この処理により、図8のウィンドウ103で示されるように、行番号11で示されるように{7,B}と記述されることになる。
ステップS111において、アニメーション表示ルールに変更がないと判定された場合、ステップS112の処理は、スキップされる。また、ステップS113において、イベント処理ルールに変更がないと判定された場合、ステップS114乃至S116の処理がスキップされる。さらに、ステップS115においてステート生成要因が発生していないと判定された場合、ステップS116の処理がスキップされる。
以上の状態遷移図編集操作に基づいたUI構成データ編集処理により、新たにUI構成データが書き換えられ、その処理は、ステップS71(図5)に戻り、それ以降の処理が繰り返される。したがって、UI構成データが書き換えられると、ステップS71の処理において、更新された情報が反映されてUI構成データに基づいて、ウィンドウ101,102,103が表示されることになるので、例えば、上述したようにラベルが付されると、図8で示されるようにラベルL3が描画されて表示される。
以上によれば、視覚的に認識しやすい状態遷移図を編集することで、UI構成データを編集することが可能となる。
さらに、上述したように、UI構成データは、状態遷移図およびタイムラインのいずれでも表現することが可能であるため、そのいずれでもUI構成データを編集することが可能となり、状態遷移図の編集結果をUI構成データおよびタイムラインに反映させることができ、逆に、タイムラインの編集結果をUI構成データおよび状態遷移図に反映させることもできる。
また、UI構成データが、状態遷移図およびタイムラインのいずれでも表現できるので、状態遷移図とタイムラインとに互換性を持たせることが可能となり、状態遷移図を用いてタイムラインを編集したり、タイムラインを用いて状態遷移図を編集することが可能となる。
尚、UI構成データは、状態遷移図およびタイムラインのいずれでも表現することは可能であるが、どの情報を編集するのかにより、状態遷移図、または、ライムラインのいずれかを選択して編集するようにすることが望ましい。すなわち、例えば、状態遷移図でステート長を変更させるような場合、UI構成データのテキストデータをそのまま更新するような作業により編集する必要がある。そこで、そのような場合、タイムラインによる編集を行うようにすることで、ステート長の編集を容易なものとすることができる。また、逆に、発生するイベントにより、どの状態にジャンプするのかについては、タイムラインでは把握しにくいので、状態遷移図による編集を行うようにすることで、イベントと対応する動作の関係の編集を容易なものとすることができる。
以上においては、状態遷移図において状態が1個追加される場合、すなわち、タイムラインにおいて、所定のイベントが発生したときにアニメーションが表示される1つの区間が追加される場合におけるUI構成データの編集例について説明してきたが、編集内容はこれに限るものではない。
以降に、編集例について説明する。
例えば、図13で示されるように、図8のウィンドウ101における状態枠St13のステート名を「B」から「C」に変更させるような状態遷移図の編集処理があった場合、対応して、UI構成データにおけるラベルの情報が編集される。より詳細には、図8のウィンドウ103で示される行番号11の記述{7,B}が、図13のウィンドウ103で示される行番号11の記述{7,C}のように編集されることになる。UI構成データが編集されることにより、タイムラインは、図13のウィンドウ102で示されるように、図8におけるラベルリストの最下段の表記が、「B」から「C」に変更され、ラベルL3が状態BからCに変更される。尚、状態遷移図の編集操作に伴ったUI構成データおよびタイムラインの編集処理について説明したが、逆に、タイムラインを編集しても、同様にUI構成データと状態遷移図が編集されることになる。
また、例えば、図14で示されるような状態から、図15で示されるように状態遷移図を編集して、状態枠St13を削除するような編集をする場合、UI構成データおよびタイムラインは以下のように編集される。
ここで、図14においては、ウィンドウ101においては、状態枠St11乃至St14が存在し、トランジションT11が存在するものとする。このとき、タイムラインは、図14のウィンドウ102で示されるように、第1,6,11,16フレームにイベントの発生と共に新たな区間が開始する「a」および丸印が描画されている。
さらに、UI構成データは、ウィンドウ103で示されるように、行番号1がアニメーションプールを示し、行番号2がアニメーション表示ルールを示している。尚、図14,図15においては、アニメーションプール、および、アニメーション表示ルールについては、状態および区間における処理を説明するため、記載が省略されている。
行番号3乃至8においては、イベント処理ルールが記述されており、行番号4の記述により基点の情報が記述され、行番号5の記述により、第2フレーム乃至第7フレームの直前までが1つの区間(状態A)であることが記述され、行番号6の記述により、第7フレーム乃至第12フレームの直前までが1つの区間(状態B)であることが記述され、行番号7の記述により、第12フレームから第17フレームの直前までが1つの区間(状態C)であることが記述されている。
行番号9乃至13においては、ラベルの情報が記述されており、行番号10の記述により基点の情報が記述され、行番号11の記述により第2フレームからラベルA(状態A)であることが記述され、行番号12の記述により第7フレームからラベルB(状態B)であることが記述され、行番号13の記述により第12フレームからラベルC(状態C)であることが記述されている。
このとき、図15のウィンドウ101で示されるように、状態枠St13が削除されると、削除された状態枠St13に対応する状態Bの記述である、図14のウィンドウ103の行番号6,12が削除されて、図15のウィンドウ103で示されるように記述されることになる。すなわち、タイムラインの記述に従い、フレーム番号が詰められることになる。具体的には、図14のウィンドウ103の行番号6の記述は、タイムラインにおける第7フレーム乃至第12フレームにおける記述に相当するため、その部分を図中の左側にスライドさせるように記述を編集する。したがって、図14のウィンドウ103の行番号7の記述がずれて、図15のウィンドウ103においては、行番号6で示されるような記述となる。また、ラベルの情報については、状態Bに対応するラベルBの記述である図14のウィンドウ103の行番号12の記述が削除されて、図15のウィンドウ103の行番号8乃至12で示されるように記述される。
対応してタイムラインについては、図14のウィンドウ102の第7フレーム乃至第12フレームの記述が削除されて、第12フレーム乃至第16フレームの記述が図中左方向にスライドして、図15のウィンドウ102で示されるように第7フレーム乃至第12フレームの記述となる。
この処理についても、図15のウィンドウ102で示されるようにタイムラインを編集しても、同様に図15のウィンドウ101,102で示される状態遷移図およびUI構成データに編集されることになる。
さらに、例えば、図16の左上部で示されるようなタイムラインを示すウィンドウ102があり、対応してUI構成データが図16の左下部のウィンドウ103で示されるような場合、ステート長が短くされると、図16の中央上部で示されるウィンドウ102および中央下部で示されるウィンドウ103で示されるように編集され、逆にステート長が長くされると、図16の右上部で示されるウィンドウ102および右下部で示されるウィンドウ103で示されるように編集される。
ここで、図16の左上部のウィンドウ102は、最上段および第2段目は、イベント処理ルールが記述されており、特に、第2段目は、図16の左下部のウィンドウ103の行番号14,15の記述に対応するものである。行番号14の記述は、第39フレーム乃至第44フレームの直前までは、電圧がEv_Aの場合、ラベルCのフレームまでジャンプすることが記述されている。行番号15の記述は、第44フレーム乃至第49フレームの直前までは、電圧がEv_Aの場合、ラベルBのフレームまでジャンプすることが記述されている。
図16の左上部のウィンドウ102における第3段目は、図16の左下部のウィンドウ103における行番号3の記述に対応するアニメーション表示ルールに基づいたアニメーションの表示タイミングを示している。図16の左下部のウィンドウ103における行番号3の記述は、第41フレームから第44フレームの直前までのタイミングで、アニメーションファイルが「a1」に対応するID=0のアニメーションを、アニメーションファイルの第1フレームから再生することが記述されている。
図16の左上部のウィンドウ102における第4段目は、図16の左下部のウィンドウ103における行番号4の記述に対応するアニメーション表示ルールに基づいたアニメーションの表示タイミングを示している。図16の左下部のウィンドウ103における行番号4の記述は、第40フレームから第42フレームの直前までのタイミングで、アニメーションファイルが「a2」に対応するID=1のアニメーションを、アニメーションファイルの第1フレームから再生することが記述されている。
図16の左上部のウィンドウ102における第5段目は、図16の左下部のウィンドウ103における行番号5の記述に対応するアニメーション表示ルールに基づいたアニメーションの表示タイミングを示している。図16の左下部のウィンドウ103における行番号5の記述は、第34フレームから第46フレームの直前までのタイミングで、アニメーションファイルが「a1」に対応するID=0のアニメーションを、アニメーションファイルの第1フレームから再生することが記述されている。
図16の左上部のウィンドウ102における第6段目は、図16の左下部のウィンドウ103における行番号6の記述に対応するアニメーション表示ルールに基づいたアニメーションの表示タイミングを示している。図16の左下部のウィンドウ103における行番号6の記述は、第34フレームから第41フレームの直前までのタイミングで、アニメーションファイルが「a1」に対応するID=0のアニメーションを、アニメーションファイルの第1フレームから再生することが記述されている。
図16の左上部のウィンドウ102における第7段目は、図16の左下部のウィンドウ103における行番号7の記述に対応するアニメーション表示ルールに基づいたアニメーションの表示タイミングを示している。図16の左下部のウィンドウ103における行番号7の記述は、第42フレームから第46フレームの直前までのタイミングで、アニメーションファイルが「a2」に対応するID=1のアニメーションを、アニメーションファイルの第1フレームから再生することが記述されている。
図16の左上部のウィンドウ102における最上段の第38フレームの記述は、図16の左下部のウィンドウ103における行番号10の記述に対応するイベント処理ルールに基づいた記述である。図16の左下部のウィンドウ103における行番号10の記述は、第38フレームに入ってから第39フレームの直前までに達した場合、処理を停止することが記述されている。
図16の左上部のウィンドウ102における最上段の第43フレームの記述は、図16の左下部のウィンドウ103における行番号11の記述に対応するイベント処理ルールに基づいた記述である。図16の左下部のウィンドウ103における行番号11の記述は、第43フレームに入ってから第44フレームの直前までに達した場合、処理を停止することが記述されている。
図16の左上部のウィンドウ102における最上段の第48フレームの記述は、図16の左下部のウィンドウ103における行番号12の記述に対応するイベント処理ルールに基づいた記述である。図16の左下部のウィンドウ103における行番号12の記述は、第48フレームに入ってから第49フレームの直前までに達した場合、処理を停止することが記述されている。
図16の左上部のウィンドウ102における最上段の第53フレームの記述は、図16の左下部のウィンドウ103における行番号13の記述に対応するイベント処理ルールに基づいた記述である。図16の左下部のウィンドウ103における行番号13の記述は、第53フレームに入ってから第54フレームの直前までに達した場合、処理を停止することが記述されている。
図16の左上部のウィンドウ102におけるラベルL11乃至L13は、図16の左下部のウィンドウ103における行番号17乃至22の記述に対応するラベルの記述である。図16の左下部のウィンドウ103における行番号18乃至21の記述は、第2フレームからラベルAであり、第39フレームからラベルBであり、第44フレームからラベルCであり、第54フレームからラベルDであることが記述されている。
図16の左部の状態から、例えば、第42フレームを削除して、タイムラインのステート長を短くするように編集された場合、タイムラインは、図16の中央上部で示されるように、図16の左上部の状態から第42フレームの記述が一律削除された状態となる。
さらに、アニメーション表示ルールは、図16の中央下部のウィンドウ103の行番号3の記述は、図16の左下部のウィンドウ103の行番号3の記述に対して、表示タイミングが1フレーム分短くなり、第41フレームから第43フレームの直前までに変更される。
また、図16の左下部のウィンドウ103の行番号5の記述は、分割されて図16の中央下部のウィンドウ103の行番号5,6の記述となり、表示タイミングが1フレーム分短くなる。結果として、図16の中央下部のウィンドウ301の行番号5の記述は、第34フレームから第43フレームの直前までのタイミングで、アニメーションファイルが「a1」に対応するID=0のアニメーションを、アニメーションファイルの第1フレームから再生する記述となり、図16の中央下部のウィンドウ301の行番号6の記述は、第44フレームから第47フレームの直前までのタイミングで、アニメーションファイルが「a1」に対応するID=0のアニメーションを、アニメーションファイルの第9フレームから再生する記述となる。すなわち、編集前の第42フレームが削除された関係上、図16の中央下部のウィンドウ103における行番号5の記述は、削除される直前までのアニメーションファイルを再生させる記述となり、行番号6の記述は、削除された以降のアニメーションファイルの第9フレームから再生する記述となる(オフセットした位置からアニメーションを再生させる記述となる)。
同様に、図16の左下部のウィンドウ103の行番号7の記述は、分割されて図16の中央下部のウィンドウ103の行番号8,9の記述となり、表示タイミングが1フレーム分短くなる。結果として、図16の中央下部のウィンドウ301の行番号8の記述は、第42フレームから第43フレームの直前までのタイミングで、アニメーションファイルが「a2」に対応するID=1のアニメーションを、アニメーションファイルの第1フレームから再生する記述となり、図16の中央下部のウィンドウ301の行番号9の記述は、第44フレームから第46フレームの直前までのタイミングで、アニメーションファイルが「a2」に対応するID=1のアニメーションを、アニメーションファイルの第2フレームから再生する記述となる。
さらに、イベント処理ルールの記述は、図16の中央下部のウィンドウ103の記述における行番号13乃至17の記述において、削除された第42フレーム以降のフレーム番号が1フレーム分ずれて、少なく記述される。
尚、このとき、ラベルの情報は、第42フレームの削除に伴って、1フレーム分ずれる。すなわち、図16の中央下部の行番号22,23の記述は、図16の左下部の行番号20,21の記述に対して、1フレーム分詰められている。
また、逆に図16の左上部の状態から、上から第2段目の第39フレーム乃至第44フレームの直前までの区間を第53フレームの直前まで伸ばした場合、図16の右上部で示されるように編集される。
この処理により、図16の右下部のウィンドウ103における行番号16の記述は、タイムラインが伸ばされた分だけフレーム数が増え、第39フレーム乃至第53フレームの直前までのタイミングのイベント処理ルールとなる。この処理の結果、第5,7段目の区間が分断されるため、アニメーション表示ルールの記述が分割される。すなわち、図16の左下部のウィンドウ301の行番号5の記述は、図16の右下部のウィンドウ301の行番号5,6の記述となる。図16の右下部のウィンドウ301の行番号5の記述は、第34フレーム乃至、区間が伸ばされる起点となる第44フレームの直前までのタイミングで、アニメーションファイルが「a1」に対応するID=0のアニメーションを、アニメーションファイルの第1フレームから再生する記述となり、図16の右下部のウィンドウ301の行番号6の記述は、第53フレームから第55フレームの直前までのタイミングで、アニメーションファイルが「a1」に対応するID=0のアニメーションを、アニメーションファイルの第1フレームから再生する記述となる。
同様に、図16の左下部のウィンドウ301の行番号6の記述は、図16の右下部のウィンドウ301の行番号8,9の記述となる。図16の右下部のウィンドウ301の行番号8の記述は、第42フレーム乃至、区間が伸ばされる起点となる第44フレームの直前までのタイミングで、アニメーションファイルが「a2」に対応するID=1のアニメーションを、アニメーションファイルの第1フレームから再生する記述となり、図16の右下部のウィンドウ301の行番号9の記述は、第53フレームから第55フレームの直前までのタイミングで、アニメーションファイルが「a2」に対応するID=1のアニメーションを、アニメーションファイルの第1フレームから再生する記述となる。
さらに、イベント処理ルールの記述は、図16の右下部のウィンドウ103の記述における行番号12乃至17の記述において、削除された第44フレーム以降のフレーム番号が、スライドされた9フレーム分だけ多く記述される。
尚、このとき、ラベルの情報は、第44フレーム以降のフレーム番号がスライドした9フレーム分増えて記述される。すなわち、図16の右下部の行番号22,23の記述は、図16の左下部の行番号20,21の記述に対して、9フレーム分増えて記述されている。
また、ステート長の変更に伴う状態遷移図の変更は発生しないため、状態遷移図は、変化しないままとなる。
次に、トランジションの追加または削除について説明する。
例えば、図16の左部のウィンドウ102,103で示されるタイムライン、およびUI構成データである場合、状態遷移図は、図17のウィンドウ101で示されることになる。
すなわち、図17のウィンドウ101においては、状態A乃至Dに対応する状態枠St11乃至St14が記述されており、トランジションT11が基点から状態枠St11から状態枠St12に向かって記述されている。また、状態枠St13から状態枠St14に向かって(状態Bから状態Cに向かって)トランジションT31が、状態枠St14から状態枠St13に向かって(状態Cから状態Bに向かって)トランジションT32が、それぞれ記述されている。トランジションT31,T32は、それぞれ図16の左下部のウィンドウ103の行番号14,15の記述に対応するものである。
したがって、状態遷移図上で、トランジションT31,T32が記述されると、それぞれ図16の左下部のウィンドウ103の行番号14,15が記述され、同時に、図16の左上部のタイムラインにおいては、その第2段目のように記述される。逆に、状態遷移図上でトランジションT31,T32が削除されると、それぞれ図16の左下部のウィンドウ103の行番号14,15の記述が削除され、同時に、図16の左上部のタイムラインにおける第2段目の記述も削除される。さらに、タイムラインにおいて、図16の左上部のタイムラインにおける第2段目に示すように編集されることにより、状態遷移図上には、図17で示されるようなトランジションT31,T32が記述されることになる。図16の左上部のタイムラインにおける第2段目の記述が削除されることにより、状態遷移図上では、図17で示されるようなトランジションT31,T32が削除されることになる。
以上によれば、UI構成データを編集するにあたり、UI構成データを状態遷移図およびタイムラインのいずれでも表現することが可能であるため、そのいずれでもUI構成データを編集することが可能となり、状態遷移図の編集結果をUI構成データおよびタイムラインに反映させることができ、逆に、タイムラインの編集結果をUI構成データおよび状態遷移図に反映させることもできる。
また、UI構成データが、状態遷移図およびタイムラインのいずれでも表現できるので、状態遷移図とタイムラインとに互換性を持たせることが可能となり、状態遷移図を用いてタイムラインを編集したり、タイムラインを用いて状態遷移図を編集することが可能となる。
本発明の一側面によれば、ユーザインタフェースを実行するデータに基づいて、タイムラインを生成し、データに基づいて、状態遷移図を生成し、タイムラインの操作内容に基づいて、タイムラインを編集し、状態遷移図の操作内容に基づいて、状態遷移図を編集し、タイムラインの編集結果、または、状態遷移図の編集結果に基づいて、データを編集して更新するようにしたので、UIのプログラムの開発の効率を向上させることが可能となると共に、同一のUIのプログラムに基づいたタイムラインと状態遷移図とを相互変換させるようにすることが可能となる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
図18は、図1の編集装置1の電気的な内部構成をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU301は、パーソナルコンピュータの全体の動作を制御する。また、CPU301は、バス304および入出力インタフェース305を介してユーザからキーボードやマウスなどからなる入力部306から指令が入力されると、それに対応してROM(Read Only Memory)302に格納されているプログラムを実行する。あるいはまた、CPU301は、ドライブ310に接続された磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリを含むリムーバルメディア321から読み出され、記憶部308にインストールされたプログラムを、RAM(Random Access Memory)303にロードして実行する。これにより、上述した図1の編集装置1の機能が、ソフトウェアにより実現されている。さらに、CPU301は、通信部309を制御して、外部と通信し、データの授受を実行する。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図18に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスクを含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア321、または、プログラムが一時的もしくは永続的に格納されるROM302や、記憶部308を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部309を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 編集装置, 11 タイムライン抽出部, 12 タイムライン編集部, 13 アニメーション表示ルール設定部, 14 状態遷移図抽出部, 15 状態遷移図編集部, 16 ラベル設定部, 17 操作部, 18 イベント処理ルール設定部, 19 UI構成データ編集部, 20 編集画面表示部, 21 UI構成データ保持部, 22 UI構成データ出力部