(57)【要約】【課題】筋書きを記述するだけで、ストーリーを、３Ｄグラフィック、動画、音声、静止画、テキストなどのメディアデータを用いて、時間的に連続して再生することが可能で、しかも、再生位置をストーリー上の任意の時点に移動することができるストーリー連続再生プログラムを提供する。【解決手段】ストーリー世界を構成するオブジェクトの振る舞いを直接記述でき、メディアデータの提示出力に関する指定が不要なマクロ命令によってシナリオは記述されている。このシナリオに基づき、ストーリーの内部状態を生成し、その内部状態に応じて、メディアデータを提示出力する。ストーリーの内部状態を記録したシーンファイルを復元する方法と、マクロ命令を実行する方法とを組み合わせ実行することにより、再生位置をストーリー上の任意の時点に移動する。【選択図】        図１
2004241873.tif 000002
【特許請求の範囲】
【請求項１】
シナリオに基づき、ストーリーを、マルチメディアを用いて、時間的に連続して再生するためにコンピュータを、ユーザーからの再生の指示を受け取るための再生指示入力手段、３Ｄグラフィック、動画、音声、静止画、テキストなどを含むメディアデータとその各データを識別するメディアデータＩＤとを記憶しているメディアデータ記録手段、ストーリー時間軸上の再生位置を示す再生時点に、更新単位時間を加算することにより、再生時点を更新する再生時点更新手段、ストーリーのシナリオを記述する命令であって、該命令が実行されるストーリー時間軸上の実行時点を指定する実行時点パラメータと、ストーリー世界を構成する登場オブジェクトの生成、削除、変更を指定するオブジェクトパラメータを有し、前記メディアデータの提示出力方法に関するパラメータを含まないマクロ命令が、前記実行時点に従って時系列的に配列されたシナリオを記録しているシナリオ記録手段、前記再生時点におけるストーリー世界を構成するすべての登場オブジェクトの情報を含むシーンデータを記録しているシーンデータ記録手段、前記シナリオを参照し、前記実行時点パラメータの実行時点が前記再生時点と一致するマクロ命令を選択して実行することにより、前記再生時点における前記シーンデータを生成するシーンデータ生成手段、前記シーンデータ記録手段からシーンデータを参照し、該シーンデータが含む登場オブジェクトの情報に応じて、前記メディアデータＩＤを選択し、該メディアデータＩＤに対応するメディアデータを前記メディアデータ記録手段から読み出し、提示出力するシーンデータ提示手段、一定周期ごとに、前記再生時点更新手段と前記シーンデータ生成手段と前記シーンデータ提示手段とを起動することによって、ストーリーを時間的に連続して再生する連続再生手段、として機能させるためのストーリー連続再生プログラム。
【請求項２】
再生位置を移動するために、ユーザーからストーリー時間軸上の移動先時点を受け取るための移動先時点入力手段、ストーリー時間軸上の１時点におけるストーリー世界を構成するすべての登場オブジェクトの情報を含むシーンファイルを複数と、各シーンファイルの該時点がシーンファイル時点として登録されているシーンファイル時点リストとを記録しているシーンファイル記録手段、前記シーンファイル記録手段からシーンファイル読み出し、該シーンファイルに含まれる登場オブジェクトの情報を基に、前記シーンデータ記録手段のシーンデータを生成し、該シーンファイルに対応するシーンファイル時点を新たな再生時点とすることによって、再生位置を該シーンファイル時点に移動するシーン復元手段、前記再生時点が前記移動先時点に一致するまで、前記再生時点更新手段と前記シーンデータ生成手段を繰り返し実行することにより、移動先時点におけるシーンデータを生成し、再生位置を移動先時点に移動するシーン早送り手段、前記シーン復元手段と前記シーン早送り手段とを組み合わせ実行することにより、再生位置をストーリー上の任意の時点に移動する再生位置移動手段、をさらに備えてなる請求項１記載のストーリー連続再生プログラム。
【請求項３】
前記再生位置移動手段は、前記移動先時点が、再生位置移動の開始時点である移動元時点より過去の場合には、前記シーンファイル記録手段のシーンファイル時点リストを検索し、前記移動先時点よりも過去に位置し、なおかつ前記移動先時点に最も近いシーンファイル時点を選択し、前記シーン復元手段によって該シーンファイル時点まで再生位置を移動した後、前記シーン早送り手段によって前記移動先時点まで再生位置を移動し、前記移動先時点が、前記移動元時点より未来の場合には、前記シーンファイル記録手段のシーンファイル時点リストを検索し、前記移動元時点と前記移動先時点の間にシーンファイル時点が登録されているかを調べ、登録されていない場合は、前記シーン早送り手段によって前記移動元時点から前記移動先時点まで再生位置を移動し、シーンファイル時点が登録されている場合は、前記シーン復元手段によって該シーンファイル時点まで再生位置を移動した後、前記シーン早送り手段によって、前記移動先時点まで再生位置を移動する方法と、前記シーン早送り手段だけにより前記移動元時点から前記移動先時点まで再生位置を移動する方法とを比較し、処理時間がより短い方法により再生位置を移動することを特徴とする請求項２記載のストーリー連続再生プログラム。
【請求項４】
前記シーンファイル記録手段は、シーンファイル時点リストに登録されているシーンファイル時点が、時系列的に配列されていて、隣り合うシーンファイル時点間の時間間隔が一定値以内であることを特徴とする請求項２また３記載のストーリー連続再生プログラム。
【請求項５】
前記シナリオ記録手段のシナリオに記述されているマクロ命令は、該マクロ命令のストーリー上のイベント名を指定するイベント名パラメータをさらに備え、前記移動先時点入力手段は、前記イベント名パラメータが有効なマクロ命令だけを前記シナリオから抽出し、抽出されたマクロ命令の実行時点パラメータの実行時点及び前記イベント名パラメータのイベント名から成るレコードのリストを表示し、ユーザーにレコードを選択させることにより前記移動先時点を入力することを特徴とする請求項２乃至４のいずれかに記載のストーリー連続再生プログラム。
【請求項６】
前記シーンファイル記録手段は、前記シナリオに記述されているマクロ命令の中で、イベント名パラメータが有効なマクロ命令の実行時点パラメータに指定された実行時点のすべてが、シーンファイル時点としてシーンファイル時点リストに登録されていることを特徴とする請求項５記載のストーリー連続再生プログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、歴史、時事、物語のような複雑なストーリーを、コンピュータを用いて再生する技術に関する。さらに詳しくは、ユーザーが筋書きを記述するだけで、ストーリーを、３Ｄグラフィック、動画、音声、静止画、テキストなどのメディアデータを用いて、時間的に連続して再生することが可能で、しかも、再生位置をストーリー上の任意の時点に移動することができるストーリー連続再生プログラムに関するものである。
【０００２】
【従来の技術】
歴史、時事、物語などのストーリーを表現または再生する技術としては、古くは、書物、漫画、ラジオ、テレビ、映画などがある。しかし、これらの技術は、使用できるメディアデータが限定されるため、表現力に乏しく、また、所望する部分へのランダム・アクセスが難しいという問題もあった。そこで、３Ｄグラフィク、動画、音声、静止画、テキストなどの異なるメディアデータをデジタル化し、マルチメディアとして一元管理する技術が実現された。このマルチメディア技術を用いて、予め記述されたシナリオに基づいて、ストーリーを再生するシステムとして、ビジネス分野ではマルチメディア再生装置、アミューズメント分野ではコンピュータゲームがある。
【０００３】
しかしながら、前述した従来の技術のマルチメディア再生装置や、コンピュータゲームには以下のような問題がある。先ず、第１の問題点として、歴史、時事、物語のような複雑なストーリーにおいて、プログラミング知識がないユーザーがシナリオを記述することが困難であり、さらに、シナリオを記述するだけで、ストーリーを、３Ｄグラフィック、動画、音声、静止画、テキストなどのメディアデータを用いて、時間的に連続して再生することが困難なことである。
【０００４】
このため、シナリオの記述を容易にするための装置が、例えば、特開平５−８８９６３号公報「記録媒体及びマルチメデイア再生装置」に開示されている。この例では、シナリオを記述する命令が、再生装置による使用言語に依存せず、メディアデータを出力するための直接的な命令で構成されている。例えば、マクロ命令「Ｄｉｓｐｌａｙ  ａ，ｂ，ｃ」は、ａは表示される画像、ｂは水平方向の表示位置、ｃは垂直方向の表示位置を意味する。また、マクロ命令「Ａｕｄｉｏ−ｐｌａｙ  ｄ，ｅ，ｆ」は音声データｄを、ｅの位置から、ｆ秒間発音させることを意味する。このようなマクロ命令であれば、プログラミングの知識はなくても、シナリオは容易に記述できる。
【０００５】
しかしながら、前記の特開平５−８８９６３号公報「記録媒体及びマルチメデイア再生装置」には、次のような問題点がある。シナリオを記述するための命令と、それを実行するための仕組みが、メディアデータを提示出力するタイミングや位置など、提示出力方法に限られていることである。そのため、物語としての筋書きを、すべてメディアデータの提示出力方法に置き換えながら、シナリオを記述しなければならない。例えば、「ローマでシーザーが皇帝になった」という簡単なイベントも、ローマ市を表示するために、ローマ市の画像と表示位置を指定する命令と、シーザーを表示するために、シーザーの画像と表示位置を指定する命令と、イベントを知らせるための音声データと音声データの位置と発音する時間を指定する命令を、それぞれシナリオとして記述する必要がある。そのため、ストーリーが複雑になるほど、シナリオを記述する効率は、著しく低下する。例えば、長大な歴史年表をこの方法でシナリオ化することが、現実的ではないことは明らかである。
【０００６】
これは、ストーリーの本質であるストーリー世界を構成する登場オブジェクトとその振る舞いを、シナリオとして直接記述できないことに起因している。例えば「任官、皇帝、シーザー、ローマ」と記述できればシナリオを簡単に記述することができる。
【０００７】
また、前述した従来の技術のコンピュータゲームにおいては、シナリオとメディアデータと再生プログラムは一体化しており、プログラミング知識なくしてシナリオを記述することそのものが困難である。一部、登場オブジェクトの能力値や、マップの地形などの単純な初期値をシナリオとして記述できるものもあるが、複雑なストーリーの筋書きを記述できるものはない。これには、次のような事情がある。
【０００８】
プログラミング知識がなくても、シナリオを記述できるようにするためには、シナリオを記述するマクロ的な命令が、筋書き固有の情報だけを含み、コンピュータの内部情報を含まないことが必要である。例えば前述した特開平５−８８９６３号公報「記録媒体及びマルチメデイア再生装置」の「Ｄｉｓｐｌａｙ  ａ，ｂ，ｃ」においてａ、ｂ、ｃがコンピュータの内部情報にあたる。また前述した「任官、皇帝、シーザー、ローマ」の記述には、コンピュータ内部情報は含まれず、すべて筋書き固有の情報である。しかし、この後者の方法では、筋書き固有の情報を、コンピュータの内部情報に変換するためのオーバーヘッドが発生し、処理速度を低下させてしまう。
【０００９】
コンピュータゲームにおいて、処理速度の低下は、大きな障害になる。近年のコンピュータゲームは、３Ｄ化されたオブジェクトをリアルタイムで表示する３Ｄゲームが主流である。この手法で、滑らかな画像を得るためには、１秒間３０フレームから６０フレームの画面を更新しなければならない。例えば、秒間３０フレームを実現するためには、１／３０秒、すなわち約３３ミリ秒の間に、内部データを更新し、１画面分のすべての表示処理を完了しなければならない。この処理が遅れると、表示画面がぎくしゃくし、ユーザーに違和感を与えてしまう。この３３ミリ秒という時間は、現在のＣＰＵ、メモリ、グラフィックチップの能力では、決して、余裕のあるものではない。そのため、制作現場では、同時に表示する３Ｄオブジェクトの数を減らしたり、３Ｄオブジェクトのポリゴン数を減らしたり、様々な工夫を凝らしている。
【００１０】
これらの事情から、少しでも処理速度を上げるため、シナリオ毎にプログラムが最適化され、シナリオとメディアデータと再生プログラムが一体化する傾向にある。
【００１１】
また、第２の問題点は、ストーリーの筋書きであるシナリオと、その表現形態であるメディアデータを、それぞれ単独に再利用することが困難なことである。これは、シナリオとメディアデータにおいて、どちらか片方を変更すれば、もう片方も変更しなければならないことを意味する。
【００１２】
例えば前述した特開平５−８８９６３号公報「記録媒体及びマルチメデイア再生装置」では、メディアデータを変更せずに、シナリオだけを変更することはできない。なぜなら、シナリオのマクロ命令「Ｄｉｓｐｌａｙ  ａ，ｂ，ｃ」を「Ｄｉｓｐｌａｙｄ，ｂ，ｃ」に変更した場合、画像ｄを新たに追加しなければならないからである。これは、ストーリーの本質であるべきシナリオのマクロ命令の中に、その表現形態に過ぎないメディアデータの提示出力方法を含んでいるからである。言い換えると、ストーリーの本質であるシナリオと、その表現形態に過ぎないメディアデータが、完全に分離されていないことに起因する。
【００１３】
さらに、第３の問題点は、再生位置をストーリー上の任意の時点に移動することが困難なことである。
【００１４】
このため、再生位置を任意の位置に移動する方法が、例えば、特開平９−２６８６８号公報「マルチメディアタイトル再生装置」に開示されている。この例では、タイトルの任意の位置における、オブジェクトの提示状態情報データを生成・保持し、このデータを利用することでタイトルの任意の位置の状態が復元できることを利用している。前述した従来の技術の他のマルチメディア再生装置やコンピュータゲームにおいても、再生位置を任意の位置に移動する場合は、本質的に同じ技術を用いている。すなわち、再生位置における内部情報の記録と復元にのみ頼るという技術である。
【００１５】
しかしながら、このような従来の技術には、次のような問題点がある。再生位置をストーリー上の任意の時点に移動するためには、ストーリー時間軸上のすべての時点におけるストーリー内部の時点情報を記録しておかなければならない。これは無限の時点情報が必要なことを意味する。なぜなら、時間は始まりと終わりを特定しても、その間に無限の時点が存在するからである。従って、このような方法を採ることは現実には不可能である。
【００１６】
【発明が解決しようとする課題】
本発明は上記の点に鑑みてなされたものであり、その第１の目的は、歴史、時事、物語のような複雑なストーリーにおいて、プログラミング知識がないユーザーでも容易にシナリオを記述することができ、さらに、シナリオを記述するだけで、ストーリーを、３Ｄグラフィック、動画、音声、静止画、テキストなどのメディアデータを用いて、時間的に連続して再生することができるストーリー連続再生プログラムを提供することにある。
【００１７】
また、本発明の第２の目的は、ストーリーの筋書きであるシナリオと、その表現形態であるメディアデータを、それぞれ単独に再利用することができるストーリー連続再生プログラムを提供することにある。
【００１８】
さらに、本発明の第３の目的は、再生位置をストーリー上の任意の時点に移動することができるストーリー連続再生プログラムを提供することにある。
【００１９】
【課題を解決するための手段】
本発明は、上記の課題を解決するためのものであり、請求項１の発明は、シナリオに基づき、ストーリーを、マルチメディアを用いて、時間的に連続して再生するためにコンピュータを、ユーザーからの再生の指示を受け取るための再生指示入力手段、３Ｄグラフィック、動画、音声、静止画、テキストなどを含むメディアデータとその各データを識別するメディアデータＩＤとを記憶しているメディアデータ記録手段、ストーリー時間軸上の再生位置を示す再生時点に、更新単位時間を加算することにより、再生時点を更新する再生時点更新手段、ストーリーのシナリオを記述する命令であって、該命令が実行されるストーリー時間軸上の実行時点を指定する実行時点パラメータと、ストーリー世界を構成する登場オブジェクトの生成、削除、変更を指定するオブジェクトパラメータを有し、前記メディアデータの提示出力方法に関するパラメータを含まないマクロ命令が、前記実行時点に従って時系列的に配列されたシナリオを記録しているシナリオ記録手段、前記再生時点におけるストーリー世界を構成するすべての登場オブジェクトの情報を含むシーンデータを記録しているシーンデータ記録手段、前記シナリオを参照し、前記実行時点パラメータの実行時点が前記再生時点と一致するマクロ命令を選択して実行することにより、前記再生時点における前記シーンデータを生成するシーンデータ生成手段、前記シーンデータ記録手段からシーンデータを参照し、該シーンデータが含む登場オブジェクトの情報に応じて、前記メディアデータＩＤを選択し、該メディアデータＩＤに対応するメディアデータを前記メディアデータ記録手段から読み出し、提示出力するシーンデータ提示手段、一定周期ごとに、前記再生時点更新手段と前記シーンデータ生成手段と前記シーンデータ提示手段とを起動することによって、ストーリーを時間的に連続して再生する連続再生手段、として機能させるためのストーリー連続再生プログラムである。
【００２０】
請求項２の発明は、請求項１の発明のストーリー連続再生プログラムにおいて、再生位置を移動するために、ユーザーからストーリー時間軸上の移動先時点を受け取るための移動先時点入力手段、ストーリー時間軸上の１時点におけるストーリー世界を構成するすべての登場オブジェクトの情報を含むシーンファイルを複数と、各シーンファイルの該時点がシーンファイル時点として登録されているシーンファイル時点リストとを記録しているシーンファイル記録手段、前記シーンファイル記録手段からシーンファイル読み出し、該シーンファイルに含まれる登場オブジェクトの情報を基に、前記シーンデータ記録手段のシーンデータを生成し、該シーンファイルに対応するシーンファイル時点を新たな再生時点とすることによって、再生位置を該シーンファイル時点に移動するシーン復元手段、前記再生時点が前記移動先時点に一致するまで、前記再生時点更新手段と前記シーンデータ生成手段を繰り返し実行することにより、移動先時点におけるシーンデータを生成し、再生位置を移動先時点に移動するシーン早送り手段、前記シーン復元手段と前記シーン早送り手段とを組み合わせ実行することにより、再生位置をストーリー上の任意の時点に移動する再生位置移動手段を、さらに備えたものである。
【００２１】
請求項３の発明は、請求項２の発明のストーリー連続再生プログラムにおいて、
前記再生位置移動手段は、前記移動先時点が、再生位置移動の開始時点である移動元時点より過去の場合には、前記シーンファイル記録手段のシーンファイル時点リストを検索し、前記移動先時点よりも過去に位置し、なおかつ前記移動先時点に最も近いシーンファイル時点を選択し、前記シーン復元手段によって該シーンファイル時点まで再生位置を移動した後、前記シーン早送り手段によって前記移動先時点まで再生位置を移動し、前記移動先時点が、前記移動元時点より未来の場合には、前記シーンファイル記録手段のシーンファイル時点リストを検索し、前記移動元時点と前記移動先時点の間にシーンファイル時点が登録されているかを調べ、登録されていない場合は、前記シーン早送り手段によって前記移動元時点から前記移動先時点まで再生位置を移動し、シーンファイル時点が登録されている場合は、前記シーン復元手段によって該シーンファイル時点まで再生位置を移動した後、前記シーン早送り手段によって、前記移動先時点まで再生位置を移動する方法と、前記シーン早送り手段だけにより前記移動元時点から前記移動先時点まで再生位置を移動する方法とを比較し、処理時間がより短い方法により再生位置を移動することを特徴とする。
【００２２】
請求項４の発明は、請求項２または３の発明のストーリー連続再生プログラムにおいて、前記シーンファイル記録手段は、シーンファイル時点リストに登録されているシーンファイル時点が、時系列的に配列されていて、隣り合うシーンファイル時点間の時間間隔が一定値以内であることを特徴とする。
【００２３】
請求項５の発明は、請求項２乃至４の発明のストーリー連続再生プログラムにおいて、前記シナリオ記録手段のシナリオに記述されているマクロ命令は、該マクロ命令のストーリー上のイベント名を指定するイベント名パラメータをさらに備え、前記移動先時点入力手段は、前記イベント名パラメータが有効なマクロ命令だけを前記シナリオから抽出し、抽出されたマクロ命令の実行時点パラメータの実行時点及び前記イベント名パラメータのイベント名から成るレコードのリストを表示し、ユーザーにレコードを選択させることにより前記移動先時点を入力することを特徴とする。
【００２４】
請求項６の発明は、請求項５の発明のストーリー連続再生プログラムにおいて、前記シーンファイル記録手段は、前記シナリオに記述されているマクロ命令の中で、イベント名パラメータが有効なマクロ命令の実行時点パラメータに指定された実行時点のすべてが、シーンファイル時点としてシーンファイル時点リストに登録されていることを特徴とする。
【００２５】
【発明の実施の形態】
以下、図面を参照して本発明の各実施の形態について説明する。ここで、本発明によるストーリー連続再生プログラムは、パーソナルコンピュータのようなごく一般的なコンピュータ上で実現することが可能である。
【００２６】
（実施の形態１）先ず、本発明の請求項１に対応する第１の実施の形態について説明する。図１は、本発明の第１の実施の形態におけるストーリー連続再生プログラムの構成を示すブロック図である。
【００２７】
図１において、データ処理装置１００は、ＣＰＵ、メモリ、各種コントローラからなり、本発明のストーリー連続再生プログラムを実行する。
【００２８】
入力装置１０１は、マウス、キーボードなどの入力機器により構成され、ユーザーからの入力を受け取る。表示装置１１０は、グラフィック・ディスプレイ装置であり、ストーリー世界を表示する。音声出力装置１１１は、音声合成装置やスピーカーを備えた出力装置で、音声、効果音、音楽を出力する。外部記憶装置１１２は、磁気ディスク、光ディスク、光磁気ディスク等のランダムアクセス可能な大容量記憶装置であり、本発明のストーリー連続再生プログラムを実行するために必要なプログラムコードやデータを記録している。
【００２９】
再生指示入力手段１０２は、入力装置１０１から受け取ったユーザーからの入力を解釈し、ストーリーの再生／停止の指令として、後述する連続再生手段１０３に通知する。
【００３０】
再生時点更新手段１０４は、ストーリー時間軸上の再生位置を示す再生時点を更新する。
【００３１】
ストーリー時間軸は、ストーリー世界における時点を管理するための１次元の時間軸である。このストーリー時間軸上の時点は、日付または時間の少なくともいずれかを含んで構成されるが、構成の内容は、実施の形態によって決められる。例えば、シナリオが、年表程度の歴史であれば、時点の構成は年・月・日、現代の時事のように詳細な時点を表現する場合は年・月・日・時・分というように、シナリオの内容に応じて設定する。
【００３２】
再生時点は、このストーリー時間軸上の時点であり、特に、表示装置１１０や音声出力装置１１１で再生中の時点を示し、現実世界における現在時点に相当する。
【００３３】
再生時点の更新は、再生時点に、更新単位時間を加算することにより行われる。そのため、再生時点は、更新単位時間ごとに更新される。更新単位時間の値は、前述したストーリー時間軸上の時点の最小単位に合わせて決定される。例えば、時点が年・月・日で構成される場合は、更新単位時間は１日となる。仮に、更新単位時間を２日にすれば、再生時点が２日おきでしか表現できなくなり、整合性がとれなくなるからである。
【００３４】
シナリオ記録手段１０７は、ストーリーの筋書きが記述されたシナリオが記録されている。このシナリオは、ストーリー世界の構成要素である登場オブジェクトの振る舞いを記述したものであって、メディアデータの提示出力方法は含まない。そのため、シナリオを記述するためのマクロ命令は、実施の形態に固有な形態のマクロ的な命令ではあるが、下記のような特徴を有する。
【００３５】
先ず、第１に、すべてのマクロ命令は、その命令が実行されるストーリー時間軸上の時点を指定する実行時点パラメータを備えている。以後、実行時点パラメータで指定される時点を実行時点とよぶ。
【００３６】
第２に、マクロ命令は、ストーリー世界を構成する登場オブジェクトの生成、削除、変更を指定するオブジェクトパラメータを備え、前述したメディアデータの提示出力方法に関するパラメータは含まない。これは、メディアデータの提示出力処理は、後述するシーンデータ提示手段１０６によって、自動的に処理されるため、シナリオとして記述する必要がないからである。
【００３７】
第３に、マクロ命令は、前述した実行時点パラメータに指定された実行時点に従って、シナリオ上で時系列的に配列されている。これは、ストーリーの進行処理において、マクロ命令が実行時点の順に実行されるため、時点順に配列されている方が処理の効率が良いからである。
【００３８】
ここで、シナリオ上で、マクロ命令そのものを実行時点の順に配列する方法の他に、マクロ命令に固有のインデックスを割り当て、このインデックスをマクロ命令の実行時点の順に配列したインデックステーブルを用いる方法もある。後者の場合は、マクロ命令そのものは、実行時点の順に配列されている必要はない。
【００３９】
ここで、シナリオのフォーマット例を図１１に示し、マクロ命令を詳しく説明する。このフォーマットは、シナリオを歴史とし、ストーリー時間軸上の時点の構成を、年・月・日、更新単位時間は、前述した理由により１日とする。図１１から、実行時点パラメータは、年・月・日で指定されていることが分かる。また、この例では、登場オブジェクトの生成、削除、変更を指定するオブジェクトパラメータは、複数のパラメータから構成されている。命令語は、それに続くオブジェクトパラメータの意味を判別するために使われる。補助１、補助２は命令語を補助するために使われる。数値、名称はぞれぞれ、数値と名称を指定するために使われる。人物、国（国１、２）、位置の各パラメータは、それぞれ、人物、国、位置を指定するために使われる。ＩＤはシナリオ上のマクロ命令を識別するための固有の番号である。また、図中のシナリオは、歴史上の正確さを保証するもではない。
【００４０】
以下、マクロ命令ごとに、具体的に説明する。図１１のＩＤ７のマクロ命令は「１８５７年５月１０日に、セポイの乱が、デリーで発生」を意味している。この命令の実行時点パラメータは「１８５７年５月１０日」なので、この命令は、前述した再生時点更新手段１０４によって更新された再生時点が１８５７年５月１０日に一致したとき、後述するシーンデータ生成手段１０５によって実行される。実行される内容は、命令語が「反乱」で、補助１が「発生」なので、新たに反乱の登場オブジェクトを生成する。マクロ命令で、反乱名が「セポイの乱」、位置が「デリー」と指定されているので、新たに生成される反乱の登場オブジェクトの反乱名は「セポイの乱」、位置は「デリー」となる。ここで、位置は、地点名で表されている。
【００４１】
本実施の形態では、ストーリー世界における位置は、地点によって管理される。地点も、登場オブジェクトであり、位置情報である地球上の緯度・経度と、名称である地点名とから成るレコードとして、地点データ・テーブルで管理されている。そのため、地点名をキーワードに、地点データ・テーブルから、緯度・経度を特定できる。
【００４２】
図１１のＩＤ８のマクロ命令は、ＩＤ７のマクロ命令で発生させた反乱を終了させる命令で「１８５７年９月１日に、デリーで、セポイの乱が終了」を意味している。このマクロ命令は、再生時点更新手段１０４によって更新された再生時点が「１８５７年９月１日」に一致したとき実行され、その結果、名称が「セポイの乱」である反乱の登場オブジェクトが削除される。
【００４３】
次に、図１１のその他のマクロ命令を簡単に説明する。ＩＤ４のマクロ命令は「１８５３年１月１日、セシル・ローズが、男性として、イギリス国籍で、ロンドンに誕生」を意味している。このマクロ命令は、再生時点が「１８５３年１月１日」に一致したとき実行され、その結果、性別を「男性」、姓名を「セシル・ローズ」、国籍を「イギリス」、位置を「ロンドン」とする人物の登場オブジェクトが生成される。
【００４４】
ＩＤ１１のマクロ命令は、ＩＤ４のマクロ命令で誕生したセシル・ローズの身分を設定する命令で「１８８１年１月１日、セシル・ローズが、ケープで、デ・ビアスの社長になる」を意味している。このマクロ命令は、再生時点が「１８８１年１月１日」に一致したとき実行され、その結果、姓名が「セシル・ローズ」である人物の登場オブジェクトの身分が「デ・ビアス社長」に、位置が「ケープ」にそれぞれ変更される。
【００４５】
ＩＤ５のマクロ命令は「１８５６年９月１日、広州で、アロー戦争が、フランスと清国の間で発生」を意味している。このマクロ命令は、再生時点が「１８５６年９月１日」に一致したとき実行され、その結果、戦争名を「アロー戦争」、戦争国を「フランス」と「清国」、位置を「広州」とする戦争の登場オブジェクトが生成される。
【００４６】
ＩＤ１０のマクロ命令は、ＩＤ５のマクロ命令で発生させたアロー戦争を終了させる命令で、「１８６０年１月１日、アロー戦争が終了」を意味している。このマクロ命令は、再生時点が「１８６０年１月１日」に一致したとき実行され、その結果、戦争名が「アロー戦争」である戦争の登場オブジェクトが削除される。
【００４７】
ＩＤ６のマクロ命令は「１８５７年１月１日、飢饉が、広州で発生し、７００００人の犠牲者が出た」を意味している。このマクロ命令は、実行時点が「１８５７年１月１日」に一致したとき実行され、その結果、災害の種類を「飢饉」、犠牲者数を「７００００」、位置を「広州」とする災害の登場オブジェクトが生成される。
【００４８】
ＩＤ９のマクロ命令は「１８５８年１月２日、デンバーで、金が特産品となる」を意味している。このマクロ命令は、実行時点が「１８５８年１月２日」に一致したとき実行され、その結果、特産品の品目を「金」、位置を「デンバー」とする特産品の登場オブジェクトが生成される。
【００４９】
このように、ストーリー世界を構成する登場オブジェクトの振る舞いを記述するだけで、画面表示のための表示タイミングや表示位置など、メディアデータの提示出力方法を指定する必要がない。そのため、プログラミング知識がないユーザーでも容易にシナリオを記述することができる。
【００５０】
図１のシーンデータ記録手段１０８は、ストーリー時間軸上の再生位置を示す再生時点におけるストーリーの内部状態を、シーンデータとして記録している。このシーンデータは、再生時点におけるストーリー世界を構成するすべての登場オブジェクトの情報を含んでいる。本実施の形態では、これらの登場オブジェクトの情報は、登場オブジェクトのタイプ別に作成されたデータ・テーブルに記録、管理される。このデータ・テーブルは、レコードを登場オブジェクトとし、フィールド（項目）を登場オブジェクトの構成要素としている。
【００５１】
このデータ・テーブルのレコード（登場オブジェクト）は、前述したマクロ命令が指定する登場オブジェクトの生成、削除、変更に従い、それぞれ、データ・テーブル上で生成、削除、変更される。
【００５２】
このデータ・テーブルの例を図１４に示す。図の反乱データ・テーブルは、「反乱」の登場オブジェクトを記録していて、レコードの項目は、反乱名、位置である。ＩＤはレコード番号である。ＩＤ０のレコードは、反乱名を「セポイの乱」、位置を「デリー」とする反乱の登場オブジェクトである。
【００５３】
人物データ・テーブルは、「人物」の登場オブジェクトを記録していて、レコードの項目は、性別、姓名、身分、国籍、位置である。ＩＤ０のレコードは、性別を「男性」、姓名を「セシル・ローズ」、身分を「デ・ビアス社長」、国籍を「イギリス」、位置を「ケープ」とする人物の登場オブジェクトである。
【００５４】
戦争データ・テーブルは、「戦争」の登場オブジェクトを記録していて、レコードの項目は、戦争名、戦争国１、戦争国２、位置である。
【００５５】
災害データ・テーブルは、「災害」の登場オブジェクトを記録していて、レコードの項目は、種類（災害の）、犠牲者数、位置である。
【００５６】
特産品データ・テーブルは、「特産品」の登場オブジェクトを記録していて、レコードの項目は、品目、位置である。
【００５７】
地点データ・テーブルは、「地点」の登場オブジェクトを記録していて、レコードの項目は、地点名、緯度、経度である。
【００５８】
このように、登場オブジェクトの情報は、反乱、人物、戦争、災害、特産品、地点のように登場オブジェクトのタイプ別に作成されたデータ・テーブルに記録、管理されている。
【００５９】
図１のシーンデータ生成手段１０５は、シナリオ記録手段１０７のシナリオを参照し、実行時点パラメータの実行時点が前述した再生時点と一致するマクロ命令を選択して実行することにより、再生時点におけるシーンデータを生成し、シーンデータ記録手段１０８に記録する。
【００６０】
シーンデータ生成手段１０５は、内部に、マクロ命令ポインタを備えている。このマクロ命令ポインタは、シーンデータ生成手段１０５が次に処理するマクロ命令へのポインタが格納されている。
【００６１】
図５は、シーンデータ生成手段１０５の動作を示すフローチャートである。この図を用いて、シーンデータ生成手段１０５の動作を説明する。先ず、マクロ命令ポインタが指し示すマクロ命令を、シナリオ記録手段１０７のシナリオから取得する（ステップ５０１）。次に、読み出されたマクロ命令がシナリオ最後の命令かを判定し（ステップ５０２）、最後の命令ならば（ステップ５０２：Ｙｅｓ）、処理を終了し、最後の命令でなければ（ステップ５０２：Ｎｏ）、次の処理に進む。
【００６２】
シナリオ最後の命令の判定方法としては、予めマクロ命令にＥＮＤ命令を定義しておき、マクロ命令がＥＮＤ命令に一致するかで判定する方法や、マクロ命令ポインタが、シナリオの最後のマクロ命令の位置を指しているかで判定する方法がある。
【００６３】
次に、読み出されたマクロ命令の実行時点パラメータに指定された実行時点と、前述した再生位置を示す再生時点を比較し（ステップ５０３）、一致しない場合は（ステップ５０３：Ｎｏ）、処理を終了し、一致する場合は（ステップ５０３：Ｙｅｓ）、このマクロ命令を実行する（ステップ５０４）。
【００６４】
このマクロ命令の実行を、図１１のシナリオのフォーマット例と、図１４のデータ・テーブル例を用いて、具体的に説明する。先ず、図１１のＩＤ７のマクロ命令を説明する。ＩＤ７のマクロ命令は、前述したように、名称を「セポイの乱」、位置を「デリー」とする反乱の登場オブジェクトを生成することを指示している。そのため、このマクロ命令が実行されると、図１４の反乱データ・テーブルに、反乱名を「セポイの乱」、位置を「デリー」とするレコード（ＩＤ０）が新しく生成される。
【００６５】
また、図１１のＩＤ８のマクロ命令は、前述したように、名称が「セポイの乱」である反乱の登場オブジェクトを削除することを指示している。そのため、このマクロ命令が実行されると、図１４の反乱データ・テーブルにおいて、反乱名が「セポイの乱」に一致するレコード（ＩＤ０）が削除される。
【００６６】
また、図１１のＩＤ１１のマクロ命令は、前述したように、姓名が「セシル・ローズ」である人物の登場オブジェクトの身分を「デ・ビアス社長」に、位置を「ケープ」に変更することを指示している。そのため、このマクロ命令が実行されると、図１４の人物データ・テーブルにおいて、姓名が「セシル・ローズ」に一致するレコード（ＩＤ０）の身分が「デ・ビアス社長」、位置が「ケープ」に変更される（図１４は変更された後の状態である）。
【００６７】
このように、登場オブジェクトを記録するデータ・テーブルのレコード（登場オブジェクト）は、前述したマクロ命令が指定する登場オブジェクトの生成、削除、変更に従い、それぞれ、生成、削除、変更される。
【００６８】
次に、マクロ命令ポインタをインクリメントし（ステップ５０５）、ステップ５０１に戻る。
【００６９】
このように実行時点パラメータの実行時点が再生時点と一致するマクロ命令をすべて実行するまで、ステップ５０１からステップ５０５のループ処理を繰り返していく。これにより、再生時点で発生するストーリー上のすべてのイベントは、マクロ命令として実行され、再生時点におけるシーンデータ（ストーリーの内部状態）が生成される。
【００７０】
図１のメディアデータ記録手段１０９は、３Ｄグラフィック、動画、音声、静止画、テキストなどのメディアデータとその各データを識別するメディアデータＩＤを記録している。
【００７１】
ここでいう３Ｄグラフィックは、コンピュータグラフィックにより作成された複数の連続したベタ画像を、連続的に表示再生する動画とは異なる。すなわち、画面に登場する物体を、物体の３次元形状の情報と、物体の表面画像情報や色情報をベースに構成し、物体の動きや変化は、３次元形状の情報そのものを移動あるいは変形させて行うものをいう。
【００７２】
このような３Ｄグラフィックの標準フォーマットとして、例えばＭｉｃｒｏｓｏｆｔ社のＸファイル形式がある。Ｘファイル形式では、物体の３次元形状の情報としてポリゴン、物体の表面画像の情報としてテクスチャーを用いて構成される。ここではＸファイル形式を前提に話を進めるが、特定のフォーマットに限定するものではない。
【００７３】
メディアデータＩＤは、メディアデータを識別するための識別子である。図１０に、メディアデータＩＤの一例を示す。この図を用いて、メディアデータＩＤの構造と、メディアデータの提示出力との関係を説明する。この例では、メディアデータＩＤは、メディアタイプを識別するメディアＩＤと、データを識別するデータＩＤから構成されている。
【００７４】
ここで、メディアＩＤが４、データＩＤが９として具体的に説明する。先ず、メディアＩＤは４なので、同図のメディアＩＤテーブルから、このメディアタイプはＸファイル形式であることが分かる。そこで、同図のＸファイル・アドレステーブルを参照して、データＩＤが９のデータアドレスを取得する。このデータアドレスは、反乱を表現するＸファイル形式のメディアデータが格納されているメモリのアドレスを示している。
【００７５】
次に、このメディアタイプはＸファイル形式であることが分かっているので、Ｘファイル形式を提示出力する専用のプログラムに、取得したデータアドレスを渡し、実行させる。これにより、反乱を表現するＸファイル形式のメディアデータが提示出力される。
【００７６】
この例では、メディアタイプを、動画としてＭＰＥＧ形式、静止画としてＢＭＰ形式、テキストとしてテキスト形式、音声としてＷＡＶＥ形式、３ＤグラフィックとしてＸファイル形式としているが、それぞれ形式を限定するものではない。
【００７７】
また、図１０から分かるように、Ｘファイル・アドレステーブルと同様に、他のメディアタイプも、データＩＤとデータアドレスを関連づけるそれぞれのアドレステーブルを保持している。
【００７８】
図１のシーンデータ提示手段１０６は、シーンデータ記録手段１０８のシーンデータに含まれている登場オブジェクトの情報に応じて、メディアデータＩＤを選択し、選択されたメディアデータＩＤに対応するメディアデータを、メディアデータ記録手段１０９から参照し、表示装置１１０や音声出力装置１１１に、提示出力する。
【００７９】
図６は、シーンデータ提示手段１０６の動作を示すフローチャートである。この図を用いて、シーンデータ提示手段１０６の動作を説明する。先ず、シーンデータ記録手段１０８のシーンデータの中から、これから処理する登場オブジェクトを選択する（ステップ６０１）。具体的には、前述したように、登場オブジェクトは、タイプ別に作成されたデータ・テーブルに記録されているので、これらのデータ・デーブルの中から、レコードを順次選択していく。
【００８０】
ここで、例として、選択された登場オブジェクトが、図１４の反乱データ・テーブルのＩＤ０の「セポイの乱−デリー」として説明を進める。先ず、この登場オブジェクトが画面の表示範囲に入っているか判別する（ステップ６０２）。具体的には、表示画面の左上点と右下点に対応するストーリー空間上の緯度・経度を、それぞれ保持していて、この位置情報と、登場オブジェクトのストーリー空間上の緯度・経度とを比較することにより判別する。この例の場合、登場オブジェクトは、図１４の反乱データ・テーブルのＩＤ０なので、位置は「デリー」である。そこで、地点名「デリー」をキーワードとして、図１４の地点データ・テーブルから緯度が２８．４０度、経度が７７．１４度と特定できる。ここで、緯度・経度データは、北緯と東経をプラス符号で、南緯と西経はマイナス符号で表している。これらの位置情報を比較し、選択された登場オブジェクトが画面の表示範囲に入っているかを判別し、表示範囲外であれば（ステップ６０２：Ｎｏ）、提示出力する必要がないのでステップ６０１に戻る。
【００８１】
表示範囲内であれば（ステップ６０２：Ｙｅｓ）、登場オブジェクトの情報に応じて、対応するメディアデータＩＤを選択する（ステップ６０３）。ここでは、処理対象の登場オブジェクトが、図１４の反乱データ・テーブルのＩＤ０の「セポイの乱−デリー」としているので、反乱を表現するＸファイル形式のメディアデータを選択する。図１０より、このメディアデータＩＤは、「０００４０００９」と分かる。このように、データ・テーブルのレコード（登場オブジェクトの情報）とメディアデータＩＤの関連づけは、シーンデータ提示手段１０６の中で、予め決められている。
【００８２】
次に、メディアデータＩＤのメディアＩＤから、メディアデータを提示出力するメディア提示出力プログラムを特定する（ステップ６０４）。この例の場合、メディアＩＤが４（Ｘファイル形式）なので、Ｘファイル形式の提示出力プログラムとなる。
【００８３】
さらに、このメディアＩＤ４に対応するアドレステーブル（Ｘファイル・アドレステーブル）とデータＩＤ９からメディアデータが格納されているデータアドレスを獲得する（ステップ６０５）。図１０より、このデータアドレスは、反乱を表現するＸファイル形式のメディアデータが格納されているメモリのアドレスを示している。
【００８４】
ここで、選択されたメディア提示出力プログラムは、獲得されたデータアドレスが示すメディアデータを、表示画面上の該当する位置に、提示出力する（ステップ６０６）。この例では、Ｘファイル形式の提示出力プログラムが、Ｘファイル形式の反乱メディアデータを、表示画面に提示出力する。
【００８５】
この表示画面上の位置は、前述した表示画面の左上点と右下点の位置に対応する緯度・経度と、登場オブジェクトの緯度・経度から、登場オブジェクトの画面上の相対的位置を算出して求められる。
【００８６】
また、メディア提示出力プログラムは、３Ｄグラフィック、動画、静止画、テキストを表示装置１１０に、音声、効果音、音楽を音声出力装置１１１に、それぞれ出力する。
【００８７】
次に、すべての登場オブジェクトが処理されたかを確認し（ステップ６０７）、処理されていれば（ステップ６０７：Ｙｅｓ）、処理を終了し、未処理の登場オブジェクトが残っていれば（ステップ６０７：Ｎｏ）、ステップ６０１に戻る。
【００８８】
このように、すべての登場オブジェクトが処理されるまで、ステップ６０１からステップ６０７のループ処理を繰り返す。すなわち、登場オブジェクトを記録しているすべてのデータ・テーブル、すべてのレコードに対して、このループ処理が実行される。これにより、ストーリー世界の状態が、メディアデータを用いて表現される。
【００８９】
以上のように、シナリオは、登場オブジェクトの情報だけを更新し、メディアデータは、登場オブジェクトの情報だけを基に提示出力される。そのため、シナリオを変更しても、登場オブジェクトの情報が変わるだけで、それに応じてメディアデータは提示出力され、正常に動作する。よって、シナリオを変更しても、メディアデータを変更する必要はない。また逆に、メディアデータを変更しても、対応する登場オブジェクトの表現形態が変えて提示出力されるだけで、正常動作する。そのため、メディアデータを変更しても、シナリオを変更する必要はない。これらのことから、シナリオとメディアデータを、それぞれ単独に再利用することができる。これにより、コンテンツ制作における作業効率を大幅に向上させることができる。
【００９０】
図１の連続再生手段１０３は、再生指示入力手段１０２から再生の通知を受けて起動された後、タイマを用い、一定周期で、再生時点更新手段１０４、シーンデータ生成手段１０５、シーンデータ提示手段１０６を起動し、実行するため、時間的に連続したストーリーの再生が保証される。
【００９１】
図７は、連続再生手段１０３の動作を示すフローチャートである。概略として、ステップ７０２からステップ７０８までは連続再生におけるループを形成している。このループ１回の処理で、１つの再生時点におけるシーンデータの生成と提示出力を実行する。この１ループ処理に要する現実の時間をタイムスライスとする。そのため、このタイムスライスの値を変えることによって、再生速度を変えることができる。例えば、タイムスライスの値を小さくすれば、１ループの時間が小さくなるので、再生速度は速くなる。
【００９２】
次に処理を詳細に説明する。先ず、タイムスライスをセットする（ステップ７０１）。次に、タイマから、タイマカウントの値を読み出し、タイマカウンタ１に格納する（ステップ７０２）。このタイマカウント値は、ステップ７０２を処理している時点における現実の時間を表している。ここでタイマは、コンピュータ内蔵のタイマを用いているが、計時できれば手段は問わない。
【００９３】
次に、再生時点更新手段１０４によって再生時点が更新される（ステップ７０３）。次に、シーンデータ生成手段１０５によって、シーンデータ記録手段１０８のシーンデータが、再生時点の状態に更新される（ステップ７０４）。このステップ７０４は、図５のシーンデータ生成手段１０５のフローチャートに対応している。次に、シーンデータ提示手段１０６によって、シーンデータを基に、ストーリー内部の状態が、表示装置１１０と音声出力装置１１１に提示出力される（ステップ７０５）。このステップ７０５は、図６のシーンデータ提示手段１０６のフローチャートに対応している。次に、新しく再生指示入力があったかを判定し（ステップ７０６）、入力があれば（ステップ７０６：Ｙｅｓ）、再生指示入力処理のため、この処理を終了し、入力がなければ（ステップ７０６：Ｎｏ）、次に進む。
【００９４】
次に、時間的に連続した再生を実現するために、再生速度を一定に保つ処理を行う。先ず、タイマからタイマカウントの値を読み出し、タイマカウンタ２に格納する（ステップ７０７）。ステップ７０２における現実の時間はタイマカウンタ１に格納されているので、ステップ７０２からステップ７０７までに経過した現実の時間は（タイマカウンタ２−タイマカウンタ１）で表される。ここで、（タイマカウンタ２−タイマカウンタ１≧タイムスライス）を満たすまで、ステップ７０７からステップ７０８のループを繰り返す。これにより、ステップ７０２からステップ７０８までの処理時間はタイムスライスに等しくなり、再生速度は一定に保たれ、時間的に連続した再生が可能になる。
【００９５】
次に、プログラム全体の処理の流れを説明する。図３は、全体の処理の流れを示すフローチャートである。本発明のストーリー連続再生プログラムが起動されると、まずシステムの初期化のために、下記の処理を行う。外部記憶装置１１２から、シナリオ・ファイルを読み出し、シナリオ記録手段１０７にシナリオを格納する（ステップ３０１）。外部記憶装置１１２から、メディアデータ・ファイルを読み出し、メディアデータ記録手段１０９にメディアデータとメディアデータＩＤを格納する（ステップ３０２）。外部記憶装置１１２から、シナリオ開始時点におけるシーンデータ・ファイルを読み出し、シーンデータ記録手段１０８にシーンデータを格納する（ステップ３０３）。
【００９６】
次に入力装置１０１から、ユーザーの入力指示があった場合に、入力イベントが発生し（ステップ３０４）、各イベントに対応する処理が実行される。入力イベントが再生ならば連続再生を実行し（ステップ３０５）、停止ならば停止イベントを発生し（ステップ３０６）、再生を停止し、終了ならば、プログラムを終了する。ここで、ステップ３０５の連続再生は、図７の連続再生手段１０３のフローチャートに対応している。
【００９７】
（実施の形態２）次に、本発明の請求項２及び３に対応する第２の実施の形態について説明する。本発明の第２の実施の形態は、第１の実施の形態に、再生位置をストーリー上の任意の時点に移動する機能を追加したものである。
【００９８】
この任意の時点は、ストーリー時間軸上の時点であって、シナリオの最初のマクロ命令の実行時点パラメータに指定された実行時点以後の時点を指す。また、この再生位置の移動は、再生中であっても実行できる。
【００９９】
図２は、本発明の第２の実施の形態におけるストーリー連続再生プログラムの構成を示すブロック図である。本実施の形態におけるストーリー連続再生プログラムは、図１に示した第１の実施の形態のストーリー連続再生プログラムの構成に、移動先時点入力手段２０１、再生位置移動手段２０２、シーン早送り手段２０３、シーン復元手段２０４、シーンファイル記録手段２０５を付加するようにしたものである。なお、その他の手段等は図１に示した第１の実施の形態のストーリー連続再生プログラムと同様なので、対応する手段等には同一符号を付してそれらの詳しい説明は割愛する。
【０１００】
図２において、移動先時点入力手段２０１は、再生位置を移動するために、ストーリー時間軸上の移動先を示す移動先時点を、入力装置１０１を通して受け取る。
【０１０１】
シーン早送り手段２０３は、再生位置移動手段２０２によって起動され、再生時点が移動先時点に達するまで、再生時点更新手段１０４とシーンデータ生成手段１０５を繰り返し実行することにより、移動先時点におけるシーンデータを生成する。この結果、再生位置は移動先時点に移動する。
【０１０２】
ここで、シーン早送り手段２０３の動作を詳述する。図８は、シーン早送り手段２０３の動作を示すフローチャートである。先ず、シーンデータ生成手段１０５により、再生時点におけるシーンデータを生成する（ステップ８０１）。このステップ８０１は、図５のシーンデータ生成手段１０５のフローチャートに対応している。次に、再生時点更新手段１０４により、再生時点を更新する（ステップ８０２）。更新された再生時点が移動先時点と一致するならば（ステップ８０３：Ｙｅｓ）、処理を終了し、一致しなければ（ステップ８０３：Ｎｏ）、ステップ８０１に戻る。
【０１０３】
このように再生時点が移動先時点に一致するまで、ステップ８０１からステップ８０３のループ処理を繰り返してゆく。これにより、再生位置移動の開始時点から、移動先時点までのシナリオ中のすべてのマクロ命令が実行され、移動先時点におけるシーンデータ（ストーリーの内部状態）が生成される。その結果、再生位置は、移動先時点に移動したことになる。
【０１０４】
ここで、このシーン早送り手段２０３は、シナリオさえあれば、そのマクロ命令を実行することにより、すべての時点に移動できるというメリットがある。
【０１０５】
逆にデメリットとして、再生位置移動の開始時点と移動先時点との間に存在するマクロ命令の数が多いほど、再生位置移動に時間がかかることが挙げられる。すなわち、再生位置移動に要する時間は、移動先時点に依ってばらつきがある。
【０１０６】
図２のシーンファイル記録手段２０５は、複数のシーンファイルと、各シーンファイルのシーンファイル時点をすべて登録したシーンファイル時点リストとを記録している。シーンファイルは、ストーリー時間軸上の１時点においてストーリー世界を構成するすべての登場オブジェクトの情報を含んでいる。また、シーンファイル時点は、シーンファイルのストーリー時間軸上の時点を示す。
【０１０７】
本実施の形態において、これらのシーンファイルは、データ量が大きいため、本発明によるストーリー連続再生プログラムが起動された後、メモリ上ではなく、外部記憶装置１１２に格納されている。そのため以後、シーンファイル記録手段２０５からシーンファイルを読み込むという表現は、ハードウェア上、外部記憶装置１１２からメモリへの読み込みを意味する。もちろん、メモリ容量が十分であれば、本発明によるストーリー連続再生プログラムの起動時に、一旦、すべてのシーンファイルを外部記憶装置１１２からメモリに読み込んで利用する方法もある。
【０１０８】
シーンファイルは、シナリオの最初のマクロ命令から、このシーンファイルのストーリー時間軸上での時点であるシーンファイル時点に至るまでのすべてのマクロ命令を、実行時点順に実行した結果が記録されている。言い換えれば、シナリオの最初のイベントからシーンファイル時点までのすべてのイベントを実行した因果の累積が過不足なく記録されている。そのため、シーンファイルを復元すれば、対応するシーンファイル時点におけるストーリーの内部状態を直接生成できる。これにより、再生位置をシーンファイル時点に瞬間に移動できる。この機能は、後述するシーン復元手段２０４によって実現されている。
【０１０９】
また、シーンファイル時点リストから、ストーリー時間軸上のどの時点にシーンファイルが存在するかを参照できる。本実施の形態では、シーンファイル時点リストの中で、シーンファイル時点は、時点順に配列されている。
【０１１０】
シーン復元手段２０４は、再生位置移動手段２０２によって起動され、シーンファイル記録手段２０５のシーンファイルを読み込みことにより、シーンデータ記録手段１０８のシーンデータを直接生成し、再生位置を移動する。
【０１１１】
具体的には、再生位置移動手段２０２から受け取った移動先時点を、シーンファイル記録手段２０５のシーンファイル時点リストから捜し出し、対応するシーンファイルをシーンファイル記録手段２０５から読み込み、このデータを基に、シーンデータ記録手段１０８のシーンデータを生成する。さらに、この移動先時点を新たな再生時点とすることにより、再生位置は移動先時点へ移動する。
【０１１２】
このシーン復元手段２０４による再生位置の移動は、移動先時点がシーンファイル時点リストに登録されていなければ実行できないというデメリットがある。
【０１１３】
逆にメリットとして、再生位置移動に要する時間は、シーンファイルの読み込み時間、すなわち外部記憶装置１１２のハードウェア上の読み込み時間にほぼ等しいことから、前述したシーン早送り手段２０３のような移動先時点に依るばらつきはなく、一定である。
【０１１４】
再生位置移動手段２０２は、移動先時点入力手段２０１から移動先時点を受け取り、シーン早送り手段２０３と、シーン復元手段２０４を組み合わせ実行することにより、再生位置を移動先時点に移動する。
【０１１５】
図１５は、再生位置の移動における概念図である。この図を用いて、再生位置の移動を詳述する。時点ｔ１〜ｔ１４は、ストーリー時間軸上の時点を表す。
【０１１６】
シーンファイル１〜５は、シーンファイル記録手段２０５に記録されているシーンファイルである。但しこのシーンファイルの配置は、本実施の形態を説明するための一例に過ぎない。この図から分かるように、シーンファイル１のシーンファイル時点はｔ１、シーンファイル２のシーンファイル時点はｔ２、シーンファイル３のシーンファイル時点はｔ９、シーンファイル４のシーンファイル時点はｔ１０、シーンファイル５のシーンファイル時点はｔ１３となる。従って、このシーンファイル記録手段２０５のシーンファイル時点リストには、シーンファイル時点として、ｔ１とｔ２とｔ９とｔ１０とｔ１３とが登録されている。
【０１１７】
また、図の移動パターン１、２、３は、再生位置移動のパターンであり、すべての再生位置移動は、この３つのパターンのいずれかに該当する。パターンを示している。図から、各移動パターンの移動先時点は、移動パターン１はｔ４、移動パターン２はｔ８、移動パターン３はｔ１１であり、また、現在時点（再生位置移動の開始時点）はｔ６であることが分かる。
【０１１８】
先ず、移動パターン１を説明する。図から分かるように、ｔ６からｔ４へ、過去への移動となるので、直接シーン早送り手段２０３による移動はできない。そこで、シーン復元手段２０４によりシーンファイル２を復元することにより、ｔ２に再生位置を移動した後、シーン早送り手段２０３によって、ｔ２からｔ４まで再生位置を移動する。ここで、シーンファイル２の代わりにシーンファイル１を復元する方法もあるが、シーン早送り手段２０３による移動がｔ１からｔ４となり、より処理時間がかかることから、シーンファイル２を選択する。
【０１１９】
次に、移動パターン２を説明する。図から分かるように、ｔ６からｔ８へ、未来への移動となる。ｔ６からｔ８の間にシーンファイルが存在しないので、シーン復元手段２０４は使えない。そこで、シーン早送り手段２０３によって、ｔ６からｔ８まで再生位置を移動する。
【０１２０】
次に、移動パターン３を説明する。図から分かるように、ｔ６からｔ１１へ、未来への移動となる。移動パターン２と同様に、シーン早送り手段２０３によって、ｔ６からｔ１１まで再生位置を移動する方法がある。これを方法１と呼ぶ。
【０１２１】
しかし、図から分かるように、ｔ６とｔ１１の間に、ｔ９にシーンファイル３、ｔ１０にシーンファイル４が存在する。そこで、シーン復元手段２０４により、ｔ１０のシーンファイル４を復元することで、ｔ１０に再生位置を移動した後、シーン早送り手段２０３によってｔ１０からｔ１１まで再生位置を移動する方法もある。これを方法２と呼ぶ。この方法２で、ｔ９のシーンファイル３を復元する方法もあるが、シーン早送り手段２０３による移動がｔ９からｔ１１となり、より処理時間がかかることから、シーンファイル４を選択する。
【０１２２】
このように移動パターン３には、前述した方法１と方法２があるので、より高速に処理できる方を選択する。ここで、その選択方法を説明する。先ず、シーン復元手段２０４による再生位置移動に要する時間を、ｔＬとする。前述したように、ｔＬは、シーンファイルの読み込み時間、すなわち外部記憶装置１１２のハードウェア上の読み込み時間にほぼ等しいことから、移動先時点に依らず一定である。
【０１２３】
次に、シーン早送り手段２０３の１再生時点あたりの処理時間をｔＦとする。ｔＦは、更新された再生時点において、シーンデータ記録手段１０８のシーデータを生成するのに要する時間で、図８のフローチャートのステップ８０１からステップ８０３の処理時間である。
【０１２４】
ここで、方法１による再生位置移動の処理時間をｔＰ１とすると、ｔＰ１はシーン早送り手段２０３だけの処理になるので、
ｔＰ１＝ｔＦ＊（ｔ１１−ｔ６）            ・・・・・（１）
となる。一方、方法２による再生位置移動の処理時間をｔＰ２とすると、ｔＰ２は、シーン復元手段２０４によってｔ１０まで移動し、さらに、シーン早送り手段２０３によってｔ１０からｔ１１まで移動する合計時間になるので、
ｔＰ２＝ｔＦ＊（ｔ１１−ｔ１０）＋ｔＬ    ・・・・・（２）
となる。  ここで、
ｔＰ１＜ｔＰ２                          ・・・・・（３）
として、（３）式に（１）式と（２）式を代入して変形すると
ｔＦ＊（ｔ１０−ｔ６）＜ｔＬ              ・・・・・（４）
となる。
【０１２５】
すなわち（４）式が成り立つとき、方法１が方法２より処理時間が少なくて済むので、方法１を選択する。逆に（４）式が成り立たないときには方法２を選択すればよい。
【０１２６】
ｔＦ、ｔＬは、本発明のストーリー連続再生プログラムが起動された後、プログラムの実行時にタイマを用いて実測する。最初に実測した値を定数として用いる方法、都度最新の値を実測して用いる方法、都度最新の値を実測し、それまでの値と平均値を求め用いる方法がある。
【０１２７】
ここで、以上の動作をフローチャートに沿って簡単に説明する。図９は、再生位置移動手段２０２の動作を示すフローチャートである。先ず、移動先である移動先時点が、現在時点（再生位置移動の開始時点）より過去か未来かを判別する（ステップ９０１）。もし、移動先時点が、現在時点より過去の場合は（ステップ９０１：Ｙｅｓ）、ステップ９０４に進み、未来の場合は（ステップ９０１：Ｎｏ）、シーンファイル記録手段２０５のシーンファイル時点リストを検索して、現在時点と移動先時点の間にシーンファイル時点が登録されているかを判別する（ステップ９０２）。該当するシーンファイル時点が登録されていない場合は（ステップ９０２：Ｎｏ）、ステップ９０７に移動する。該当するシーンファイル時点が登録されている場合は（ステップ９０２：Ｙｅｓ）、シーン復元手段２０４を用いるかどうかを、前述した（４）式から判定し（ステップ９０３）、シーン復元手段２０４を用いる場合は（ステップ９０３：Ｙｅｓ）、移動先時点より過去で、かつ移動先時点に最も近いシーンファイル時点を選択し（ステップ９０４）、シーン復元手段２０４により、このシーンファイル時点まで移動する（ステップ９０５）。また、シーン復元手段２０４を用いない場合は（ステップ９０３：Ｎｏ）、ステップ９０７に移動する。
【０１２８】
シーン復元手段２０４の処理後、再生時点が移動先時点と一致するか判定し（ステップ９０６）、一致しない場合は（ステップ９０６：Ｎｏ）、シーン早送り手段２０３で、移動先時点まで移動する。また、一致する場合は（ステップ９０６：Ｙｅｓ）、再生位置が移動先時点に達したことになるので、処理を終了する。
【０１２９】
なお、上記のステップ９０３で、前述した方法１と方法２で、より高速な方を選択しているが、方法２に固定することもできる。方法２に固定すれば、総合的処理速度の面で劣るが、選択処理であるステップ９０３を省くことができる。
【０１３０】
図４は、本実施の形態における全体の処理の流れを示すフローチャートである。図３の第１の実施の形態における全体のフローチャートに、再生位置を移動する処理が追加されているのが分かる。この追加された再生位置の移動の処理を説明する。再生位置を移動するために、移動先時点の入力イベントが発生したとき（ステップ３０４）、移動先時点入力手段２０１により移動先時点をユーザーから受け取り（ステップ４０２）、再生位置移動手段２０２により、再生位置を移動先時点に移動する（ステップ４０１）。ステップ４０１は、図９の再生位置移動手段２０２のフローチャートに対応している。
【０１３１】
（実施の形態３）次に、本発明の請求項４、５及び６に対応する第３の実施の形態について説明する。本発明の第３の実施の形態におけるストーリー連続再生プログラムの構成を示すブロック図は、第２の実施の形態におけるブロック図と同一で、図２に示されている。
【０１３２】
本実施の形態におけるシーンファイル記録手段２０５において、シーンファイル時点リストに登録されているシーンファイル時点は、時系列的に配列されていて、隣り合うシーンファイル時点間の時間間隔が一定値以内である。この一定値をｔＷとおくと、ストーリー時間軸上にシーンファイルが少なくともｔＷ間隔には存在していることを意味する。
【０１３３】
ここで、このシーンファイル記録手段２０５を用いた再生位置の移動を説明する。実施の形態２の再生位置の移動で説明した方法１は、シーンファイルを用いないので、方法２で説明する。シーン復元手段２０４により復元されるシーンファイルのシーンファイル時点をｔＳとし、移動先時点をｔＧとすると、再生位置移動の処理時間ｔＰ２は、（２）式から、
ｔＰ２＝ｔＦ＊（ｔＧ−ｔＳ）＋ｔＬ    ・・・・・（５）
となる。ここでシーンファイルが少なくともｔＷ間隔で配置されているので、シーン早送り手段２０３による移動区間（ｔＧ−ｔＳ）は
ｔＧ−ｔＳ  ＜  ｔＷ                ・・・・・（６）
が成り立つ。  ここで（５）式、（６）式より
ｔＰ２  ＜  ｔＦ＊ｔＷ＋ｔＬ        ・・・・・（７）
が成り立つ。
【０１３４】
（５）式から分かるように、本来、ｔＰ２は、ｔＧとｔＳによって大きく変動する。しかし、シーンファイルを少なくとも一定間隔ｔＷで配置することにより（７）式が成り立ち、ｔＰ２は、ｔＧとｔＳに依らず、（ｔＦ＊ｔＷ＋ｔＬ）以内に抑えられる。これにより、再生位置移動の処理時間は、移動先時点に依らず、（ｔＦ＊ｔＷ＋ｔＬ）以内になり、ユーザーの待ち時間を、最小限に抑えることができる。
【０１３５】
本実施の形態におけるシナリオ記録手段１０７のシナリオに記述されるマクロ命令は、第１の実施の形態及び第２の実施の形態におけるマクロ命令に、ストーリー上のイベント名を指定するイベント名パラメータをさらに付加している。図１２は、イベント名パラメータが付加されたマクロ命令によるシナリオのフォーマット例である。図１１のシナリオのフォーマット例と比較すると、オブジェクトパラメータに新たにイベント名の項目が追加されているのが分かる。また、図１２の、ＩＤ５、６、７、１０のマクロ命令のイベント名パラメータ（オブジェクトパラメータのイベント名）に、それぞれイベント名が指定されている。このイベント名パラメータは、１文字以上の文字列が指定されていれば有効とし、空白ならば無効として扱う。
【０１３６】
本実施の形態における移動先時点入力手段２０１は、シナリオ記録手段１０７のシナリオからイベント名パラメータが有効なマクロ命令だけ抽出し、抽出されたマクロ命令の実行時点パラメータの実行時点及びイベント名パラメータのイベント名から成るレコードのリストを表示し、ユーザーにレコードを選択させることにより移動先時点を入力する。この時の表示画面を図１３に示す。この図から、移動先時点の候補としてリスト表示されている各レコードは、図１２でイベント名パラメータが有効なマクロ命令（ＩＤ５、６、７、１０）に対応していることが分かる。
【０１３７】
また、カーソルが「１８５７年１月１日−広州で飢饉発生！」のレコードを指しているが、ここで確定の入力操作を行えば（例えば入力機器がマウスなら左クリック）、移動先時点として「１８５７年１月１日」が入力される。このように、煩雑な時点による入力に代わり、レコードの選択入力になるため、移動先時点の入力操作が非常に容易になる。
【０１３８】
また、上記の移動先時点入力手段２０１で、レコードが選択されたタイミングで、選択された時点を再表示し、そこで直接数値入力による修正できるようにする。このようにすれば、先ず、第一段階として大まかな時点をレコード選択で入力し、次の段階として必要があれば、時点を直接修正できるので、入力の操作性と自由度が同時に実現できる。
【０１３９】
本実施の形態におけるシーンファイル記録手段２０５のシーンファイル時点リストは、シナリオ記録手段１０７のシナリオでイベント名パラメータが有効なマクロ命令の実行時点パラメータに指定された実行時点のすべてを、シーンファイル時点として含んでいる。すわなち、これらの実行時点におけるシーンファイルが必ず存在する。そのため、再生位置を、イベント名パラメータが有効なマクロ命令の実行時点へ移動する場合は、シーン復元手段２０４だけの処理になり、その処理時間は、移動先時点に依らず、一定時間以内になる。
【０１４０】
以上のことから、シナリオを記述する際に、再生位置移動の移動先になる可能性の高いイベントを選択し、対応するマクロ命令のイベント名パラメータにイベント名を指定しておく。そうすれば、前述した理由により、再生位置を、これらのイベントの発生時点に移動する場合には、移動先時点の入力が簡単なレコード選択で済むとともに、再生位置移動は、移動先時点に依らず、一定時間以内に処理される。
【０１４１】
このように、操作性と処理速度を、シナリオの記述だけでコントロールできるため、コンテンツの調整が非常に容易になる。
【０１４２】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内で、種々、変更・応用が可能である。
【０１４３】
【発明の効果】
請求項１の発明によれば、ストーリー世界を構成する登場オブジェクトの振る舞いを、シナリオとして直接記述できるので、プログラミング知識がないユーザーでも容易にシナリオを記述することができる。
【０１４４】
また、ストーリーはタイマに同期して進行し、シナリオによって更新される登場オブジェクトの情報に応じて、メディアデータが自動的に提示出力されるので、前述したシナリオを記述するだけで、ストーリーを、３Ｄグラフィック、動画、音声、静止画、テキストなどのメディアデータを用いて、時間的に連続して再生することができる。
【０１４５】
これにより、ストーリーの制作者（シナリオ作成者）だけで、コンテンツを制作することができる。例えば、教育現場において教師が歴史コンテンツを、放送現場においてニュース制作者が時事コンテンツを、ゲーム制作現場においてシナリオ制作者がゲームコンテンツを、それぞれ制作することができる。
【０１４６】
また、シナリオは、登場オブジェクトの情報だけを更新し、メディアデータは、登場オブジェクトの情報だけを基に提示出力されるので、ストーリーの筋書きであるシナリオと、その表現形態であるメディアデータを、それぞれ単独に再利用することができる。これにより、コンテンツ制作における作業効率を大幅に向上させることができる。
【０１４７】
例えば、歴史のシナリオを１本記述し、メディアデータだけを小学生向け、中高生向け、大人向けにそれぞれ変えて制作すれば、１本のシナリオで３種類のコンテンツが制作できる。逆に、同じメディアデータを用いて、世界史シナリオ、日本史シナリオ、探検史シナリオを記述すれば、シナリオを記述するだけで３本のコンテンツを制作できる。
【０１４８】
また、請求項２、３の発明によれば、すべてのマクロ命令は、その命令が実行されるストーリー時間軸上の実行時点を有するため、ストーリーの内部状態を記録するシーンファイルを復元することによりストーリーの内部状態を生成する方法と、マクロ命令を実行することによりストーリーの内部状態を生成する方法とを、組み合わせ実行することにより、再生位置をストーリー上の任意の時点に移動することができる。
【０１４９】
例えば、シナリオが歴史であれば、見たい時代を、年・月・日を指定するだけで、画面上にその時代を再生できる。これは、仮想的な「見るタイムマシン」であり、歴史の補助教材として、また、楽しみながら歴史を学ぶ教養コンテンツとして利用できる。
【０１５０】
さらに、再生位置をストーリー上の任意の時点に移動できることは、ストーリーのランダム・アクセスを意味し、時系列的に配列された発生時点とその時点で発生するイベントから構成されるストーリー型データを、保存、検索、再生できるデータベースが実現できる。これにより、歴史データベース、時事ニュースデータベースが容易に構築できる。
【０１５１】
また、請求項４の発明によれば、シーンファイルがストーリー時間軸上で、一定の時間間隔以内に配置されているため、再生位置を移動する際に、シーン復元手段による処理が、一定の時間間隔以内で見込める。そのため、シーンファイルが無秩序に配置された場合に比べ、再生位置移動の処理時間は、より短くなり、ユーザーの待ち時間を最小限に抑えることができる。
【０１５２】
また、請求項５の発明によれば、再生位置の移動において、移動先時点の入力を、イベント名パラメータが有効なマクロ命令のイベント名と実行時点とを含むレコードのリストから選択できるようにした。そのため、予め、再生位置移動の移動先時点の候補を選定し、この時点に対応するマクロ命令のイベント名パラメータを有効にしておけば、この移動先時点の入力は、煩雑な数値入力ではなく、レコード選択になり、入力操作が非常に容易になる。
【０１５３】
また同時に、操作性が、シナリオの記述だけでコントロールできるため、コンテンツの調整が容易になる。
【０１５４】
また、請求項６の発明によれば、イベント名パラメータが有効なマクロ命令の実行時点に対応するシーンファイルが必ず存在する。そこで、予め、再生位置移動の移動先時点の候補を選定し、この時点に対応するマクロ命令のイベント名パラメータを有効にしておけば、この時点への再生位置移動は、シーン復元手段のみで実行されるため、再生位置移動の処理時間は、移動先時点に依らず一定時間以内に抑えられ、ユーザーの待ち時間のばらつきはなくなる。
【０１５５】
また同時に、処理速度をシナリオの記述だけでコントロールできるため、コンテンツの調整が容易になる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態におけるストーリー連続再生プログラムの構成を示すブロック図である。
【図２】本発明の第２及び第３の実施の形態におけるストーリー連続再生プログラムの構成を示すブロック図である。
【図３】本発明の第１の実施の形態における全体の処理の流れを示すフローチャートである。
【図４】本発明の第２及び第３の実施の形態における全体の処理の流れを示すフローチャートである。
【図５】本発明の実施の形態におけるシーンデータ生成手段の動作を示すフローチャートである。
【図６】本発明の実施の形態におけるシーンデータ提示手段の動作を示すフローチャートである。
【図７】本発明の実施の形態における連続再生手段の動作を示すフローチャートである。
【図８】本発明の第２及び第３の実施の形態におけるシーン早送り手段の動作を示すフローチャートである。
【図９】本発明の第２及び第３の実施の形態における再生位置移動手段の動作を示すフローチャートである。
【図１０】本発明の実施の形態におけるメディアデータＩＤのデータ構造の例を示す図である。
【図１１】本発明の第１及び第２の実施の形態におけるシナリオのフォーマット例を示す図である。
【図１２】本発明の第３の実施の形態におけるシナリオのフォーマット例を示す図である。
【図１３】本発明の第３の実施の形態における移動先時点入力のインタフェース画面の例を示す図である。
【図１４】本発明の実施の形態における登場オブジェクトを管理するデータ・テーブルの例を示す図である。
【図１５】本発明の第２及び第３の実施の形態における再生位置の移動の概念図である。
【符号の説明】
１００    データ処理装置
１０１    入力装置
１０２    再生指示入力手段
１０３    連続再生手段
１０４    再生時点更新手段
１０５    シーンデータ生成手段
１０６    シーンデータ提示手段
１０７    シナリオ記録手段
１０８    シーンデータ記録手段
１０９    メディアデータ記録手段
１１０    表示装置
１１１    音声出力装置
１１２    外部記憶装置
２０１    移動先時点入力手段
２０２    再生位置移動手段
２０３    シーン早送り手段
２０４    シーン復元手段
２０５    シーンファイル記録手段
【図１】
2004241873.tif 000003
【図２】
2004241873.tif 000004
【図３】
2004241873.tif 000005
【図４】
2004241873.tif 000006
【図５】
2004241873.tif 000007
【図６】
2004241873.tif 000008
【図７】
2004241873.tif 000009
【図８】
2004241873.tif 000010
【図９】
2004241873.tif 000011
【図１０】
2004241873.tif 000012
【図１１】
2004241873.tif 000013
【図１２】
2004241873.tif 000014
【図１３】
2004241873.tif 000015
【図１４】
2004241873.tif 000016
【図１５】
2004241873.tif 000017