JP5132131B2 - ポインティング装置の調整プログラムおよびポインティング装置 - Google Patents

ポインティング装置の調整プログラムおよびポインティング装置 Download PDF

Info

Publication number
JP5132131B2
JP5132131B2 JP2006312145A JP2006312145A JP5132131B2 JP 5132131 B2 JP5132131 B2 JP 5132131B2 JP 2006312145 A JP2006312145 A JP 2006312145A JP 2006312145 A JP2006312145 A JP 2006312145A JP 5132131 B2 JP5132131 B2 JP 5132131B2
Authority
JP
Japan
Prior art keywords
distance
width
display surface
data
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2006312145A
Other languages
English (en)
Other versions
JP2008125666A (ja
Inventor
英二 青沼
賢治 松谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2006312145A priority Critical patent/JP5132131B2/ja
Priority to US11/727,077 priority patent/US7969413B2/en
Publication of JP2008125666A publication Critical patent/JP2008125666A/ja
Priority to US13/105,421 priority patent/US8674937B2/en
Application granted granted Critical
Publication of JP5132131B2 publication Critical patent/JP5132131B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/213Input arrangements for video game devices characterised by their sensors, purposes or types comprising photodetecting means, e.g. cameras, photodiodes or infrared cells
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/219Input arrangements for video game devices characterised by their sensors, purposes or types for aiming at specific areas on the display, e.g. light-guns
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/22Setup operations, e.g. calibration, key configuration or button assignment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • G06F3/0325Detection arrangements using opto-electronic means using a plurality of light emitters or reflectors or a plurality of detectors forming a reference frame from which to derive the orientation of the object, e.g. by triangulation or on the basis of reference deformation in the picked up image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Input By Displaying (AREA)

Description

この発明はポインティング装置の調整プログラムおよびポインティング装置に関し、特にたとえば、既知の撮像対象を撮像するための撮像手段を備える入力装置から取得した入力データを用いて情報処理を行って表示装置へ出力を行う、ポインティング装置の調整プログラムおよびポインティング装置に関する。
従来のこの種のポインティング装置の一例が特許文献1に開示される。この特許文献1の射撃ゲーム装置によれば、一対の発光素子から交互に発光する光を、銃口に設けられた受光素子で交互に順次受信し、受光素子は画面からの距離と各発光素子からの光の入射角等複数の検出信号を出力する。これら複数の検出信号から第1の演算回路は照準座標を算出する。一方、第2の演算回路は、画面内における標的画像の座標を常時認識しており、スイッチが作動したとき、標的画像の座標と照準座標とがほぼ一致したどうかを判断する。
特開平8−38741号公報
この特許文献1の技術は、アーケードゲーム機で多く見られる技術であり、アーケードゲーム機の場合には、表示装置や発光素子等の配置位置は設計段階で予め固定することができる。また、受光素子を備えたゲーム用の銃(銃コントローラ)もアーケードゲーム機に有線接続されるため、その可動範囲は予め限定される。そのため、銃コントローラで表示装置の右端を狙った際には表示装置の右端の座標が照準座標となり、逆に、表示装置の左端を狙った際には表示装置の左端の座標が照準座標となるように、予め設定しておけば、すべてのアーケードゲーム機で或る程度違和感無くゲームを進めることができる。
しかし、家庭用ゲーム機で上述のようなポインティング装置を実現する際には、テレビ画面のサイズ、ディスプレイと銃コントローラとの距離、発光素子の配置間隔が各家庭の状況(使用環境)によって異なる。このため、固定の環境設定によって対応関係を決定してしまうと、環境設定が適切である場合もあれば、環境設定が不適切である場合もある。後者の場合には、プレイヤが指示した方向(画面上の位置)とは大きくずれた方向を指示してしまうという問題が発生する。
それゆえに、この発明の主たる目的は、新規な、ポインティング装置の調整プログラムおよびポインティング装置を提供することである。
また、この発明の他の目的は、使用環境に応じた最適な設定を行うことができる、ポインティング装置の調整プログラムおよびポインティング装置を提供することである。
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
第1の発明は、既知の撮像対象を撮像するための撮像手段を備える入力装置から、当該撮像手段によって得られる撮像画像のデータまたは当該データに所定の演算を行ったデータを入力データとして取得し、当該入力データを用いて情報処理を行って表示装置へ出力を行うポインティング装置のコンピュータで実行される調整プログラムである。調整プログラムは、表示面幅取得ステップ、適正距離決定ステップ、現在距離算出ステップ、および報知ステップをコンピュータに実行させる。表示面幅取得ステップは、表示装置の表示面の最大幅を取得する。適正距離決定ステップは、表示面幅取得ステップで取得された表示面の最大幅に応じて入力装置と表示装置との適正距離を決定する。現在距離算出ステップは、入力データに基づいて入力装置から撮像対象までの現在距離を算出する。報知ステップは、適正距離と現在距離の関係に応じた報知を行う。
第1の発明では、調整プログラムはポインティング装置(12)のコンピュータ(36)において実行される。ポインティング装置では、既知の撮像対象(340m、340n)を入力装置(22)の撮像手段(98)で撮像することによって、入力を取得することができる。撮像対象のたとえば大きさが予め決められており、つまり、既知にされる。さらに、或る実施例では、撮像対象としての2つのマーカ間の距離が既知にされる。ポインティング装置では、撮像手段によって得られる撮像画像のデータまたは当該データに所定の演算を行ったデータが入力データとして取得され、当該入力データを用いて情報処理が実行されて、その結果を表示装置(34)に出力する。調整プログラムは、このようなポインティング装置のコンピュータに、入力装置と撮像対象または表示装置との距離を適正な距離に調整するための処理を実行させる。具体的には、表示面幅取得ステップ(S3、S3´、S105)では、表示装置の表示面の最大幅(ディスプレイ幅D)が取得される。表示面の最大幅は、たとえば、ユーザによる直接入力、または、ユーザによる表示装置のサイズの入力によって取得され得る。あるいは、撮像対象としての2つのマーカ間の実距離と画像上の距離を取得することによって、表示面の最大幅は算出され得る。適正距離決定ステップ(S5)では、表示面の最大幅に応じて入力装置と撮像対象または表示装置との適正距離が決定する。後述されるように、画面端への理想的なポインティングの際の位置関係から得られる角度θ(数2で示される)と、撮像対象の認識の限界となる位置関係から得られる角度β(数3で示される)とが等しくなるときの関係式に従って距離Lを算出することによって、適正距離を得ることができる。たとえば、既存の表示装置の表示面の最大幅に対応付けられた適正距離を示すテーブルを予め記憶しておき、このテーブルを参照することによって、適正距離は取得され得る。あるいは、上記適正距離を算出する関係式に従って、適正距離は算出されてもよい。現在距離算出ステップ(S11)では、入力データに基づいて入力装置と撮像対象との現在距離(Lc)が算出される。後述の実施例では、撮像対象が既知であり、かつ、撮像画像の幅および撮像手段の視野角が決まっていることから、現在距離は、撮像画像における撮像対象の距離を用いて数4および数5に従って算出される。報知ステップ(S13)では、適正距離と現在距離との関係に応じた報知を行う。現在距離が適正距離であるのか否かが分かるような報知が、画像表示、音出力、振動または光出力などの方法で行われる。
第1の発明によれば、表示装置の表示面の最大幅に応じた適正距離を決定することができ、適正距離と現在距離に応じた報知を行うことができるので、現在距離が適正距離であるのか否かをユーザに知らせることができる。
第2の発明は、報知ステップは、現在距離と適正距離との差分に応じた画像の表示出力、音声や効果音の音出力または前記入力装置の振動によって報知を行う、第1の発明に従属するポインティング装置の調整プログラムである。
第2の発明では、現在距離と適正距離との差分に応じた画像が表示装置に表示され、または、上記差分に応じた音声や効果音のような音が音出力装置(34a、104)から出力され、あるいは、上記差分に応じて入力装置の振動装置(106)が振動されるので、現在距離と適正距離との差を容易に知らせることができ、したがって、適正距離への調整が容易に行える。
第3の発明は、報知ステップは、所定の大きさを有する基準画像と、現在距離に連動して大きさが変化し、かつ現在距離が適正距離と同じ距離になったとき基準画像と同じ大きさとなる調整画像とを表示装置に表示することによって報知を行う、第1の発明に従属するポインティング装置の調整プログラムである。
第3の発明では、所定サイズの基準画像(202)とともに、現在距離に連動してサイズの変化する調整画像(204)とが表示される。現在距離が適正距離になったとき、調整画像のサイズが基準画像のそれと同じになる。調整画像と基準画像の大きさを合わせるように撮像対象から入力装置までの距離を変えることによって、容易に適正距離に調整することができる。
第4の発明は、既知の撮像対象は、第1のスケールで計測される所定距離を隔てて配置される2つのマーカであり、かつ、2つのマーカは表示装置の表示面の所定の1辺の近傍に、当該所定の1辺に対して平行に配置されるものであり、ユーザによって入力された所定距離または予め記憶されている所定距離を取得する距離取得ステップをコンピュータにさらに実行させる、第1の発明に従属するポインティング装置の調整プログラムである。表示面幅取得ステップは、ユーザの入力に応じて表示面に表示された画像で、2つのマーカの配置方向の幅を変化させることによって、第2のスケールで2つのマーカ間の距離を測定する目印距離測定ステップ、および距離取得ステップで取得された所定距離と目印距離測定ステップによって測定されるマーカ間の距離との比率および第2のスケールでの表示面の最大幅に基づいて第1のスケールでの表示面の最大幅を算出する表示面幅算出ステップを含む。
第4の発明では、撮像対象としての2つのマーカが、表示面の所定の1辺の近傍に、当該所定の1辺に対して平行に配置される。2つのマーカは、第1のスケールで計測される所定距離を隔てて配置される。距離取得ステップ(S1)では、2つのマーカ間の所定距離(センサ幅S)が取得される。つまり、第1のスケールでの2つのマーカ間の所定距離が取得される。第1のスケールはたとえば実距離を測る単位であるメートルである。2つのマーカ間の所定距離はユーザによって入力される。あるいは、2つのマーカ間の距離が固定される場合には、予め記憶された2つのマーカ間の所定距離が取得される。目印距離測定ステップ(S41)では、ユーザの入力に応じて2つのマーカの配置方向の幅の変化される画像(200)を用いて、表示面における第2のスケールで2つのマーカ間の距離(センサ対応幅W)が測定される。第2のスケールはたとえばディジタル画像の単位(画素)であり、これによって画像上の距離を測ることができる。表示面幅算出ステップ(S37)では、第1のスケールでの表示面の最大幅(ディスプレイ幅D)を、第1のスケールでの所定距離(センサ幅S)と第2のスケールでの距離(センサ対応幅W)との比率および第2のスケールでの表示面の最大幅(最大表示幅M)に基づいて、たとえば後述される数1に従って算出する。このように、第2のスケールでの表示面の最大幅が予め決まっており記憶されているので、第1のスケールでの2つのマーカ間の所定距離を取得するとともに、第2のスケールでの2つのマーカの設置間隔を測定することによって、表示面の最大幅を算出することができる。したがって、ユーザが表示装置の表示面の最大幅を知らなくても、簡単に調整を行うことができる。
第5の発明は、既知の撮像対象は、第1のスケールで計測される所定距離を隔てて配置される2つのマーカであり、かつ、2つのマーカは表示装置の表示面の所定の1辺の近傍に、当該所定の1辺に対して平行に配置されるものであり、ユーザによって入力された所定距離または予め記憶されている所定距離を取得する距離取得ステップをコンピュータにさらに実行させる、第1の発明に従属するポインティング装置の調整プログラムである。表示面幅取得ステップは、ユーザの入力に応じて表示面に表示された画像で、2つのマーカの配置方向の幅を変化させることによって、第2のスケールで2つのマーカ間の距離を測定する目印距離測定ステップ、および目印距離測定ステップで測定されたマーカ間の距離と第2のスケールでの表示面の最大幅との比率および距離取得ステップで取得された所定距離に基づいて第1のスケールでの表示面の最大幅を算出する表示面幅算出ステップを含む。
第5の発明では、表示面幅算出ステップの算出以外は、上述の第4の発明と同様である。表示面幅算出ステップでは、第2のスケールでの2つのマーカ間の距離(センサ対応幅W)と第2のスケールでの表示面の最大幅(最大表示幅M)との比率および第1のスケールでの2つのマーカ間の所定距離(センサ幅S)に基づいて、第1のスケールでの表示面の最大幅(ディスプレイ幅D)が算出される。したがって、ユーザが表示装置の表示面の最大幅を知らなくても、簡単に調整を行うことができる。
第6の発明は、現在距離算出ステップは、撮像手段によって得られる撮像画像上の2つのマーカ間の距離を用いて現在距離を算出する、第4または第5の発明に従属するポインティング装置の調整プログラムである。
第6の発明では、現在距離算出ステップでは、撮像画像上の2つのマーカ間の距離(Si)を用いて現在距離(Lc)が算出されるので、ユーザは入力装置を持って撮像対象を撮像しながら表示装置または撮像対象からの距離を変えることによって、簡単に調整を行うことができる。
第7の発明は、表示面幅取得ステップは、ユーザによって入力された表示装置の表示面の最大幅を取得する表示面幅入力ステップを含む、第1の発明に従属するポインティング装置の調整プログラムである。
第7の発明では、表示面幅入力ステップ(S3´、S105)によって、たとえば、ユーザによる入力装置に設けられる操作手段(72)の操作に応じた入力装置からのデータに基づいて、表示面の最大幅(ディスプレイ幅D)を取得する。したがって、ユーザが表示装置の表示面の最大幅を知っている場合には、ユーザにディスプレイ幅を入力してもらうことが可能である。
第8の発明は、既知の撮像対象を撮像するための撮像手段を備える入力装置から、当該撮像手段によって得られる撮像画像のデータまたは当該データに所定の演算を行ったデータを入力データとして取得し、当該入力データを用いて情報処理を行って表示装置へ出力を行うポインティング装置である。ポインティング装置は、表示面幅取得手段、適正距離決定手段、現在距離算出手段、および報知手段を備える。表示面幅取得手段は、表示装置の表示面の最大幅を取得する。適正距離決定手段は、表示面幅取得手段で取得された表示面の最大幅に応じて入力装置と表示装置との適正距離を決定する。現在距離算出手段は、入力データに基づいて入力装置から撮像対象までの現在距離を算出する。報知手段は、適正距離と現在距離の関係に応じた報知を行う。
第8の発明は、上述の第1の発明の調整プログラムに対応するポインティング装置であり、第1の発明と同様な効果を奏する。
この発明によれば、撮像対象と入力装置との間の現在距離が適正距離とどのような関係にあるのかを知らせることができるので、使用環境に応じた最適な設定を行うことができる。ユーザは自身の指示した位置ないし方向と画面上で認識される方向ないし位置とが一致する最適な距離を置いて操作を行うことができる。
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
図1を参照して、この発明の一実施例であるポインティング装置10はゲームシステムの形態で構成される。ゲームシステム10は、ビデオゲーム装置12およびコントローラ22を含む。ビデオゲーム装置12とコントローラ22とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
ビデオゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、ゲームプログラムおよびデータを記憶した情報記憶媒体の一例である光ディスク18(図2参照)が挿入されて、ハウジング14内のディスクドライブ68(図2参照)に装着される。
また、ビデオゲーム装置12のハウジング14の前面であり、ディスクスロット16の近傍には、メモリカードスロットカバー28が設けられる。このメモリカードスロットカバー28の内側には、メモリカードスロット(図示せず)が設けられ、外部メモリカード(以下、単に「メモリカード」という。)30(図2参照)が挿入される。メモリカード30は、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカード30に対して行うことに代えて、たとえばビデオゲーム装置12の内部にフラッシュメモリ等の内部メモリを設けて、当該内部メモリに対して行うようにしてもよい。
ビデオゲーム装置12のハウジング14の後面には、AVケーブルコネクタ(図示せず)が設けられ、そのコネクタを用いて、AVケーブル32aを通してビデオゲーム装置12にモニタ34を接続する。このモニタ34は典型的にはカラーテレビジョン受像機であり、AVケーブル32aは、ビデオゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)ゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。
また、モニタ34の周辺(この実施例では、表示面の上側)には、センサバー34bが設けられ、このセンサバー34bには、2つのLEDモジュール(以下、「マーカ(目印)」という。)340m,340nが所定の距離を隔てて設けられる。マーカ340m,340nは、赤外LEDであり、それぞれモニタ34の前方に向けて赤外光を出力する。センサバー34bから延びるケーブル32bはビデオゲーム装置12の後面のコネクタ(図示せず)に接続され、ビデオゲーム装置12からマーカ340m,340nに電源が与えられる。
なお、ビデオゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ビデオゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
このゲームシステム10において、ユーザまたはプレイヤがゲーム(または他のアプリケーション)をプレイするために、ユーザはまずビデオゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)をストアしている適宜の光ディスク18を選択し、その光ディスク18をビデオゲーム装置12のディスクスロット16を通してディスクドライブ68にローディングする。応じて、ビデオゲーム装置12がその光ディスク18にストアされているソフトウェアに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはビデオゲーム装置12に入力を与えるためにコントローラ22を操作する。
図2は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。ビデオゲーム装置12には、CPU36が設けられる。このCPU36は、ビデオゲーム装置12の全体的な制御を行うコンピュータである。CPU36は、ゲームプロセッサとして機能し、このCPU36には、バスを介して、メモリコントローラ38が接続される。メモリコントローラ38は主として、CPU36の制御の下で、バスを介して接続されるメインメモリ40の書込みや読出しを制御する。このメモリコントローラ38にはGPU(Graphics Processing Unit) 42が接続される。
GPU42は、描画手段の一部を形成し、たとえばシングルチップASICで構成され、メモリコントローラ38を介してCPU36からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従って、ジオメトリユニット44およびレンダリングユニット46によって3Dゲーム画像を生成する。つまり、ジオメトリユニット44は、3次元座標系の各種オブジェクト(複数のポリゴンで構成されている。そして、ポリゴンとは少なくとも3つの頂点座標によって定義される多角形平面をいう。)の回転,移動,変形等の座標演算処理を行う。レンダリングユニット46は、各種オブジェクトの各ポリゴンにテクスチャ(模様画像)を貼り付けるなどの画像生成処理を実行する。したがって、GPU42によって、ゲーム画面上に表示すべき3次元画像データが作成され、その画像データがフレームバッファ48内に記憶される。
なお、GPU42が作画コマンドを実行するにあたって必要なデータ(プリミティブまたはポリゴンやテクスチャ等)は、GPU42がメモリコントローラ38を介して、メインメモリ40から入手する。
フレームバッファ48は、たとえばラスタスキャンモニタ34の1フレーム分の画像データを描画(蓄積)しておくためのメモリであり、GPU42によって1フレーム毎に書き換えられる。具体的には、フレームバッファ48は、1画素(ピクセル)毎に、画像の色情報を順序立てて記憶している。ここで、色情報は、R,G,B,Aについてのデータであり、たとえば、8ビットのR(赤)データ、8ビットのG(緑)データ、8ビットのB(青)データおよび8ビットのA(アルファ)データである。なお、Aデータは、マスク(マット画像)についてのデータである。後述のビデオI/F58がメモリコントローラ38を介してフレームバッファ48のデータを読み出すことによって、モニタ34の画面上に3次元ゲーム画像が表示される。
また、Zバッファ50は、フレームバッファ48に対応する画素数×1画素当たりの奥行きデータのビット数に相当する記憶容量を有し、フレームバッファ48の各記憶位置に対応するドットの奥行き情報または奥行きデータ(Z値)を記憶するものである。
なお、フレームバッファ48およびZバッファ50は、ともにメインメモリ40の一部を用いて構成されてもよく、また、これらはGPU42の内部に設けられてもよい。
メモリコントローラ38はまた、DSP(Digital Signal Processor)52を介して、オーディオ用のRAM(以下、「ARAM」という。)54に接続される。したがって、メモリコントローラ38は、メインメモリ40だけでなく、サブメモリとしてのARAM54の書込みおよび/または読出しを制御する。
DSP52は、サウンドプロセッサとして働き、メインメモリ40に記憶されたサウンドデータ(図示せず)を用いたり、ARAM54に書き込まれている音波形(音色)データ(図示せず)を用いたりして、ゲームに必要な音、音声、効果音或いは音楽に対応するオーディオデータを生成する。
メモリコントローラ38は、さらに、バスによって、各インタフェース(I/F)56,58,60,62および64に接続される。コントローラI/F56は、ビデオゲーム装置12にBluetooth通信ユニット66を介して接続されるコントローラ22のためのインタフェースである。具体的に言うと、Bluetooth通信ユニット66は、コントローラ22から送信される入力データを受信し、コントローラI/F56は、その入力データを、メモリコントローラ38を通してCPU36に与える。ただし、この実施例では、入力データは、後述する操作データ、加速度データおよびマーカ座標データの少なくとも1つを含む。また、Bluetooth通信ユニット66は、CPU36によって作成されたデータを、メインメモリ40およびコントローラI/F56を通して受信し、当該データを送信すべきコントローラ22に送信する。CPU36は、コントローラ22のスピーカ104(図4参照)から音を出力させる場合には、DSP52で生成したオーディオデータを含む音出力指示データを作成して、当該データをBluetooth通信ユニット66からコントローラ22に送信させる。また、CPU36は、コントローラ22のバイブレータ106(図4参照)を振動させる場合には、振動制御データを含む振動出力指示データを作成して、当該データをBluetooth通信ユニット66から送信させる。さらに、CPU36は、コントローラ22のLED76(図3および図4参照)を点灯させる場合には、点灯制御データを含む点灯指示データを作成して、当該データをBluetooth通信ユニット66から送信させる。
ビデオI/F58は、フレームバッファ48にアクセスし、GPU42で作成した画像データを読み出して、画像信号または画像データ(ディジタルRGBAピクセル値)をAVケーブル32a(図1)を介してモニタ34に与える。
外部メモリI/F60は、ビデオゲーム装置12の前面に挿入されるメモリカード30をメモリコントローラ38に連係させる。それによって、メモリコントローラ38を介して、CPU36がこのメモリカード30にデータを書込み、またはメモリカード30からデータを読み出すことができる。オーディオI/F62は、メモリコントローラ38を通してDSP52から与えられるオーディオデータまたは光ディスク18から読み出されたオーディオストリームを受け、それらに応じたオーディオ信号(音声信号)をモニタ34のスピーカ34aに与える。
そして、ディスクI/F64は、ディスクドライブ68をメモリコントローラ38に接続し、したがって、CPU36がディスクドライブ68を制御する。このディスクドライブ68によって光ディスク18から読み出されたプログラムやデータが、CPU36の制御の下で、メインメモリ40に書き込まれる。
なお、図2においては、簡単のため、センサバー34bおよび電源回路は省略してある。
図3にはコントローラ22の外観の一例が示される。図3(A)は、コントローラ22を上面後方から見た斜視図であり、図3(B)は、コントローラ22を下面前方から見た斜視図である。
コントローラ22は、たとえばプラスチック成型によって形成されたハウジング70を有している。ハウジング70は、その前後方向(図3に示すZ軸方向)を長手方向とした略直方体形状を有しており、全体として大人や子供の片手で把持可能な大きさである。一例として、ハウジング70は人間の掌とほぼ同じ長さまたは幅を持つ大きさをしている。プレイヤは、コントローラ22を用いて、それに設けられたボタンを押下することと、コントローラ22自体の位置や向きを変えることとによって、ゲーム操作を行うことができる。
ハウジング70には、複数の操作ボタンが設けられる。すなわち、ハウジング70の上面には、十字キー72a、Xボタン72b、Yボタン72c、Aボタン72d、セレクトスイッチ72e、メニュースイッチ72f、およびスタートスイッチ72gが設けられる。一方、ハウジング70の下面には凹部が形成されており、当該凹部の後方側傾斜面にはBボタン72hが設けられる。これら各ボタン(スイッチ)72a−72hには、ゲーム装置12が実行するゲームプログラムに応じてそれぞれ適宜な機能が割り当てられる。また、ハウジング70の上面には、遠隔からゲーム装置12本体の電源をオン/オフするための電源スイッチ72iが設けられる。コントローラ22に設けられる各ボタン(スイッチ)は、包括的に参照符号72を用いて示されることもある。
また、ハウジング70の後面には、外部拡張用のコネクタ74が設けられている。また、ハウジング70上面の後端側には複数のLED76が設けられ、この複数のLED76によって当該コントローラ22のコントローラ番号(コントローラの識別番号)が示される。ゲーム装置12には、たとえば最大4つのコントローラ22が接続可能であり、ゲーム装置12に複数のコントローラ22が接続される場合には、各コントローラ22には、たとえば接続順にコントローラ番号が付与される。各LED76はコントローラ番号と対応付けられており、当該コントローラ番号に対応するLED76が点灯される。
また、コントローラ22のハウジング70内には加速度センサ78(図4)が設けられている。加速度センサ78としては、典型的には静電容量式の加速度センサが用いられ得る。加速度センサ78は、当該加速度センサの検出部に加わっている加速度のうち、センシング軸ごとの直線成分の加速度や重力加速度を検出する。加速度センサ78は、少なくとも2つの互いに直交する軸方向の加速度を検出する。たとえば、2軸または3軸の加速度センサの場合には、加速度センサの検出部に加わっている加速度を、各軸に沿った直線成分の加速度としてそれぞれ検出する。具体的には、この実施例では、3軸加速度センサが適用され、コントローラ22の上下方向(図3に示すY軸方向)、左右方向(図3に示すX軸方向)および前後方向(図3に示すZ軸方向)の3軸方向のそれぞれで加速度を検知する。この加速度センサ78の各軸ごとに検出される加速度に所定の演算処理を施すことによって、コントローラ22の傾きや回転を算出することが可能である。たとえば、加速度センサ78が静止した状態においては、常に重力加速度が加わっており、この重力加速度に対する各軸の傾きに応じた加速度が各軸ごとに検出される。具体的には、加速度センサ78が水平状態で静止している(すなわち、XおよびZ軸方向が水平方向であり、かつ、Y軸方向が鉛直方向である)ときには、加速度センサ78のY軸に1Gの重力加速度が加わり、他の軸X,Zの重力加速度はほぼ0となる。次に、加速度センサ78の姿勢が水平状態より傾くと、加速度センサ78の各軸方向と重力方向との角度に応じて、重力加速度が加速度センサ78の各軸に分散され、このとき、加速度センサ78の各軸の加速度値が検出される。このような各軸ごとの加速度値に演算を加えることによって、重力方向に対する加速度センサ78の姿勢を算出することができる。
なお、加速度センサ78としては、ハウジング70の形状またはコントローラ22の持たせ方の限定等に応じて、上下方向、左右方向および前後方向のうちいずれか2方向の加速度を検出する2軸加速度センサが用いられてもよい。場合によっては1軸加速度センサが用いられてもよい。
さらに、コントローラ22は、撮像情報演算部80(図4参照)を有しており、図3(B)に示すように、ハウジング70の先端面には撮像情報演算部80の光入射口82が設けられる。
さらにまた、ハウジング70の上面においてメニュースイッチ72fとXボタン72bの間には複数の孔102が形成される。ハウジング70内においてこれら孔102に対応する位置にはスピーカ104(図4参照)が設けられており、プレイヤに対して手元のコントローラ22からも音を提供することができる。
また、ハウジング70内にはバイブレータ106(図4参照)が設けられる。このバイブレータ106は、たとえば振動モータやソレノイドであってよい。バイブレータ106によってコントローラ22に振動を発生するので、それを把持しているプレイヤの手にその振動を伝達することができる。
また、コントローラ22の電源は、ハウジング70内に取替可能に収容されるバッテリ(図示せず)によって与えられる。なお、図3に示したコントローラ22の形状や、ボタン(スイッチまたはスティック等)の形状、数および設置位置等は単なる一例に過ぎず、他の形状、数および設置位置等に適宜変更され得る。
図4はコントローラ22の電気的な構成を示すブロック図である。この図4を参照して、コントローラ22は、その内部に通信部84を備え、通信部84には、操作部72、加速度センサ78、撮像情報演算部80、スピーカ104、バイブレータ106およびLED76が接続される。なお、図4では省略しているが、通信部84には上述のコネクタ74や図示しない電源回路等も接続されている。
通信部84は、マイクロコンピュータ(マイコン)86、メモリ88、無線モジュール90およびアンテナ92を含む。マイコン86は、処理の際にメモリ88を記憶領域(作業領域やバッファ領域)として用いながら、無線モジュール90を制御して、取得したデータをゲーム装置12に送信したりゲーム装置12からのデータを受信したりする。
操作部72は、上述の操作ボタンないし操作スイッチ72a‐72iを示す。操作部72が操作されると、その操作信号が通信部84に与えられる。また、加速度センサ78が検出した各軸の加速度を示すデータは、通信部84へ出力される。加速度センサ78は、たとえば最大200フレーム/秒程度のサンプリング周期を有する。
撮像情報演算部80が取得したデータもまた通信部84に出力される。撮像情報演算部80は、赤外線フィルタ94、レンズ96、撮像素子98および画像処理回路100によって構成される。赤外線フィルタ94aは、コントローラ22の前方の光入射口82から入射する光から赤外線のみを通過させる。上述したように、モニタ34の表示面近傍(周辺)に配置されるセンサバー34bのマーカ340mおよび340nは、モニタ34の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ94を設けることによってマーカ340mおよび340nの画像をより正確に撮像することができる。レンズ96は、赤外線フィルタ94を透過した赤外線を集光して撮像素子98へ出射する。撮像素子98は、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ96によって集光された赤外線を撮像する。したがって、撮像素子98は、赤外線フィルタ94を通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子98によって撮像された画像を撮像画像と呼ぶ。撮像素子98によって生成された画像データは、画像処理回路100で処理される。画像処理回路100は、撮像画像内における撮像対象(マーカ340mおよび340n)の位置を算出し、所定時間(たとえば1フレーム)毎に、当該位置を示す各座標値を含むマーカ座標データをマイコン86に出力する。なお、画像処理回路100における処理については後述する。
操作部72、加速度センサ78および撮像情報演算部80からマイコン86へ出力されたデータは、一時的にメモリ88に格納される。通信部84からゲーム装置12のBluetooth通信ユニット66への無線送信は所定の周期毎に行われる。なお、ゲームの処理は1/60秒を単位として行われることが一般的であるので、コントローラ22からの送信はそれと同等かそれより短い周期で行うことが必要となる。マイコン84は、ゲーム装置12への送信タイミングが到来すると、メモリ88に格納されている操作部72の操作データ、加速度センサ78の加速度データ、および撮像情報演算部80のマーカ座標データ等を含むデータを、コントローラデータ(入力データ)として無線モジュール90へ出力する。無線モジュール90は、Bluetoothのような近距離無線通信技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ92から放射する。つまり、入力データは、無線モジュール90で微弱電波信号に変調されてコントローラ22から送信される。微弱電波信号はゲーム装置12側のBluetooth通信ユニット66で受信される。受信された微弱電波信号について復調や復号を行うことによって、ゲーム装置12は入力データを取得することができる。ゲーム装置12のCPU36は、コントローラ22から取得した入力データに基づいてゲーム処理を行う。
また、通信部84は、ゲーム装置12からの微弱電波信号をアンテナ92によって受信し、無線モジュール90によって受信された微弱電波信号について復調や復号を行い、ゲーム装置12から送信されたデータを取得する。マイコン86は、受信データが音出力を指示するデータであった場合、当該データに含まれるオーディオデータを図示しないD/A変換器および増幅器を介してスピーカ104に出力し、スピーカ104からその音を出力させる。また、マイコン86は、受信データが振動出力を指示するデータであった場合、当該データに基づいてバイブレータ106の振動を制御する。さらに、マイコン86は、受信データがLED76の点灯を指示するデータであった場合、当該データに基づいてLED76の点灯を制御する。
図5は、コントローラ22を用いてゲームプレイするときの状態を概説する図解図である。図5に示すように、ビデオゲームシステム10でコントローラ22を用いてゲームをプレイする際、プレイヤは、一方の手でコントローラ22を把持する。厳密に言うと、プレイヤは、コントローラ22の先端面(撮像情報演算部80が撮像する光の入射口82側)がマーカ340mおよび340nの方を向く状態でコントローラ22を把持する。ただし、図1からも分かるように、マーカ340mおよび340nは、モニタ34の画面の所定の1辺(上辺または下辺)の近傍に、当該所定の1辺に対して平行に配置されている。この状態で、プレイヤは、コントローラ22自体を動かして、コントローラ22が指示する画面上の位置を変更したり、コントローラ22と各マーカ340mおよび340nとの距離を変更したりすることによって、ゲーム操作を行う。
図6は、マーカ340mおよび340nとコントローラ22の視野角を説明するための図である。図6に示すように、マーカ340mおよび340nは、それぞれ、視野角θ1の範囲で赤外光を放射する。また、撮像情報演算部80の撮像素子98は、コントローラ22の視線方向(図3に示すZ軸方向)を中心とした視野角αの範囲で入射する光を受光することができる。たとえば、マーカ340mおよび340nの視野角θ1は、共に34°(半値角)であり、一方、撮像素子98の視野角αは42°である。プレイヤは、撮像素子98が2つのマーカ340mおよび340nからの赤外光を受光することが可能な位置および向きとなるように、コントローラ22を把持する。具体的には、撮像素子98の視野角αの中に少なくとも一方のマーカ340mおよび340nが存在し、かつ、マーカ340mおよび340nの少なくとも一方の視野角θ1の中にコントローラ22が存在する状態となるように、プレイヤはコントローラ22を把持する。この状態にあるとき、コントローラ22は、マーカ340mおよび340nの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ22の位置および向きを変化させることによってゲーム操作を行うことができる。なお、マーカ340mおよび340nのいずれか一方のみが検出される場合には、たとえば、直前の2つのマーカ340mおよび340nを検出したデータを利用して、検出されない他方のマーカの代わりに仮のマーカ座標を設定することによって、コントローラ22の指示位置を算出することができる。
なお、コントローラ22の位置および向きがこの範囲外となった場合、コントローラ22の位置および向きに基づいたゲーム操作を行うことができなくなる。したがって、上記範囲は「操作可能範囲」と呼ばれる。
操作可能範囲内でコントローラ22が把持される場合、撮像情報演算部80によって各マーカ340mおよび340nの画像が撮像される。すなわち、撮像素子98によって得られる撮像画像には、撮像対象である各マーカ340mおよび340nの画像(対象画像)が含まれる。図7は、対象画像を含む撮像画像の一例を示す図である。対象画像340m’および340n’を含む撮像画像の画像データを用いて、画像処理回路100は、各マーカ340mおよび340nの撮像画像における位置を表す座標(マーカ座標)を算出する。
撮像画像の画像データにおいて対象画像340m’および340n’は高輝度部分として現れるため、画像処理回路100は、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路100は、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、2つのマーカ340mおよび340nの画像340m’および340n’のみならず、窓からの太陽光や部屋の蛍光灯の光等のような対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、マーカ340mおよび340nの画像340m’および340n’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。撮像画像における対象画像340m’および340n’と他の画像との区別のために、撮像対象340mおよび340nは既知のものである必要があり、この実施例では、その大きさが予め決められるので、マーカ画像340m’および340n’の大きさを予測することができる。したがって、高輝度部分の大きさに基づいて、マーカ画像340m’および340n’の判定を行うことができる。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路100は当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子98の解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子98によって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
なお、図7に示すように、撮像画像における位置は、撮像画像の左上を原点Oとし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(撮像画像のXY座標系)で表現されるものとする。
また、対象画像が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路100は、算出された2箇所のマーカ座標を示すデータを出力する。出力されたデータ(マーカ座標データ)は、上述したように、マイコン86によって入力データに含められて、ビデオゲーム装置12に送信される。
ビデオゲーム装置12(CPU36)は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ34の画面上におけるコントローラ22の指示位置(指示座標)と、コントローラ22からマーカ340mおよび340nまでの各距離とを算出することができる。具体的には、2つのマーカ座標の中点の位置が、コントローラ22の向いている位置すなわち指示位置として採用(算出)される。なお、たとえば、コントローラ22がモニタ34の画面の左端を指示するとき、対象画像は撮像画像の右側に検出され、コントローラ22が画面の下端を指示するとき、対象画像は撮像画像の上側に検出される。したがって、コントローラ22の指示位置の座標をマーカ座標から算出する際には、座標系を図7の撮像画像座標系から適宜に変換する。
なお、この実施例では、コントローラ22で撮像データに所定の演算処理を行ってマーカ座標を検出して、そのマーカ座標データをビデオゲーム装置12に送信するようにしている。しかし、他の実施例では、撮像データを入力データとしてコントローラ22からビデオゲーム装置12に送信し、ビデオゲーム装置12のCPU36が撮像データに所定の演算処理を行って、マーカ座標を検出するようにしてもよい。
また、撮像画像における対象画像間の距離が、コントローラ22と、マーカ340mおよび340nとの距離に応じて変化するので、2つのマーカ座標間の距離を算出することによって、ビデオゲーム装置12はコントローラ22とマーカ340mおよび340nとの間の距離を把握できる。
このように、このゲームシステム10はポインティング装置であり、コントローラ22によってモニタ34の表示面上の位置を指示するための仕組みを備えている。ビデオゲーム装置12は、コントローラ22からの入力データを用いて各種ゲーム処理など情報処理を実行し、その結果を表示装置としてのモニタ34に表示する。たとえば、ビデオゲーム装置12では、コントローラ22の指示位置と画面上のオブジェクトの位置とに基づいて、オブジェクトが指示されたか否かを判断して、当該結果に対応するゲーム処理を実行することができる。一例としては、画面上の標的にコントローラ22のZ軸を向けることによって当該標的を狙って打つようなゲームを実行することができる。
しかし、モニタ34の表示面の大きさやプレイヤの立つ位置などは、各家庭の状況によって異なるので、プレイヤが指示しようとしている画面上の位置とゲームシステム10で認識される位置とがずれるおそれがある。そこで、このゲームシステム10では、プレイヤがコントローラ22で指示した位置と認識される画面上の位置とを一致させるために、コントローラ22と画面(マーカ340mおよび340n)との間の距離が適正距離となるように、調整を実行できるようにした。
モニタ34(マーカ340mおよび340n)からの適正距離は、モニタ34の表示面の幅とマーカ340mおよび340の間隔とによって異なる。したがって、適正距離の算出のためには、マーカ340mおよび340nの間隔とモニタ34の表示面の幅の情報を取得する必要がある。この実施例では、センサバー34bの幅が予め決められており、すなわち、2つのマーカ340mおよび340nが所定距離を隔てて配置されているので、このセンサバー34bの幅を利用して、モニタ34の表示面の幅を取得する。
図8に示すように、センサバー34bにおける2つのマーカ340mおよび340nはモニタ34の表示面の上下のいずれかの1辺の近傍に、当該辺に平行に設置される。また、2つのマーカ340mおよび340nの中点が表示面の横方向の中央に一致するように、センサバー34bは当該辺の中央に置かれる。そこで、画面中央に幅が可変の画像200を表示して、プレイヤに、画面上の画像200の2つのマーカ340mおよび340nの配置方向の幅を変化させて、当該2つのマーカ340mおよび340n間の距離に一致させる操作をしてもらう。たとえば、コントローラ22の十字キー72aの右方向が押されると、画像200の横方向の幅が一定長さ(dot)だけ広くなり、左方向が押されると、画像200の横方向の幅が一定長さだけ狭くなるように、画像200の表示が制御される。この十字キー72aの操作によって画像200の幅をセンサバー34bの幅に合わせてAボタン72dを押すことによって、画像200の幅を決定することができ、したがって、2つのマーカ340mおよび340n間の距離を画像の単位(画素)によって測定することができる。この画像200の幅をセンサ対応幅と呼ぶものとする。つまり、センサ対応幅は、センサバー34bの幅の実距離に対応する画面内での幅のことであり、画像上の距離を示す。なお、センサバー34bの幅、すなわち、マーカ340mおよび340n間の実距離を、センサ幅と呼ぶものとする。
画面に表示可能な画像の最大幅(最大表示幅と呼ぶ)は予め決まっているので、センサ対応幅を取得することによって、モニタ34の画面の幅(ディスプレイ幅と呼ぶ)を算出することができる。なお、ディスプレイ幅、センサ幅、センサ対応幅および最大表示幅のスケールないし単位は異なり、ディスプレイ幅およびセンサ幅は第1のスケール(実空間における長さを測定する単位。m(メートル))で表され、センサ対応幅および最大表示幅は第2のスケール(ディジタル画像の単位。dot(画素))で表される。最大表示幅は、第2のスケールでの表示面の最大幅でもある。
ディスプレイ幅をD(m)、センサ幅をS(m)、センサ対応幅をW(dot)、最大表示幅をM(dot)とすると、ディスプレイ幅は次の数1で算出される。
[数1]
D=S×M/W
このように、ディスプレイ幅は、センサ幅とセンサ対応幅の比率(S/W)および最大表示幅に基づいて算出される。あるいは、ディスプレイ幅は、最大表示幅とセンサ対応幅の比率(M/W)およびセンサ幅に基づいて算出される。
なお、図8から分かるように、この実施例のモニタ34の表示面は横長の矩形状であり、表示面の幅がそのまま最大幅に相当する。ディスプレイ幅としては表示面の最大幅を取得する。
ディスプレイ幅およびセンサ幅が分かると、コントローラ22による表示面に対する理想的なポインティングの位置関係が決まるので、ディスプレイ幅およびセンサ幅に基づいて、コントローラ22と表示面との適正距離を算出することができる。
図9は適正距離算出のためのコントローラ22、表示面およびセンサバー34bの位置関係を示す。一例として、図9ではセンサバー34bの配置された表示面の左端を指示する場面が示される。
具体的には、図9(A)には画面左端への理想的なポインティングを行ったときのコントローラ22と表示面との位置関係が示される。図9(A)は当該ポインティングを上から見た場面である。前提として、コントローラ22は表示面中央の法線上に置かれている。そして、画面左端のポインティングのために、コントローラ22のZ軸方向が表示面の左端に向けられている。これは、コントローラ22のZ軸方向が表示面の中央への方向から角度θだけ左に振られた状態である。コントローラ22から表示面までの距離をL(m)、ディスプレイ幅をDとすると、このポインティングの状態における角度θは次の数2で算出される。
[数2]
θ=arctan(D/2L)
一方、図9(B)には、コントローラ22を左方向へ振るときの認識の限界となる位置関係が示されている。つまり、コントローラ22の撮像情報演算部80の撮像素子98でセンサバー34bの2つのマーカ340mおよび340nを撮像できる限界である。撮像素子98の視野角αの右端を規定する線がセンサバー34bの右端に一致している。これは、コントローラ22のZ軸方向が表示面の中央への方向から角度βだけ左に振られた状態である。コントローラ22から表示面(マーカ340mおよび340n)までの距離をL(m)、センサ幅をS、撮像素子98の画角をαとすると、このポインティングの状態における角度βは次の数3で算出される。
[数3]
β=α/2−arctan(S/2L)
コントローラ22を表示面の端に向けたときが、コントローラ22で指示する位置を認識できる限界であれば、プレイヤは感覚的に違和感のない理想的なポインティングを行うことができる。したがって、θ=βが成立するような距離Lを算出することによって、適正距離が得られる。
このようにして、モニタ34の表示面の幅とマーカ340mおよび340nの間隔とに応じた適正距離が分かる。
続いて、マーカ340mおよび340nからコントローラ22までの現在距離の算出方法を図10を参照しながら説明する。現在距離Lcは撮像画像上の2つのマーカの画像340m’および340n’間の距離Siを用いて算出される。
具体的には、この実施例では、まず、撮像画像上のマーカ画像340m’および340n’間の距離Siを算出する。上述のように、撮像画像上の画像340m’および340n’の座標(すなわちマーカ座標)が検出されるので、当該マーカ座標から距離Siを算出することができる。なお、距離Siは、画像における長さを測る単位としての上記第2のスケール(dot)で表される。
次に、撮像素子98で実際に撮像されている範囲の幅の実空間での長さを示す撮像範囲幅Rを算出する。撮像範囲幅R、センサ幅S、撮像画像幅Riおよびマーカ画像間距離Siには、R:S=Ri:Siの関係が成り立つ。撮像画像幅Ri(dot)は撮像素子98の仕様により予め決まっている。また、実空間におけるマーカ340mおよび340nの距離を示すセンサ幅S(m)もこの実施例では固定されている。したがって、次の数4に従って、撮像範囲幅Rを算出することができる。
[数4]
R=Ri×S/Si
なお、撮像範囲幅Rは、実空間における長さを測る単位としての上記第1のスケール(m)で表される。
そして、撮像範囲幅Rと撮像素子98の視野角αから、次の数5に従って現在距離Lc(m)を算出することができる。
[数5]
Lc=(R/2)/tan(α/2)
このようにして、ゲームシステム10では、コントローラ22とモニタ34(マーカ340mおよび340n)の間における適正距離と現在距離を取得することができるので、現在距離と適正距離との大小関係をプレイヤに知らせることができる。したがって、プレイヤは現在距離が適正距離となるようにコントローラ22の位置を、つまり、プレイヤの画面からの距離を調整することができる。なお、ここで説明したマーカからコントローラ22までの現在距離を算出する方法は一例であり、ここでは詳細に説明しないが、例えばレンズ96から撮像素子98の撮像面までのいわゆる焦点距離と、撮像面上のマーカ画像の大きさ(本実施例ではマーカ画像間の距離)と、現実のマーカ間の距離を用いて現在距離を算出することもできる。
適正距離と現在距離の関係の報知は、この実施例では、適正距離と現在距離との差分に応じた画像を表示出力することによって行われる。
図11には現在距離と適正距離との関係を知らせる画像の一例が示される。図11(A)は現在距離が適正距離よりも長い場合を示し、図11(B)は現在距離が適正距離よりも短い場合を示す。画面上には、適正距離を示す基準画像(実線円)202と現在距離を示す調整画像(破線円)204とが表示される。基準画像202のサイズ(円の径)は所定値に固定され、一方、調整画像204のサイズが現在距離に連動して変化される。具体的には、現在距離が適正距離よりも長ければ、調整画像204は基準画像202よりも小さくされ、現在距離が適正距離よりも短ければ調整画像204は基準画像202よりも大きくされ、現在距離が適正距離と同一であれば調整画像204の大きさは基準画像202のそれと同一になる。たとえば、基準サイズの基準画像202と調整画像204とを準備しておき、現在距離Lcと適正距離Lとの比率(L/Lc)を基準サイズに掛けることによって得られるサイズに拡大または縮小される調整画像204を生成して、基準画像202と調整画像204とを表示する。なお、この実施例では、適正距離の値に関わらず所定の基準サイズを有する基準画像202および調整画像204を準備して、上記比率(L/Lc)に従って調整画像204の大きさを変化させるようにしたが、他の実施例では、適正距離の値もしくは表示面の最大幅に応じて基準サイズを変化させるようにしてもよい。
このような現在距離と適正距離との関係に応じた報知がなされるので、プレイヤはコントローラ22のZ軸方向をセンサバー34bに向けた状態でモニタ34に対して前後に移動して、画面上で調整画像の大きさを基準画像のそれと一致させることで、コントローラ22の位置を適正距離となる位置に容易に調整することができる。
なお、他の実施例では、現在距離と適正距離との関係を示す画像として、現在距離と適正距離との差分に応じて画面に対して近づくか画面から遠ざかるかをプレイヤに指示するメッセージを表示したり、現在距離と適正距離との差分を示す数値を表示したりすることも考えられる。
また、報知方法としては、表示装置34を用いた画像の表示出力に限られず、他の出力装置を用いた種々の出力に適宜変更可能である。たとえば、画像表示に代えてあるいは画像表示とともに、音声や効果音などの音出力によって報知を行うようにしてもよい。音声または効果音などの音の種類、出力パターンもしくは音量が、上述の画像の場合と同様に、プレイヤが画面に近づけばよいか画面から遠ざかればよいかが分かるように、現在距離と適正距離との関係に応じて変化される。たとえば、音声を使う場合、現在距離が適正距離よりも長ければ、「近づいて下さい」といった音声を、現在距離が適正距離よりも短ければ、「離れて下さい」といった音声を、現在距離が適正距離に等しければ、「適正です」といった音声をスピーカ34aまたはコントローラ22のスピーカ104から出力する。なお、誤差を考慮し、現在距離と適正距離の差分の大きさが所定の閾値以下であれば、現在距離は適正であると判定するようにしてよい。現在距離が適正でないと判定されるときは、たとえば、適正距離と判定される距離までに必要な距離の値を含む音声を出力するようにしてもよい。また、効果音を使用する場合にも、現在距離と適正距離の差分に応じて、効果音の種類、出力パターンおよび音量などを異ならせて、画面に対する遠近を伝えるようにする。
さらに、画像表示および/または音出力とともにあるいは単独で、コントローラ22のバイブレータ104の振動出力によって報知を行うようにしてもよい。振動出力の場合にも、上述の画像および音の場合と同様に、振動のパターンや大きさなどを、現在距離と適正距離との関係に応じて変化させる。
さらにまた、上述の各報知方法とともにあるいは単独で、コントローラ22のLED76の光出力によって報知を行うようにしてもよい。この光出力の場合にも、上述の各報知方法の場合と同様に、複数のLED76の点灯パターンや明るさなどを、現在距離と適正距離との関係に応じて変化させる。
図12にはメインメモリ40のメモリマップの一例が示される。メインメモリ40はプログラム記憶領域110およびデータ記憶領域112を含む。プログラムおよびデータの一部は、光ディスク18から一度に全部または必要に応じて部分的にかつ順次的に読み出され、メインメモリ40に記憶される。なお、図12にはメモリマップの一部のみが示されており、処理に必要な他のプログラムおよびデータも記憶される。たとえば、音声、効果音、音楽などの音を出力するためのサウンドデータが光ディスク18から読み出されてデータ記憶領域112に記憶される。また、表示面に表示される画像の最大表示幅M、撮像素子98の視野角α、撮像画像の幅Riなど予め決められている各種数値のデータも光ディスク18から読み出されてデータ記憶領域112に記憶される。
プログラム記憶領域110の記憶領域114には、この実施例の調整処理のメインルーチンを実行するためのメインプログラムが記憶される。
記憶領域116にはセンサ幅取得プログラムが記憶される。このプログラムによって、マーカ340mとマーカ340nとの間隔、すなわち、センサ幅Sが取得される。この実施例では、センサ幅Sは予め決められているので、予め記憶されているセンサ幅データがデータ記憶領域112の所定領域から読み出される。なお、他の実施例で、センサ幅が可変にされる場合には、このプログラムによって、入力データに基づいてプレイヤが入力したセンサ幅が取得される。
記憶領域118にはディスプレイ幅取得プログラムが記憶される。このプログラムによって、上述の図8に示したように、入力データに基づくセンサ対応幅Wの取得、およびディスプレイ幅Dの算出のための処理が実行される。なお、他の実施例で、ディスプレイ幅がプレイヤによって入力される場合には、入力データに基づいてプレイヤが入力したディスプレイ幅が取得される。
記憶領域120には適正距離決定プログラムが記憶される。このプログラムによって、ディスプレイ幅およびセンサ幅に基づく適正距離が決定される。この実施例では、後述するように、適正距離テーブルデータが予め記憶されているので、当該テーブルを参照して、ディスプレイ幅に応じた適正距離が決定される。なお、他の実施例では、適正距離テーブルデータを準備せずに、上述の数2および数3が等しいときの数式に従って、取得されたディスプレイ幅D、取得されたセンサ幅S、および予め記憶される撮像素子98の視野角αに基づいて、適正距離を算出するようにしてもよい。
記憶領域122には現在距離算出プログラムが記憶される。このプログラムによって、コントローラ22とマーカ340mおよび340nとの間の現在距離が算出される。現在距離は、上述の図10で説明したように、撮像素子98による撮像画像上のマーカ画像340m’および340n’間の距離Siを用いて算出される。具体的には、現在距離Lcは、撮像素子98による実際の撮像範囲幅Rと撮像素子98の視野角αに基づいて、上述の数5に従って算出される。撮像範囲幅Rは、撮像画像の幅Ri、マーカ340mおよび340nの実距離(センサ幅S)、およびマーカ画像間距離Siに基づいて、上述の数4に従って算出できる。
記憶領域124には報知プログラムが記憶される。このプログラムによって、現在距離と適正距離との関係に応じた報知が行われる。この実施例では、CPU36は、図11に示したように、所定の大きさの基準画像202と、現在距離と適正距離との差分に応じて大きさの変化する調整画像204とを含む画像をGPU42を用いて生成して、ビデオI/F58等を介してモニタ34に当該画像を表示する。また、音で報知を行う場合、CPU36はDSP52を用いて現在距離と適正距離との差分に応じた音声、効果音などの音を出力するためのオーディオデータを生成する。モニタ34のスピーカ34aから出力する場合には、CPU36は、当該オーディオデータに基づく音をオーディオI/F62等を介してスピーカ34aから出力する。また、コントローラ22のスピーカ104から出力する場合には、CPU36は、当該オーディオデータを含む音出力指示データをBluetooth通信ユニット66等を介してコントローラ22に送信する。さらに、CPU36は、振動で報知を行う場合、現在距離と適正距離との差分に応じた振動を出力するための振動制御データを生成し、当該データを含む振動出力指示データをコントローラ22に送信する。さらにまた、LED76の光出力で報知を行う場合、現在距離と適正距離との差分に応じた点灯状態を得るための点灯制御データを生成し、当該データを含む点灯指示データをコントローラ22に送信する。
データ記憶領域112の記憶領域126は入力データバッファであり、所定時間(1フレーム)ごとに受信されるコントローラデータが記憶される。記憶領域128にはセンサバー34bの2つのマーカ340mおよび340nの間隔を示すセンサ幅データが記憶される。この実施例では、2つのマーカ340mおよび340nの配置が固定されたセンサバー34bが準備されるので、センサ幅Sは所定距離に固定される。つまり、センサ幅データが光ディスク18に予め記憶されており、当該センサ幅データが読み出されて記憶領域128に記憶される。
記憶領域130には、モニタ34に表示する画像を生成するための画像データが記憶される。たとえば、図8に示したようなセンサ対応幅を取得するための画像200、図11に示したような基準画像202および調整画像204(基準サイズ)、各種画面等を表示するための画像データが記憶される。
記憶領域132には上述の現在距離算出プログラムによって算出された現在距離が記憶される。記憶領域134には基準サイズの調整画像204を拡大/縮小するための倍率データが記憶される。この倍率は上述のように適正距離Lと現在距離Lcとの比率である。
記憶領域136には適正距離テーブルデータが記憶される。図13に示すように、適正距離テーブルデータでは、ディスプレイ幅に対応付けて適正距離が記憶されている。市販されているモニタ34の表示面のサイズは決まっている。また、この実施例では、センサ幅Sは固定される。したがって、上述の数2のθと数3のβとを等しいとしたときの所定の数式に従って、全てのサイズのモニタ34のディスプレイ幅D1、D2、…Dnに対応する適正距離L1、L2、…Lnを予め算出して、テーブルデータとして光ディスク18に記憶しておく。上述の適正距離決定プログラムは、この実施例では、適正距離テーブルデータを参照して、ディスプレイ幅取得プログラムで取得したディスプレイ幅に対応する適正距離を取得する。
図14にはCPU36の調整処理の動作の一例が示される。調整処理を開始すると、CPU36は、ステップS1でセンサ幅取得プログラムに従ってセンサ幅Sを取得する。この実施例では、センサ幅Sが固定されているので、読み出したセンサ幅データを記憶領域128に記憶する。
ステップS3で、CPU36はディスプレイ幅取得プログラムに従ってディスプレイ幅算出処理を実行する。このディスプレイ幅算出処理の詳細は図15に示される。図15のステップS31で、CPU36はGPU42を用いて図8で示したようなセンサ対応幅入力画面をモニタ34に表示する。
次にステップS33でCPU36は入力装置としてのコントローラ22からセンサ対応幅を決めるための入力があったか否かを、入力データバッファ126の入力データに基づいて判断する。具体的には、入力データにコントローラ22の操作部72が操作されたことを示すデータが存在するか否かを判断する。ステップS33で“YES”と判断されるまで、入力データの確認を行う。
ステップS33で“YES”の場合、CPU36はステップS35で入力が決定ボタンであるか否かを判断する。具体的には、CPU36は入力データに基づいてAボタン72dが押されたか否かを判断する。ステップS35で“YES”の場合には、CPU36はステップS37でディスプレイ幅Dを上述の数1に従って算出する。なお、センサ対応幅はW、Aボタン72が押されたときの、センサ対応幅を示す画像200の横方向の画素数を検出することによって取得される。
一方、ステップS35で“NO”の場合、CPU36はステップS39で入力は左右ボタンであるか否かを判断する。具体的には、CPU36は入力データに基づいて十字キー72aの左方向または右方向が押された否かを判断する。ステップS39で“YES”であれば、CPU36はステップS41でセンサ対応幅の表示を更新する。つまり、CPU36はセンサ対応幅Wを十字キー72aの方向に応じて所定長さだけ増減し、GPU42を用いて当該センサ対応幅Wを示す画像200を生成して、モニタ34に表示する。ステップS41を終了すると処理はステップS33に戻る。
ステップS37の処理を終了するとディスプレイ幅算出処理を終了して、処理は図14のステップS5に戻る。
図14のステップS5では、CPU36は、適正距離決定プログラムに従って入力装置としてのコントローラ22とディスプレイとしてのモニタ34との適正距離Lを決定する。具体的には、CPU36は、適正距離テーブルデータを参照して、ステップS37で算出されたディスプレイ幅Dに対応する適正距離Lをデータ記憶領域112の所定領域に読み出す。
ステップS7では、CPU36は入力データバッファ126から入力データを取得する。そして、ステップS9で、CPU36は2つのマーカ340mおよび340nが撮像されているか否かを入力データに基づいて判断する。具体的には、入力データに2つのマーカ340mおよび340nを示すマーカ座標データが含まれるか否かを判断する。
ステップS9で“YES”の場合、CPU36は、ステップS11で現在距離算出プログラムに従って現在距離算出処理を実行する。この現在距離算出処理の詳細は図16に示される。図16のステップS51で、CPU36は、マーカ間の撮像画像内での距離Siを算出する。具体的には、上述の図10で説明したように、入力データに含まれるマーカ座標データ基づいて、マーカ画像340m’および340n’の座標間の距離Siを算出する。
次に、ステップS53で、CPU36は、実空間での撮像範囲幅Rを算出する。具体的には、CPU36は、光ディスク18からデータ記憶領域112の所定領域に読み出された撮像画像幅Ri、記憶領域128に記憶されたセンサ幅S、および算出したマーカ間距離Siに基づいて、上述の数4に従って撮像範囲幅Rを算出する。
続いて、ステップS55で、CPU36はマーカ340mおよび340nからコントローラ22までの現在距離Lcを算出する。具体的には、CPU36は、光ディスク18からデータ記憶領域112の所定領域に読み出された撮像素子98の視野角αおよび算出した撮像範囲幅Rに基づいて、上述の数5に従って現在距離Lcを算出する。算出した現在距離Lcは記憶領域132に記憶される。現在距離算出処理を終了すると、処理は図14のステップS13に戻る。
図14のステップS13では、CPU36は、報知プログラムに従って、適正距離と現在距離との関係を報知する。たとえば、画像表示による報知を行う場合には、CPU36は、GPU42を用いて図11に示すような基準画像202と調整画像204とを含む画像を生成して、モニタ34に表示する。なお、調整画像204のサイズを決める倍率は、ステップS5で決定した適正距離LとステップS11で算出した現在距離Lcとによって算出されて記憶領域134に記憶されているので、当該倍率データに基づいて調整画像204のサイズが変化される。なお、音出力による報知の場合には、上述のように、CPU36は、DSP52を用いてオーディオデータを生成してスピーカ34aから音を出力し、あるいは、音出力指示データをコントローラ22に送信してコントローラ22のスピーカ104から音を出力させる。また、振動出力による報知の場合には、上述のように、CPU36は振動指示データをコントローラ22に送信してコントローラ22のバイブレータ106を振動させる。また、光出力による報知の場合には、上述のように、CPU36は点灯指示データをコントローラ22に送信してコントローラ22のLED76を点灯させる。なお、音、振動、光による報知は、次のステップS15で“YES”と判断されるまでは、たとえば数秒程度の所定時間(所定フレーム数)経過ごとに実行されるようにするのが望ましい。
一方、ステップS9で“NO”の場合には処理はそのままステップS15に進む。ステップS15ではCPU36は設定終了であるか否かを判断する。具体的には、図11のような適正距離と現在距離との関係を示す画像を表示している間に、あるいは、音、振動もしくは光による報知を行った後に、設定終了を入力するためのAボタン72dが押されたか否かを入力データに基づいて判断する。ステップS15で“NO”の場合、処理はステップS7に戻る。一方、ステップS15で“YES”であれば、この調整処理を終了する。
この実施例によれば、マーカ340mおよび340n(モニタ34)とコントローラ22との適正距離を知らせることができる。したがって、プレイヤは、自身のコントローラ22で指示した画面上の位置ないし方向と認識される画面上の位置ないし方向とが一致する最適な距離を画面に対して置いて、操作を行うことができる。
なお、上述の実施例では、モニタ34の表示面の幅、すなわちディスプレイ幅Dを算出するようにしていた。しかし、他の実施例では、ディスプレイ幅Dをプレイヤに入力してもらうようにしてもよい。この実施例では、図17に示すように、ステップS3の代わりに、CPU36は、ステップS3´でディスプレイ幅入力処理を実行する。たとえば、ディスプレイ幅の数値を操作部72の操作で入力可能に構成した画面を表示して、入力データに基づいてディスプレイ幅を取得する。なお、図8に示したようなセンサ対応幅の取得に基づくディスプレイ幅の算出とディスプレイ幅のプレイヤ入力の両方を実行可能にしてもよい。
さらに、他の実施例では、ディスプレイサイズをプレイヤに選択させることによって、ディスプレイ幅を取得するようにしてもよい。この実施例では、たとえば、図18に示すようなディスプレイサイズ入力画面をモニタ34に表示する。この入力画面では、市販のモニタ34に採用されている表示面のサイズ(型)のリストが表示される。プレイヤはコントローラ22の操作によって、たとえばカーソル210を用いてディスプレイサイズをリストから選択して、その後、カーソル210で決定ボタン212を押すことによって、ディスプレイサイズを入力できる。なお、カーソル210はコントローラ22の十字キー72aの操作によって移動され、あるいは、カーソル210はコントローラ22の指示位置に表示される。また、この入力画面では、図8に示したようなセンサ対応幅の取得によるディスプレイ幅の算出も行えるようにしており、図18の入力画面で設定ボタン214を押すことによって、このセンサ対応幅の取得が実行される。
この実施例の適正距離テーブルでは、図19に示すように、ディスプレイサイズK1、K2、…Knに対応付けてディスプレイ幅D1、D2、…Dnおよび適正距離L1、L2、…Lnが記憶されている。したがって、このテーブルを参照することによって、入力されたディスプレイサイズに対応する適正距離を決定することができる。
図20には、この実施例の調整処理の動作が示されている。CPU36は、ステップS1の後に、ステップS101で、ディスプレイサイズ入力画面をモニタ34に表示する。これによって、図18のような入力画面が表示される。続いて、ステップS103で、CPU36は、入力データに基づいて設定ボタン204が選択されたか否かを判断する。ステップS103で“YES”の場合には、CPU36はステップS3で上述のディスプレイ幅算出処理を実行する。一方、ステップS103で“NO”の場合、CPU36はステップS105でディスプレイサイズ入力処理を実行する。このステップS105では、入力データに基づいて、リストから選択されたディスプレイサイズが特定される。
また、上述の各実施例では、2つのマーカ340mおよび340n間の間隔は固定されていたが、他の実施例では、当該マーカ間隔は可変にされてもよい。つまり、センサバー34bはその長さが変更可能に形成されてよく、プレイヤが各家庭の状況等に合わせて長さを調節できるようにしてもよい。この実施例では、マーカ340mおよび340nの間隔をプレイヤに入力してもらう必要がある。したがって、上述の各実施例のステップS1では、たとえば、センサ幅の数値を操作部72の操作で入力可能に構成した画面を表示して、入力データに基づいてセンサ幅Sを取得する。また、ステップS5の適正距離を決定する処理では、数2および数3から得られる関係式に従って、適正距離Lを算出する。
なお、上述の各実施例では、既知の撮像対象として二つのマーカを例に説明したが本発明はこれに限られるものでなく、実際の大きさが識別できるマーカであればどのようなものでも利用できる可能性がある。例えば、既知の大きさの単一のマーカでもよい。この場合、マーカの大きさがわかっているので、その大きさと撮像画像上のマーカ画像の大きさとによって上述した方法でマーカとコントローラ22間の現在距離を算出することができる。さらに、撮像素子98や画像処理回路100がカラー画像を認識できるものであれば、既知の撮像対象として予め決められた色と大きさのマーカにすることにより本発明を実現することができる。
図1はこの発明の一実施例のゲームシステムの外観を示す図解図である。 図2は図1に示すゲームシステムの電気的な構成を示すブロック図である。 図3は図1に示すコントローラの外観を示す図解図であり、図3(A)は上面後方からの斜視図を示し、図3(B)は下面前方からの斜視図を示す。 図4は図1に示すコントローラの電気的な構成を示すブロック図である。 図5は図1に示すコントローラを用いてゲームプレイするときの状態を概説するための図解図である。 図6は図1に示すマーカおよびコントローラの視野角を説明するための図解図である。 図7は対象画像を含む撮像画像の一例を示す図解図である。 図8はディスプレイ幅算出のためのセンサ対応幅の入力を説明するための図解図である。 図9は適正距離算出のためのコントローラ、画面およびマーカの位置関係を示す図解図であり、図9(A)は画面左端への理想的なポインティングの際の位置関係を示し、図9(B)はコントローラを左方へ振るときの認識の限界となる位置関係を示す。 図10は2つのマーカからコントローラまでの現在距離の算出方法を説明するための図解図である。 図11は現在距離と適正距離との関係を知らせる画像の一例を示す図解図であり、図11(A)は現在距離が適正距離よりも長い場合を示し、図11(B)は現在距離が適正距離よりも短い場合を示す。 図12はメインメモリのメモリマップの一例を示す図解図である。 図13は適正距離テーブルデータを示す図解図である。 図14はビデオゲーム装置の調整処理の動作の一例を示すフロー図である。 図15は図14に示すディスプレイ幅算出処理の動作の一例を示すフロー図である。 図16は図14に示す現在距離算出処理の動作の一例を示すフロー図である。 図17は他の実施例の調整処理の動作を示すフロー図である。 図18は他の実施例において表示されるディスプレイサイズ入力画面の一例を示す図解図である。 図19は図18実施例の適正距離テーブルの一例を示す図解図である。 図20は図18実施例の調整処理の動作を示すフロー図である。
符号の説明
10 …ゲームシステム
12 …ビデオゲーム装置
18 …光ディスク
22 …コントローラ
34 …モニタ
34a、104 …スピーカ
34b …センサバー
340m、340n …マーカ(赤外線LED)
36 …CPU
40 …メインメモリ
42 …GPU
52 …DSP
72 …操作部
76 …LED
80 …撮像情報演算部
86 …マイコン
98 …撮像素子
100 …画像処理回路
106 …バイブレータ

Claims (8)

  1. 既知の撮像対象を撮像するための撮像手段を備える入力装置から、当該撮像手段によって得られる撮像画像のデータまたは当該データに所定の演算を行ったデータを入力データとして取得し、当該入力データを用いて情報処理を行って表示装置へ出力を行うポインティング装置のコンピュータで実行される調整プログラムであって、
    前記表示装置の表示面の最大幅を取得する表示面幅取得ステップ、
    前記表示面幅取得ステップで取得された前記表示面の最大幅に応じて前記入力装置と前記表示装置との適正距離を決定する適正距離決定ステップ、
    前記入力データに基づいて前記入力装置から前記撮像対象までの現在距離を算出する現在距離算出ステップ、および
    前記適正距離と前記現在距離の関係に応じた報知を行う報知ステップを前記コンピュータに実行させる、ポインティング装置の調整プログラム。
  2. 前記報知ステップは、前記現在距離と前記適正距離との差分に応じた画像の表示出力、音声や効果音の音出力または前記入力装置の振動によって前記報知を行う、請求項1に記載のポインティング装置の調整プログラム。
  3. 前記報知ステップは、所定の大きさを有する基準画像と、前記現在距離に連動して大きさが変化し、かつ前記現在距離が前記適正距離と同じ距離になったとき前記基準画像と同じ大きさとなる調整画像とを前記表示装置に表示することによって前記報知を行う、請求項1に記載のポインティング装置の調整プログラム。
  4. 前記既知の撮像対象は、第1のスケールで計測される所定距離を隔てて配置される2つのマーカであり、かつ、前記2つのマーカは前記表示装置の表示面の所定の1辺の近傍に、当該所定の1辺に対して平行に配置されるものであり、
    ユーザによって入力された前記所定距離または予め記憶されている前記所定距離を取得する距離取得ステップを前記コンピュータにさらに実行させ、
    前記表示面幅取得ステップは、
    ユーザの入力に応じて前記表示面に表示された画像で前記2つのマーカの配置方向の幅を変化させることによって、第2のスケールで前記2つのマーカ間の距離を測定する目印距離測定ステップ、および
    前記距離取得ステップで取得された前記所定距離と前記目印距離測定ステップによって測定される前記マーカ間の距離との比率および前記第2のスケールでの前記表示面の最大幅に基づいて前記第1のスケールでの前記表示面の最大幅を算出する表示面幅算出ステップを含む、請求項1に記載のポインティング装置の調整プログラム。
  5. 前記既知の撮像対象は、第1のスケールで計測される所定距離を隔てて配置される2つのマーカであり、かつ、前記2つのマーカは前記表示装置の表示面の所定の1辺の近傍に、当該所定の1辺に対して平行に配置されるものであり、
    ユーザによって入力された前記所定距離または予め記憶されている前記所定距離を取得する距離取得ステップを前記コンピュータにさらに実行させ、
    前記表示面幅取得ステップは、
    ユーザの入力に応じて前記表示面に表示された画像で前記2つのマーカの配置方向の幅を変化させることによって、第2のスケールで前記2つのマーカ間の距離を測定する目印距離測定ステップ、および
    前記目印距離測定ステップで測定された前記マーカ間の距離と前記第2のスケールでの前記表示面の最大幅との比率および前記距離取得ステップで取得された前記所定距離に基づいて前記第1のスケールでの前記表示面の最大幅を算出する表示面幅算出ステップを含む、請求項1に記載のポインティング装置の調整プログラム。
  6. 前記現在距離算出ステップは、前記撮像手段によって得られる前記撮像画像上の前記2つのマーカ間の距離を用いて前記現在距離を算出する、請求項4または請求項5に記載のポインティング装置の調整プログラム。
  7. 前記表示面幅取得ステップは、ユーザによって入力された前記表示装置の表示面の最大幅を取得する表示面幅入力ステップを含む、請求項1に記載のポインティング装置の調整プログラム。
  8. 既知の撮像対象を撮像するための撮像手段を備える入力装置から、当該撮像手段によって得られる撮像画像のデータまたは当該データに所定の演算を行ったデータを入力データとして取得し、当該入力データを用いて情報処理を行って表示装置へ出力を行うポインティング装置であって、
    前記表示装置の表示面の最大幅を取得する表示面幅取得手段、
    前記表示面幅取得手段で取得された前記表示面の最大幅に応じて前記入力装置と前記表示装置との適正距離を決定する適正距離決定手段、
    前記入力データに基づいて前記入力装置から前記撮像対象までの現在距離を算出する現在距離算出手段、および
    前記適正距離と前記現在距離の関係に応じた報知を行う報知手段を備える、ポインティング装置。
JP2006312145A 2006-11-17 2006-11-17 ポインティング装置の調整プログラムおよびポインティング装置 Active JP5132131B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2006312145A JP5132131B2 (ja) 2006-11-17 2006-11-17 ポインティング装置の調整プログラムおよびポインティング装置
US11/727,077 US7969413B2 (en) 2006-11-17 2007-03-23 Storage medium having stored thereon program for adjusting pointing device, and pointing device
US13/105,421 US8674937B2 (en) 2006-11-17 2011-05-11 Storage medium having stored thereon program for adjusting pointing device, and pointing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006312145A JP5132131B2 (ja) 2006-11-17 2006-11-17 ポインティング装置の調整プログラムおよびポインティング装置

Publications (2)

Publication Number Publication Date
JP2008125666A JP2008125666A (ja) 2008-06-05
JP5132131B2 true JP5132131B2 (ja) 2013-01-30

Family

ID=39416453

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006312145A Active JP5132131B2 (ja) 2006-11-17 2006-11-17 ポインティング装置の調整プログラムおよびポインティング装置

Country Status (2)

Country Link
US (2) US7969413B2 (ja)
JP (1) JP5132131B2 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8842186B2 (en) 2004-10-25 2014-09-23 I-Interactive Llc Control system and method employing identification of a displayed image
US9364755B1 (en) 2006-05-08 2016-06-14 Nintendo Co., Ltd. Methods and apparatus for using illumination marks for spatial pointing
US8013838B2 (en) 2006-06-30 2011-09-06 Microsoft Corporation Generating position information using a video camera
JP4142073B2 (ja) * 2006-10-13 2008-08-27 株式会社コナミデジタルエンタテインメント 表示装置、表示方法、ならびに、プログラム
US8237656B2 (en) * 2007-07-06 2012-08-07 Microsoft Corporation Multi-axis motion-based remote control
US8669938B2 (en) * 2007-11-20 2014-03-11 Naturalpoint, Inc. Approach for offset motion-based control of a computer
US8996332B2 (en) * 2008-06-24 2015-03-31 Dp Technologies, Inc. Program setting adjustments based on activity identification
WO2010007566A1 (en) * 2008-07-18 2010-01-21 Koninklijke Philips Electronics N.V. Camera device and screen device
US8464160B2 (en) * 2008-09-29 2013-06-11 Panasonic Corporation User interface device, user interface method, and recording medium
WO2010035491A1 (ja) * 2008-09-29 2010-04-01 パナソニック株式会社 ユーザインターフェース装置、ユーザインターフェース方法、及び記録媒体
US20100188429A1 (en) * 2009-01-29 2010-07-29 At&T Intellectual Property I, L.P. System and Method to Navigate and Present Image Libraries and Images
US8406433B2 (en) * 2009-05-08 2013-03-26 Pixart Imaging Inc. 3-point positioning device and method thereof
CN101963847A (zh) * 2009-07-24 2011-02-02 精工爱普生株式会社 具有触发式开关的光学输入笔装置
KR101624505B1 (ko) * 2009-09-24 2016-05-26 삼성전자주식회사 3-d 포인팅 감지 장치 및 방법
JP5396620B2 (ja) * 2010-01-08 2014-01-22 任天堂株式会社 情報処理プログラム及び情報処理装置
US9098905B2 (en) 2010-03-12 2015-08-04 Google Inc. System and method for determining position of a device
US8700700B2 (en) * 2010-04-13 2014-04-15 Panasonic Corporation Screen shot display control apparatus, screen shot display control method, integrated circuit for screen shot display control, and server apparatus
JP2011258160A (ja) * 2010-06-11 2011-12-22 Namco Bandai Games Inc プログラム、情報記憶媒体及び画像生成システム
TWI507925B (zh) * 2010-06-23 2015-11-11 Pixart Imaging Inc You can switch the range of interactive pointing devices and how to switch fetch ranges
TWI446218B (zh) * 2010-06-30 2014-07-21 Pixart Imaging Inc A method of switching the range of interactive pointing devices and a handover fetch for interactive pointing devices
US8881982B2 (en) * 2012-04-20 2014-11-11 Honeywell Scanning & Mobility Portable encoded information reading terminal configured to acquire images
TWI546703B (zh) * 2012-09-12 2016-08-21 原相科技股份有限公司 物件追蹤裝置及其控制方法
CN103677237B (zh) * 2012-09-20 2016-12-21 原相科技股份有限公司 对象追踪装置及其控制方法
TWI461995B (zh) * 2012-09-28 2014-11-21 Pixart Imaging Inc 手持式指向裝置及其操作方法
US8659703B1 (en) 2012-10-23 2014-02-25 Sony Corporation Adapting layout and text font size for viewer distance from TV
JP6245610B2 (ja) * 2014-03-28 2017-12-13 シーシーエス株式会社 照明制御電源
CN110771158A (zh) * 2018-07-02 2020-02-07 深圳市大疆创新科技有限公司 拍摄装置的控制方法、拍摄装置、拍摄系统和存储介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0838741A (ja) 1994-08-04 1996-02-13 Taito Corp 射撃ゲーム装置
US6184863B1 (en) * 1998-10-13 2001-02-06 The George Washington University Direct pointing apparatus and method therefor
US6727885B1 (en) * 1999-09-07 2004-04-27 Nikon Corporation Graphical user interface and position or attitude detector
JP4581204B2 (ja) * 2000-09-11 2010-11-17 ソニー株式会社 位置解析装置及び位置解析方法、並びに、エンターテインメント装置
US20020085097A1 (en) * 2000-12-22 2002-07-04 Colmenarez Antonio J. Computer vision-based wireless pointing system
JP3626711B2 (ja) * 2001-08-09 2005-03-09 コナミ株式会社 指向位置検出用マーカ、指向位置検出装置及び射的ゲーム装置
AU2002353197A1 (en) * 2001-12-21 2003-07-15 British Telecommunications Public Limited Company Device and method for calculating a location on a display
US8947347B2 (en) * 2003-08-27 2015-02-03 Sony Computer Entertainment Inc. Controlling actions in a video game unit
US7627139B2 (en) * 2002-07-27 2009-12-01 Sony Computer Entertainment Inc. Computer image and audio processing of intensity and input devices for interfacing with a computer program
US8745541B2 (en) * 2003-03-25 2014-06-03 Microsoft Corporation Architecture for controlling a computer using hand gestures
US7243737B2 (en) * 2004-09-22 2007-07-17 Vermeer Manufacturing Company Interchangeable reamer
JP4794957B2 (ja) * 2005-09-14 2011-10-19 任天堂株式会社 ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP4481280B2 (ja) * 2006-08-30 2010-06-16 富士フイルム株式会社 画像処理装置、及び画像処理方法
JP4863507B2 (ja) * 2007-08-22 2012-01-25 株式会社バンダイナムコゲームス 指示位置演算用のマークユニット

Also Published As

Publication number Publication date
US8674937B2 (en) 2014-03-18
US20110210916A1 (en) 2011-09-01
JP2008125666A (ja) 2008-06-05
US7969413B2 (en) 2011-06-28
US20080117167A1 (en) 2008-05-22

Similar Documents

Publication Publication Date Title
JP5132131B2 (ja) ポインティング装置の調整プログラムおよびポインティング装置
JP5376874B2 (ja) 画像処理プログラムおよび画像処理装置
US8403761B2 (en) Game program, game apparatus and game system configured to use replay data to create a highlight scene
US7905782B2 (en) Game apparatus having general-purpose remote control function
JP5075330B2 (ja) 情報処理プログラム
JP5063930B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステムおよびゲーム制御方法
US20180047172A1 (en) Control Device for Communicating Visual Information
JP4837405B2 (ja) 座標算出装置および座標算出プログラム
JP4863761B2 (ja) ゲーム装置およびゲームプログラム
US8780043B2 (en) Information selecting apparatus, storage medium storing information selecting program, game apparatus, and storage medium storing game program
JP4964729B2 (ja) 画像処理プログラムおよび画像処理装置
JP4987399B2 (ja) ゲームプログラムおよびゲーム装置
US8308560B2 (en) Network system, information processing apparatus and information processing program
WO1999063758A1 (fr) Instrument de mesure de position d'entree et systeme recreatif
US20120133582A1 (en) Storage medium having stored thereon information processing program, information processing apparatus, information processing system, and information processing method
JP2007061489A (ja) 情報処理システムおよびプログラム
JP2009009266A (ja) 画像処理プログラムおよび画像処理装置
JP5758202B2 (ja) 画像処理プログラム、画像処理装置、画像処理方法および画像処理システム
JP2012237866A (ja) 音楽演奏プログラム、音楽演奏装置、音楽演奏システム、および音楽演奏方法
JP2008237398A (ja) シミュレーションプログラムおよびシミュレーション装置
JP6280390B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
JP6262563B2 (ja) 情報処理プログラム、情報処理装置、情報処理システム、および、情報処理方法
JP5352626B2 (ja) 情報処理プログラム
JP2012113752A (ja) 画像処理プログラムおよび画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091020

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121106

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121106

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5132131

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250