(57)【特許請求の範囲】
【請求項１】
多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出して、各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するためのオブジェクト描画処理を行い、
各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するための字幕描画処理を行うものであって、
前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、
前記字幕描画処理は、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完して描画することを特徴とする画像描画方法。
【請求項２】
請求項１記載の画像描画方法において、
前記字幕に関するデータは、字幕データをパケット化した複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとを有し、
前記字幕描画処理は、前記複数のパケットデータが示す各字幕画像を複数のインデックスデータに基づいて配置して描画することを特徴とする画像描画方法。
【請求項３】
請求項１又は２記載の画像描画方法において、
前記同一の字幕に関するデータは、当該字幕を表示すべき時間に相当するフレーム数にわたる複数のフレームデータに組み込まれていることを特徴とする画像描画方法。
【請求項４】
請求項１〜３のいずれか１項に記載の画像描画方法において、
前記ストリーミングデータから順次セクタ単位にデータを読み出す際に、読出しエラーを検出し、
前記読出しエラーの情報に基づいて、１つのフレームデータにおける少なくとも前記字幕に関するデータの有効性を判別し、
前記字幕に関するデータのうち、有効と判別されなかった前記パケットデータや前記インデックスデータを、前記同一の字幕に関するデータが含まれる他のフレームデータに対する読出しによって補完することを特徴とする画像描画方法。
【請求項５】
多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出す情報読出し手段と、
読み出された各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段と、
各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するための画像描画処理を行う字幕描画手段とを有する画像描画装置において、
前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、
前記字幕描画手段は、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完して描画することを特徴とする画像描画装置。
【請求項６】
請求項５記載の画像描画装置において、
前記字幕に関するデータは、字幕データをパケット化した複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとを有し、
前記字幕描画手段は、前記複数のパケットデータが示す各字幕画像を複数のインデックスデータに基づいて配置して描画することを特徴とする画像描画装置。
【請求項７】
請求項５又は６記載の画像描画装置において、
前記同一の字幕に関するデータは、当該字幕を表示すべき時間に相当するフレーム数にわたる複数のフレームデータに組み込まれていることを特徴とする画像描画装置。
【請求項８】
請求項５〜７のいずれか１項に記載の画像描画装置において、
前記情報読出し手段は、前記ストリーミングデータから順次セクタ単位にデータを読み出す際に、前記読出しエラーを検出する手段と、前記読出しエラーの情報に基づいて、１つのフレームデータにおける少なくとも前記字幕に関するデータの有効性を判別する情報有効判別手段とを有し、
前記字幕描画手段は、前記字幕に関するデータのうち、有効と判別されなかった前記パケットデータや前記インデックスデータを、前記同一の字幕に関するデータが含まれる他のフレームデータに対する読出しによって補完することを特徴とする画像描画装置。
【請求項９】
コンピュータのオブジェクト描画処理によって、多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出して、各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するように制御し、さらに、前記コンピュータの字幕描画処理によって、各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するように制御するために使用されるデータ構造であって、
前記ストリーミングデータは、前記字幕描画処理によって、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完するように、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれていることを特徴とするデータ構造。
【請求項１０】
請求項９記載のデータ構造において、
前記字幕に関するデータは、前記字幕描画処理によって、複数のパケットデータが示す各字幕画像を複数のインデックスデータに基づいて配置して描画するように、字幕データをパケット化してなる複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとを有することを特徴とするデータ構造。
【請求項１１】
コンピュータを、３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段、字幕を表示するための画像描画処理を行う字幕描画手段として機能させるためのプログラムによって使用されるストリーミングデータを有するデータ構造であって、
前記ストリーミングデータは、多数のフレームデータから構成され、各フレームデータは、少なくとも３Ｄ画像のアニメーションを表示するための画像描画処理に使用されるモーションデータと、字幕を表示するための画像描画処理に使用される字幕に関するデータを含み、
前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、
前記字幕に関するデータは、字幕データをパケット化した複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとを有し、
１つのフレームデータにおける前記複数のパケットデータは、複数のセクタにわたって連続して配置され、
前記複数のインデックスデータは、各セクタヘッダに割り付けられていることを特徴とするデータ構造。
【請求項１２】
請求項１１記載のデータ構造において、
前記同一の字幕に関するデータは、当該字幕を表示すべき時間に相当するフレーム数にわたる複数のフレームデータに組み込まれていることを特徴とするデータ構造。
【請求項１３】
コンピュータを、
多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出す情報読出し手段、
読み出された各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段、
各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するための画像描画処理を行う字幕描画手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、
前記字幕描画手段は、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完して描画することを特徴とする記録媒体。
【請求項１４】
請求項１３記載の記録媒体において、
前記字幕に関するデータは、字幕データをパケット化した複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとを有し、
前記字幕描画手段は、前記複数のパケットデータが示す各字幕画像を複数のインデックスデータに基づいて配置して描画することを特徴とする記録媒体。
【請求項１５】
請求項１３又は１４記載の記録媒体において、
前記同一の字幕に関するデータは、当該字幕を表示すべき時間に相当するフレーム数にわたる複数のフレームデータに組み込まれていることを特徴とする記録媒体。
【請求項１６】
請求項１３〜１５のいずれか１項に記載の記録媒体において、
前記情報読出し手段は、前記ストリーミングデータから順次セクタ単位にデータを読み出す際に、前記読出しエラーを検出する手段と、前記読出しエラーの情報に基づいて、１つのフレームデータにおける少なくとも前記字幕に関するデータの有効性を判別する情報有効判別手段とを有し、
前記字幕描画手段は、前記字幕に関するデータのうち、有効と判別されなかった前記パケットデータや前記インデックスデータを、前記同一の字幕に関するデータが含まれる他のフレームデータに対する読出しによって補完することを特徴とする記録媒体。
【請求項１７】
コンピュータを、３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段、字幕を表示するための画像描画処理を行う字幕描画手段として機能させるためのプログラムによって使用されるストリーミングデータが少なくとも記録された記録媒体であって、
前記ストリーミングデータは、多数のフレームデータから構成され、各フレームデータは、少なくとも３Ｄ画像のアニメーションを表示するための画像描画処理に使用されるモーションデータと、字幕を表示するための画像描画処理に使用される字幕に関するデータを含み、
前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、
前記字幕に関するデータは、字幕データをパケット化した複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとを有し、
１つのフレームデータにおける前記複数のパケットデータは、複数のセクタにわたって連続して配置され、
前記複数のインデックスデータは、各セクタヘッダに割り付けられていることを特徴とする記録媒体。
【請求項１８】
請求項１７記載の記録媒体において、
前記同一の字幕に関するデータは、当該字幕を表示すべき時間に相当するフレーム数にわたる複数のフレームデータに組み込まれていることを特徴とする記録媒体。
【請求項１９】
コンピュータを、
多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出す情報読出し手段、
読み出された各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段、
各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するための画像描画処理を行う字幕描画手段として機能させるためのプログラムにおいて、
前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、
前記字幕描画手段は、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完して描画することを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、例えばビデオゲームなどの実際のシナリオの進行、並びにそれに先立って表示される映像として、シナリオ中に登場する人物の３Ｄ画像などのアニメーションと字幕を表示させる場合に好適な画像描画方法、画像描画装置及びデータ構造並びにこの画像描画処理を実現するプログラムが記録された記録媒体及びプログラム自体に関する。
【０００２】
【従来の技術】
近時、隠線処理、隠面消去処理、スムーズシェーディング、テクスチャマッピング等のコンピュータグラフィックス（ＣＧ）処理が、ハードウエアの飛躍的な発達と相俟って急速に進歩している。
【０００３】
ＣＧ処理としては、一般に、ＣＡＤの３次元モデリングによって複数の３次元形状（オブジェクト）を作成し、これらのオブジェクトに対して色や陰影をつけ、鏡面反射、拡散反射、屈折、透明感などの光学的特性を付加し、表面模様をつけ、更に、まわりの状況（窓や景色の映り込みや光の回り込み等）に応じて描画するというレンダリング処理が行われる。
【０００４】
また、ビデオゲーム機を含むエンタテインメント装置のような情報機器（エンタテインメントシステム）として、例えばＣＤ−ＲＯＭ等の記録媒体に格納されたゲーム内容をテレビジョン受像機の画面上に表示させながら、操作装置で操作してゲームを進行させるものがある。
【０００５】
このエンタテインメントシステムにおけるエンタテインメント装置と操作装置との間は、通常、シリアルインターフェースで接続され、エンタテインメント装置からクロックが送られると、そのクロックに同期して操作装置から使用者の操作に対応したキースイッチ情報等を送るようになっている。
【０００６】
また、最近では、操作装置内に外部（例えばエンタテインメント装置）からの要求によって使用者に振動を与える振動発生手段を設けるようにして、例えばゲームの進行中において、使用者の操作に応答するように種々の振動を使用者に与えるようにしたシステムが開発され、実用化に至っている。
【０００７】
【発明が解決しようとする課題】
ところで、例えばビデオゲーム機を使用して行うゲームとしては、ロールプレイングゲーム、シューティングゲーム、ドライビングゲーム、格闘ゲーム等、様々なものがある。
【０００８】
これらのビデオゲームにおいては、実際のシナリオの進行に先立って、時代背景や主人公の置かれている立場などを鮮明な映像で表示し、ユーザをビデオゲームに引き込むようにしている。即ち、シナリオの進行に先立って、鮮明な映像を見せることで、ユーザのシナリオに対する感情移入を行いやすくしている。
【０００９】
しかし、いままでのビデオゲームにおいては、実際のシナリオに進行したとき、例えば主人公の画像が、漫画的な画像に変化してしまうことが多い。例えば、シナリオの進行に先立って表示される鮮明な映像では、例えば主人公が８頭身のスラリとした画像となっているが、実際にシナリオが進行すると、例えば主人公は、漫画的な２頭身の画像となってしまい、興ざめするという問題がある。
【００１０】
このような映像上のギャップによって、例えばロールプレイングゲームやアドベンチャーゲームにおいては、ユーザの主人公に対する感情移入はほとんど行われず、ひたすらアイテムを見つけることやモンスターを倒すこと、果ては、最後のシナリオまで行き着くまでの時間を競うことなどに専念することとなり、主人公と共に長い旅を楽しんだり、謎を追いかけるというロールプレイングゲームやアドベンチャーゲーム本来の楽しみ方を享受できないという問題がある。
【００１１】
そこで、実際のシナリオの進行並びにそれに先立って表示される映像において、共にリアルタイムのポリゴン表示方式で各種オブジェクトを表示することで、上述のような映像上のギャップをなくすことが考えられる。
【００１２】
しかし、このようなポリゴン表示方式では、字幕の処理が困難になるおそれがある。２Ｄ画像のアニメーション表示の場合は、例えばＣＤ−ＲＯＭに記録されたデータをそのまま表示すればよいが、３Ｄ画像のアニメーション表示においては、例えばＣＤ−ＲＯＭから読み出したモーションデータからオブジェクトデータの頂点データを書き換えて１つひとつ描画する必要があるため、字幕に関するデータとモーションデータとの関連づけや読出しエラーが発生したときの対処をどのようにするかという新たな問題がある。
【００１３】
本発明はこのような課題を考慮してなされたものであり、実際のシナリオの進行並びにそれに先立って表示される映像において、共にリアルタイムのポリゴン表示方式で各種オブジェクトを表示することができ、しかも、読出しエラーがあったとしても字幕を鮮明に表示させることができる画像描画方法、画像描画装置、データ構造、記録媒体及びプログラムを提供することを目的とする。
【００１４】
【課題を解決するための手段】
本発明に係る画像描画方法は、多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出して、各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するためのオブジェクト描画処理を行い、各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するための字幕描画処理を行うものであって、前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、前記字幕描画処理は、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完して描画することを特徴とする。
【００１５】
また、本発明に係る画像描画装置は、多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出す情報読出し手段と、読み出された各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段と、各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するための画像描画処理を行う字幕描画手段とを有する画像描画装置において、前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、前記字幕描画手段は、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完して描画することを特徴とする。
また、本発明に係るデータ構造は、コンピュータのオブジェクト描画処理によって、多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出して、各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するように制御し、さらに、前記コンピュータの字幕描画処理によって、各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するように制御するために使用されるデータ構造であって、前記ストリーミングデータは、前記字幕描画処理によって、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完するように、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれていることを特徴とする。
また、本発明に係るデータ構造は、コンピュータを、３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段、字幕を表示するための画像描画処理を行う字幕描画手段として機能させるためのプログラムによって使用されるストリーミングデータを有するデータ構造であって、前記ストリーミングデータは、多数のフレームデータから構成され、各フレームデータは、少なくとも３Ｄ画像のアニメーションを表示するための画像描画処理に使用されるモーションデータと、字幕を表示するための画像描画処理に使用される字幕に関するデータを含み、前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、前記字幕に関するデータは、字幕データをパケット化した複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとを有し、１つのフレームデータにおける前記複数のパケットデータは、複数のセクタにわたって連続して配置され、前記複数のインデックスデータは、各セクタヘッダに割り付けられていることを特徴とする。
【００１６】
また、本発明に係る記録媒体は、コンピュータを、多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出す情報読出し手段、読み出された各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段、各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するための画像描画処理を行う字幕描画手段として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体において、前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、前記字幕描画手段は、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完して描画することを特徴とする。
また、本発明に係る記録媒体は、コンピュータを、３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段、字幕を表示するための画像描画処理を行う字幕描画手段として機能させるためのプログラムによって使用されるストリーミングデータが少なくとも記録された記録媒体であって、前記ストリーミングデータは、多数のフレームデータから構成され、各フレームデータは、少なくとも３Ｄ画像のアニメーションを表示するための画像描画処理に使用されるモーションデータと、字幕を表示するための画像描画処理に使用される字幕に関するデータを含み、前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、前記字幕に関するデータは、字幕データをパケット化した複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとを有し、１つのフレームデータにおける前記複数のパケットデータは、複数のセクタにわたって連続して配置され、前記複数のインデックスデータは、各セクタヘッダに割り付けられていることを特徴とする。
【００１７】
また、本発明に係るプログラムは、コンピュータを、多数のフレームデータから構成されるストリーミングデータから順次セクタ単位にデータを読み出す情報読出し手段、読み出された各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段、各フレームデータに含まれる字幕に関するデータに基づいて字幕を表示するための画像描画処理を行う字幕描画手段として機能させるためのプログラムにおいて、前記ストリーミングデータは、複数のフレームデータに関し、それぞれ同一の字幕に関するデータが組み込まれ、前記字幕描画手段は、前記ストリーミングデータの読み出し時に、読み出しエラーが検出された場合に、読み出しエラー対象のフレームデータの字幕に関するデータを、他のフレームデータに対する読み出しによって補完して描画することを特徴とする。
【００１８】
まず、オブジェクト描画処理において、ストリーミングデータから順次セクタ単位にデータが読み出され、各フレームデータに含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するための画像描画が行われる。
【００１９】
一方、字幕描画処理においては、同一の字幕に関するデータが組み込まれた複数のフレームデータから有効な複数のパケットデータを読み出し、これら複数のパケットデータが示す各字幕画像を、同じく複数のフレームデータから読み出した有効な複数のインデックスデータに基づいて配置して描画する。
【００２０】
これにより、ストリーミングデータについて、３Ｄ画像のアニメーション表示において使用されるモーションデータと、字幕に関するデータとの共存を可能にすることができる。その結果、例えばビデオゲームなどの実際のシナリオの進行並びにそれに先立って表示される映像において、共にリアルタイムのポリゴン表示方式で各種オブジェクトを表示することができ、しかも、字幕も表示させることが可能となる。
【００２１】
また、複数のフレームデータに関し、それぞれ同一の字幕に関するデータを組み込むようにしており、更に、各フレームデータへの字幕に関するデータの組み込みに当たっては、字幕データをパケット化した複数のパケットデータと、各パケットデータの配置を示す複数のインデックスデータとして組み込むようにしているため、ストリーミングデータに対する読出しの際のパケット損失の可能性を減らすことができ、表示すべき字幕が表示されない等の不具合を防止することができる。
【００２２】
そして、前記各パケットデータは、それぞれ圧縮処理されており、前記字幕描画処理は、前記複数のパケットデータを伸長処理してそれぞれ字幕画像に復元し、これら復元された字幕画像を複数のインデックスデータに基づいて配置して描画するようにしてもよい。これにより、字幕に関するデータを記録するためのデータ容量を効率よく減らすことができる。
【００２３】
また、１つのフレームデータにおける前記複数のパケットデータを、複数のセクタにわたって連続して配置し、前記複数のインデックスデータを、各セクタヘッダに割り付けるようにしてもよい。この場合、パケットデータやインデックスに対する読出しエラーの発生を低減することが可能となる。
【００２４】
また、前記同一の字幕に関するデータを、当該字幕を表示すべき時間に相当するフレーム数にわたる複数のフレームデータに組み込むようにすることが好ましい。
【００２５】
そして、前記ストリーミングデータから順次セクタ単位にデータを読み出す際に、読出しエラーを検出し、前記読出しエラーの情報に基づいて、１つのフレームデータにおける少なくとも前記字幕に関するデータの有効性を判別し、前記字幕に関するデータのうち、有効と判別されなかった前記パケットデータや前記インデックスデータを、前記同一の字幕に関するデータが含まれる他のフレームデータに対する読出しによって補完するようにしてもよい。この場合、１つのフレームデータにおける字幕に関するデータについて読出しエラーがあったとしても、字幕を鮮明に表示させることができる。
また、本発明に係る画像描画方法は、モーションデータと字幕に関するデータとを有するフレームデータに基づいて画像を描画する画像描画方法であって、前記字幕に関するデータは、ディスプレイの画面に表示される字幕画像が複数に分離された画像データと、各画像データの配置を示す情報とを有し、複数の前記フレームデータから順次読み出された前記モーションデータに基づいて前記ディスプレイの画面に動画像を表示するための画像描画を行うモーション描画ステップと、複数の前記フレームデータから順次読み出された前記字幕に関するデータに基づいて前記ディスプレイの画面に字幕画像を表示するための画像描画を行う字幕描画ステップとを有することを特徴とする。
前記字幕描画ステップは、前記読み出された前記字幕に関するデータに含まれる画像データを、該画像データに対応する配置を示す情報に基づいて配置描画するようにしてもよい。
また、前記字幕に関するデータにおける前記画像データは、該画像データを特定するインデックス情報と共に存在し、前記字幕に関するデータにおける前記配置を示す情報は、該配置を示す情報の対象となる画像データを特定するインデックス情報と共に存在し、前記字幕描画ステップは、インデックス情報が共に同じである画像データと配置を示す情報に基づいて、前記画像データを描画するようにしてもよい。
また、本発明に係るプログラムは、モーションデータと字幕に関するデータとを有し、前記字幕に関するデータは、ディスプレイの画面に表示される字幕画像が複数に分離された画像データと、各画像データの配置を示す情報とを有するフレームデータに基づいて画像を描画する画像描画装置を、複数の前記フレームデータから順次読み出された前記モーションデータに基づいて前記ディスプレイの画面に動画像を表示するための画像描画を行うモーション描画手段、複数の前記フレームデータから順次読み出された前記字幕に関するデータに基づいて前記ディスプレイの画面に字幕画像を表示するための画像描画を行う字幕描画手段、として機能させるためのプログラムである。
【００２６】
【発明の実施の形態】
以下、本発明に係る画像描画方法、画像描画装置、データ構造、記録媒体及びプログラムを例えば３次元のＣＧ処理を行うエンタテインメント装置に適用した実施の形態例（以下、単に実施の形態に係るエンタテインメント装置と記す）を図１〜図１６を参照しながら説明する。
【００２７】
本実施の形態に係るエンタテインメント装置１０は、図１に示すように、このエンタテインメント装置１０を制御するメインＣＰＵ１２と、各種プログラムの動作や各種データの格納等に使用されるメインメモリ１４と、前記メインＣＰＵ１２の制御に基づいて画像データを生成し、表示装置１６（この例ではＣＲＴ）に出力する画像処理部１８と、外部機器とのデータの送受信を行うための入出力ポート２０とを有して構成されている。
【００２８】
前記メインＣＰＵ１２には、バス２２を介してメインメモリ１４、画像処理部１８及び入出力ポート２０が接続されている。入出力ポート２０には、例えばこのエンタテインメント装置１０に対してデータ（キー入力データや座標データ等）を入力するための入出力装置２４や、各種プログラムやデータ（オブジェクトに関するデータやテクスチャデータ等）が記録された例えばＣＤ−ＲＯＭ等の光ディスク２６を再生する光ディスク装置２８等が接続される。
【００２９】
前記画像処理部１８は、レンダリングエンジン３０、メモリインターフェース３２、画像メモリ３４、表示制御装置３６（例えばプログラマブルＣＲＴコントローラ等）を有する。
【００３０】
レンダリングエンジン３０は、メインＣＰＵ１２から供給される描画コマンドに対応して、メモリインターフェース３２を介して、画像メモリ３４に所定の画像データを描画する動作を実行する。
【００３１】
メモリインターフェース３２とレンダリングエンジン３０との間には第１のバス３８が接続され、メモリインターフェース３２と画像メモリ３４との間には第２のバス４０が接続されている。第１及び第２のバス３８及び４０は、それぞれ例えば１２８ビットのビット幅を有し、レンダリングエンジン３０が画像メモリ３４に対して高速に描画処理を実行することができるようになっている。
【００３２】
レンダリングエンジン３０は、例えばＮＴＳＣ方式、あるいはＰＡＬ方式などの３２０×２４０画素の画像データ、あるいは６４０×４８０画素の画像データを、リアルタイムに、即ち１／６０秒〜１／３０秒の間に、１０数回〜数１０回以上描画できる能力を有する。
【００３３】
画像メモリ３４は、例えばテクスチャエリア３４ａと表示エリア３４ｂを同一のエリアに指定することができるユニファイドメモリ構造のものが採用されている。
【００３４】
表示制御装置３６は、光ディスク装置２８を通じて取り込まれたテクスチャデータやメインメモリ１４上で作成されたテクスチャデータをメモリインターフェース３２を介して画像メモリ３４のテクスチャエリア３４ａに書き込んだり、画像メモリ３４の表示エリア３４ｂに描画された画像データをメモリインターフェース３２を介して読み取り、これを表示装置１６に出力し、画面上に表示させるように構成されている。
【００３５】
次に、この実施の形態に係るエンタテインメント装置１０が有する特徴的な機能について図２〜図１６を参照しながら説明する。
【００３６】
この機能は、多数のフレームデータＦＤ１、ＦＤ２、ＦＤ３・・・から構成されるストリーミングデータから順次セクタ単位にセクタデータＳＤを読み出して、各フレームデータＦＤ１、ＦＤ２、ＦＤ３・・・に含まれる少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するためのオブジェクト描画処理を行い、更に各フレームデータＦＤ１、ＦＤ２、ＦＤ３・・・に含まれる字幕に関するデータに基づいて字幕を表示するための字幕描画処理を行うものである。
【００３７】
ここで、ストリーミングデータの内訳について説明する。ストリーミングデータは、図２に示すように、多数のフレームデータＦＤ１、ＦＤ２、ＦＤ３・・・から構成されている。
【００３８】
各フレームデータＦＤ１、ＦＤ２、ＦＤ３・・・は、図３に示すように、カメラデータ（回転マトリクス、回転角度、スクリーン距離、座標）と、点光源データ（座標、色）×光源数と、モーションデータ（内訳は後述する）×モーションデータ数と、字幕テクスチャ圧縮データパーツＴＤＰ（内訳は後述する）×ワード数と、字幕テクスチャ情報（フレーム単位：内訳は後述する）とを含む。
【００３９】
モーションデータの内訳は、まず、標準タイプ（拡大率が設定されていないタイプ）は、モデル番号、モーションデータ数、口データ、目データ、回転角度、座標、モーションデータ（回転角度及び座標）×モーションデータ数を含み、拡大率つきタイプは、モデル番号、モーションデータ数、口データ、目データ、回転角度、座標、拡大率、モーションデータ（回転角度及び座標）×モーションデータ数を含む。
【００４０】
また、字幕テクスチャ圧縮データパーツＴＤＰは、データパーツインデックスＰＩ（ワード単位）と、データパーツサイズ（ワード単位）と、圧縮データパーツＤＰ（データパーツサイズ分）であり、セクタ単位にパケット化されて格納されている。
【００４１】
字幕テクスチャ情報（フレーム単位）は、字幕テクスチャＩＤと、転送幅と、転送高さと、表示時間（フレーム数）を含み、各フレームデータＦＤ１、ＦＤ２、ＦＤ３・・・にそれぞれ１つの字幕テクスチャ情報が格納されるようになっている。
【００４２】
更に、各フレームデータＦＤ１、ＦＤ２、ＦＤ３・・・は、セクタ単位（例えば２０４８バイト単位）のセクタデータＳＤに分割されており、各セクタデータＳＤの先頭には例えば３２バイト構造のセクタヘッダＳＨが配置される。従って、セクタデータＳＤの有効なデータ領域は１セクタ当たり、２０４８−３２＝２０１６バイトとなる。
【００４３】
セクタヘッダＳＨの内訳は、図４に示すように、フレーム中でのセクタ番号と、フレームを構成するセクタ数と、ストリーミングデータ中でのフレーム番号と、フレームサイズ（Ｆｍａｘ）と、ユーザ定義領域とを含む。
【００４４】
また、ユーザ定義領域の内訳は、光源データ数と、モーショングループ数と、光源演算用拡大率と、字幕テクスチャデータインデックスＤＩ（ワード単位）と、パッド振動データＩＤと、字幕テクスチャ圧縮データパーツインデックスＰＩ（ワード単位）とを含む。以下の説明では、字幕テクスチャデータインデックスＤＩを単にデータインデックスＤＩと記し、字幕テクスチャ圧縮データパーツインデックスＰＩを単にパーツインデックスＰＩと記す。
【００４５】
ここで、セクタデータＳＤに格納される字幕テクスチャ圧縮データパーツＴＤＰと、セクタヘッダＳＨに格納されるデータインデックスＤＩ及びパーツインデックスＰＩとの関係を図５の表示例及び図６の概念図も参照しながら説明する。
【００４６】
図５には、複数のオブジェクト（５人の人物を示すオブジェクトＪ、Ｋ、Ｌ、Ｓ、Ｐとヘリコプタを示すオブジェクト１００）が３Ｄ画像で表示され、更に、画面１０２の下部において字幕１０４（字幕画像ともいう）が表示された例を示している。そして、字幕画像１０４は、図６に示すように、例えば２行８列のビットマップデータＢＭＤに分割されている。
【００４７】
各ビットマップデータＢＭＤは圧縮されて圧縮データパーツＤＰとしてセクタデータＳＤの字幕テクスチャ圧縮データパーツＴＤＰに格納されており、それぞれパーツインデックスＰＩが付与されている。また、ビットマップデータＢＭＤの配置情報は、セクタヘッダＳＨに登録されたパーツインデックスＰＩとデータインデックスＤＩとで示される。つまり、セクタデータＳＤの字幕テクスチャ圧縮データパーツＴＤＰに含まれるパーツインデックスＰＩから簡単に実質的な配置情報であるデータインデックスＤＩが割り出せるようになっている。
【００４８】
また、セクタヘッダＳＨと字幕テクスチャ圧縮データパーツＴＤＰにそれぞれパーツインデックスＰＩを登録することにより、セクタデータＳＤに登録すべき圧縮データパーツＤＰを容易に把握することができ、プログラムデバッグやシステム保守などに要する時間を短縮することができる。
【００４９】
そして、字幕画像１０４を表示する場合には、まず、読み出したセクタデータＳＤに含まれている字幕テクスチャ圧縮データパーツＴＤＰの圧縮データパーツＤＰを伸長処理してビットマップデータＢＭＤに復元し、更に、画像メモリ３４のテクスチャエリア３４ａのうち、当該セクタデータＳＤにおけるセクタヘッダＳＨに含まれているデータインデックスＤＩに対応する座標に前記ビットマップデータＢＭＤを描画する。この一連の処理を順次繰り返して、１つのシーンに表示すべき字幕画像１０４を作成し、該字幕画像１０４を画像メモリ３４の表示エリア３４ｂにおける所定の座標に表示することで、図５に示すように、字幕１０４が表示されることになる。
【００５０】
なお、パーツインデックスＰＩは、当該パーツインデックスＰＩが示す圧縮データパーツＤＰが伸長処理されてビットマップデータＢＭＤとして描画されたかどうかを判別するのに使用してもよい。
【００５１】
上述の例では、セクタデータＳＤに、該セクタデータＳＤのセクタヘッダＳＨに格納されたパーツインデックスＰＩに対応した字幕テクスチャ圧縮データパーツＴＤＰを格納させた場合について説明したが、その他、字幕テクスチャ圧縮データパーツＴＤＰをセクタ単位に格納するのではなく、複数の字幕テクスチャ圧縮データパーツＴＤＰを連続して格納した場合にも適用させることができる。この場合、セクタヘッダＳＨに格納されたパーツインデックスＰＩに基づいて、当該インデックスＰＩに対応する圧縮データパーツＤＰを検索する、という手法を採用することができる。
【００５２】
更に、本実施の形態では、以下のようなデータ構造を採用している。即ち、１つのフレームデータＦＤに格納された複数の字幕テクスチャ圧縮データパーツＴＤＰ、並びに複数のデータインデックスＤＩや複数のパーツインデックスＰＩを１つの字幕に関するデータとして定義したとき、複数のフレームデータＦＤ１、ＦＤ２、ＦＤ３・・・に関し、それぞれ同一の字幕に関するデータが組み込まれるようになっている。特に、本実施の形態では、前記字幕に関するデータが示す字幕を表示する時間（フレーム数）に対応するフレームデータＦＤ１、ＦＤ２、ＦＤ３・・・に関し、それぞれ同一の字幕に関するデータが組み込まれている。
【００５３】
図７では、字幕Ａに関するデータが複数のフレームデータＦＤ１、ＦＤ２・・・ＦＤｊにそれぞれ多重化されて組み込まれ、字幕Ｂに関するデータが複数のフレームデータＦＤｊ＋１、ＦＤｊ＋２・・・ＦＤｍにそれぞれ多重化されて組み込まれ、字幕Ｃに関するデータが複数のフレームデータＦＤｍ＋１、ＦＤｍ＋２・・・ＦＤｎにそれぞれ多重化されて組み込まれた例を示す。
【００５４】
次に、上述の機能を実現するためのソフトウエア（画像描画手段２００）の一例について図８〜図１６を参照しながら説明する。
【００５５】
この画像描画手段２００は、例えば光ディスク２６のようなランダムアクセス可能な記録媒体、さらにはネットワークによって、エンタテインメント装置１０に提供されるようになっている。ここでは、光ディスク２６からエンタテインメント装置１０に読み込まれて動作する場合を想定して説明を進める。
【００５６】
即ち、この画像描画手段２００は、例えば予めエンタテインメント装置１０にて再生される特定の光ディスク２６から所定の処理を経てエンタテインメント装置１０のメインメモリ１４に格納されることによって、メインＣＰＵ１２上で動作されるようになっている。
【００５７】
そして、この画像描画手段２００は、図８に示すように、多数のフレームデータＦＤ１、ＦＤ２、ＦＤ３・・・から構成されるストリーミングデータから順次セクタ単位にセクタデータＳＤを読み出す情報読出し手段２０２と、読み出されたセクタデータＳＤから構成される各フレームデータＦＤ１、ＦＤ２、ＦＤ３・・・に含まれた少なくともモーションデータに基づいて３Ｄ画像のアニメーションを表示するための画像描画処理を行うオブジェクト描画手段２０４と、各フレームデータＦＤ１、ＦＤ２、ＦＤ３・・・に含まれる字幕に関するデータに基づいて字幕画像１０４を表示するための画像描画処理を行う字幕描画手段２０６と、画像メモリ３４に描画された画像データを表示装置１６の画面１０２上に表示するための画像表示手段２０８とを有する。
【００５８】
即ち、オブジェクト描画手段２０４は、１つのフレームデータに基づいて、１つの場面に登場する１つ以上のオブジェクトの３Ｄ画像をポリゴン描画方式で画像メモリ３４に描画する。また、字幕描画手段２０６は、字幕１０４の表示時間に相当する複数のフレームデータから有効な圧縮データパーツＤＰを読み出し、伸長処理して、元のビットマップ形式の字幕データ（ビットマップデータＢＭＤ）に復元し、当該ビットマップデータＢＭＤをデータインデックスに対応する座標に描画するという処理をワード数だけ行って、字幕１０４を完成させる。
【００５９】
前記情報読出し手段２０２は、具体的には、光ディスク装置２８を介して再生される１セクタ単位のデータ（セクタデータＳＤ）を順次メインメモリ１４に格納するという処理に加えて、光ディスク装置２８から供給される再生エラー信号に基づいて読出し不良を認識し、対応するエラー検出フラグ２１０の該当ビットをセットする、というエラー検出処理も行うようになっている。
【００６０】
また、前記画像描画手段２００は、上述の各種手段に加えて、読み出されたセクタデータＳＤの内容に基づいて情報読出し手段２０２での読出し処理を制御する読出し制御手段２１２と、各種エラー検出フラグ２１０のビット情報に基づいてセクタデータＳＤの有効／無効を判別する情報有効判別手段２１４とを有する。
【００６１】
一方、字幕描画手段２０６は、図９に示すように、有効に読み出されたセクタヘッダＳＤから字幕に関するインデックス（データインデックスＤＩ及びパーツインデックスＰＩ）を読み出すインデックス読出し手段２２０と、有効に読み出されたセクタデータＳＤから字幕テクスチャ圧縮データパーツＴＤＰを読み出すパーツ読出し手段２２２と、読み出された字幕テクスチャ圧縮データパーツＴＤＰのうち、圧縮データパーツＤＰに対して伸長処理を施してビットマップデータＢＭＤに復元する伸長処理手段２２４と、復元したビットマップデータＢＭＤを、画像メモリ３４のうち、各種インデックスが示す位置に描画するデータ描画手段２２６とを有する。
【００６２】
次に、上述の画像描画手段２００の処理動作を図１０〜図１６のフローチャートを参照しながら説明する。まず、前提事項について説明すると、画像描画手段２００と情報有効判別手段２１４は互いにマルチタスク方式で動作する。情報読出し手段２０２において１度に読み出すフレーム数は、字幕の表示時間に相当するフレーム数としている。もちろん、これ以外に例えば２０フレーム単位に読み出すなどの仕様にしてもよい。
【００６３】
情報読出し手段２０２においてアクセス中のフレームデータと、情報有効判別手段２１４においてアクセス中のフレームデータが互いに一致しないように、即ち、互いのインターロックをとるために、ワーク領域並びにエラー検出フラグ２１０を擬似的なダブルバッファ方式としている。
【００６４】
この画像描画手段２００は、まず、図１０のステップＳ１において、各種パラメータ及びフラグ類の初期化を行う。具体的には、例えばワーク領域の選択に用いられるインデックスレジスタｋに初期値「１」を格納し、ワーク領域内でのフレームデータを格納する領域の選択に用いられるインデックスレジスタｍに初期値「０」を格納し、各種エラー検出フラグ２１０を初期化する。また、フレームを構成するセクタ数Ａや字幕の表示時間（フレーム数Ｂ）をそれぞれ最大値Ａｍａｘ、Ｂｍａｘとする。
【００６５】
次に、ステップＳ２において、光ディスクから読み取るべきフレームデータの検索に用いられるインデックスレジスタｉに初期値「０」を格納して、該インデックスレジスタｉを初期化し、次いで、ステップＳ３において、セクタの検索に用いられるインデックスレジスタｊに初期値「０」を格納して、該インデックスレジスタｊを初期化する。
【００６６】
次に、ステップＳ４において、情報読出し手段２０２を通じて、光ディスク２６に記録されているストリーミングデータからｉフレームにおけるｊセクタ目のセクタデータＳＤを光ディスク装置２８を介して読み出し、次いで、ステップＳ５において、光ディスク装置２８から読出しエラーを受けたか否かが判別される。
【００６７】
読出しエラーでなければ、次のステップＳ６において、情報読出し手段２０２を通じて、前記読み出したセクタデータＳＤを、ｋ番目のワーク領域のうち、ｍフレームに対応する領域のｊセクタ目に格納する。
【００６８】
読出しエラーであれば、ステップＳ７において、情報読出し手段２０２を通じて、ｋ番目のエラー検出フラグ群のうち、ｍフレームに関するエラー検出フラグ２１０のｊビット目にエラーを示すビット情報、例えば「１」を格納する。即ち、前記ｊビット目にエラービットをセットする。
【００６９】
前記ステップＳ６あるいはステップＳ７での処理が終了した段階で、次のステップＳ８に進み、インデックスレジスタｊの値を＋１更新した後、ステップＳ９において、読出し制御手段２１２を通じて、今回のフレームデータにおける全てのセクタデータＳＤに対してアクセスしたか否かを判別する。
【００７０】
この判別は、正常に読み出したセクタデータＳＤがあれば、インデックスレジスタｊの値が、セクタヘッダＳＨに登録されている「フレームを構成するセクタ数Ａ」以上であるかどうかで行われ、正常に読み出したセクタデータＳＤがなければ、初期設定において最大値に設定されたセクタ数Ａｍａｘ以上であるかどうかで行われる。通常、正常に読み出したセクタデータＳＤが必ず１つ以上存在するため、前者の判別手法で行われる。
【００７１】
今回のフレームデータにおける全てのセクタデータＳＤに対してアクセスしていない場合は、前記ステップＳ４に戻って、該ステップＳ４以降の処理を繰り返す。
【００７２】
そして、今回のフレームデータにおける全てのセクタデータＳＤに対してアクセスを行った場合は、次のステップＳ１０において、インデックスレジスタｉ及びｍの値をそれぞれ＋１更新した後、ステップＳ１１において、読出し制御手段２１２を通じて、今回の字幕１０４の表示時間（フレーム数）に相当するフレームデータに対してアクセスしたか否かを判別する。
【００７３】
この判別は、正常に読み出した字幕テクスチャ情報があれば、インデックスレジスタｍの値が、字幕テクスチャ情報に登録されている「表示時間（フレーム数）Ｂ」以上であるかどうかで行われ、正常に読み出した字幕テクスチャ情報がなければ、初期設定において最大値に設定されたフレーム数Ｂｍａｘ以上であるかどうかで行われる。通常、正常に読み出した字幕テクスチャ情報が必ず１つ以上存在するため、この場合も前者の判別手法で行われる。
【００７４】
今回の字幕１０４の表示時間（フレーム数）に相当するフレームデータに対してアクセスしていない場合は、前記ステップＳ３に戻って、該ステップＳ３以降の処理を繰り返す。
【００７５】
そして、今回の字幕１０４の表示時間（フレーム数）に相当するフレームデータに対してアクセスを行った場合は、図１１のステップＳ１２に進み、インデックスレジスタｐに、現在のインデックスレジスタｋの値を保持させ、次のステップＳ１３〜Ｓ１５において、インデックスレジスタｋの値として、前回のワーク領域とは異なる別のワーク領域を指示する値に変更する。
【００７６】
次に、ステップＳ１６において、現在、情報有効判別手段２１４が動作中でないか否かを判別する。この判別は、動作中フラグが「動作中でない」ことを示す例えば「０」であるかどうかで行われる。
【００７７】
情報有効判別手段２１４が動作中でなければ、ステップＳ１７において、情報有効判別手段２１４を起動し、続いて、ステップＳ１８において、全ての処理が終了したか否かを判別する。この判別は、正常に読み出したセクタデータＳＤがあれば、インデックスレジスタｉの値がセクタヘッダＳＨに登録されている「フレームサイズＦｍａｘ」以上であるかどうかで行われる。
【００７８】
全ての処理が終了していなければ、次のステップＳ１９において、各種パラメータの初期化を行う。具体的には、例えばインデックスレジスタｍを初期化したり、フレームを構成するセクタ数Ａや字幕１０４の表示時間（フレーム数Ｂ）をそれぞれ最大値Ａｍａｘ、Ｂｍａｘとする。その後、図１０の前記ステップＳ３に戻って、該ステップＳ３以降の処理を繰り返す。
【００７９】
そして、前記ステップＳ１８において、全ての処理が終了したと判別された段階で、この画像描画手段２００での処理が終了する。
【００８０】
次に、情報有効判別手段２１４の処理動作について図１２〜図１６を参照しながら説明する。この情報有効判別手段２１４は、まず、図１２のステップＳ１０１において、動作中フラグに動作中を示す「１」をセットする。その後、ステップＳ１０２において、フレーム検索に用いられるインデックスレジスタｎに初期値「０」を格納して、該インデックスレジスタｎを初期化する。
【００８１】
次に、ステップＳ１０３及びステップＳ１０４において、ｐ番目のワーク領域に関するｎフレーム目のフレームデータについて、そのカメラに関するデータの有効性を判別する。この判別は、ｐ番目のエラー検出フラグ群のうち、ｎフレームに関するエラー検出フラグ２１０の情報、特に、カメラに関するデータに対応するビット位置の情報に基づいて行われる。
【００８２】
カメラに関するデータが有効であると判別された場合は、次のステップＳ１０５に進み、今回のカメラに関するデータをカメラ設定領域２３０（図８参照）に格納した後、次のステップＳ１０６において、カメラ有効フラグに有効を示す「１」をセットする。
【００８３】
次に、ステップＳ１０７及びステップＳ１０８において、ｐ番目のワーク領域に関するｎフレーム目のフレームデータについて、その光源に関するデータの有効性を判別する。この判別も、ｐ番目のエラー検出フラグ群のうち、ｎフレームに関するエラー検出フラグ２１０の情報、特に、光源に関するデータに対応するビット位置の情報に基づいて行われる。
【００８４】
光源に関するデータが有効であれば、次のステップＳ１０９に進み、今回の光源に関するデータを光源設定領域２３２に格納した後、次のステップＳ１１０において、光源有効フラグに有効を示す「１」をセットする。
【００８５】
次に、図１３のステップＳ１１１において、カメラ及び光源が有効であるか否かを判別する。この判別は、カメラ有効フラグ及び光源有効フラグが共に有効を示す「１」がセットされているかどうかで行われる。
【００８６】
有効であれば、次のステップＳ１１２に進み、オブジェクト描画手段２０４での処理に入る。このオブジェクト描画手段２０４は、まず、図１４のステップＳ２０１において、カメラ設定領域２３０に格納されているカメラに関するデータに基づいてカメラの位置を設定する。
【００８７】
次に、ステップＳ２０２において、モーションデータの検索に用いられるインデックスレジスタｒに初期値「０」を格納して、該インデックスレジスタｒを初期化する。
【００８８】
次に、ステップＳ２０３及びステップＳ２０４において、ｐ番目のワーク領域に関するｎフレーム目のフレームデータについて、ｒ番目のモーションデータの有効性を判別する。この判別は、ｐ番目のエラー検出フラグ群のうち、ｎフレームに関するエラー検出フラグ２１０の情報、特に、ｒ番目のモーションデータに対応するビット位置の情報に基づいて行われる。
【００８９】
ｒ番目のモーションデータが有効であると判別された場合は、次のステップＳ２０５に進み、ｒ番目のモーションデータのモデル番号に対応するオブジェクトデータを読み出す。
【００９０】
次に、ステップＳ２０６において、オブジェクトデータの頂点データを、今回のモーションデータに基づいて書き換え、続いて、ステップＳ２０７において、光源に関するデータ等に基づいて光学特性を付与し、更に、テクスチャマッピング等を施して、今回のオブジェクトデータについてレンダリング処理を行って、画像メモリ３４の表示エリア３４ｂに当該モデル番号に対応する３Ｄ画像データを描画する。このレンダリング処理にあたっては、モーションデータに含まれる口データに基づいてオブジェクトの口が開いたり閉じたりする画像と、目データに基づいてオブジェクトの目が開いたり閉じたりする画像も同時に描画される。
【００９１】
次に、ステップＳ２０８において、今回のモデル番号に対応するオブジェクトについて特殊効果が必要であるか否かを判別する。この判別は、オブジェクト情報テーブルに基づいてモデル番号が特殊効果を必要とする番号であるかどうかで行われる。この特殊効果としては、例えば煙、炎、霧などが挙げられる。
【００９２】
特殊効果が必要なモデル番号であれば、次のステップＳ２０９に進み、オブジェクト情報テーブルに登録された特殊効果付与プログラム、例えばモデル番号に対応するレコードに登録された特殊効果付与プログラムが起動される。この特殊効果付与プログラムの起動によって、例えば煙、炎、霧などの特殊効果による画像が描画されることになる。
【００９３】
前記ステップＳ２０９での処理が終了した段階、又は前記ステップＳ２０４においてｒ番目のモーションデータが有効でないと判別された場合は、次のステップＳ２１０において、インデックスレジスタｒの値を＋１更新した後、次のステップＳ２１１において、当該フレームについてのオブジェクト描画が終了したか否かを判別する。この判別は、当該フレームデータ内の全てのモーションデータについてアクセスしたかどうかで行われる。即ち、インデックスレジスタｒの値が当該フレームデータに登録されているモーションデータ数以上であるかどうかで行われる。
【００９４】
当該フレームについてのオブジェクト描画が終了していない場合は、前記ステップＳ２０３に戻り、次のモーションデータについての処理を行う。一方、前記ステップＳ２１１において、当該フレームについてのオブジェクト描画が終了したと判別された場合は、このオブジェクト描画手段２０４での処理が終了する。
【００９５】
図１３のルーチンに戻り、次のステップＳ１１３において、字幕描画手段２０６での処理に入る。この字幕描画手段２０６は、まず、図１５のステップＳ３０１において、有効なワードの検索に用いられるインデックスレジスタｕに初期値「０」を格納して、該インデックスレジスタｕを初期化する。
【００９６】
次に、ステップＳ３０２において、新しい字幕１０４であるか否かを判別する。この判別は、インデックスレジスタｎの値が「０」であるかどうかで行われる。新しい字幕１０４であれば、次のステップＳ３０３に進み、フレームの検索に用いられるインデックスレジスタｓに初期値「０」を格納して、該インデックスレジスタｓを初期化する。
【００９７】
次に、ステップＳ３０４において、セクタの検索に用いられるインデックスレジスタｔに初期値「０」を格納して、該インデックスレジスタｔを初期化し、次いで、ステップＳ３０５及びステップＳ３０６において、ｐ番目のワーク領域に関するｓフレーム目のフレームデータについて、ｔ番目のセクタデータの有効性を判別する。
【００９８】
この判別は、まず、ｐ番目のエラー検出フラグ群のうち、ｓフレームに関するエラー検出フラグ２１０の情報、特に、ｔ番目のセクタデータＳＤに対応するビット位置の情報に基づいて行われ、更に、このｔ番目のセクタデータＳＤに字幕テクスチャ圧縮データパーツＴＤＰが存在するかどうかで行われる。字幕テクスチャ圧縮データパーツＴＤＰの存在如何は、セクタヘッダＳＨに登録されたデータインデックスＤＩやパーツインデックスＰＩが有効な値であるかどうかで判別される。
【００９９】
ｔ番目のセクタデータＳＤが有効である場合は、次のステップＳ３０７において、インデックス読出し手段２２０を通じて、当該セクタヘッダＳＨから各種インデックス（データインデックスＤＩ及びパーツインデックスＰＩ）を読み出す。
【０１００】
次に、ステップＳ３０８において、今回の圧縮データパーツＤＰが既に処理済みであるか否か、即ち、ビットマップデータＢＭＤに復元されて描画されたか否かを判別する。この判別は、今回のパーツインデックスＰＩが処理済みであるパーツインデックスＰＩに含まれているかどうかで行われる。
【０１０１】
処理済みでなければ、次のステップＳ３０９に進み、パーツ読出し手段２２２を通じて、当該セクタデータＳＤから圧縮データパーツＤＰを読み出す。その後、ステップＳ３１０において、伸長処理手段２２４を通じて、前記読み出した圧縮データパーツＤＰをデータパーツサイズ等の情報に基づいて伸長処理を行い、ビットマップタイプのワード単位の字幕データ（ビットマップデータＢＭＤ）に復元する。
【０１０２】
次に、ステップＳ３１１において、データ描画手段２２６を通じて、前記復元したビットマップデータＢＭＤをテクスチャエリア３４ａのデータインデックスＤＩに対応する座標に描画する。その後、ステップＳ３１２において、インデックスレジスタｕの値を＋１更新する。
【０１０３】
前記ステップＳ３１２での処理が終了した段階、又は前記ステップＳ３０８において当該圧縮データパーツＤＰが処理済みであると判別された場合、あるいは前記ステップＳ３０６において当該セクタデータＳＤが有効でないと判別された場合は、図１６のステップＳ３１３に進み、インデックスレジスタｔの値を＋１更新する。
【０１０４】
次に、ステップＳ３１４において、今回のフレームデータにおける全てのセクタデータＳＤに対してアクセスしたか否かを判別する。この判別は、インデックスレジスタｔの値が、セクタヘッダＳＨに登録されている「フレームを構成するセクタ数Ａ」以上であるかどうかで行われる。
【０１０５】
今回のフレームデータにおける全てのセクタデータＳＤに対してアクセスしていない場合は、図１５の前記ステップＳ３０５に戻り、次のセクタデータＳＤに対する処理を行う。そして、今回のフレームデータにおける全てのセクタデータＳＤに対してアクセスを行った場合は、図１６のステップＳ３１５に進み、今回の字幕１０４が完成したか否かを判別する。この判別は、インデックスレジスタｕの値が規定のワード数以上であるかどうかで行われる。
【０１０６】
字幕１０４が完成していない場合は、次のステップＳ３１６に進み、インデックスレジスタｓの値を＋１更新した後、図１５の前記ステップＳ３０４に戻り、該ステップＳ３０４以降の処理を繰り返す。一方、字幕１０４が完成している場合は、図１６のステップＳ３１７に進み、データ描画手段２２６を通じて、前記テクスチャエリア３４ａに描画されている規定ワード数の字幕画像１０４を表示エリア３４ｂの所定の座標に描画する。
【０１０７】
他方、図１５の前記ステップＳ３０２において、新しい字幕１０４でないと判別された場合は、ステップＳ３１８に進み、字幕１０４がすでに完成されているか否か、即ち、処理済みであるかどうかを判別する。処理済みでなければ、前記ステップＳ３０３以降の処理に進み、処理済みであれば、図１６の前記ステップＳ３１７に進んでテクスチャエリア３４ａに描画されている規定ワード数の字幕画像１０４を表示エリア３４ｂの所定の座標に描画する。
【０１０８】
そして、前記ステップＳ３１７での処理が終了した段階で、この字幕描画手段２０６での処理が終了する。
【０１０９】
図１３のルーチンに戻り、次のステップＳ１１４において、画像表示手段２０８を通じて、画像メモリ３４に描画された画像データを表示装置１６に出力して、該表示装置１６の画面上にオブジェクトに関する画像データと字幕１０４を表示させる。
【０１１０】
前記ステップＳ１１４での処理が終了した段階、又は前記ステップＳ１１１においてカメラ又は光源が有効でないと判別された場合は、次のステップＳ１１５に進み、インデックスレジスタｎの値を＋１更新する。
【０１１１】
次に、ステップＳ１１６において、今回の字幕１０４の表示時間（フレーム数）に相当するフレームデータに対してアクセスしたか否かを判別する。この判別は、インデックスレジスタｍの値が、字幕テクスチャ情報に登録されている「表示時間（フレーム数）Ｂ」以上であるかどうかで行われる。
【０１１２】
今回の字幕１０４の表示時間（フレーム数）に相当するフレームデータに対してアクセスしていない場合は、図１２の前記ステップＳ１０３に戻り、次のフレームデータに対する処理を行う。
【０１１３】
そして、今回の字幕１０４の表示時間（フレーム数）に相当するフレームデータに対して全てアクセスした場合は、図１３のステップＳ１１７に進み、動作中フラグを「０」にリセットした後、この情報有効判別手段２１４での処理が終了する。
【０１１４】
上述の情報読出し手段２０２、読出し制御手段２１２、情報有効判別手段２１４、オブジェクト描画手段２０４及び字幕描画手段２０６が動作することによって、まず、画像メモリ３４に対し、フレーム単位に１つ以上のオブジェクトの３Ｄ画像が描画される。
【０１１５】
更に、フレーム単位に、同一の字幕に関するデータが組み込まれた複数のフレームデータから有効な複数のセクタデータＳＤが読み出され、これら複数のセクタデータＳＤに含まれるワード単位の圧縮データパーツＤＰが伸長処理されてそれぞれビットマップデータＢＭＤに復元され、該復元されたビットマップデータＢＭＤが、画像メモリ３４のうち、同じく複数のフレームデータから読み出した有効な複数のセクタヘッダＳＨに含まれるインデックス（データインデックスＤＩ及びパーツインデックスＰＩ）に基づく所要位置に描画される。
【０１１６】
つまり、オブジェクトの描画にあたっては、１つのフレームデータに登録されたモーションデータに基づいてオブジェクトの３Ｄ画像が描画され、字幕１０４の描画にあたっては、該字幕１０４の表示時間に相当する複数のフレームデータに登録された同一の字幕に関するデータに基づいて字幕１０４が描画されることになる。
【０１１７】
このように、本実施の形態においては、フレームデータを構成する複数のセクタデータＳＤにワード単位に字幕テクスチャ圧縮データパーツＴＤＰを割り当ててパケット化し、各字幕テクスチャ圧縮データパーツＴＤＰに含まれる圧縮データパーツＤＰを伸長処理した後のビットマップデータＢＭＤの配置を示すインデックス（データインデックスＤＩ及びパーツインデックスＰＩ）をそれぞれセクタヘッダＳＨに登録したので、ストリーミングデータについて、３Ｄ画像のアニメーション表示において使用されるモーションデータと、字幕に関するデータとの共存を可能にすることができる。
【０１１８】
その結果、例えばビデオゲームなどの実際のシナリオの進行並びにそれに先立って表示される映像において、共にリアルタイムのポリゴン表示方式で各種オブジェクトを表示することができ、しかも、字幕も表示させることが可能となる。
【０１１９】
特に、本実施の形態では、同一の字幕に関し、該字幕の表示時間（フレーム数）に相当するフレームデータに、それぞれ同じ字幕に関するデータ（パケット化された字幕テクスチャ圧縮データパーツＴＤＰやインデックス（ＤＩ、ＰＩ））を割り当てるようにし、更に上述のように、各フレームデータＦＤ１、ＦＤ２、ＦＤ３・・・への字幕に関するデータの組み込みに当たっては、各セクタデータＳＤに字幕テクスチャ圧縮データパーツＴＤＰをワード単位に登録してパケット化し、伸長処理後のビットマップデータＢＭＤの配置情報を示すインデックス（ＤＩ、ＰＩ）を各セクタヘッダＳＨに登録するようにしたので、例えば光ディスク２６に記録されたストリーミングデータに対する読出しの際のパケット損失の頻度を減らすことができ、しかも、字幕テクスチャ圧縮データパーツＴＤＰやインデックス（ＤＩ、ＰＩ）に対する読出しエラーの発生を低減することが可能となり、表示すべき字幕が表示されない等の不具合を防止することができる。
【０１２０】
更に、本実施の形態では、各字幕テクスチャ圧縮データパーツＴＤＰに含まれる圧縮データパーツＤＰをそれぞれ圧縮処理するようにしているため、字幕に関するデータを記録するためのデータ容量を効率よく減らすことができる。
【０１２１】
特に、本実施の形態では、前記ストリーミングデータから順次セクタ単位にセクタデータＳＤを読み出す際に、読出しエラーを検出し、該読出しエラーの情報に基づいて、１つのフレームデータにおける少なくとも前記字幕に関するデータの有効性を判別し、該字幕に関するデータのうち、有効と判別されなかったセクタデータＳＤを、同一の字幕に関するデータが含まれる他のフレームデータに対する読出しによって補完するようにしたので、１つのフレームデータにおける字幕に関するデータについて読出しエラーがあったとしても、字幕を鮮明に表示させることができる。
【０１２２】
なお、この発明に係る画像描画方法、画像描画装置、データ構造、記録媒体及びプログラムは、上述の実施の形態に限らず、この発明の要旨を逸脱することなく、種々の構成を採り得ることはもちろんである。
【０１２３】
【発明の効果】
以上説明したように、本発明に係る画像描画方法、画像描画装置、データ構造、記録媒体及びプログラムによれば、実際のシナリオの進行並びにそれに先立って表示される映像において、共にリアルタイムのポリゴン表示方式で各種オブジェクトを表示することができ、しかも、読出しエラーがあったとしても字幕を鮮明に表示させることができる。
【図面の簡単な説明】
【図１】本実施の形態に係るエンタテインメント装置の構成を示すブロック図である。
【図２】ストリーミングデータの内訳を示す説明図である。
【図３】フレームデータの内訳を示す説明図である。
【図４】セクタヘッダの内訳を示す説明図である。
【図５】本実施の形態に係るエンタテインメント装置による画像表示例を示す説明図である。
【図６】セクタデータに登録された圧縮データパーツとセクタヘッダに登録された各種インデックスに基づいて字幕を作成する過程を示す概念図である。
【図７】複数のフレームデータに対して同一の字幕に関するデータを多重化して組み込んだ例を示す説明図である。
【図８】本実施の形態に係るエンタテインメント装置にて動作する画像描画手段の構成を示す機能ブロック図である。
【図９】字幕描画手段の構成を示す機能ブロック図である。
【図１０】画像描画手段の処理動作を示すフローチャート（その１）である。
【図１１】画像描画手段の処理動作を示すフローチャート（その２）である。
【図１２】情報有効判別手段の処理動作を示すフローチャート（その１）である。
【図１３】情報有効判別手段の処理動作を示すフローチャート（その２）である。
【図１４】オブジェクト描画手段の処理動作を示すフローチャートである。
【図１５】字幕描画手段の処理動作を示すフローチャート（その１）である。
【図１６】字幕描画手段の処理動作を示すフローチャート（その２）である。
【符号の説明】
１０…エンタテインメント装置            １６…表示装置
１８…画像処理部                        ２６…光ディスク
３４…画像メモリ                        １０４…字幕（字幕画像）
２００…画像描画手段                    ２０２…情報読出し手段
２０４…オブジェクト描画手段            ２０６…字幕描画手段
２０８…画像表示手段                    ２１４…情報有効判別手段
ＳＤ…セクタデータ                      ＳＨ…セクタヘッダ
ＤＩ…データインデックス                ＰＩ…パーツインデックス
ＤＰ…圧縮データパーツ                  ＢＭＤ…ビットマップデータ
【図１】
0003599185.tif 000002
【図２】
0003599185.tif 000003
【図３】
0003599185.tif 000004
【図４】
0003599185.tif 000005
【図５】
0003599185.tif 000006
【図６】
0003599185.tif 000007
【図７】
0003599185.tif 000008
【図８】
0003599185.tif 000009
【図９】
0003599185.tif 000010
【図１０】
0003599185.tif 000011
【図１１】
0003599185.tif 000012
【図１２】
0003599185.tif 000013
【図１３】
0003599185.tif 000014
【図１４】
0003599185.tif 000015
【図１５】
0003599185.tif 000016
【図１６】
0003599185.tif 000017