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