(57)【特許請求の範囲】
【請求項１】
複数の描画領域内にそれぞれ所定の文字列を表示する装置のコンピュータで実行される表示制御プログラムであって、
前記コンピュータを、
前記描画領域の大きさおよび所定の文字サイズに基づいて、前記描画領域内に表示可能な文字数をそれぞれ算出する文字数算出手段と、
前記文字数算出手段によって算出された文字数が、前記複数の描画領域に共通の所定数以上であるか否かを判定する文字数判定手段と、
前記文字数判定手段によって前記文字数が前記所定数以上であると判定された描画領域について前記所定の文字サイズで当該描画領域内に文字列が表示され、前記文字数判定手段によって前記文字数が前記所定数未満であると判定された描画領域について前記所定の文字サイズよりも小さい文字サイズで当該描画領域内に文字列が表示されるように、当該文字列を表示装置に表示する表示制御手段として機能させる、表示制御プログラム。
【請求項２】
ユーザの操作データを取得する操作データ取得手段と、
前記操作データが示す操作内容に基づいて、表示する文字サイズを取得する文字サイズ取得手段として、さらに前記コンピュータを機能させ、
前記所定の文字サイズは、前記文字サイズ取得手段が取得した文字サイズである、請求項１に記載の表示制御プログラム。
【請求項３】
前記文字数算出手段は、前記文字サイズ取得手段が取得した文字サイズが変更された場合、前記描画領域の大きさおよび前記文字サイズ取得手段が取得した変更後の文字サイズに基づいて、前記描画領域内に表示可能な文字数をそれぞれ算出し、
前記文字数判定手段は、前記文字サイズ取得手段が取得した文字サイズが変更されたことに応じて、前記文字数算出手段が算出した文字数が所定数以上であるか否かを判定し、
前記表示制御手段は、前記文字数判定手段によって前記文字数が前記所定数以上であると判定された描画領域についてのみ、当該描画領域内に描画する文字列の文字サイズを変更して表示する、請求項２に記載の表示制御プログラム。
【請求項４】
前記文字数算出手段は、
前記描画領域の一辺の長さおよび前記文字サイズ取得手段が取得した文字サイズに応じた文字の当該一辺方向の長さに基づいて、当該描画領域内に表示可能な文字行数を算出する行数算出手段と、
前記描画領域の他辺の長さおよび前記文字サイズ取得手段が取得した文字サイズに応じた文字の当該他辺方向の長さに基づいて、当該描画領域内の１行あたりに表示可能な行単位文字数を算出する行単位文字数算出手段とを含み、
前記文字数算出手段は、前記文字行数および前記行単位文字数を用いて前記描画領域内に表示可能な文字数を算出する、請求項２に記載の表示制御プログラム。
【請求項５】
前記操作データが示す操作内容に基づいて、前記描画領域の大きさを変更する描画領域サイズ変更手段と、
前記描画領域サイズ変更手段によって前記描画領域の大きさが変更された場合、変更後の当該描画領域の大きさを算出する描画領域サイズ算出手段として、さらに前記コンピュータを機能させ、
前記文字数算出手段は、前記変更後の描画領域の大きさおよび前記文字サイズ取得手段が取得した文字サイズに基づいて、前記描画領域内に表示可能な文字数をそれぞれ算出する、請求項２に記載の表示制御プログラム。
【請求項６】
前記複数の描画領域は、マトリックス状に配列されて表示され、
前記描画領域サイズ変更手段は、前記操作データが示す操作内容に基づいて前記マトリックス状の配列に対する一方方向のスケールを変更することによって、配列された前記複数の描画領域の当該一方方向の長さをそれぞれ変更する、請求項５に記載の表示制御プログラム。
【請求項７】
前記複数の描画領域は、マトリックス状に配列されて表示され、
前記描画領域サイズ変更手段は、前記操作データが示す操作内容に基づいて前記表示装置に表示する表示領域を移動させることによって、前記配列された前記複数の描画領域のうち、当該表示領域から一部分が外れる描画領域を当該表示領域内となる範囲に限定して、当該描画領域の大きさを変更する、請求項５に記載の表示制御プログラム。
【請求項８】
前記文字数判定手段によって前記文字数が前記所定数未満であると判定された描画領域について、当該描画領域に表示する文字サイズを１段階小さくする文字サイズ縮小手段として、さらに前記コンピュータを機能させ、
前記文字数算出手段は、前記文字サイズ縮小手段が文字サイズを縮小した場合、当該文字サイズを縮小した対象の描画領域の大きさおよび当該縮小後の文字サイズに基づいて、前記描画領域内に表示可能な文字数をそれぞれ算出し、
前記文字数判定手段は、前記文字サイズ縮小手段が文字サイズを縮小したことに応じて、前記文字数算出手段が算出した文字数が所定数以上であるか否かを判定する、請求項３に記載の表示制御プログラム。
【請求項９】
前記表示制御手段は、前記文字サイズ縮小手段が最小の文字サイズまで縮小した状態で前記描画領域内に表示可能な文字数が前記所定数未満であると前記文字数判定手段が判定した場合、当該描画領域を空白にする、請求項８に記載の表示制御プログラム。
【請求項１０】
前記複数の描画領域は、一方の軸が時間軸および他方の軸が放送局軸に定義されたマトリックス状に配列されて番組表として表示され、
前記表示制御手段は、少なくとも番組名を示す文字列を当該番組の放送局および放送時刻に応じた前記描画領域内に表示する、請求項１または２に記載の表示制御プログラム。
【請求項１１】
ユーザの操作データを取得する操作データ取得手段と、
前記操作データが示す操作内容に基づいて、前記文字数判定手段による判定において用いられる前記所定数を変更する所定数変更手段として、さらに前記コンピュータを機能させる、請求項１に記載の表示制御プログラム。
【請求項１２】
ユーザの操作データを取得する操作データ取得手段と、
前記操作データが示す操作内容に基づいて、ユーザによって選択可能な複数の文字サイズの中から１つの文字サイズをユーザに選択させて、選択された文字サイズを前記所定の文字サイズとして決定する文字サイズ選択手段として、さらに前記コンピュータを機能させ、
前記表示制御手段は、前記文字サイズ選択手段によって選択された文字サイズが、ユーザによって選択可能な最小の文字サイズである場合に、前記文字数判定手段によって前記文字数が前記所定数未満であると判定された描画領域について、ユーザによって選択可能な最小の文字サイズよりも小さい、ユーザによって選択不可能な文字サイズで当該描画領域内に文字列を表示する、請求項１に記載の表示制御プログラム。
【請求項１３】
複数の描画領域内にそれぞれ所定の文字列を表示する表示制御装置であって、
前記描画領域の大きさおよび所定の文字サイズに基づいて、前記描画領域内に表示可能な文字数をそれぞれ算出する文字数算出手段と、
前記文字数算出手段によって算出された文字数が、前記複数の描画領域に共通の所定数以上であるか否かを判定する文字数判定手段と、
前記文字数判定手段によって前記文字数が前記所定数以上であると判定された描画領域について前記所定の文字サイズで当該描画領域内に文字列が表示され、前記文字数判定手段によって前記文字数が前記所定数未満であると判定された描画領域について前記所定の文字サイズよりも小さい文字サイズで当該描画領域内に文字列が表示されるように、当該文字列を表示装置に表示する表示制御手段とを備える、表示制御装置。
【請求項１４】
複数の描画領域内にそれぞれ所定の文字列を表示する表示制御システムであって、
前記描画領域の大きさおよび所定の文字サイズに基づいて、前記描画領域内に表示可能な文字数をそれぞれ算出する文字数算出手段と、
前記文字数算出手段によって算出された文字数が、前記複数の描画領域に共通の所定数以上であるか否かを判定する文字数判定手段と、
前記文字数判定手段によって前記文字数が前記所定数以上であると判定された描画領域について前記所定の文字サイズで当該描画領域内に文字列が表示され、前記文字数判定手段によって前記文字数が前記所定数未満であると判定された描画領域について前記所定の文字サイズよりも小さい文字サイズで当該描画領域内に文字列が表示されるように、当該文字列を表示装置に表示する表示制御手段とを備える、表示制御システム。
【請求項１５】
複数の描画領域内にそれぞれ所定の文字列を表示するための表示制御方法であって、
文字数算出手段が、前記描画領域の大きさおよび所定の文字サイズに基づいて、前記描画領域内に表示可能な文字数をそれぞれ算出する文字数算出ステップと、
文字数判定手段が、前記文字数算出手段によって算出された文字数が、前記複数の描画領域に共通の所定数以上であるか否かを判定する文字数判定ステップと、
表示制御手段が、前記文字数判定手段によって前記文字数が前記所定数以上であると判定された描画領域について前記所定の文字サイズで当該描画領域内に文字列が表示され、前記文字数判定手段によって前記文字数が前記所定数未満であると判定された描画領域について前記所定の文字サイズよりも小さい文字サイズで当該描画領域内に文字列が表示されるように、当該文字列を表示装置に表示する表示制御ステップとを備える、表示制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、表示制御プログラム、表示制御装置、表示制御システムおよび表示制御方法に関し、より特定的には、複数の描画領域内にそれぞれ文字列を表示する表示制御プログラム、表示制御装置、表示制御システムおよび表示制御方法に関する。
【背景技術】
【０００２】
近年、画像や文字等の情報を画面に表示する際の視認性を高めることが求められるようになってきている。例えば、画面に表示される情報を拡大表示することによって、当該情報を見やすくする方法が用いられることがある。
【０００３】
このような技術として、ポインタを用いて画面上に表示された縮小画像上の任意の位置を指定することにより、その縮小画像に対応する拡大画像を表示する情報処理装置が開示されている（例えば、特許文献１参照）。また、表示領域に併せて文字データ等の拡大率を調整し、表示領域内に表示させるデータ表示装置が開示されている（例えば、特許文献２参照）。
【特許文献１】特開２００７−４７３２４号公報
【特許文献２】特開２００７−４７９４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記特許文献１の情報処理装置では、拡大表示されるのはポインタで指示した縮小画像のみであり、表示されている全ての縮小画像を同時に拡大表示することができない。そのため、ユーザが複数の縮小画像を拡大して見たい場合には、縮小画像の１つ１つを順次選択して拡大表示させる必要があり、操作性が悪いという欠点があった。
【０００５】
また、上記特許文献２のデータ表示装置では、ユーザの操作に関わらず、表示領域に応じて文字の拡大率を自動的に設定してしまうので、ユーザの好みに応じて文字の拡大を行うことができないという欠点があった。また、当該データ表示装置は、文字が表示領域に収まるように文字の拡大率を自動的に調整するので、当該表示領域内に表示する文字数が多い場合には、文字の拡大率が小さくなり、視認性が悪くなってしまうという問題もある。
【０００６】
それ故に、本発明の目的は、上述した課題の少なくとも１つを解決するものであり、表示情報の視認性を高め、表示情報の視認性を高めるための操作性を向上させることができる表示制御プログラム、表示制御装置、表示制御システムおよび表示制御方法を提供することである。
【課題を解決するための手段】
【０００７】
上記の目的を達成するために、例えば以下の各発明のような構成を採用し得る。なお、括弧内の参照符号、ステップ番号（ステップをＳと略称しステップ番号のみを記載する）、図面番号等は、各発明の理解を助けるために後述する最良の形態との対応関係を示したものであって、各発明の範囲を何ら限定するものではない。
【０００８】
第１の発明は、複数の描画領域内にそれぞれ所定の文字列を配置して表示（図９〜図１１）する装置（５）のコンピュータ（１０）で実行される表示制御プログラムである。表示制御プログラムは、操作データ取得手段（ステップ５３を実行するＣＰＵ１０；以下、単にステップ番号のみ記載する）、文字サイズ取得手段（Ｓ６１）、文字数算出手段（Ｓ９８）、文字列配置手段（Ｓ１０３、Ｓ１０４）、および表示制御手段（Ｓ１０３、Ｓ１０４）として、コンピュータを機能させる。操作データ取得手段は、ユーザの操作データ（Ｄａ）を取得する。文字サイズ取得手段は、操作データが示す操作内容に基づいて、表示する文字サイズ（「大」、「中」、「小」）を取得する。文字数算出手段は、描画領域の大きさ（ｄｗ、ｄｈ）および文字サイズ取得手段が取得した文字サイズに基づいて、描画領域内に配置可能な文字数（Ｄｂ２ｊ）をそれぞれ算出する。文字列配置手段は、文字数算出手段によって算出された文字数に基づいて、文字サイズ取得手段が取得した文字サイズで描画領域内に文字列を配置するか、当該取得した文字サイズとは異なる文字サイズで描画領域内に文字列を配置するかを選択して、選択した文字サイズで当該描画領域内に文字列を配置する。表示制御手段は、文字列配置手段が配置した文字列を表示装置（２）に表示する。
【０００９】
第２の発明は、上記第１の発明において、文字数判定手段（Ｓ１００）として、さらにコンピュータを機能させる。文字数判定手段は、文字数算出手段によって算出された文字数が所定数以上（３文字以上）であるか否かを判定する。文字列配置手段は、文字数判定手段によって文字数が所定数以上であると判定された描画領域について文字サイズ取得手段が取得した文字サイズで当該描画領域内に文字列を配置し、文字数判定手段によって文字数が所定数未満であると判定された描画領域について文字サイズ取得手段が取得した文字サイズを相対的に小さくした文字サイズで当該描画領域内に文字列を配置する。
【００１０】
第３の発明は、上記第２の発明において、文字数算出手段は、文字サイズ取得手段が取得した文字サイズが変更された場合、描画領域の大きさおよび文字サイズ取得手段が取得した変更後の文字サイズに基づいて、描画領域内に配置可能な文字数をそれぞれ算出する。文字数判定手段は、文字サイズ取得手段が取得した文字サイズが変更されたことに応じて、文字数算出手段が算出した文字数が所定数以上であるか否かを判定する。文字列配置手段は、文字数判定手段によって文字数が所定数以上であると判定された描画領域についてのみ、当該描画領域内に描画する文字列の文字サイズを変更して配置する。
【００１１】
第４の発明は、上記第１または第２の発明において、文字数算出手段は、行数算出手段（Ｓ１１３）および行単位文字数算出手段（Ｓ５６、Ｓ１１７〜Ｓ１２０）を含む。行数算出手段は、描画領域の一辺の長さ（ｄｈ）および文字サイズ取得手段が取得した文字サイズに応じた文字の当該一辺方向の長さに基づいて、当該描画領域内に配置可能な文字行数を算出する。行単位文字数算出手段は、描画領域の他辺の長さ（ｄｗ）および文字サイズ取得手段が取得した文字サイズに応じた文字の当該他辺方向の長さに基づいて、当該描画領域内の１行あたりに配置可能な行単位文字数を算出する。文字数算出手段は、文字行数および行単位文字数を用いて描画領域内に配置可能な文字数を算出する。
【００１２】
第５の発明は、上記第１または第２の発明において、描画領域サイズ変更手段（Ｓ５５、Ｓ５８、Ｓ５９）および描画領域サイズ算出手段（Ｓ５６）として、さらにコンピュータを機能させる。描画領域サイズ変更手段は、操作データが示す操作内容に基づいて、描画領域の大きさ（ｄｗ）を変更する。描画領域サイズ算出手段は、描画領域サイズ変更手段によって描画領域の大きさが変更された場合、変更後の当該描画領域の大きさを算出する。文字数算出手段は、変更後の描画領域の大きさおよび文字サイズ取得手段が取得した文字サイズに基づいて、描画領域内に配置可能な文字数をそれぞれ算出する。
【００１３】
第６の発明は、上記第５の発明において、複数の描画領域は、マトリックス状に配列されて表示される。描画領域サイズ変更手段は、操作データが示す操作内容に基づいてマトリックス状の配列に対する一方方向（時間軸方向）のスケールを変更することによって、配列された複数の描画領域の当該一方方向の長さ（ｄｗ）をそれぞれ変更する。
【００１４】
第７の発明は、上記第５の発明において、複数の描画領域は、マトリックス状に配列されて表示される。描画領域サイズ変更手段は、操作データが示す操作内容に基づいて表示装置に表示する表示領域を移動させる（Ｓ５５）ことによって、配列された複数の描画領域のうち、当該表示領域から一部分が外れる描画領域を当該表示領域内となる範囲に限定して、当該描画領域の大きさを変更する（図２０）。
【００１５】
第８の発明は、上記第３の発明において、文字サイズ縮小手段（Ｓ１０２）として、さらにコンピュータを機能させる。文字サイズ縮小手段は、文字数判定手段によって文字数が所定数未満であると判定された描画領域について、当該描画領域に配置する文字サイズを１段階小さくする。文字数算出手段は、文字サイズ縮小手段が文字サイズを縮小した場合、当該文字サイズを縮小した対象の描画領域の大きさおよび当該縮小後の文字サイズに基づいて、描画領域内に配置可能な文字数をそれぞれ算出する。文字数判定手段は、文字サイズ縮小手段が文字サイズを縮小したことに応じて、文字数算出手段が算出した文字数が所定数以上であるか否かを判定する。
【００１６】
第９の発明は、上記第８の発明において、文字列配置手段は、文字サイズ縮小手段が最小の文字サイズまで縮小した状態で描画領域内に配置可能な文字数が所定数未満であると文字数判定手段が判定した場合（Ｓ１０１でＹｅｓ）、当該描画領域を空白にする。
【００１７】
第１０の発明は、上記第１または第２の発明において、複数の描画領域は、一方の軸が時間軸および他方の軸が放送局軸に定義されたマトリックス状に配列されて番組表として表示される。文字列配置手段は、少なくとも番組名を示す文字列を当該番組の放送局および放送時刻に応じた描画領域内に配置する。
【００１８】
第１１の発明は、複数の描画領域内にそれぞれ所定の文字列を配置して表示する表示制御装置である。表示制御装置は、操作データ取得手段、文字サイズ取得手段、文字数算出手段、文字列配置手段、および表示制御手段を備える。操作データ取得手段は、ユーザの操作データを取得する。文字サイズ取得手段は、操作データが示す操作内容に基づいて、表示する文字サイズを取得する。文字数算出手段は、描画領域の大きさおよび文字サイズ取得手段が取得した文字サイズに基づいて、描画領域内に配置可能な文字数をそれぞれ算出する。文字列配置手段は、文字数算出手段によって算出された文字数に基づいて、文字サイズ取得手段が取得した文字サイズで描画領域内に文字列を配置するか、当該取得した文字サイズとは異なる文字サイズで描画領域内に文字列を配置するかを選択して、選択した文字サイズで当該描画領域内に文字列を配置する。表示制御手段は、文字列配置手段が配置した文字列を表示装置に表示する。
【００１９】
第１２の発明は、上記第１１の発明において、文字数判定手段を、さらに備える。文字数判定手段は、文字数算出手段によって算出された文字数が所定数以上であるか否かを判定する。文字列配置手段は、文字数判定手段によって文字数が所定数以上であると判定された描画領域について文字サイズ取得手段が取得した文字サイズで当該描画領域内に文字列を配置し、文字数判定手段によって文字数が所定数未満であると判定された描画領域について文字サイズ取得手段が取得した文字サイズを相対的に小さくした文字サイズで当該描画領域内に文字列を配置する。
【００２０】
第１３の発明は、上記第１２の発明において、文字数算出手段は、文字サイズ取得手段が取得した文字サイズが変更された場合、描画領域の大きさおよび文字サイズ取得手段が取得した変更後の文字サイズに基づいて、描画領域内に配置可能な文字数をそれぞれ算出する。文字数判定手段は、文字サイズ取得手段が取得した文字サイズが変更されたことに応じて、文字数算出手段が算出した文字数が所定数以上であるか否かを判定する。文字列配置手段は、文字数判定手段によって文字数が所定数以上であると判定された描画領域についてのみ、当該描画領域内に描画する文字列の文字サイズを変更して配置する。
【発明の効果】
【００２１】
上記第１および第２の発明によれば、ユーザの文字サイズ設定に応じて表示情報の視認性を高め、表示情報の視認性を高めるための操作性を向上させることができる。例えば、各描画領域の大きさと指示された文字サイズとに基づいて、当該描画領域内に描画可能な文字数を算出し、描画可能文字数に応じて、各描画領域内にそれぞれ描画される文字サイズを決定するため、表示情報の視認性を高めることができる。
【００２２】
上記第３の発明によれば、各描画領域の大きさと変更後の文字サイズとに基づいて描画可能な文字数を算出し、描画可能文字数に応じて、各描画領域内にそれぞれ描画されている文字サイズを変更するか否かを判別して文字サイズが変更されるので、各描画領域内の視認性を高めることができる。また、ユーザの操作に応じて、描画領域毎に文字サイズを変更するか否かを判別して処理するので、視認性を高めるための操作性を向上させることができる。
【００２３】
上記第４の発明によれば、簡単な処理で描画領域毎に描画可能な文字数を効率よく算出することができる。
【００２４】
上記第５の発明によれば、ユーザの操作に応じて描画領域の大きさを変化させることができる。また、変化後の描画領域の大きさに基づいて描画可能な文字数を算出するので、描画領域の変化に応じて文字サイズを変更するか否かを判別して処理することができ、視認性を高めるための操作性をさらに向上させることができる。
【００２５】
上記第６の発明によれば、ユーザの操作に応じて、マトリックス状に配列された複数の描画領域に対する一方方向のスケールを変化させて、各描画領域の当該一方方向の長さを変化させることができる。また、変化後の各描画領域の大きさに基づいて描画可能な文字数を算出するので、各描画領域の一方方向の変化に応じてそれぞれ文字サイズを変更するか否かを判別して処理することができ、視認性を高めるための操作性をさらに向上させることができる。
【００２６】
上記第７の発明によれば、ユーザの操作に応じて、表示装置に表示する表示範囲を移動させることができる。また、上記表示範囲からその一部分が外れる描画領域については、その描画領域範囲が表示領域範囲内に限定されて変更された大きさに基づいて描画可能な文字数を算出するので、表示領域の移動に応じて表示領域外縁に位置する描画領域それぞれの文字サイズを変更するか否かを判別して処理することができ、視認性を高めるための操作性をさらに向上させることができる。
【００２７】
上記第８の発明によれば、描画領域内に配置する文字数が所定数以上に到達するまで文字サイズが縮小されるため、描画領域内に所定数以上の文字数の情報をそれぞれ確保することができる。
【００２８】
上記第９の発明によれば、最小の文字サイズでも描画領域内に配置する文字数が所定数未満の場合、当該描画領域が空白で表示されるため、不充分な情報を描画領域内に表示することによる乱雑な表示や視認性の低下を防止することができる。
【００２９】
上記第１０の発明によれば、ユーザの文字サイズ設定に応じて番組表に記述される番組情報の視認性を高め、番組情報の視認性を高めるための操作性を向上させることができる。
【００３０】
上記第１１〜１３の発明の表示制御装置によれば、上述した第１〜３の発明の表示制御プログラムと同様の効果を得ることができる。
【発明を実施するための最良の形態】
【００３１】
図１を参照して、本発明の一実施形態に係る表示制御プログラムを実行する表示制御装置について説明する。以下、説明を具体的にするために、当該表示制御装置の一例の据置型のゲーム装置本体５を含むゲームシステムについて説明する。なお、図１は据置型のゲーム装置３を含むゲームシステム１の外観図であり、図２はゲーム装置本体５のブロック図である。以下、当該ゲームシステム１について説明する。
【００３２】
図１において、ゲームシステム１は、表示手段の一例の家庭用テレビジョン受像機（以下、モニタと記載する）２と、当該モニタ２に接続コードを介して接続する据置型のゲーム装置３とから構成される。モニタ２は、ゲーム装置本体５から出力された音声信号を音声出力するためのスピーカ２ａを備える。また、ゲーム装置３は、ゲームプログラムを記録した光ディスク４と、当該光ディスク４のゲームプログラムを実行してゲーム画面をモニタ２に表示出力させるためのコンピュータを搭載したゲーム装置本体５と、ゲーム画面に表示されたキャラクタ等を操作するゲームに必要な操作情報をゲーム装置本体５に与えるためのコントローラ７とを備えている。
【００３３】
また、ゲーム装置本体５は、無線コントローラモジュール１９（図２参照）を内蔵する。無線コントローラモジュール１９は、コントローラ７から無線送信されるデータを受信し、ゲーム装置本体５からコントローラ７へデータを送信して、コントローラ７とゲーム装置本体５とを無線通信によって接続する。さらに、ゲーム装置本体５には、当該ゲーム装置本体５に対して交換可能に用いられる情報記憶媒体の一例の光ディスク４が脱着される。
【００３４】
また、ゲーム装置本体５には、後述する各種データやゲームソフト処理におけるセーブデータ等のデータを固定的に記憶するバックアップメモリとして機能するフラッシュメモリ１７（図２参照）が搭載される。ゲーム装置本体５は、光ディスク４に記憶されたゲームプログラム等を実行することによって、その結果をゲーム画像としてモニタ２に表示する。また、ゲームプログラム等は、光ディスク４に限らず、フラッシュメモリ１７に予め記録されたものを実行するようにしてもよい。さらに、ゲーム装置本体５は、フラッシュメモリ１７に記憶されたセーブデータを用いて、過去に実行されたゲーム状態を再現して、ゲーム画像をモニタ２に表示することもできる。そして、ゲーム装置本体５のプレイヤは、モニタ２に表示されたゲーム画像を見ながら、コントローラ７を操作することによって、ゲーム進行を楽しむことができる。
【００３５】
本願発明の表示制御プログラムは、第１の例としてゲーム装置本体５内の不揮発性記憶装置（例えば、フラッシュメモリ１７）に予め記録されている。また、本願発明の表示制御プログラムは、第２の例として光ディスク４等の外部記憶媒体を通じてゲーム装置本体５に供給される。また、本願発明の表示制御プログラムは、第３の例として有線または無線の通信回線を通じてゲーム装置本体５に供給される。そして、当該表示制御プログラムを実行するゲーム装置本体５は、有線または無線の通信回線を通じてゲーム装置本体５に供給される番組表データを用いて、当該番組表データが示す番組表をモニタ２に表示する。
【００３６】
コントローラ７は、無線コントローラモジュール１９を内蔵するゲーム装置本体５へ、例えばＢｌｕｅｔｏｏｔｈ（ブルートゥース；登録商標）の技術を用いて操作情報等の送信データを無線送信する。コントローラ７は、主にモニタ２の表示画面に表示されるオブジェクト等を操作するための操作手段である。コントローラ７は、片手で把持可能な程度の大きさのハウジングと、当該ハウジングの表面に露出して設けられた複数個の操作ボタン（十字キーやスティック等を含む）とが設けられている。また、後述により明らかとなるが、コントローラ７は、当該コントローラ７から見た画像を撮像する撮像情報演算部７４を備えている。また、撮像情報演算部７４の撮像対象の一例として、モニタ２の表示画面近傍に２つのＬＥＤモジュール（以下、マーカと記載する）８Ｌおよび８Ｒが設置される。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって例えば赤外光を出力する。また、コントローラ７は、ゲーム装置本体５の無線コントローラモジュール１９から無線送信された送信データを通信部７５で受信して、当該送信データに応じた音や振動を発生させることもできる。
【００３７】
次に、図２を参照して、ゲーム装置本体５の内部構成について説明する。図２は、ゲーム装置本体５の構成を示すブロック図である。ゲーム装置本体５は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０、システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）１１、外部メインメモリ１２、ＲＯＭ／ＲＴＣ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ／Ｒｅａｌ  Ｔｉｍｅ  Ｃｌｏｃｋ）１３、ディスクドライブ１４、ＡＶ−ＩＣ（Ａｕｄｉｏ  Ｖｉｄｅｏ−Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）１５、およびフラッシュメモリ１７等を有する。
【００３８】
ＣＰＵ１０は、フラッシュメモリ１７等に記録された表示制御プログラムを実行することによって表示制御処理を実行するものであり、表示制御プロセッサとして機能する。また、ＣＰＵ１０は、光ディスク４に記憶されたゲームプログラムを実行することによってゲーム処理を実行するものであり、ゲームプロセッサとして機能する。ＣＰＵ１０は、システムＬＳＩ１１に接続される。システムＬＳＩ１１には、ＣＰＵ１０の他、外部メインメモリ１２、ＲＯＭ／ＲＴＣ１３、ディスクドライブ１４、およびＡＶ−ＩＣ１５が接続される。システムＬＳＩ１１は、それに接続される各構成要素間のデータ転送の制御、表示すべき画像の生成、外部装置からのデータの取得等の処理を行う。なお、システムＬＳＩ１１の内部構成については、後述する。揮発性の外部メインメモリ１２は、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出された表示制御プログラム等のプログラムを記憶したり、各種データを記憶したりするものであり、ＣＰＵ１０のワーク領域やバッファ領域として用いられる。ＲＯＭ／ＲＴＣ１３は、ゲーム装置本体５の起動用のプログラムが組み込まれるＲＯＭ（いわゆるブートＲＯＭ）と、時間をカウントするクロック回路（ＲＴＣ）とを有する。ディスクドライブ１４は、光ディスク４からプログラムデータやテクスチャデータ等を読み出し、後述する内部メインメモリ３５または外部メインメモリ１２に読み出したデータを書き込む。
【００３９】
また、システムＬＳＩ１１には、入出力プロセッサ３１、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）３２、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）３３、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３４、および内部メインメモリ３５が設けられる。図示は省略するが、これらの構成要素３１〜３５は、内部バスによって互いに接続される。
【００４０】
ＧＰＵ３２は、描画手段の一部を形成し、ＣＰＵ１０からのグラフィクスコマンド（作画命令）に従って画像を生成する。ＶＲＡＭ３４は、ＧＰＵ３２がグラフィクスコマンドを実行するために必要なデータ（ポリゴンデータやテクスチャデータ等のデータ）を記憶する。画像が生成される際には、ＧＰＵ３２は、ＶＲＡＭ３４に記憶されたデータを用いて画像データを作成する。
【００４１】
ＤＳＰ３３は、オーディオプロセッサとして機能し、内部メインメモリ３５や外部メインメモリ１２に記憶されるサウンドデータや音波形（音色）データを用いて、音声データを生成する。そして、スピーカ２ａから音を出力させる場合、ＤＳＰ３３は、上記サウンドデータを読み出し、ＡＶ−ＩＣ１５およびＡＶコネクタ１６を介して、モニタ２に備えるスピーカ２ａに出力させる。また、コントローラ７に搭載されたスピーカ７０６（図７参照）から音を出力させる場合、ＤＳＰ３３は、上記サウンドデータを読み出し、無線コントローラモジュール１９およびアンテナ２３を介して、音声データをコントローラ７に送信する。
【００４２】
上述のように生成された画像データおよび音声データは、ＡＶ−ＩＣ１５によって読み出される。ＡＶ−ＩＣ１５は、ＡＶコネクタ１６を介して、読み出した画像データをモニタ２に出力するとともに、読み出した音声データをモニタ２に内蔵されるスピーカ２ａに出力する。これによって、画像がモニタ２に表示されるとともに音がスピーカ２ａから出力される。
【００４３】
入出力プロセッサ（Ｉ／Ｏプロセッサ）３１は、それに接続される構成要素との間でデータの送受信を実行したり、外部装置からのデータのダウンロードを実行したりする。入出力プロセッサ３１は、フラッシュメモリ１７、無線通信モジュール１８、無線コントローラモジュール１９、拡張コネクタ２０、および外部メモリカード用コネクタ２１に接続される。無線通信モジュール１８にはアンテナ２２が接続され、無線コントローラモジュール１９にはアンテナ２３が接続される。
【００４４】
入出力プロセッサ３１は、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続し、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。入出力プロセッサ３１は、定期的にフラッシュメモリ１７にアクセスし、ネットワークへ送信する必要があるデータの有無を検出し、当該データが有る場合には、無線通信モジュール１８およびアンテナ２２を介して当該データをネットワークに送信する。また、入出力プロセッサ３１は、他のゲーム装置から送信されてくるデータやダウンロードサーバからダウンロードしたデータ（例えば、電子番組表データ）を、ネットワーク、アンテナ２２、および無線通信モジュール１８を介して受信し、受信したデータをフラッシュメモリ１７に記憶する。ＣＰＵ１０は、ゲームプログラムを実行することにより、フラッシュメモリ１７に記憶されたデータを読み出してゲームプログラムや表示制御プログラムの実行動作で利用する。フラッシュメモリ１７には、ゲーム装置本体５と他のゲーム装置や各種サーバとの間で送受信されるデータの他、上述したようにゲーム装置本体５を利用してプレイしたゲームのセーブデータ（ゲームの結果データまたは途中データ）が記憶されてもよい。
【００４５】
また、入出力プロセッサ３１は、アンテナ２３および無線コントローラモジュール１９を介して、コントローラ７から送信される操作データ等を受信し、内部メインメモリ３５または外部メインメモリ１２のバッファ領域に記憶（一時記憶）する。なお、内部メインメモリ３５には、外部メインメモリ１２と同様に、光ディスク４から読み出されたゲームプログラムや、フラッシュメモリ１７から読み出されたゲームプログラム等のプログラムを記憶したり、各種データを記憶したりしてもよく、ＣＰＵ１０のワーク領域やバッファ領域として用いられてもかまわない。
【００４６】
さらに、入出力プロセッサ３１には、拡張コネクタ２０および外部メモリカード用コネクタ２１が接続される。拡張コネクタ２０は、ＵＳＢやＳＣＳＩのようなインターフェースのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したり、有線の通信用コネクタを接続することによって無線通信モジュール１８に替えてネットワークとの通信を行ったりすることができる。外部メモリカード用コネクタ２１は、メモリカードのような外部記憶媒体を接続するためのコネクタである。例えば、入出力プロセッサ３１は、拡張コネクタ２０や外部メモリカード用コネクタ２１を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
【００４７】
また、ゲーム装置本体５（例えば、前部主面）には、当該ゲーム装置本体５の電源ボタン２４、ゲーム処理のリセットボタン２５、光ディスク４を脱着する投入口、およびゲーム装置本体５の投入口から光ディスク４を取り出すイジェクトボタン２６等が設けられている。電源ボタン２４およびリセットボタン２５は、システムＬＳＩ１１に接続される。電源ボタン２４がオンされると、ゲーム装置本体５の各構成要素に対して、図示しないＡＣアダプタを経て電力が供給される。リセットボタン２５が押されると、システムＬＳＩ１１は、ゲーム装置本体５の起動プログラムを再起動する。イジェクトボタン２６は、ディスクドライブ１４に接続される。イジェクトボタン２６が押されると、ディスクドライブ１４から光ディスク４が排出される。
【００４８】
図３および図４を参照して、コントローラ７について説明する。なお、図３は、コントローラ７の上面後方から見た斜視図である。図４は、コントローラ７を下面前方から見た斜視図である。
【００４９】
図３および図４において、コントローラ７は、例えばプラスチック成型によって形成されたハウジング７１を有しており、当該ハウジング７１に複数の操作部７２が設けられている。ハウジング７１は、その前後方向を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。
【００５０】
ハウジング７１上面の中央前面側に、十字キー７２ａが設けられる。この十字キー７２ａは、十字型の４方向プッシュスイッチであり、４つの方向（前後左右）に対応する操作部分が十字の突出片にそれぞれ９０°間隔で配置される。ユーザが十字キー７２ａのいずれかの操作部分を押下することによって前後左右いずれかの方向を選択される。例えばユーザが十字キー７２ａを操作することによって、番組表をスクロールさせて表示したり、仮想ゲーム世界に登場するプレイヤキャラクタ等の移動方向を指示したり、複数の選択肢から選択指示したりすることができる。
【００５１】
なお、十字キー７２ａは、上述したユーザの方向入力操作に応じて操作信号を出力する操作部であるが、他の態様の操作部でもかまわない。例えば、十字方向に４つのプッシュスイッチを配設し、ユーザによって押下されたプッシュスイッチに応じて操作信号を出力する操作部を設けてもかまわない。さらに、上記４つのプッシュスイッチとは別に、上記十字方向が交わる位置にセンタスイッチを配設し、４つのプッシュスイッチとセンタスイッチとを複合した操作部を設けてもかまわない。また、ハウジング７１上面から突出した傾倒可能なスティック（いわゆる、ジョイスティック）を倒すことによって、傾倒方向に応じて操作信号を出力する操作部を上記十字キー７２ａの代わりに設けてもかまわない。さらに、水平移動可能な円盤状部材をスライドさせることによって、当該スライド方向に応じた操作信号を出力する操作部を、上記十字キー７２ａの代わりに設けてもかまわない。また、タッチパッドを、上記十字キー７２ａの代わりに設けてもかまわない。
【００５２】
ハウジング７１上面の十字キー７２ａより後面側に、複数の操作ボタン７２ｂ〜７２ｇが設けられる。操作ボタン７２ｂ〜７２ｇは、ユーザがボタン頭部を押下することによって、それぞれの操作ボタン７２ｂ〜７２ｇに割り当てられた操作信号を出力する操作部である。例えば、操作ボタン７２ｂ〜７２ｄには、１番ボタン、２番ボタン、およびＡボタン等としての機能が割り当てられる。また、操作ボタン７２ｅ〜７２ｇには、マイナスボタン、ホームボタン、およびプラスボタン等としての機能が割り当てられる。これら操作ボタン７２ａ〜７２ｇは、ゲーム装置本体５が実行するゲームプログラムに応じてそれぞれの操作機能が割り当てられる。例えば、操作ボタン７２ｂ（１番ボタン）または操作ボタン７２ｃ（２番ボタン）を押下することによって、番組表で表示される各番組の文字サイズを変更することができる。また、操作ボタン７２ｅ（マイナスボタン）または操作ボタン７２ｇ（プラスボタン）を押下することによって、表示された番組表の時間軸を変更することができる。なお、図３に示した配置例では、操作ボタン７２ｂ〜７２ｄは、ハウジング７１上面の中央前後方向に沿って並設されている。また、操作ボタン７２ｅ〜７２ｇは、ハウジング７１上面の左右方向に沿って操作ボタン７２ｂおよび７２ｄの間に並設されている。そして、操作ボタン７２ｆは、その上面がハウジング７１の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【００５３】
また、ハウジング７１上面の十字キー７２ａより前面側に、操作ボタン７２ｈが設けられる。操作ボタン７２ｈは、遠隔からゲーム装置本体５の電源をオン／オフする電源スイッチである。この操作ボタン７２ｈも、その上面がハウジング７１の上面に埋没しており、ユーザが不意に誤って押下することのないタイプのボタンである。
【００５４】
また、ハウジング７１上面の操作ボタン７２ｃより後面側に、複数のＬＥＤ７０２が設けられる。ここで、コントローラ７は、他のコントローラ７と区別するためにコントローラ種別（番号）が設けられている。例えば、ＬＥＤ７０２は、コントローラ７に現在設定されている上記コントローラ種別をユーザに通知するために用いられる。具体的には、無線コントローラモジュール１９からコントローラ７へ、複数のＬＥＤ７０２のうち、上記コントローラ種別に対応するＬＥＤを点灯させるための信号が送信される。
【００５５】
また、ハウジング７１上面には、操作ボタン７２ｂおよび操作ボタン７２ｅ〜７２ｇの間に後述するスピーカ（図５に示すスピーカ７０６）からの音を外部に放出するための音抜き孔が形成されている。
【００５６】
一方、ハウジング７１下面には、凹部が形成されている。ハウジング７１下面の凹部は、ユーザがコントローラ７の前面をマーカ８Ｌおよび８Ｒに向けて片手で把持したときに、当該ユーザの人差し指や中指が位置するような位置に形成される。そして、上記凹部の傾斜面には、操作ボタン７２ｉが設けられる。操作ボタン７２ｉは、例えばＢボタンとして機能する操作部である。例えば、ユーザが操作ボタン７２ｉを押下しながらコントローラ７で指し示す位置を移動させることによって、番組表をスクロール表示することができる。
【００５７】
また、ハウジング７１前面には、撮像情報演算部７４の一部を構成する撮像素子７４３が設けられる。ここで、撮像情報演算部７４は、コントローラ７が撮像した画像データを解析してその中で輝度が高い場所を判別してその場所の重心位置やサイズなどを検出するためのシステムであり、例えば、最大２００フレーム／秒程度のサンプリング周期であるため比較的高速なコントローラ７の動きでも追跡して解析することができる。この撮像情報演算部７４の詳細な構成については、後述する。また、ハウジング７１の後面には、コネクタ７３が設けられている。コネクタ７３は、例えばエッジコネクタであり、例えば接続ケーブルと嵌合して接続するために利用される。
【００５８】
次に、図５および図６を参照して、コントローラ７の内部構造について説明する。なお、図５は、コントローラ７の上筐体（ハウジング７１の一部）を外した状態を後面側から見た斜視図である。図６は、コントローラ７の下筐体（ハウジング７１の一部）を外した状態を前面側から見た斜視図である。ここで、図６に示す基板７００は、図５に示す基板７００の裏面から見た斜視図となっている。
【００５９】
図５において、ハウジング７１の内部には基板７００が固設されており、当該基板７００の上主面上に操作ボタン７２ａ〜７２ｈ、加速度センサ７０１、ＬＥＤ７０２、およびアンテナ７５４等が設けられる。そして、これらは、基板７００等に形成された配線（図示せず）によってマイコン７５１等（図６、図７参照）に接続される。また、無線モジュール７５３（図７参照）およびアンテナ７５４によって、コントローラ７がワイヤレスコントローラとして機能する。なお、ハウジング７１内部には図示しない水晶振動子が設けられており、後述するマイコン７５１の基本クロックを生成する。また、基板７００の上主面上に、スピーカ７０６およびアンプ７０８が設けられる。
【００６０】
また、加速度センサ７０１は、操作ボタン７２ｄの左側の基板７００上（つまり、基板７００の中央部ではなく周辺部）に設けられる。したがって、加速度センサ７０１は、コントローラ７の長手方向を軸とした回転に応じて、重力加速度の方向変化に加え、遠心力による成分が含まれる加速度を検出することができるので、所定の演算により、検出される加速度データからコントローラ７の動きを良好な感度でゲーム装置本体５等が判定することができる。例えば、コントローラ７は、３軸の加速度センサ７０１を備えている。この３軸の加速度センサ７０１は、３方向、すなわち、上下方向、左右方向、および前後方向で直線加速度を検知する。そして、加速度センサ７０１でそれぞれ検知された加速度を示すデータは、通信部７５に出力される。
【００６１】
一方、図６において、基板７００の下主面上の前端縁に撮像情報演算部７４が設けられる。撮像情報演算部７４は、コントローラ７の前方から順に赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４によって構成されており、それぞれ基板７００の下主面に取り付けられる。また、基板７００の下主面上の後端縁にコネクタ７３が取り付けられる。さらに、基板７００の下主面上にサウンドＩＣ７０７およびマイコン７５１が設けられている。サウンドＩＣ７０７は、基板７００等に形成された配線によってマイコン７５１およびアンプ７０８と接続され、ゲーム装置本体５から送信されたサウンドデータに応じてアンプ７０８を介してスピーカ７０６に音声信号を出力する。
【００６２】
そして、基板７００の下主面上には、バイブレータ７０４が取り付けられる。バイブレータ７０４は、例えば振動モータやソレノイドである。バイブレータ７０４は、基板７００等に形成された配線によってマイコン７５１と接続され、ゲーム装置本体５から送信された振動データに応じてその作動をオン／オフする。バイブレータ７０４が作動することによってコントローラ７に振動が発生するので、それを把持しているユーザの手にその振動が伝達され、いわゆる振動対応ゲームが実現できる。ここで、バイブレータ７０４は、ハウジング７１のやや前方寄りに配置されるため、ユーザが把持している状態において、ハウジング７１が大きく振動することになり、振動を感じやすくなる。
【００６３】
次に、図７を参照して、コントローラ７の内部構成について説明する。なお、図７は、コントローラ７の構成を示すブロック図である。
【００６４】
図７において、コントローラ７は、上述した操作部７２、撮像情報演算部７４、加速度センサ７０１、バイブレータ７０４、スピーカ７０６、サウンドＩＣ７０７、およびアンプ７０８の他に、その内部に通信部７５を備えている。
【００６５】
撮像情報演算部７４は、赤外線フィルタ７４１、レンズ７４２、撮像素子７４３、および画像処理回路７４４を含んでいる。赤外線フィルタ７４１は、コントローラ７の前方から入射する光から赤外線のみを通過させる。レンズ７４２は、赤外線フィルタ７４１を透過した赤外線を集光して撮像素子７４３へ出射する。撮像素子７４３は、例えばＣＭＯＳセンサやあるいはＣＣＤのような固体撮像素子であり、レンズ７４２が集光した赤外線を撮像する。したがって、撮像素子７４３は、赤外線フィルタ７４１を通過した赤外線だけを撮像して画像データを生成する。撮像素子７４３で生成された画像データは、画像処理回路７４４で処理される。具体的には、画像処理回路７４４は、撮像素子７４３から得られた画像データを処理して高輝度部分を検知し、それらの位置を検出した結果を示す処理結果データを通信部７５へ出力する。なお、これらの撮像情報演算部７４は、コントローラ７のハウジング７１に固設されており、ハウジング７１自体の方向を変えることによってその撮像方向を変更することができる。
【００６６】
通信部７５は、マイクロコンピュータ（Ｍｉｃｒｏ  Ｃｏｍｐｕｔｅｒ：マイコン）７５１、メモリ７５２、無線モジュール７５３、およびアンテナ７５４を含んでいる。マイコン７５１は、処理の際にメモリ７５２を記憶領域として用いながら、送信データを無線送信する無線モジュール７５３を制御する。また、マイコン７５１は、アンテナ７５４を介して無線モジュール７５３が受信したゲーム装置本体５からのデータに応じて、サウンドＩＣ７０７およびバイブレータ７０４の動作を制御する。サウンドＩＣ７０７は、通信部７５を介してゲーム装置本体５から送信されたサウンドデータ等を処理する。また、マイコン７５１は、通信部７５を介してゲーム装置本体５から送信された振動データ（例えば、バイブレータ７０４をＯＮまたはＯＦＦする信号）等に応じて、バイブレータ７０４を作動させる。
【００６７】
コントローラ７に設けられた操作部７２からの操作信号（キーデータ）、加速度センサ７０１からの３軸方向の加速度信号（加速度データ）、および撮像情報演算部７４からの処理結果データは、マイコン７５１に出力される。マイコン７５１は、入力した各データ（キーデータ、加速度データ、処理結果データ）を無線コントローラモジュール１９へ送信する送信データとして一時的にメモリ７５２に格納する。ここで、通信部７５から無線コントローラモジュール１９への無線送信は、所定の周期毎に行われるが、ゲームの処理は１／６０秒を単位として行われることが一般的であるので、それよりも短い周期で送信を行うことが必要となる。具体的には、ゲームの処理単位は１６．７ｍｓ（１／６０秒）であり、ブルートゥース（登録商標）で構成される通信部７５の送信間隔は５ｍｓである。マイコン７５１は、無線コントローラモジュール１９への送信タイミングが到来すると、メモリ７５２に格納されている送信データを一連の操作情報として出力し、無線モジュール７５３へ出力する。そして、無線モジュール７５３は、例えばブルートゥース（登録商標）の技術を用いて、操作情報を示す電波信号を所定周波数の搬送波を用いてアンテナ７５４から放射する。つまり、コントローラ７に設けられた操作部７２からのキーデータ、加速度センサ７０１からの加速度データ、および撮像情報演算部７４からの処理結果データがコントローラ７から送信される。そして、ゲーム装置本体５の無線コントローラモジュール１９でその電波信号を受信し、ゲーム装置本体５で当該電波信号を復調や復号することによって、一連の操作情報（キーデータ、加速度データ、および処理結果データ）を取得する。そして、ゲーム装置本体５のＣＰＵ１０は、取得した操作情報とゲームプログラムとに基づいて、ゲーム処理を行う。なお、ブルートゥース（登録商標）の技術を用いて通信部７５を構成する場合、通信部７５は、他のデバイスから無線送信された送信データを受信する機能も備えることができる。
【００６８】
ゲームシステム１でコントローラ７を用いてゲームをプレイするためには、ユーザは、一方の手（例えば右手）でコントローラ７を把持する。そして、ユーザは、コントローラ７の前面（撮像情報演算部７４が撮像する光の入射口側）がモニタ２に向くようにコントローラ７を把持する。一方、モニタ２の表示画面近傍には、２つのマーカ８Ｌおよび８Ｒが設置される（図１参照）。これらマーカ８Ｌおよび８Ｒは、それぞれモニタ２の前方に向かって赤外光を出力し、撮像情報演算部７４の撮像対象となる。
【００６９】
図８に示すように、マーカ８Ｌおよび８Ｒは、それぞれ視野角θ１を有している。また、撮像素子７４３は、視野角θ２を有している。例えば、マーカ８Ｌおよび８Ｒの視野角θ１は共に３４°（半値角）であり、撮像素子７４３の視野角θ２は４１°である。そして、撮像素子７４３の視野角θ２の中にマーカ８Ｌおよび８Ｒが共に存在し、マーカ８Ｌの視野角θ１の中でかつマーカ８Ｒの視野角θ１の中に撮像素子７４３が存在するとき、ゲーム装置本体５は、２つのマーカ８Ｌおよび８Ｒによる高輝度点に関する位置データを用いてコントローラ７が指し示す位置を算出する。
【００７０】
ユーザがその前面がモニタ２に向くようにコントローラ７を把持することによって、撮像情報演算部７４には２つのマーカ８Ｌおよび８Ｒが出力した赤外光が入射する。そして、赤外線フィルタ７４１およびレンズ７４２を介して、入射した赤外光を撮像素子７４３が撮像し、当該撮像画像を画像処理回路７４４が処理する。ここで、撮像情報演算部７４では、マーカ８Ｌおよび８Ｒから出力される赤外線成分を検出することで、上記撮像画像における当該マーカ８Ｌおよび８Ｒの位置情報（対象画像の位置）等を取得する。具体的には、画像処理回路７４４は、撮像素子７４３が撮像した画像データを解析して、まず面積情報からマーカ８Ｌおよび８Ｒからの赤外光ではあり得ない画像を除外し、さらに輝度が高い点をマーカ８Ｌおよび８Ｒそれぞれの位置として判別する。そして、撮像情報演算部７４は、判別されたそれらの輝点の重心位置等の位置情報を取得し、上記処理結果データとして出力する。ここで、上記処理結果データである位置情報は、撮像画像における所定の基準点（例えば、撮像画像の中央や左上隅）を原点とした座標値として出力するものでもよく、所定のタイミングにおける輝点位置を基準点として、当該基準位置からの現在の輝点位置の差をベクトルとして出力するものでもよい。つまり、上記対象画像の位置情報は、撮像素子７４３が撮像した撮像画像に対して所定の基準点を設定した場合に、当該基準点に対する差として用いられるパラメータである。このような位置情報をゲーム装置本体５へ送信することによって、ゲーム装置本体５では、基準からの上記位置情報の差に基づいて、マーカ８Ｌおよび８Ｒに対する撮像情報演算部７４、すなわちコントローラ７の動き、姿勢、位置等に応じた信号の変化量を得ることができる。具体的には、コントローラ７が動かされることによって、通信部７５から送信される画像内の高輝度点の位置が変化するため、高輝度点の位置の変化に対応させた方向入力や座標入力を行うことで、コントローラ７が指し示している位置を操作入力としたり、コントローラ７の移動方向に沿った方向入力や座標入力を行ったりすることができる。なお、後述する表示制御処理動作例では、撮像情報演算部７４が撮像画像におけるマーカ８Ｌおよび８Ｒの対象画像それぞれの重心位置の座標を少なくとも取得し、上記処理結果データとして出力する例を用いる。
【００７１】
このように、コントローラ７の撮像情報演算部７４によって、固定的に設置されたマーカ（実施例では、２つのマーカ８Ｌおよび８Ｒからの赤外光）を撮像することによって、ゲーム装置本体５におけるゲーム処理において、コントローラ７から出力されるデータを処理してコントローラ７の動き、姿勢、位置等に対応した操作が可能となり、ボタンを押下するような操作ボタンや操作キーとは異なった直感的な操作入力となる。また、上述したように上記マーカは、モニタ２の表示画面近傍に設置されているため、マーカに対する位置をモニタ２の表示画面に対するコントローラ７の動き、姿勢、位置等に換算することも容易に行うことができる。つまり、コントローラ７の動き、姿勢、位置等による処理結果データは、モニタ２の表示画面に直接作用する操作入力（例えば、コントローラ７が指し示す位置を入力）として用いることができる。
【００７２】
次に、図９〜図１１を参照して、ユーザの操作に応じてモニタ２に表示される画面例について説明する。なお、図９は、モニタ２に表示される番組表の第１の例を示す画面例である。図１０は、モニタ２に表示される番組表の第２の例を示す画面例である。図１１は、モニタ２に表示される番組表の第３の例を示す画面例である。
【００７３】
図９〜図１１において、モニタ２には横軸を時間軸、縦軸を放送局軸としたマトリックス状の番組表が表示される。具体的には、各テレビ局が放送する時間帯に応じた番組セルがそれぞれ設定され、各番組セル内に番組名が文字で記述される。ここで、ユーザは、コントローラ７の所定ボタンを押下したり、コントローラ７で指し示す位置を変更したりすることによって、番組名の文字サイズを変更したり、番組表をスクロールしたり、時間軸の長さを伸縮したりすることができる。例えば、ユーザは、操作ボタン７２ｂ（１番ボタン）または操作ボタン７２ｃ（２番ボタン）を押下することによって、番組名の文字サイズを変更する。また、ユーザは、操作ボタン７２ｅ（マイナスボタン）または操作ボタン７２ｇ（プラスボタン）を押下することによって、表示された番組表の時間軸の長さを伸縮させる。さらに、ユーザは、操作ボタン７２ｉを押下しながらコントローラ７で指し示す位置を移動させたり、操作ボタン７２ａ（十字キー）を押下したりすることによって、番組表をスクロール表示することができる。
【００７４】
例えば、図９において、時間軸が１９時台〜２１時台までの３時間分で、放送局軸がテレビ局Ａ〜Ｅまでの５局分の番組表が表示されている。また、図９の表示態様は、表示される文字サイズをユーザが「小」に設定している状態を示している。これによって、各テレビ局の番組セル内に記述されている番組名の大半が、当該番組名の先頭から文字サイズ「小」で記述される。例えば、テレビ局Ａの１９時台に放送される番組セルには、番組名「ＡＢＣＤＥＦＧＨＩＪＫＬＭＮ」が文字サイズ「小」で記述されている。なお、本実施形態でユーザが選択可能な文字サイズは、「大」、「中」、および「小」の３つの文字サイズである。また、ユーザは選択不可能であるが表示される文字サイズとして、文字サイズ「小」よりさらに小さな文字サイズ「極小」も設定されている。
【００７５】
ここで、図９に示す番組セルＣ２およびＣ３に注目する。番組セルＣ２には、番組名「ＡＢＣ」が他の文字サイズ「小」より小さい文字サイズ「極小」で記述されている。これは、モニタ２に表示する番組名を少なくとも３文字記述することをルールとしていることに起因している。具体的には、番組セルＣ２が文字サイズ「小」では３文字記述できないサイズであり、文字サイズ「極小」では縦書きで３文字記述できるサイズとなっている。このような場合、ユーザが文字サイズ「小」を設定していても、番組セルＣ２には文字サイズ「極小」で番組名が記述される。また、番組セルＣ３には、番組名が記述されていない。これは、番組セルＣ３が文字サイズ「極小」でも３文字記述できないサイズとなっている。このような場合、ユーザが文字サイズ「小」を設定していても、番組セルＣ３には番組名が記述されない。
【００７６】
また、図１０においても、時間軸が１９時台〜２１時台までの３時間分で、放送局軸がテレビ局Ａ〜Ｅまでの５局分の番組表が表示されている。なお、図１０の表示態様は、表示される文字サイズをユーザが「大」に設定している状態を示している。これによって、各テレビ局の番組セル内に記述されている番組名の大半が、当該番組名の先頭から文字サイズ「大」で記述される。例えば、テレビ局Ａの１９時台に放送される番組セルには、番組名「ＡＢＣＤＥＦＧＨＩＪＫＬＭＮ」の先頭から６文字分に相当する番組名「ＡＢＣＤＥＦ」が、文字サイズ「大」で記述されている。このように、本実施形態における番組表では、ユーザが選択した文字サイズに応じて、番組名の先頭から番組セル内に記述可能な文字数だけ記述される。
【００７７】
ここで、図９および図１０に示す番組セルＣ１〜Ｃ３に注目する。ユーザが文字サイズ「小」を選択している場合、番組セルＣ１には４文字の番組名「ａｂｃｄ」が文字サイズ「小」で記述されている（図９）。一方、ユーザが文字サイズ「大」を選択している場合であっても、番組セルＣ１には４文字の番組名「ａｂｃｄ」が文字サイズ「小」で記述されている（図１０）。これも、モニタ２に表示する番組名を少なくとも３文字記述することをルールとしていることに起因している。具体的には、番組セルＣ１が文字サイズ「大」や文字サイズ「中」では３文字記述できないサイズであり、文字サイズ「小」では４文字記述できるサイズとなっている。このような場合、ユーザが文字サイズ「中」や文字サイズ「大」を設定していても、番組セルＣ１には文字サイズ「小」で番組名が記述される。また、ユーザが文字サイズ「大」を選択している場合であっても、番組セルＣ２には番組名「ＡＢＣ」が文字サイズ「極小」で記述されている（図１０）。また、ユーザが文字サイズ「大」を選択している場合であっても、番組セルＣ３には番組名が記述されない（図１０）。
【００７８】
また、図１１においては、図９および図１０に対して、時間軸の時間間隔を短縮、すなわち表示される番組表の時間帯を長くした番組表が表示されている。具体的には、時間軸が１９時台〜２２時台までの約４時間分で、放送局軸がテレビ局Ａ〜Ｅまでの５局分の番組表が表示されている。なお、図１１の表示態様は、表示される文字サイズを図１０と同様にユーザが「大」に設定している状態を示している。これによって、各テレビ局の番組セルが横方向に短縮されて、当該番組セル内に記述されている番組名の大半が当該番組名の先頭から文字サイズ「大」で記述される。例えば、テレビ局Ａの１９時台に放送される番組セルには、番組名「ＡＢＣＤＥＦＧＨＩＪＫＬＭＮ」の先頭から４文字分に相当する番組名「ＡＢＣＤ」が、文字サイズ「大」で記述されている。このように、本実施形態における番組表では、ユーザが選択した文字サイズや時間軸スケールに応じて、番組名の先頭から番組セル内に記述可能な文字数だけ記述される。
【００７９】
ここで、図９および図１０に示す番組セルＣ１〜Ｃ４に注目する。図９および図１０に示すように、時間軸の時間間隔を短縮する前においては、番組セルＣ１には４文字の番組名「ａｂｃｄ」が文字サイズ「小」で記述されている。一方、図１１に示すように、ユーザが時間軸の時間間隔を短縮した後においては、番組セルＣ１には３文字の番組名「ａｂｃ」が文字サイズ「極小」で記述されている。これも、モニタ２に表示する番組名を少なくとも３文字記述することをルールとしていることに起因している。具体的には、時間軸の時間間隔を短縮した後は、番組セルＣ１が文字サイズ「大」〜「小」では３文字記述できないサイズになり、文字サイズ「極小」では縦書きで３文字記述できるサイズとなっている。このような場合、ユーザがどのような文字サイズを設定していても、番組セルＣ１には文字サイズ「極小」で番組名が記述される。また、図１１に示すように、ユーザが時間軸の時間間隔を短縮した後においては、番組セルＣ２およびＣ３には番組名が記述されていない。これは、時間軸の時間間隔を短縮した後は、番組セルＣ２およびＣ３が文字サイズ「極小」でも３文字記述できないサイズとなっている。このような場合、ユーザがどのような文字サイズを設定していても、番組セルＣ２およびＣ３には番組名が記述されない。さらに、図９および図１０に示すように、時間軸の時間間隔を短縮する前においては、番組セルＣ４に文字サイズ「小」の５文字の番組名「１２３４５」、または文字サイズ「大」の４文字の番組名「１２３４」が記述されている。一方、図１１に示すように、ユーザが時間軸の時間間隔を短縮した後においては、番組セルＣ４には４文字の番組名「１２３４」が文字サイズ「小」で記述されている。これは、時間軸の時間間隔を短縮した後は、番組セルＣ４が文字サイズ「大」または「中」では３文字記述できないサイズになり、文字サイズ「小」では４文字記述できるサイズとなっている。このような場合、ユーザが文字サイズを「大」や「中」に設定していても、番組セルＣ４には文字サイズ「小」で番組名が記述される。
【００８０】
次に、ゲームシステム１において行われるゲーム処理の詳細を説明する。まず、図１２および図１３を参照して、ゲーム処理において用いられる主なデータについて説明する。なお、図１２は、ゲーム装置本体５の外部メインメモリ１２および／または内部メインメモリ３５（以下、２つのメインメモリを総称して、単にメインメモリと記載する）に記憶される主なデータの一例を示す図である。図１３は、図１２に示す番組セルデータＤｂ２の詳細な内容の一例を示す図である。
【００８１】
図１２に示すように、メインメモリには、操作情報Ｄａおよび番組表データＤｂ等が記憶される。なお、メインメモリには、図１２に示す情報に含まれるデータの他、情報処理や表示制御処理に必要なデータが適宜記憶される。
【００８２】
操作情報Ｄａは、コントローラ７から送信データとして送信されてくる一連の操作情報（キーデータ、加速度データ、および処理結果データ）が格納され、最新の操作情報に更新される。操作情報Ｄａには、上述の処理結果データの位置情報に相当する第１座標データＤａ１および第２座標データＤａ２が含まれる。第１座標データＤａ１は、撮像素子７４３が撮像した撮像画像に対して、２つのマーカ８Ｌおよび８Ｒのうちの一方の画像の位置（撮像画像内における位置）を示すデータである。第２座標データＤａ２は、他方のマーカの画像の位置（撮像画像内における位置）を示すデータである。例えば、撮像画像におけるマーカの画像の位置は、撮像画像におけるｘｙ座標系によって表される。
【００８３】
また、操作情報Ｄａには、撮像画像から得られる処理結果データの一例の座標データ（第１座標データＤａ１および第２座標データＤａ２）の他、操作部７２から得られるキーデータＤａ３等が含まれる。なお、ゲーム装置本体５に備える無線コントローラモジュール１９は、コントローラ７から所定間隔例えば５ｍｓごとに送信される一連の操作情報を受信し、無線コントローラモジュール１９に備える図示しないバッファに蓄えられる。その後、上記バッファに蓄えられた最新の操作情報がゲーム処理間隔である１フレーム毎（例えば１／６０秒毎）に読み出されて、メインメモリの操作情報Ｄａが更新される。
【００８４】
番組表データＤｂは、モニタ２に番組表を表示するための情報が格納される。番組表データＤｂは、表示領域座標データＤｂ１、番組セルデータＤｂ２、スクロール量データＤｂ３、時間軸設定データＤｂ４、ユーザ設定文字サイズデータＤｂ５、および画像データＤｂ６等を含む。
【００８５】
表示領域座標データＤｂ１は、番組表に対してモニタ２に表示する表示領域の位置（例えば、表示領域の左上端の位置と右下端の位置）を示す座標データが格納される。番組セルデータＤｂ２は、番組表に含まれる各番組セルの情報を示すデータが格納され、詳細は後述する。スクロール量データＤｂ３は、ユーザの操作入力によって設定される番組表のスクロール量および方向を示すデータが格納される。時間軸設定データＤｂ４は、ユーザの操作入力によって設定される番組表の時間軸スケールを示すデータが格納される。ユーザ設定文字サイズデータＤｂ５は、ユーザの操作入力によって設定される番組表の文字サイズを示すデータが格納される。画像データＤｂ６は、番組表をモニタ２に表示するための各種画像を示すデータが格納される。
【００８６】
図１３において、番組セルデータＤｂ２は、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続される各種サーバと通信することによって得られる電子番組表データを用いて、適宜その情報が更新される。番組セルデータＤｂ２は、番組表に設定されている番組セル毎にそれぞれ設定される。番組セルデータＤｂ２は、番組セル毎に、番組セル番号Ｄｂ２ａ、番組文字列データＤｂ２ｂ、番組文字数データＤｂ２ｃ、テレビ局データＤｂ２ｄ、番組セル座標データＤｂ２ｅ、描画領域幅データＤｂ２ｆ、描画領域高さデータＤｂ２ｇ、描画文字サイズデータＤｂ２ｈ、描画可能行数データＤｂ２ｉ、および描画可能文字数データＤｂ２ｊ等を含んでいる。
【００８７】
番組セル番号Ｄｂ２ａは、番組セル毎に設定される連番（例えば、図１３では番組セル番号「１」）を示すデータが格納される。番組文字列データＤｂ２ｂは、番組セル毎に記述される番組名（例えば、図１３では番組文字列「ＡＢＣＤＥＦＧＨ」）を示す文字列データが格納される。番組文字数データＤｂ２ｃは、番組セル毎の番組名の文字数（例えば、図１３では番組文字数「８」）を示すデータが格納される。テレビ局データＤｂ２ｄは、番組セルが配置されるテレビ局（例えば、図１３ではテレビ局「Ａ」）を示すデータが格納される。番組セル座標データＤｂ２ｅは、番組表における番組セル毎の位置（例えば、図１３では左上端座標（ｘｓａ，ｙｓａ）、右下端座標（ｘｓｂ，ｙｓｂ））を示すデータが格納される。描画領域幅データＤｂ２ｆは、番組セル毎に番組名を当該番組セル内に記述可能な描画領域幅（例えば、図１３では描画領域幅「ｄｗ」）を示すデータが格納される。描画領域高さデータＤｂ２ｇは、番組セル毎に番組名を当該番組セル内に記述可能な描画領域高さ（例えば、図１３では描画領域高さ「ｄｈ」）を示すデータが格納される。描画文字サイズデータＤｂ２ｈは、番組セル毎に番組名を当該番組セル内に記述する文字サイズ（例えば、図１３では文字サイズ「中」）を示すデータが格納される。描画可能行数データＤｂ２ｉは、番組セル毎に番組名を当該番組セル内に記述可能な描画行数（例えば、図１３では描画可能行数「２」）を示すデータが格納される。描画可能文字数データＤｂ２ｊは、番組セル毎に番組名を当該番組セル内に記述可能な描画文字数（例えば、図１３では描画可能文字数「４」）を示すデータが格納される。
【００８８】
次に、図１４〜図２０を参照して、ゲーム装置本体５において行われる表示制御処理の詳細を説明する。なお、図１４は、ゲーム装置本体５において実行される表示制御処理の流れを示すフローチャートである。図１５は、図１４のステップ５６における描画領域幅算出処理の詳細な動作を示すサブルーチンである。図１６は、図１４のステップ６３における番組表表示更新処理の詳細な動作を示すサブルーチンである。図１７は、図１６のステップ９８における描画可能文字数算出処理の詳細な動作を示すサブルーチンである。図１８は、番組表に対する表示領域の設定例を説明するための図である。図１９は、番組セルに設定される描画領域幅ｄｗおよび描画領域高さｄｈの設定例を説明するための図である。図２０は、番組セルの一部分が表示領域内となった場合に設定される描画領域幅ｄｗおよび描画領域高さｄｈの設定例を説明するための図である。なお、図１４〜図１７に示すフローチャートにおいては、表示制御処理のうち、主に番組セル内の文字をモニタ２に表示する処理について説明し、本願発明と直接関連しない他の処理については詳細な説明を省略する。また、図１４〜図１７では、ＣＰＵ１０が実行する各ステップを「Ｓ」と略称する。
【００８９】
ゲーム装置本体５の電源ボタン２４がオンされると、ゲーム装置本体５のＣＰＵ１０は、ＲＯＭ／ＲＴＣ１３に記憶されている起動用のプログラムを実行し、これによってメインメモリ等の各ユニットが初期化される。そして、光ディスク４や他の記録媒体に記憶された表示制御プログラムがメインメモリに読み込まれ、ＣＰＵ１０によって当該表示制御プログラムの実行が可能となる状態となる。図１４に示すフローチャートは、以上の処理が完了した後に行われる表示制御処理を示すフローチャートである。
【００９０】
図１４において、ＣＰＵ１０は、初期設定を行い（ステップ５１）、処理を次のステップに進める。例えば、上記ステップ５１における初期設定では、無線通信モジュール１８およびアンテナ２２を介してネットワークに接続される各種サーバと通信することによって得られる電子番組表データを用いて、番組セルデータＤｂ２に記述される各情報を適宜最新の情報に更新し、番組表の初期設定を行う。また、上記ステップ５１における初期設定では、番組表を表示するための各パラメータを初期化する。例えば、ＣＰＵ１０は、上述したメインメモリに格納される各データが示すパラメータをそれぞれデフォルトの値に設定する。
【００９１】
次に、ＣＰＵ１０は、番組表の表示処理を行い（ステップ５２）、処理を次のステップに進める。具体的には、ＣＰＵ１０は、上記ステップ５１で設定されたデフォルトの設定状態に基づいて、番組表を作成してモニタ２に表示する。
【００９２】
次に、ＣＰＵ１０は、コントローラ７から受信した操作情報を取得し（ステップ５３）、処理を次のステップに進める。そして、ＣＰＵ１０は、取得した最新の操作情報を用いて操作情報Ｄａを更新する。ここで、ステップ５３で取得される操作情報には、マーカ８Ｌおよび８Ｒの撮像画像内における位置を示す処理結果データの他、コントローラ７の操作部７２がどのように操作されたか示すキーデータが含まれている。ここでは、通信部７５は、所定の時間間隔（例えば５ｍｓ間隔）で操作情報をゲーム装置本体５へ送信する。そして、ＣＰＵ１０は、送信された最新の操作情報を１フレーム毎に利用して、第１座標データＤａ１、第２座標データＤａ２、およびキーデータＤａ３を更新する。
【００９３】
次に、ＣＰＵ１０は、ユーザが番組表のスクロール操作を行ったか否か（ステップ５４）、ユーザが番組表の時間軸を変更する操作を行ったか否か（ステップ５７）、およびユーザが番組表の文字サイズを変更する操作を行ったか否かを判断する（ステップ６０）。具体的には、ＣＰＵ１０は、操作情報Ｄａの第１座標データＤａ１、第２座標データＤａ２、およびキーデータＤａ３を参照して、ユーザの操作内容を決定する。そして、ＣＰＵ１０は、ユーザが番組表のスクロール操作を行った場合（ステップ５４でＹｅｓ）、次のステップ５５に処理を進める。また、ＣＰＵ１０は、ユーザが番組表の時間軸を変更する操作を行った場合（ステップ５７でＹｅｓ）、次のステップ５８に処理を進める。また、ＣＰＵ１０は、ユーザが番組表の文字サイズを変更する操作を行った場合（ステップ６０でＹｅｓ）、次のステップ６１に処理を進める。一方、ユーザが番組表のスクロール操作、時間軸を変更する操作、および文字サイズを変更する操作とは異なる操作を行った場合（ステップ５４、ステップ５７、ステップ６０が何れもＮｏ）、次のステップ６２に処理を進める。
【００９４】
ステップ５５において、ＣＰＵ１０は、ユーザの操作に応じたスクロール量に応じて表示領域の座標を更新して、処理を次のステップ５６に進める。具体的には、ＣＰＵ１０は、コントローラ７で指し示す位置や操作ボタン７２ａの押下方向に応じて、番組表のスクロール量および方向を算出してスクロール量データＤｂ３を更新する。そして、ＣＰＵ１０は、算出されたスクロール量および方向に応じて、表示領域の左上端の位置と右下端の位置とを示す座標を算出して表示領域座標データＤｂ１を更新する。以下、コントローラ７で指し示す位置の算出例および表示領域の設定例について説明する。
【００９５】
例えば、ＣＰＵ１０は、第１座標データＤａ１が示す位置から第２座標データＤａ２が示す位置への方向と、第１座標データＤａ１が示す位置と第２座標データＤａ２が示す位置との中点を算出する。ここで、上記中点は、撮像画像内における対象画像（マーカ８Ｌおよび８Ｒ）を１つの画像とみなした場合、その１つの画像の位置を示すことになる。そして、上記中点と所定の基準位置との差によって、モニタ２に対するコントローラ７の位置の変化による画像位置の変化を算出することができる。
【００９６】
ここで、マーカ８Ｌおよび８Ｒと、モニタ２の表示画面と、コントローラ７との位置関係について考える。例えば、モニタ２の上面に２つのマーカ８Ｌおよび８Ｒを設置し（図１参照）、上面が上方向を向いたコントローラ７を用いてプレイヤがモニタ２の表示画面の中央を指し示した場合（すなわち、撮像情報演算部７４の撮像画像の中央に表示画面中央が撮像されている状態）を考える。このとき、撮像情報演算部７４の撮像画像において、対象画像の中点（マーカ８Ｌおよび８Ｒの中点）位置と撮像画像の中央とは一致しない。具体的には、上記撮像画像における対象画像の位置は、撮像画像の中心から上方の位置となる。このような位置に対象画像が位置する場合に、表示画面中央を指し示しているという基準位置の設定を行う。一方、コントローラ７で指し示す位置を移動させると、撮像画像中の対象画像の位置も移動する（コントローラ７の移動方向は逆方向となる）ので、撮像画像中の対象画像の位置の移動に対応させて表示画面を指し示す位置を移動させる処理を行うことによって、コントローラ７で指し示された表示画面基準の位置を算出することができる。
【００９７】
ここで、基準位置の設定は、予めプレイヤが表示画面の所定位置を指し示し、そのときの対象画像の位置を当該所定位置と対応させて記憶しておくようにしてもよいし、対象画像と表示画面との位置関係が固定的であれば、予め設定されていても良い。このような表示画面に対する指し示し位置は、上記中点からモニタ２の表示画面基準の座標を算出する関数を用いた線形変換で算出される。この関数は、ある撮像画像から算出される中点座標の値を、当該撮像画像が撮像される時のコントローラ７によって指し示される表示画面上の位置に変換するものである。この関数によって、中点座標から表示画面を基準とした指し示し位置を算出することができる。なお、上面が上方向以外（例えば、右方向）を向いたコントローラ７を用いてプレイヤがモニタ２の表示画面を指し示した場合、方向データＤｂ１に格納された方向を用いて中点座標を補正して、補正された中点を用いて上述したように表示画面を基準とした指し示し位置を算出する。
【００９８】
そして、ＣＰＵ１０は、算出した表示画面を基準とした指し示し位置を、対応する番組表における位置にさらに変換する。例えば、指し示し位置に対応する番組表の位置は、モニタ２の表示画面上における位置に表示される番組表の位置に透視投影される位置となる。
【００９９】
また、図１８に示すように、番組表に設定されている座標系を基準として配置される位置が表示領域の位置として設定される。例えば、縦軸を放送局軸、横軸を時間軸とした番組表が設定されており、当該番組表の左上端の位置を座標（ｘ０，ｙ０）とし、当該番組表の右下端の位置を座標（ｘｍａｘ，ｙｍａｘ）とする座標系（以下、番組表座標と記載する）が番組表に設定されている。そして、表示領域は、番組表内の一部分に配置される。例えば、表示領域の左上端の位置（座標（ｘａ，ｙａ））と右下端の位置（座標（ｘｂ，ｙｂ））とを番組表座標で設定することによって、表示領域の配置位置と表示領域のサイズとを設定している。上記ステップ５５においては、ユーザの操作に応じて設定されたスクロール量およびスクロール方向に応じて、表示領域の左上端の位置（座標（ｘａ，ｙａ））と右下端の位置（座標（ｘｂ，ｙｂ））とを番組表座標で設定することによって、表示領域の座標を更新している。
【０１００】
図１４に戻り、ユーザが番組表の時間軸を変更する操作を行った場合（ステップ５７でＹｅｓ）、ＣＰＵ１０は、ユーザの操作に応じた時間軸に応じて描画領域幅を更新する（ステップ５８）。そして、ＣＰＵ１０は、ユーザの操作に応じた時間軸に応じて各番組セルの座標を更新して（ステップ５９）、処理を次のステップ５６に処理を進める。具体的には、ＣＰＵ１０は、ユーザによって変更された時間軸の時間間隔に応じて、各番組セルの描画領域幅ｄｗおよび位置（左上端座標（ｘｓａ，ｙｓａ）、右下端座標（ｘｓｂ，ｙｓｂ））を変化させて描画領域幅データＤｂ２ｆおよび番組セル座標データＤｂ２ｅを更新する。
【０１０１】
例えば、図１９に示すように、番組セル内には矩形の描画領域が設定されている。描画領域のサイズは、描画領域幅ｄｗおよび描画領域サイズｄｈで定義される。そして、番組セルの位置は、描画領域の左上端の位置（座標（ｘｓａ，ｙｓａ））と右下端の位置（座標（ｘｓｂ，ｙｓｂ））とが番組表座標によって設定される。上記ステップ５８においては、各番組セルの描画領域幅ｄｗを変更された時間軸の時間間隔に応じてそれぞれ変化させて、それぞれの描画領域幅データＤｂ２ｆを更新する。また、上記ステップ５９においては、各番組セルの位置（左上端座標（ｘｓａ，ｙｓａ）、右下端座標（ｘｓｂ，ｙｓｂ））を変更された時間軸の時間間隔に応じてそれぞれ変化させて、それぞれの番組セル座標データＤｂ２ｅを更新する。各番組セルの位置の変更については、表示領域の所定位置（例えば、表示領域の中心や左端）を中心に左右に伸縮した各番組セルの位置を番組表座標によって指定してもいいし、コントローラ７で指し示された番組表の位置を中心に左右に伸縮した各番組セルの位置を番組表座標によって指定してもいい。
【０１０２】
図１４に戻り、ユーザが番組表の文字サイズを変更する操作を行った場合（ステップ６０でＹｅｓ）、ＣＰＵ１０は、ユーザの操作に応じたユーザ設定文字サイズを設定して（ステップ６１）、次のステップ６３に処理を進める。具体的には、ＣＰＵ１０は、ユーザによって変更された文字サイズに応じて、ユーザ設定文字サイズデータＤｂ５を更新する。一方、ユーザが番組表のスクロール操作、時間軸を変更する操作、および文字サイズを変更する操作とは異なる操作を行った場合（ステップ５４、ステップ５７、ステップ６０が何れもＮｏ）、ＣＰＵ１０は、ユーザの操作に応じたその他の処理を行って（ステップ６２）、次のステップ６４に処理を進める。
【０１０３】
上記ステップ５５またはステップ５９の処理の後、ＣＰＵ１０は、描画領域算出処理を行って（ステップ５６）、次のステップ６３に処理を進める。以下、図１５を参照して、ステップ５６で行う描画領域算出処理について説明する。
【０１０４】
図１５において、ＣＰＵ１０は、処理対象とする番組セル番号を示す変数Ｎを１に設定し（ステップ８１）、処理を次のステップに進める。
【０１０５】
次に、ＣＰＵ１０は、番組セル番号Ｎの番組セル座標と表示領域座標とを比較して（ステップ８２）、番組セルが表示領域内か否か（ステップ８３）、および番組セルの一部分が表示領域外か否か（ステップ８４）を判断する。具体的には、ＣＰＵ１０は、番組セル番号Ｎの番組セル座標データＤｂ２ｅと表示領域座標データＤｂ１とを参照して、番組セル番号Ｎの番組セルの左上端座標（ｘｓａ，ｙｓａ）および右下端座標（ｘｓｂ，ｙｓｂ）と表示領域の左上端座標（ｘａ，ｙａ）および右下端座標（ｘｂ，ｙｂ）とを所得する。そして、これらの座標を用いて、番組セル番号Ｎの番組セルと表示領域との位置関係を分析する。そして、ＣＰＵ１０は、番組セル番号Ｎの番組セルの一部分が表示領域外（すなわち、番組セルの一部分が表示領域内）である場合（ステップ８３でＹｅｓ、ステップ８４でＹｅｓ）、次のステップ８５に処理を進める。また、ＣＰＵ１０は、番組セル番号Ｎの番組セルの全部分が表示領域内である場合（ステップ８３でＹｅｓ、ステップ８４でＮｏ）、次のステップ８６に処理を進める。また、ＣＰＵ１０は、番組セル番号Ｎの番組セルの全部分が表示領域外である場合（ステップ８３でＮｏ）、次のステップ８８に処理を進める。
【０１０６】
ステップ８５において、ＣＰＵ１０は、番組セル番号Ｎの番組セルにおいて表示領域内となる描画領域幅ｄｗを算出して、次のステップ８７に処理を進める。例えば、図２０に示すように、番組セルの左部分が表示領域外となった場合、表示領域の左端から当該番組セルの描画領域の右端までの幅が描画領域幅ｄｗとして算出される。
【０１０７】
ステップ８６において、ＣＰＵ１０は、現在設定されている時間軸に応じた描画領域幅ｄｗを用いて番組セル番号Ｎの番組セルの描画領域幅ｄｗを設定して、次のステップ８７に処理を進める。例えば、ＣＰＵ１０は、現在設定されている時間軸に応じて、上記ステップ５１で設定されたデフォルトの値または上記ステップ５８で設定された時間軸変更後の値を用いて番組セル番号Ｎの番組セルの描画領域幅ｄｗを設定する。なお、上記ステップ８６においては、番組セル番号Ｎの番組セルにおける描画領域の一部分が表示領域外に表示される状態から、描画領域の全部分が表示領域内に配置される状態に変化したときに描画領域幅ｄｗを変更することが必要となり、他の状態においては描画領域幅ｄｗが不変となる。したがって、描画領域幅ｄｗが不変となる状態においては、上記ステップ８６による処理を省略してもかまわない。この場合、番組セル番号Ｎの番組セルにおける描画領域の一部分が表示領域外に表示される状態から、描画領域の全部分が表示領域内に配置される状態に変化したときにのみ、ステップ８６の処理を行うことになる。
【０１０８】
ステップ８７において、ＣＰＵ１０は、上記ステップ８５で算出された描画領域幅ｄｗまたは上記ステップ８６で設定された描画領域幅ｄｗを用いて、番組セル番号Ｎの描画領域幅データＤｂ２ｆを更新して、次にステップ８８に処理を進める。
【０１０９】
ステップ８８において、ＣＰＵ１０は、現在の変数Ｎが番組セルデータＤｂ２に記述されている番組セル毎の連番の最後（Ｎｍａｘ）であるか否かを判断する。そして、ＣＰＵ１０は、Ｎ＜Ｎｍａｘの場合、現在の変数Ｎに１を加算して（ステップ８９）、上記ステップ８２に戻って処理を繰り返す。一方、ＣＰＵ１０は、Ｎ＝Ｎｍａｘの場合、当該サブルーチンによる処理を終了する。
【０１１０】
図１４に戻り、上記ステップ５６またはステップ６１の処理の後、ＣＰＵ１０は、番組表表示更新処理を行って（ステップ６３）、次のステップ６４に処理を進める。以下、図１６を参照して、ステップ６３で行う番組表表示更新処理について説明する。
【０１１１】
図１６において、ＣＰＵ１０は、番組表の時間軸に沿ってそれぞれ並列されて表示されるテレビ局（図１８参照）の何れか１つを選択する（ステップ９１）。そして、ＣＰＵ１０は、選択したテレビ局の表示範囲上端が表示領域より下か否か（ステップ９２）、および選択したテレビ局の表示範囲下端が表示領域より上か否か（ステップ９３）を判断する。そして、ＣＰＵ１０は、選択したテレビ局の表示範囲の少なくとも一部分が表示領域内にある場合（ステップ９２およびステップ９３が何れもＮｏ）、次のステップ９４に処理を進める。一方、選択したテレビ局の表示範囲が全て表示領域外にある場合（ステップ９２またはステップ９３がＹｅｓ）、次のステップ１０６に処理を進める。例えば、図１８に示すテレビ局Ｂ〜テレビ局Ｆは、それらテレビ局の表示範囲の少なくとも一部分が表示領域内にあるとそれぞれ判断される。一方、テレビ局Ａやテレビ局Ｇは、それらのテレビ局の表示範囲が全て表示領域外にあるとそれぞれ判断される。
【０１１２】
ステップ９４において、ＣＰＵ１０は、現在選択されているテレビ局に含まれる番組セルの何れか１つを選択する。そして、そして、ＣＰＵ１０は、選択した番組セルの描画範囲右端が表示領域より左か否か（ステップ９５）、および選択した番組セルの描画範囲左端が表示領域より右か否か（ステップ９６）を判断する。そして、ＣＰＵ１０は、選択した番組セルの描画範囲の少なくとも一部分が表示領域内にある場合（ステップ９５およびステップ９６が何れもＮｏ）、次のステップ９７に処理を進める。一方、選択した番組セルの描画範囲が全て表示領域外にある場合（ステップ９５またはステップ９６がＹｅｓ）、次のステップ１０５に処理を進める。例えば、図１８に示すテレビ局Ｃが選択されている場合、番組Ｃ１〜番組Ｃ４は、それら番組セルの描画範囲の少なくとも一部分が表示領域内にあるとそれぞれ判断される。一方、番組Ｃ５は、その番組セルの描画範囲が全て表示領域外にあると判断される。
【０１１３】
ステップ９７において、ＣＰＵ１０は、ユーザが設定している文字サイズを用いて現在選択している番組セルの描画文字サイズを変更して、処理を次のステップに進める。具体的には、ＣＰＵ１０は、ユーザ設定文字サイズデータＤｂ５を参照してユーザ設定文字サイズを取得し、当該ユーザ設定文字サイズを用いて現在選択している番組セルの描画文字サイズデータＤｂ２ｈを更新する。
【０１１４】
次に、ＣＰＵ１０は、描画可能文字数算出処理を行い（ステップ９８）、処理を次のステップに進める。以下、図１７を参照して、描画可能文字数算出処理の詳細な動作について説明する。
【０１１５】
図１７において、ＣＰＵ１０は、現在の文字数を０に設定し（ステップ１１１）、描画可能文字数を０に設定する（ステップ１１２）。次に、ＣＰＵ１０は、現在選択されている番組セルの描画領域に描画可能な文字行数を算出する（ステップ１１３）。そして、ＣＰＵ１０は、現在の行数を１に設定し（ステップ１１４）、処理を次のステップに進める。例えば、上記ステップ１１３において、ＣＰＵ１０は、現在選択している番組セルの描画領域高さデータＤｂ２ｇを参照して、描画領域高さｄｈを取得する。また、ＣＰＵ１０は、現在選択している番組セルの描画文字サイズデータＤｂ２ｈを参照して、描画文字サイズを取得する。そして、ＣＰＵ１０は、取得した描画領域高さｄｈを、取得した描画文字サイズに予め設定されている行高さで除算することによって描画可能な文字行数を算出して、現在選択している番組セルの描画可能行数データＤｂ２ｉを更新する。
【０１１６】
次に、ＣＰＵ１０は、現在の行数が現在選択している番組セルに描画可能な文字行数を超えたか否かを判断する（ステップ１１５）。例えば、ＣＰＵ１０は、現在選択している番組セルの描画可能行数データＤｂ２ｉを参照して描画可能な文字行数を取得し、現在の行数が当該描画可能な文字行数を超えているか否かを判断する。そして、ＣＰＵ１０は、現在の行数が現在選択している番組セルに描画可能な文字行数を超えていない場合、次のステップ１１６に処理を進める。一方、ＣＰＵ１０は、現在の行数が現在選択している番組セルに描画可能な文字行数を超えている場合、次のステップ１２２に処理を進める。
【０１１７】
ステップ１１６において、ＣＰＵ１０は、現在の幅を０に設定する。そして、ＣＰＵ１０は、現在の文字数が現在選択している番組セルの番組文字数に達したか否かを判断する（ステップ１１７）。例えば、ＣＰＵ１０は、現在選択している番組セルの番組文字数データＤｂ２ｃを参照して番組文字数を取得し、現在の文字数が当該番組文字数に到達しているか否かを判断する。そして、ＣＰＵ１０は、現在の文字数が現在選択している番組セルの番組文字数に達していない場合、次のステップ１１８に処理を進める。一方、ＣＰＵ１０は、現在の文字数が現在選択している番組セルの番組文字数に達した場合、次のステップ１２２に処理を進める。
【０１１８】
ステップ１１８において、ＣＰＵ１０は、現在の幅に次の文字幅を加算する。そして、ＣＰＵ１０は、現在の幅が描画領域の幅を超えたか否かを判断する（ステップ１１９）。例えば、ＣＰＵ１０は、現在選択している番組セルの描画領域幅データＤｂ２ｆを参照して描画領域幅ｄｗを取得する。そして、ＣＰＵ１０は、取得した描画領域幅ｄｗと現在の幅とを比較して、現在の幅が描画領域の幅を超えたか否かを判断する。そして、ＣＰＵ１０は、現在の幅が描画領域の幅を超えていない場合、現在の文字数に１を加算して（ステップ１２０）、上記ステップ１１７に戻って処理を繰り返す。一方、ＣＰＵ１０は、現在の幅が描画領域の幅を超えている場合、現在の行数に１を加算して（ステップ１２１）、上記ステップ１１５に戻って処理を繰り返す。
【０１１９】
ここで、上記ステップ１１８で用いる次の文字幅とは、現在選択している番組セルに記述する番組文字において、現在の文字数としてカウントされている文字の次に記述される文字の文字幅を示している。例えば、図１３に示す番組セルデータＤｂ２の例において現在の文字数が「２」の場合、次に記述される文字「Ｃ」の文字幅が次の文字幅として採用される。ここで、一般的に文字幅は、文字サイズやフォントが同じであっても異なることが多い。例えば、上記ステップ１１８においては、予めゲーム装置本体５内に設定されているフォントデータ等を参照して、文字種毎の文字幅を取得する。
【０１２０】
上記ステップ１１５でＹｅｓと判断された場合、または上記ステップ１１７でＹｅｓと判断された場合、ＣＰＵ１０は、現在の文字数を用いて現在選択している番組セルの描画可能文字数を設定して（ステップ１２２）、当該サブルーチンによる処理を終了する。例えば、ＣＰＵ１０は、現在の文字数を用いて現在選択している番組セルの描画可能文字数データＤｂ２ｉを更新する。ここで、上記ステップ１１５でＹｅｓと判断される場合は、現在の行数が現在選択している番組セルに描画可能な文字行数を超えている場合であり、すなわち、現在選択している番組セルの描画領域に、現在の文字数より多い文字が描画できない場合である。一方、上記ステップ１１７でＹｅｓと判断される場合は、現在の文字数が現在選択している番組セルの番組文字数に達した場合であり、すなわち、現在選択している番組セルの描画領域に、現在の文字数より多く描画する文字がない場合である。このように、描画可能文字数算出処理においては、番組セルに設定されている描画文字サイズを基準として、当該番組セルに記述する文字数が当該番組セル描画可能な文字数制限に達した場合、または記述するべき番組名称の文字数に到達した場合、それらの文字数を描画可能文字数として算出する。
【０１２１】
図１６に戻り、上記ステップ９８の描画可能文字数算出処理の後、ＣＰＵ１０は、選択されている番組セルの描画可能文字数が番組文字数と同じか否かを判断する（ステップ９９）。例えば、ＣＰＵ１０は、選択されている番組セルの番組文字数データＤｂ２ｃおよび描画可能文字数データＤｂ２ｊを参照して番組文字数および描画可能文字数を取得し、取得した描画可能文字数が番組文字数と同じか否かを判断する。そして、ＣＰＵ１０は、描画可能文字数が番組文字数と異なる場合、次のステップ１００に処理を進める。一方、ＣＰＵ１０は、描画可能文字数が番組文字数と同じである場合、次のステップ１０３に処理を進める。
【０１２２】
ステップ１００において、ＣＰＵ１０は、選択されている番組セルの描画可能文字数が３文字以上であるか否かを判断する。例えば、ＣＰＵ１０は、選択されている番組セルの描画可能文字数データＤｂ２ｊを参照して描画可能文字数を取得し、取得した描画可能文字数が３以上か否かを判断する。そして、ＣＰＵ１０は、描画可能文字数が２文字以下である場合、次のステップ１０１に処理を進める。一方、ＣＰＵ１０は、描画可能文字数が３文字以上である場合、次のステップ１０３に処理を進める。
【０１２３】
ステップ１０１において、ＣＰＵ１０は、選択されている番組セルの描画文字サイズが最小であるか否かを判断する。例えば、ＣＰＵ１０は、選択されている番組セルの描画文字サイズデータＤｂ２ｈを参照して描画文字サイズを取得し、取得した描画文字サイズが最小の文字サイズ（例えば、文字サイズ「極小」）であるか否かを判断する。そして、ＣＰＵ１０は、描画文字サイズが最小でない場合、描画文字サイズを１段階小さく設定して選択されている番組セルの描画文字サイズデータＤｂ２ｈを更新し（ステップ１０２）、上記ステップ９８に戻って処理を繰り返す。一方、ＣＰＵ１０は、描画文字サイズが最小である場合、次のステップ１０４に処理を進める。
【０１２４】
ステップ１０３において、ＣＰＵ１０は、選択されている番組セルの描画領域内に、設定された描画文字サイズで描画可能文字数の文字を配置して描画し、処理を次のステップ１０５に進める。例えば、ＣＰＵ１０は、選択されている番組セルの番組セルデータＤｂ２を参照して、設定された描画文字サイズで描画可能文字数の番組名の文字列を、表示領域内に属している当該番組セルの描画領域内の左端から横書きで配置して記述する。このとき、描画領域の一部が表示領域外にある場合、当該表示領域内に制限した描画領域を用いて番組名の文字列を配置して描画する。また、番組セルの描画領域内における複数行を使って描画可能文字数が確保されている場合、当該描画領域内には当該複数行を用いて記述された番組名の文字列が配置されて描画される（図９〜図１１参照）。
【０１２５】
ステップ１０４において、ＣＰＵ１０は、選択されている番組セルの描画領域内に文字を描画せずに（つまり、空白）、処理を次のステップ１０５に進める。つまり、描画文字サイズが最小であっても３文字以上描画領域内に記述できない番組セルの場合、当該番組セルは空白にして描画される（図９〜図１１の番組セルＣ３等参照）。
【０１２６】
ステップ１０５において、ＣＰＵ１０は、現在選択されているテレビ局において処理されていない番組セルがあるか否かを判断する。そして、ＣＰＵ１０は、現在選択されているテレビ局において未処理の番組セルが残っている場合、上記ステップ９４に戻って処理を繰り返す。一方、ＣＰＵ１０は、現在選択されているテレビ局において未処理の番組セルがない場合、次のステップ１０６に処理を進める。
【０１２７】
ステップ１０６において、ＣＰＵ１０は、番組表において処理されていないテレビ局があるか否かを判断する。そして、ＣＰＵ１０は、番組表において未処理のテレビ局が残っている場合、上記ステップ９１に戻って処理を繰り返す。一方、ＣＰＵ１０は、番組表における全てのテレビ局が処理された場合、当該サブルーチンによる処理を終了する。
【０１２８】
図１４に戻り、上記ステップ６３またはステップ６２の処理の後、ＣＰＵ１０は、番組表の表示を終了するか否かを判断する（ステップ６４）。表示を終了する条件としては、例えば、番組表が表示終了となる条件が満たされたことや、ユーザが番組の表示を終了する操作を行ったこと等がある。ＣＰＵ１０は、表示を終了しない場合に上記ステップ５３に戻って処理を繰り返し、表示を終了する場合に当該フローチャートによる処理を終了する。
【０１２９】
このように、本実施形態に係る表示制御プログラムを実行するゲーム装置本体５では、ユーザの文字サイズ設定に応じて表示情報の視認性を高め、表示情報の視認性を高めるための操作性を向上させることができる。例えば、各番組セルの描画領域の大きさと指示された文字サイズとに基づいて、当該描画領域内に描画可能な文字数を算出し、描画可能文字数に応じて、各描画領域内にそれぞれ描画される文字サイズを決定するため、番組表の視認性を高めることができる。また、ユーザの操作に応じて、描画領域毎に文字サイズを変更するか否かを判別して処理するので、視認性を高めるための操作性を向上させることができる。
【０１３０】
なお、上述した説明では、番組名を記述する文字サイズが４段階（「大」、「中」、「小」、「極小」）に設定された例を用いたが、設定する文字サイズは４段階でなくてもかまわない。例えば、２段階や３段階の文字サイズを用いて番組名を記述してもいいし、５段階以上の文字サイズを用いて番組名を記述してもかまわない。
【０１３１】
また、上述した説明では、各番組セルに番組名を少なくとも３文字記述することをルールとしたが、他の態様のルールでもかまわない。例えば、番組セルに少なくとも記述する文字数を、ユーザが設定してもかまわない。
【０１３２】
また、番組セルの描画領域の描画可能文字数に応じて、当該描画領域に描画する文字サイズを変更してもかまわない。一例として、文字サイズ「小」で描画可能文字数を算出した際、描画可能文字数が３文字以上５文字未満の描画領域については文字サイズ「小」で描画し、描画可能文字数が５文字以上７文字未満の描画領域については文字サイズ「中」で再度描画可能文字数を算出した後に文字サイズ「中」で描画し、描画可能文字数が７文字以上の描画領域については文字サイズ「大」で再度描画可能文字数を算出した後に文字サイズ「大」で描画する。また、他の例として、ユーザの操作によって文字サイズが「中」に設定された場合に、描画可能文字数が３文字未満の描画領域については設定された文字サイズよりも小さい文字サイズ「小」で描画し、描画可能文字数が３文字以上５文字未満の描画領域については、設定された文字サイズである「中」で描画し、描画可能文字数が５文字以上の描画領域については設定された文字サイズよりも大きい文字サイズ「大」で再度描画可能文字数を算出した後に描画可能と判断されれば文字サイズ「大」で描画する。他の例として、描画可能文字数が所定文字数（例えば、３文字）以上を維持できるところまで文字サイズを大きくして、各番組セルの番組名を描画する。これによって、描画領域の描画可能文字数に応じて、当該描画領域内に適切な文字数が表示可能な範囲で、設定された文字サイズより大きな文字サイズに変更することができるため、さらに表示情報の視認性を高めることができる。
【０１３３】
また、番組セルに記述する番組文字列データＤｂ２ｂで示される文字列の文字毎に優先順位を設定しておき、番組名の全ての文字が記述できないときに優先順位の高い文字から順に表示するようにしてもかまわない。例えば、他の番組と重複が多い文字に対する優先順位を相対的に低く設定すれば、少ない文字数で番組名が表示されたとしても他の番組との区別が容易となる。
【０１３４】
また、上記ステップ５６における描画領域幅算出処理においては、描画領域の一部が表示領域から外れた際、描画領域の幅方向に対して描画領域幅ｄｗの再設定を行っている。この処理において、描画領域の一部が表示領域の左に外れた場合（図２０参照）および描画領域の一部が表示領域の右に外れた場合共に、描画領域幅ｄｗの再設定を行ってもかまわない。この場合、上記ステップ１０３において、描画領域の一部が表示領域外にある場合、当該表示領域内に制限した描画領域を用いて番組名を描画する。また、描画領域幅算出処理において、描画領域の一部が表示領域の左に外れた場合のみ、描画領域幅ｄｗの再設定を行ってもかまわない。この場合、上記ステップ１０３において、描画領域の左側の一部が表示領域外にある場合、当該表示領域内に制限した描画領域を用いて番組名を描画し、描画領域の右側の一部が表示領域外にある場合、当該表示領域外となった一部を含めた描画領域（すなわち、領域制限なし）を用いて番組名を描画する。
【０１３５】
また、上記ステップ５６における描画領域幅算出処理において、描画領域の一部が表示領域から外れた際、描画領域の高さ方向に対して描画領域高さｄｈの再設定を行ってもかまわない。この場合、描画領域の一部が表示領域の上に外れた場合および描画領域の一部が表示領域の下に外れた場合共に、描画領域高さｄｈの再設定を行う。そして、上記ステップ１０３において、描画領域の一部が表示領域外にある場合、当該表示領域内に制限した描画領域を用いて番組名を描画する。
【０１３６】
また、上述した説明では、横軸を時間軸、縦軸を放送局軸としたマトリックス状の番組表を用いたが、他の態様の番組表でもかまわない。例えば、横軸を放送局軸、縦軸を時間軸としたマトリックス状の番組表でも、本発明を適用することができる。この場合、番組セルの描画領域の一部が表示領域外か否かの判断を、当該描画領域の縦方向（高さ）に対して行えば、同様の表示制御処理が可能となる。
【０１３７】
また、上述した説明では、２次元の仮想世界に配置された２次元の番組表例を用いたが、３次元の仮想空間に配置された番組表に対する表示制御も可能であることは言うまでもない。
【０１３８】
また、上述した説明では、横軸を放送局軸、縦軸を時間軸としたマトリックス状の番組表における各番組セルに記述する文字列の表示制御を行う例を用いたが、番組表とは異なる他の態様で記述される文字列の表示制御も可能である。例えば、一方の軸をゲーム種類の軸、他方の軸を時間軸としたマトリックス状のゲームスケジュール表における各セルに記述する文字列の表示制御を行ってもかまわない。また、双方の軸が時刻軸、日付軸、曜日軸、ユーザ軸等から選ばれたマトリックス状のスケジュール表における各セルに記述する文字列の表示制御を行ってもかまわない。さらに、複数の行および列を有するマトリックス状の表における各セルに記述する文字列の表示制御を行ってもかまわない。このように、本発明は、番組表以外であっても、表形式の各セルに記述する文字列に対して適用可能であり、上述した番組表で得られる効果と同様の効果が得られることは言うまでもない。
【０１３９】
また、撮像素子７４３で撮像した画像データを解析してマーカ８Ｌおよび８Ｒからの赤外光の位置座標やそれらの重心座標等を取得し、それらを処理結果データとしてコントローラ７内で生成してゲーム装置本体５へ送信する態様を説明したが、他の処理段階のデータをコントローラ７からゲーム装置本体５へ送信してもかまわない。例えば、撮像素子７４３が撮像した画像データをコントローラ７からゲーム装置本体５へ送信し、ＣＰＵ１０において上記解析処理を行って処理結果データを取得してもかまわない。この場合、コントローラ７に設けられた画像処理回路７４４が不要となる。また、上記画像データの解析途中のデータをコントローラ７からゲーム装置本体５へ送信してもかまわない。例えば、画像データから得られる輝度、位置、および面積等を示すデータをコントローラ７からゲーム装置本体５へ送信し、ＣＰＵ１０において残りの解析処理を行って処理結果データを取得してもかまわない。
【０１４０】
また、上述した説明では、２つのマーカ８Ｌおよび８Ｒからの赤外光を、コントローラ７の撮像情報演算部７４の撮像対象としたが、他のものを撮像対象にしてもかまわない。例えば、１つまたは３つ以上のマーカをモニタ２の近傍に設置し、それらのマーカからの赤外光を撮像情報演算部７４の撮像対象としてもかまわない。また、モニタ２の表示画面自体や他の発光体（室内灯等）を撮像情報演算部７４の撮像対象としてもかまわない。撮像対象とモニタ２の表示画面との配置関係に基づいて、当該表示画面に対するコントローラ７の指し示し位置を演算すれば、様々な発光体を撮像情報演算部７４の撮像対象として用いることができる。
【０１４１】
また、上述した説明では、コントローラ７とゲーム装置本体５とが無線通信によって接続された態様を用いたが、コントローラ７とゲーム装置本体５とがケーブルを介して電気的に接続されてもかまわない。この場合、コントローラ７に接続されたケーブルをゲーム装置本体５の接続端子に接続する。
【０１４２】
また、上述したコントローラ７の形状や、それらに設けられている操作部７２の形状、数、および設置位置等や、表示制御処理で用いる各数式、定数、処理順序等は、単なる一例に過ぎず他の形状、数、設置位置、数式、定数、処理順序であっても、本発明を実現できることは言うまでもない。また、コントローラ７における撮像情報演算部７４の位置（撮像情報演算部７４の光入射口）は、ハウジング７１の前面でなくてもよく、ハウジング７１の外部から光を取り入れることができれば他の面に設けられてもかまわない。
【０１４３】
また、上述した説明では、コントローラ７に対する操作に応じて処理を行う据置型のゲーム装置本体５に本願発明を適用した例を説明したが、携帯ゲーム装置にも適用することができる。例えば、携帯ゲーム装置の本体に設けられた操作ボタンに対する操作に応じて、上述した表示制御処理を実行する。このように本願発明を適用することで、携帯ゲーム装置等においても、本発明の表示制御処理を実現することができる。
【０１４４】
また、上述した説明では、据置型や携帯型のゲーム装置に本願発明を適用した例を説明したが、入力装置によって操作される一般的なパーソナルコンピュータ等の情報処理装置や携帯型の情報処理装置にも適用することができる。携帯型の情報処理装置としては、例えば一般的なパーソナルコンピュータ、携帯電話機、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等のデバイスに適用することができる。
【０１４５】
また、本発明の表示制御プログラムは、ゲーム装置本体５内部の不揮発性記憶装置に予め記録されるだけでなく、光ディスク４等の外部記憶媒体を通じてゲーム装置本体５に供給されてもよい。なお、表示制御プログラムを記憶する情報記憶媒体としては、ＣＤ−ＲＯＭ、ＤＶＤ、あるいはそれらに類する光学式ディスク状記憶媒体の他に、不揮発性半導体メモリでもよい。また、当該表示制御プログラムは、有線または無線の通信回線を通じてゲーム装置本体５に供給されてもよい。
【０１４６】
以上、本発明を詳細に説明してきたが、上述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【産業上の利用可能性】
【０１４７】
本発明に係る表示制御プログラムおよび表示制御装置は、表示情報の視認性を高め、表示情報の視認性を高めるための操作性を向上させることができ、複数の描画領域内にそれぞれ所定の文字を表示するためのプログラムや装置等として有用である。
【図面の簡単な説明】
【０１４８】
【図１】本発明の一実施形態に係るゲームシステム１を説明するための外観図
【図２】図１のゲーム装置本体５の機能ブロック図
【図３】図１のコントローラ７の上面後方から見た斜視図
【図４】図３のコントローラ７を下面前方から見た斜視図
【図５】図３のコントローラ７の上筐体を外した状態を示す斜視図
【図６】図４のコントローラ７の下筐体を外した状態を示す斜視図
【図７】図３のコントローラ７の構成を示すブロック図
【図８】マーカ８Ｌおよび８Ｒと撮像情報演算部７４との視野角を説明するための図
【図９】モニタ２に表示される番組表の第１の例を示す画面例
【図１０】モニタ２に表示される番組表の第２の例を示す画面例
【図１１】モニタ２に表示される番組表の第３の例を示す画面例
【図１２】ゲーム装置本体５のメインメモリに記憶される主なデータの一例を示す図
【図１３】図１２に示す番組セルデータＤｂ２の詳細な内容の一例を示す図
【図１４】ゲーム装置本体５において実行される表示制御処理の流れを示すフローチャート
【図１５】図１４のステップ５６における描画領域幅算出処理の詳細な動作を示すサブルーチン
【図１６】図１４のステップ６３における番組表表示更新処理の詳細な動作を示すサブルーチン
【図１７】図１６のステップ９８における描画可能文字数算出処理の詳細な動作を示すサブルーチン
【図１８】番組表に対する表示領域の設定例を説明するための図
【図１９】番組セルに設定される描画領域幅ｄｗおよび描画領域高さｄｈの設定例を説明するための図
【図２０】番組セルの一部分が表示領域内となった場合に設定される描画領域幅ｄｗおよび描画領域高さｄｈの設定例を説明するための図
【符号の説明】
【０１４９】
１…ゲームシステム
２…モニタ
２ａ、７０６…スピーカ
３…ゲーム装置
４…光ディスク
５…ゲーム装置本体
１０…ＣＰＵ
１１…システムＬＳＩ
１２…外部メインメモリ
１３…ＲＯＭ／ＲＴＣ
１４…ディスクドライブ
１５…ＡＶ−ＩＣ
１６…ＡＶコネクタ
１７…フラッシュメモリ
１８…無線通信モジュール
１９…無線コントローラモジュール
２０…拡張コネクタ
２１…外部メモリカード用コネクタ
２２、２３…アンテナ
２４…電源ボタン
２５…リセットボタン
２６…イジェクトボタン
３１…入出力プロセッサ
３２…ＧＰＵ
３３…ＤＳＰ
３４…ＶＲＡＭ
３５…内部メインメモリ
７…コントローラ
７１…ハウジング
７２…操作部
７３…コネクタ
７４…撮像情報演算部
７４１…赤外線フィルタ
７４２…レンズ
７４３…撮像素子
７４４…画像処理回路
７５…通信部
７５１…マイコン
７５２…メモリ
７５３…無線モジュール
７５４…アンテナ
７００…基板
７０１…加速度センサ
７０２…ＬＥＤ
７０４…バイブレータ
７０７…サウンドＩＣ
７０８…アンプ
８…マーカ
【図１】
0005144242.tif 000002
【図２】
0005144242.tif 000003
【図３】
0005144242.tif 000004
【図４】
0005144242.tif 000005
【図５】
0005144242.tif 000006
【図６】
0005144242.tif 000007
【図７】
0005144242.tif 000008
【図８】
0005144242.tif 000009
【図９】
0005144242.tif 000010
【図１０】
0005144242.tif 000011
【図１１】
0005144242.tif 000012
【図１２】
0005144242.tif 000013
【図１３】
0005144242.tif 000014
【図１４】
0005144242.tif 000015
【図１５】
0005144242.tif 000016
【図１６】
0005144242.tif 000017
【図１７】
0005144242.tif 000018
【図１８】
0005144242.tif 000019
【図１９】
0005144242.tif 000020
【図２０】
0005144242.tif 000021