(58)【調査した分野】(Int.Cl.,DB名)
前記第1指標および前記第2指標の少なくとも一方は赤外光を吸収する材料で構成されており、前記第1指標および前記第2指標が配置されている領域以外の領域に、赤外光を吸収しない材料で構成されるパターンが形成される、請求項11に記載のアタッチメント。
前記赤外光を吸収しない材料で構成されるパターンは、前記第1指標および前記第2指標の少なくとも一方と一体化するように配置される、請求項12に記載のアタッチメント。
前記赤外光を吸収しない材料で構成されるパターンは、複数の前記第1指標の間または複数の前記第2指標の間に、複数の指標と一体化するように配置される、請求項13に記載のアタッチメント。
前記ゲームコントローラは、前記カメラにより撮影された全体画像の一部を抽出して前記画像データを生成する抽出手段をさらに含む、請求項18に記載のゲームシステム。
前記本体装置は、前記ゲームコントローラからの前記画像データから、前記第1処理実行手段および前記第2処理実行手段での処理に必要な部分画像を抽出する抽出手段をさらに含む、請求項18に記載のゲームシステム。
【発明を実施するための形態】
【0024】
本実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0025】
<A.ゲームシステムの構成>
まず、本実施の形態に従うゲームシステム1の構成について説明する。
【0026】
(a1:システム全体構成)
図1は、本実施の形態に従うゲームシステム1の外観構成の一例を示す模式図である。
図1を参照して、ゲームシステム1は、1または複数のゲームコントローラ100(以下、単に「コントローラ100」とも記す。)と、1または複数のコントローラ100に接続される本体装置200とを含む。本体装置200には、テレビジョン装置などの表示装置204が接続されており、表示装置204からは、本体装置200から出力された映像信号および/または音声信号に従って、映像および/または音声が出力される。
【0027】
図1には、コントローラ100と本体装置200との間で、無線通信により互いに情報を遣り取りする構成例を示すが、有線通信で互いに情報を遣り取りするようにしてもよい。
【0028】
本実施の形態に従うゲームシステム1を構成するコントローラ100は、その一端に撮像部120を有している。コントローラ100の撮像部120には、後述するようなアタッチメントを装着することが可能である。
【0029】
以下の説明においては、
図1に示すような、本体装置200と通信するコントローラ100をゲームコントローラの典型例として説明するが、これに限らず、撮像部120に相当する機能を有する任意の装置をゲームコントローラとして用いることができる。例えば、ディスプレイおよび操作部を含む携帯型ゲーム装置自体をゲームコントローラとして用いてもよいし、携帯電話、スマートフォン、タブレットなどの汎用的な携帯型端末をゲームコントローラとして用いてもよい。
【0030】
(a2:ゲームコントローラ)
図2は、
図1に示すゲームコントローラ100のハードウェア構成の一例を示す模式図である。
図2を参照して、ゲームコントローラ100は、制御部110と、操作部102と、インジケータ104と、音声出力部106と、無線通信部108と、加速度センサ130と、ジャイロセンサ132と、NFC(Near field radio communication)リーダライタ134と、撮像部120とを含む。
【0031】
制御部110は、コントローラ100における処理全体を制御する主体であり、その主要なコンポーネントとして、CPU(Central Processing Unit)112と、メインメモリ114と、制御プログラム118を格納したフラッシュメモリ116とを含む。プロセッサの一例であるCPU112は、フラッシュメモリ116に格納された制御プログラム118をメインメモリ114に読み出して実行することで、後述するような各種制御を実現する。
【0032】
制御部110は、上述したコンポーネントを含むシステムLSI(Large Scale Integration)として実装してもよい。
【0033】
操作部102は、ユーザ操作を受付け、そのユーザ操作の内容を示す情報を制御部110へ出力する。典型的には、操作部102は、押ボタン、操作レバー、タッチパネル、マウスなどを含む。あるいは、操作部102としては、コントローラ100とは別体の、有線または無線で接続されるコントローラを含むようにしてもよい。
【0034】
インジケータ104は、コントローラ100の表面に露出して配置され、制御部110からの指令に従って、ユーザに対して視覚的な態様で通知を行なう。典型的には、インジケータ104は、LED(Light Emitting Diode)などを含む。
【0035】
音声出力部106は、コントローラ100の表面に部分的に露出して配置され、制御部110からの指令に従って、ユーザに対して聴覚的な態様で通知を行なう。典型的には、音声出力部106は、1または複数のスピーカなどを含む。
【0036】
無線通信部108は、制御部110からの指令に従って他の装置との間で無線信号を遣り取りするとともに、他の装置から受信したデータを制御部110へ出力する。無線通信部108は、図示しない、周波発生回路、変調回路、復調回路、符号化回路などを含む。無線通信部108は、IEEE(Institute of Electrical and Electronic Engineers)802.15規格に従うBluetooth(登録商標)や、IEEE802.11規格に従う無線LAN(Local Area Network)などに従った通信方式を採用してもよい。
【0037】
加速度センサ130は、コントローラ100に生じる加速度を検出し、その検出結果を制御部110へ出力する。ジャイロセンサ132は、コントローラ100の傾きなどを検出し、その検出結果を制御部110へ出力する。加速度センサ130およびジャイロセンサ132の少なくとも一方もしくは両方を用いて、コントローラ100の姿勢および動きの少なくとも一方を検出することができる。
【0038】
NFCリーダライタ134は、記憶媒体の一例であるIC(Integrated Circuit)タグ(あるいは、NFCタグ)との間で非接触通信により情報を遣り取りする通信部であり、近接配置されたICタグに対してデータを書き込むとともに、ICタグに格納されたデータを読み取る。なお、「NFC」との名称に限らず、無線信号を介してデータを遣り取りできる構成を採用すればよい。
【0039】
撮像部120は、コントローラ100の周囲に存在する光を受けて画像データを生成する部位であり、カメラ122および発光部124からなる。
【0040】
カメラ122は、CCD(Charge Coupled Device)、CMOS(Complementary Metal Oxide Semiconductor)イメージセンサ、フォトダイオードアレイといった、任意の撮像デバイスを含んで構成される。カメラ122の受光感度は被写体が発する光の波長に応じて適宜設定すればよいが、本実施の形態においては、一例として、赤外領域に受光感度を有する撮像デバイスが用いられる。この場合、カメラ122は、入射した赤外線の強度分布に対応する画像データを出力することができる。すなわち、カメラ122としては、赤外線カメラを採用してもよい。
【0041】
発光部124は、カメラ122により被写体を撮影するために、被写体に光を照射するための光源である。一例として、発光部124は、LED(light emitting diode)やレーザダイオードといった任意の発光デバイスを用いることができる。上述したように、カメラ122が赤外領域での画像を取得する場合には、発光部124は、赤外線を照射するように構成される。すなわち、発光部124は、被写体に光に対して赤外光(IR(Infrared)光)を照射することができる。発光部124は、従来のカメラに装着されているフラッシュのような機能を兼用するようにしてもよい。
【0042】
(a3:本体装置)
図3は、
図1に示す本体装置200のハードウェア構成の一例を示す模式図である。
図3を参照して、本体装置200はコンピュータの一種であり、主要なコンポーネントとして、制御部210と、無線通信部220と、ネットワーク通信モジュール230と、フラッシュメモリ232と、外部メインメモリ234と、映像音声出力ドライバ236と、ディスクドライブ238とを含む。
【0043】
制御部210は、本体装置200における処理全体を制御する主体であり、その主要なコンポーネントとして、CPU212と、メインメモリ214と、GPU(Graphical Processing Unit)216と、VRAM(Video Random Access Memory)218とを含む。CPU212は、基本システムプログラムやアプリケーションなどを実行する。メインメモリ214は、CPU212でのプログラム実行に必要な一時データを保持するワーキングメモリとして機能する。GPU216は、主として表示に係る処理を実行する。VRAM218は、GPU216での処理によって生成された画像を表示するためのワーキングメモリとして機能する。
【0044】
制御部210は、上述したコンポーネントを含むシステムLSI(Large Scale Integration)として実装してもよい。
【0045】
無線通信部220は、制御部210からの指令に従って他の装置との間で無線信号を遣り取りするとともに、他の装置から受信したデータを制御部210へ出力する。典型的には、無線通信部220は、コントローラ100との間で情報を遣り取りする。無線通信部220のより具体的な構成については、
図2に示すコントローラ100の無線通信部108と同様である。
【0046】
ネットワーク通信モジュール230は、アクセスポイントなどの装置と無線通信するための各種回路を含む。ネットワーク通信モジュール230は、例えば、IEEE802.11規格に従う無線LAN(Local Area Network)、赤外線通信、LTE(Long Term Evolution)などに従うモバイル通信、などを用いて実装されてもよい。
【0047】
無線通信部220およびネットワーク通信モジュール230については、いずれも無線通信するための回路を含むため、これらを同一のチップ内に実装するようにしてもよい。
【0048】
フラッシュメモリ232は、制御部210からアクセス可能になっており、基本システムプログラムやアプリケーションなどを不揮発的に保持する。例えば、フラッシュメモリ232は、各種のアプリケーション233を格納していてもよい。アプリケーション233は、ディスクドライブ238によって光学記録媒体208から読み出されて、インストールされる。
【0049】
外部メインメモリ234は、制御部210内のメインメモリ214と連携してワーキングメモリとして機能してもよい。
【0050】
映像音声出力ドライバ236は、制御部210から出力される映像信号および音声信号を表示装置204(
図1参照)へ出力する。
【0051】
<B.アタッチメントの概要>
次に、本実施の形態に従うアタッチメントの構造などについて概要を説明する。
図4は、本実施の形態に従うアタッチメント300の使用形態の一例を示す模式図である。
図4(A)を参照して、アタッチメント300は、様々なゲーム操作が可能に構成された部材であり、基本的には、筐体310と、筐体310に設けられた操作部320とからなる。操作部320は、ユーザ操作に応じて位置、速度、加速度、向き、角度、姿勢などを変化させる。
図4(B)に示すように、アタッチメント300にはコントローラ100が装着され、コントローラ100のカメラ122の撮影により取得された画像に基づいて、操作部320に生じた変化が検出され、その検出された変化に基づいて操作データが生成される。
図4(B)には明示していないが、筐体310の内部には、コントローラ100を支持する支持部が設けられている。
【0052】
アタッチメント300は、その内部にある程度の空間が形成されればよい。そのため、筐体310としては、鉄やアルミなどの金属材料や、プラスチックなどの樹脂材料に加えて、段ボールなどの紙材料などを用いてもよい。
【0053】
図4(A)および
図4(B)に示すアタッチメント300は、球状の操作部320の一部が筐体310の開口部と回転可能に係合されている。ユーザは、操作部320を押下する操作(押下操作)、および、操作部320を回転させる操作(回転操作)が可能になっている。すなわち、アタッチメント300は、ボタン機構、および、回転機構を含む。なお、押下操作または回転操作のいずれか一方のみが設けられた構成を採用してもよい。
【0054】
コントローラ100のカメラ122の撮影により取得された画像から、ユーザが操作部320に対して行なう、回転操作および/または押下操作を検出することができる。
図4(B)に示すように、コントローラ100のカメラ122の撮影視野126内には、操作部320の一部または操作部320と連動して変化する部材が配置されており、少なくともいずれかを撮影することで、ユーザ操作を検出する。典型的には、操作部320を押下する操作(押下操作)の方向、すなわちボタン機構の動き方向は、カメラ122の撮影方向(視点方向)とは垂直な方向になっている。
【0055】
このように、本実施の形態に従うアタッチメント300は、カメラ122を有するコントローラ100と共に用いられることで、任意のユーザ操作を検出する、一種のゲームコントローラあるいは入力デバイスとして機能する。
【0056】
<C.アタッチメント内部のマーカ>
次に、コントローラ100のカメラ122による撮影によってユーザ操作を検出するための機構について説明する。本実施の形態に従うアタッチメント300においては、コントローラ100のカメラ122の撮影により生成される画像内に、異なる機能を有する2種類の指標(以下、「マーカ」とも称す。)がそれぞれ写る領域が存在するように構成される。
【0057】
より具体的には、アタッチメント300の内部には、第1指標として、操作部320に対する操作により位置が変化しない状態で配置されたマーカ(以下、区別のため「静止マーカ」とも称す。)と、第2指標として、操作部320に対する操作に応じて位置が変化する状態で配置されたマーカ(以下、区別のため「可動マーカ」とも称す。)とが存在する。なお、これらの2種類のマーカに加えて、さらに別のマーカを配置してもよい。
【0058】
第1指標である静止マーカは、コントローラ100から見た、アタッチメント300の接続状態、種別、設置ズレなどを検出するために用いられるものであり、いわば、「動かないマーカ」である。一方、第2指標である可動マーカは、コントローラ100から見た、アタッチメント300の操作部320の動きを検出するために用いられるものであり、いわば、「動くマーカ」である。
【0059】
本明細書において、「指標」または「マーカ」は、他の領域とは異なる視覚的または光学的な特徴を有する部材または領域を総称するものであり、上述したようなそれぞれのマーカに付与されている機能のみを実現する形態もあるし、他の機能を兼用するような形態も存在する。すなわち、本明細書における「指標」または「マーカ」は、コントローラ100のカメラ122が特定の位置または領域を検出できるものであれば、どのような形態で実装してもよい。
【0060】
図5は、本実施の形態に従うアタッチメント300に対するユーザ操作を検出するための方法を説明するための模式図である。
図5(A)は、可動マーカ340に比較して静止マーカ330がよりカメラ122に近い位置に配置されている例を示し、
図5(B)は、静止マーカ330に比較して可動マーカ340がよりカメラ122に近い位置に配置されている例を示す。
【0061】
図5(A)を参照して、アタッチメント300の一端には開口部が設けてあり、この開口部にコントローラ100が装着される。コントローラ100とアタッチメント300との間の結合は密結合であってもよいし、疎結合であってもよい。装着時には、アタッチメント300の筐体310の一部に形成される支持部312がコントローラ100を支持する。支持部312は、コントローラ100のカメラ122の撮影方向が筐体310の内部へ向くようにコントローラ100を支持できる構造であれば、どのような構造を採用してもよい。支持部312は、アタッチメント300の筐体310の形状などに適合する形状に構成してもよい。
【0062】
コントローラ100が筐体310の支持部312により位置決めされることで、コントローラ100のカメラ122の撮影視野126内には、筐体310の内部に存在する部材が被写体として存在することになる。
【0063】
より具体的には、アタッチメント300の筐体310の内部には、筐体310の一部に取り付けられた静止マーカ330と、操作部320と一体的に形成される円筒部322の外周面に配置された可動マーカ340とが存在する。ユーザが操作部320を操作すると、操作部320と一体的に形成されている円筒部322も連動して移動するため、円筒部322の外周面に配置された可動マーカ340の位置は変化する。これに対して、静止マーカ330は、操作部320および円筒部322とは独立して、筐体310に固定されているので、操作部320に対する操作により位置が変化することはない。なお、
図5には、円筒部322が操作部320と一体的に形成される構成例を示したが、必ずしも両部材を一体的に構成する必要はなく、任意のリンク機構などを採用して、円筒部322が操作部320に連動するようにすればよい。
【0064】
このように、操作部320は、筐体310内の位置に配置され、操作部320に対する操作に応じて位置が変化する可動部材としての円筒部322を有している。
【0065】
なお、
図5に示すように、ユーザが操作部320を押下する操作(押下操作)に対して抗力を発生するためのバネ314などの付勢手段を用いてもよい。すなわち、
図5に示すアタッチメント300は、操作部320に対する操作に抗する付勢機構を含む。このような付勢機構を採用することで、ユーザが押下しているときだけ操作部320が下側に移動するといったボタンの動きを実現できる。
【0066】
図5(A)に示す構成は、特に、カメラ122の視野が広い場合などに好適である。これに対して、
図5(B)に示す構成は、カメラ122の視野が相対的に狭い場合などに好適である。より具体的には、
図5(B)に示す構成においては、静止マーカ330は、カメラ122から見て、可動マーカ340が配置されている円筒部322より奥側に固定される。
図5(B)に示す構成においても、可動マーカ340は、操作部320に対するユーザ操作に応じて位置が変化する一方で、静止マーカ330は、操作部320に対するユーザ操作では位置は変化しない。
【0067】
図5(A)および
図5(B)のいずれにおいても、筐体310に設けられた支持部312は、コントローラ100のカメラ122の撮影視野126内に、筐体310内に配置された静止マーカ330(第1指標)を被写体として含む領域と、筐体310内に配置された可動マーカ340(第2指標)を被写体とする領域とを含むように、コントローラ100を支持する。静止マーカ330および可動マーカ340は、カメラ122の撮影方向(視点方向)が異なるように配置されてもよい。
【0068】
図6は、
図5に示す構成においてゲームコントローラ100のカメラ122の撮像により得られる画像(以下、「カメラ画像」とも称す。)の一例を説明する模式図である。カメラ画像は、典型的には、赤外線画像またはIR画像が用いられる。
図6(A)を参照して、カメラ画像400は、その上部に、静止マーカ330が被写体として写っている領域(以下、区別のため「静止マーカ領域410」とも称す。)と、その中央部に、可動マーカ340が被写体として写っている領域(以下、区別のため「可動マーカ領域420」とも称す。)とを含む。
図6(A)に示す例では、可動マーカ領域420には、可動マーカ340が配置されている円筒部322の一部も被写体として写っている。
【0069】
図6(B)には、アタッチメント300の操作部320がユーザによって押下された状態において撮像されたカメラ画像400の例を示す。ユーザが操作部320に対して押下操作を行なうことで、カメラ画像400内において、被写体である可動マーカ340は、可動マーカ領域420内においてより下側に移動する。すなわち、可動マーカ領域420を予め設定しておけば、その設定した可動マーカ領域420内において、可動マーカ340がいずれの位置にあるのかに基づいて、ユーザによる操作部320に対する押下操作の有無を検出できる。
【0070】
なお、ユーザが操作部320に対して回転操作を行なった場合には、可動マーカ領域420内において、可動マーカ340が水平方向に移動することになるので、その水平方向の移動の発現に基づいて、ユーザによる操作部320に対する回転操作の有無および/または回転操作の度合いを検出できる。
【0071】
図6に示すように、静止マーカ330は、カメラ122の撮影視野126において外周側に位置するように配置され、可動マーカ340は、カメラ122の撮影視野126において静止マーカ330より内周側に位置するように配置される。このような配置に限られるものではないが、静止マーカ330を可動マーカ340より外周側に配置することで、可動マーカ領域420の特定を容易化できる。
【0072】
可動マーカ領域420内における可動マーカ340に相当するパターンの位置や動きを検出することで、操作部320に対するユーザ操作を検出できる。このように、可動マーカ領域420の特定に用いられる静止マーカ330は、操作部320に対するユーザ操作による位置変化を検出するための基準位置を示す情報を含むことになる。
【0073】
<D.マーカの検出処理>
次に、本実施の形態に従う2種類のマーカを用いた検出処理について説明する。
【0074】
本実施の形態に従うアタッチメント300を用いた場合には、段階的にマーカを検出する処理が実行される。具体的には、カメラ画像内から静止マーカ領域410が特定され、その特定された静止マーカ領域410の位置に基づいて可動マーカ領域420が特定される。そして、特定された可動マーカ領域420内に現れる可動マーカ340の動きに基づいて、操作部320に対するユーザ操作を検出する。
【0075】
図7は、本実施の形態に従うアタッチメント300を用いたマーカの検出処理の手順を説明するための模式図である。
図7(A)を参照して、ゲームコントローラ100のカメラ122の撮影により取得されたカメラ画像400に対して、静止マーカ330に相当するパターンを探索する処理が実行される((1)第1探索)。すなわち、静止マーカ330が写っている領域が検出される。そして、静止マーカ330に相当するパターンが検出されると、検出されたパターンの位置または領域に応じて、静止マーカ領域410が設定される((2)第1領域設定)。また、検出されたパターンに基づいて、装着されているアタッチメント300の種別が特定される((3)種別特定)。
【0076】
図7(B)に示すように、設定された静止マーカ領域410を基準として、予め定められた位置関係に従って、可動マーカ領域420が設定される((4)第2領域設定)。そして、
図7(C)に示すように、設定された可動マーカ領域420内に対して、可動マーカ340に相当するパターンを探索する処理が実行される((5)第2探索)。このとき、カメラ画像400内の可動マーカ領域420以外の領域については、探索対象から除外される。但し、要求される探索性能や探索能力などによっては、可動マーカ領域420以外の領域を探索対象から除外しなくてもよい。
【0077】
このように、本実施の形態に従うアタッチメント300を用いることで、少なくとも、静止マーカ330が写った静止マーカ領域410と、可動マーカ340が写った可動マーカ領域420との領域に分けて、段階的にマーカの検出を行なうことができる。このように、段階的に領域を区切ってマーカを検出する処理を採用することで、一回の探索処理で検出できる数に制約がある場合であっても、検出速度および検出精度を落とすことなく、マーカの検出処理を実現できる。
【0078】
パターンを探索する処理には、カメラ画像に含まれる他の領域とは異なる色などを有する部分(画素の集合であり、「クラスタ」とも称される。)を特定する処理が用いられる。このクラスタを探索する処理においては、入力されたカメラ画像から、クラスタの重心位置、クラスタの大きさ、クラスタを包含する領域(典型的には、領域の左上座標および右下座標)が検出される。
【0079】
一回の探索処理で検出できる数に制約がある場合とは、このようなクラスタを検出する処理において、同時に探索できるクラスタの数に上限があるような場合が想定される。このような場合、静止マーカ330および可動マーカ340を同時に探索しようとすると、クラスタの最大検出上限に制約されて、マーカのすべてを一度に検出できない可能性がある。これに対して、
図7に示すような方法を採用することで、各段階において設定される領域に対して、システム上許容される範囲で、可能な限り多くのマーカを探索することができる。言い換えれば、静止マーカ330および可動マーカ340の両方を考慮する必要はなく、静止マーカ330および可動マーカ340の各々について、システム上の上限数を超えない範囲で任意のパターンを採用することができる。
【0080】
<E.ゲームシステムにおける全体処理手順>
次に、本実施の形態に従うゲームシステム1においてアタッチメント300の操作部320に対するユーザ操作を検出して、各種情報処理を実行するための全体処理手順について説明する。
【0081】
図7を参照して説明したように、本実施の形態においては、カメラ122の撮影により取得されたカメラ画像に対して、静止マーカ領域410が設定され、それに続いて、可動マーカ領域420が設定される。カメラ画像のうち、設定された可動マーカ領域420に相当する部分画像に基づいて、操作部320に対するユーザ操作が検出され、その検出されたユーザ操作の内容を示す操作データが生成される。これらの一連の処理は、コントローラ100および本体装置200の間で、分散処理させることもできるし、一方の装置ですべての処理を実行させることもできる。すなわち、典型的には、以下のような態様が想定される。
【0082】
(a)コントローラ100のみで実行される態様。
(b)コントローラ100で撮像されたカメラ画像400が本体装置200に送信されて、本体装置200において実行される態様。
【0083】
(c)コントローラ100と本体装置200とが協働して実行される態様。
以下、典型例として、コントローラ100と本体装置200とが協働して実行される一態様について説明する。但し、以下に示す処理手順に限定されることなく、ゲームシステムの構成、処理能力、要求性能などに応じて、任意の実装形態を採用できる。
【0084】
図8は、本実施の形態に従うゲームシステム1における操作データの生成処理の概要を説明する模式図である。
図8を参照して、まず、コントローラ100のカメラ122の撮影によりカメラ画像400が取得される。コントローラ100は、カメラ122の撮影により取得される画像データを本体装置200に送信する機能を有しており、コントローラ100において取得されたカメラ画像400が本体装置200に送信される。
【0085】
本体装置200は、コントローラ100からのカメラ画像400に対して、静止マーカが探索されて静止マーカ領域410を設定するとともに、設定した静止マーカ領域410を基準として可動マーカ領域420を設定する。このように、本体装置200は、カメラ画像400に含まれる静止マーカ領域410に対応する部分の画像に基づいて初期設定に係る処理を実行する。そして、本体装置200は、カメラ画像400に対して設定した可動マーカ領域420の位置および範囲を示す、可動マーカ領域特定情報をコントローラ100に送信する。
【0086】
コントローラ100は、本体装置200から受信した可動マーカ領域特定情報に従って、カメラ122の撮影により取得したカメラ画像400のうち、可動マーカ領域420に対応する領域の部分画像を抽出して、本体装置200に送信する。すなわち、コントローラ100は、カメラ122により撮影された全体画像の一部を抽出して部分画像を生成する抽出機能を有している。
【0087】
本体装置200は、可動マーカ領域420に相当する部分画像に対して、可動マーカを探索する処理を行なって、アタッチメントの操作部に対するユーザ操作を検出する(操作検出処理)。本体装置200は、検出されたユーザ操作の内容を示す操作データを生成し、その生成した操作データに基づいてゲーム処理を進行する。このように、本体装置200は、カメラ画像400に含まれる可動マーカ領域420に対応する部分の画像と先の初期設定に係る処理の結果とに基づいて、操作データを生成する処理を実行する。
【0088】
なお、本体装置200においては、装着されているアタッチメント300の種別に応じて異なるゲーム処理が実行される。具体的には、特定されたアタッチメント300の種別に応じて異なる操作データが生成されるようにしてもよいし、同一の操作データに対して、特定されたアタッチメント300の種別に応じて異なるゲーム処理が実行されるようにしてもよい。
【0089】
図9は、本実施の形態に従うアタッチメント300を用いたマーカの検出処理の処理手順を示すフローチャートである。
図9に示すコントローラ100に関する各ステップは、典型的には、コントローラ100のCPU112が制御プログラム118(いずれも
図2参照)を実行することで実現される。また、
図9に示す本体装置200に関する各ステップは、本体装置200のCPU212が基本システムプログラムまたはアプリケーション233(いずれも
図3参照)を実行することで実現される。
【0090】
コントローラ100は、アタッチメント300に対する検出処理の開始が指示されると(ステップS100)、カメラ122を有効化して、カメラ122によりアタッチメント300の内部を撮影する(ステップS102)。なお、ステップS102における撮影時には、静止マーカ330の検出に適した撮影条件に設定することが好ましい。この撮影条件の変更については後述する。
【0091】
コントローラ100は、カメラ122の撮影により取得されたカメラ画像400を本体装置200に送信する(ステップS104)。
【0092】
本体装置200は、コントローラ100から受信したカメラ画像400に対して、静止マーカ330に相当するパターンを探索する(ステップS200)。本体装置200は、静止マーカ330に相当するパターンを検出すると、検出されたパターンの位置または領域に応じて、静止マーカ領域410を設定し(ステップS202)、装着されているアタッチメント300の種別を特定し(ステップS204)、設定された静止マーカ領域410を基準として、予め定められた位置関係に従って、可動マーカ領域420を設定する(ステップS206)。そして、本体装置200は、設定した可動マーカ領域420の位置および範囲を示す、可動マーカ領域特定情報をコントローラ100に送信する(ステップS208)。このように、本体装置200は、初期設定に係る処理として、可動マーカ領域420を特定する可動マーカ領域特定情報を生成し、その可動マーカ領域特定情報をコントローラ100に送信する。
【0093】
コントローラ100は、本体装置200から可動マーカ領域特定情報を受信したか否かを判断する(ステップS106)。本体装置200から可動マーカ領域特定情報を受信していなければ(ステップS106においてNOの場合)、ステップS102以下の処理が繰返される。
【0094】
本体装置200から可動マーカ領域特定情報を受信していれば(ステップS106においてYESの場合)、コントローラ100は、カメラ122によりアタッチメント300の内部を撮影する(ステップS110)。なお、ステップS110における撮影時には、可動マーカ340の検出に適した撮影条件に設定することが好ましい。この撮影条件の変更については後述する。そして、コントローラ100は、カメラ122による撮影によって取得されたカメラ画像400のうち、本体装置200からの可動マーカ領域特定情報により指定された可動マーカ領域420に相当する部分画像を抽出し(ステップS112)、抽出した部分画像を本体装置200に送信する(ステップS114)。このように、コントローラ100は、可動マーカ領域特定情報に基づいて、可動マーカ領域420に対応する部分画像を生成し、その部分画像を本体装置200に送信する。
【0095】
コントローラ100は、アタッチメント300に対する検出処理の終了が指示されたか否かを判断する(ステップS116)。アタッチメント300に対する検出処理の終了が指示されていなければ(ステップS116においてNO)、ステップS106以下の処理が繰返される。アタッチメント300に対する検出処理の終了が指示されると(ステップS116においてYES)、処理は終了する。
【0096】
本体装置200は、コントローラ100からカメラ画像400の部分画像を受信したか否かを判断する(ステップS210)。コントローラ100からカメラ画像400の部分画像を受信していれば(ステップS210においてYES)、本体装置200は、受信した部分画像に対して、可動マーカ340に相当するパターンを探索する(ステップS212)。本体装置200は、探索した可動マーカ340に相当するパターンの位置および位置の変化などに基づいて、アタッチメントの操作部に対するユーザ操作を検出する(ステップS214)。本体装置200は、検出されたユーザ操作の内容を示す操作データを生成し(ステップS216)、その生成した操作データに基づいてゲーム処理を進行する(ステップS218)。そして、ステップS210以下の処理が繰返される。このように、本体装置200は、可動マーカ領域420に対応する部分画像に基づいて、操作検出処理を実行する。
【0097】
一方、コントローラ100からカメラ画像400の部分画像を受信していなければ(ステップS210においてNO)、処理は終了する。
【0098】
なお、カメラ画像400から可動マーカ領域420に対応する部分の画像を抽出する処理については、本体装置200側で実行されてもよい。この場合、コントローラ100から本体装置200には、カメラ画像400が順次送信されるとともに、本体装置200においては、受信したカメラ画像400から設定されている可動マーカ領域420に相当する部分画像のみを対象として、ユーザ操作の検出処理を実行する。このように、本体装置200に対して、コントローラ100からのカメラ画像400から、初期設定に係る処理および操作検出処理に必要な部分画像を抽出する機能を実装してもよい。
【0099】
<F.マーカのパターン形状および用途>
次に、静止マーカ330および可動マーカ340のパターン形状および用途について説明する。
【0100】
(f1:静止マーカ330のパターン)
静止マーカ330は、コントローラ100から見た、アタッチメント300の接続状態、種別、設置ズレなどを検出するために用いられる。
【0101】
図10は、本実施の形態に従うアタッチメント300に用いられる静止マーカ330のパターンの一例を示す模式図である。
図10(A)および
図10(B)を参照して、静止マーカ330は、位置基準マーカ331と、識別マーカ332とを含む。位置基準マーカ331の矩形領域の間は予め定められた距離だけ離されている。そして、位置基準マーカ331を構成する各矩形領域は、識別マーカ332を構成する各矩形領域より大きい。このような矩形領域の特徴に基づいて、カメラ122の撮影により取得されたカメラ画像内から位置基準マーカ331が写っている領域が特定される。
【0102】
位置基準マーカ331は、アタッチメント300が装着されているか否かについての判断基準となる。例えば、位置基準マーカ331が少なくとも1つ検出されるか否かに基づいて、アタッチメント300が存在していると検出してもよい。
【0103】
また、位置基準マーカ331は、カメラ画像内に静止マーカ領域410および可動マーカ領域420(いずれも
図7参照)を設定するための位置基準となる。また、カメラ画像内に位置基準マーカ331に相当するパターンが検出できたか否かに基づいて、コントローラ100にアタッチメント300が装着されているか否かを判断することもできる。
【0104】
このように、位置基準マーカ331は、アタッチメント300の存在を検出するための情報として、位置基準マーカ331を含む。但し、位置基準マーカ331および識別マーカ332の両方または一方のみをアタッチメント300の存在を検出するための情報として用いてもよい。
【0105】
なお、アタッチメント300が取り外されたか否かについては、以下のような方法で判断できる。すなわち、静止マーカ330の位置基準マーカ331のうち必ず1つが検出されているという状態から、位置基準マーカ331が1つも検出認識できない状態に変化すると、アタッチメント300が取り外されたと判断してもよい。あるいは、可動マーカ340の一部として、操作部320に対する操作では位置が変化しないマーカを含めておき、そのマーカが検出されない状態に変化すると、アタッチメント300が取り外されたと判断してもよい。
【0106】
一方、識別マーカ332は、アタッチメント300の種別、シリアル番号、属性といった個別情報を示す。
図10(A)および
図10(B)には、それぞれ異なる種別のアタッチメント300に付加される静止マーカ330の例を示す。
図10(A)と
図10(B)とを比較して分かるように、識別マーカ332のパターンは互いに異なっており、各パターンが対応するアタッチメント300の固有情報を示す。このように、位置基準マーカ331は、アタッチメント300の種別を特定するための情報として、識別マーカ332を含んでいてもよい。
【0107】
このように、識別マーカ332は、各アタッチメント300の種別、シリアル番号、属性といった個別情報を含ませるようにしてもよい。
【0108】
図11は、本実施の形態に従うアタッチメント300に用いられる静止マーカの変形例を示す模式図である。
【0109】
図11(A)を参照して、一変形例である静止マーカ330Aにおいては、位置基準マーカ331が四隅にそれぞれ配置されている。位置基準マーカ331を四隅に配置することで、静止マーカ領域410の領域設定、および、それに伴う可動マーカ領域420の領域設定を容易化することができる。つまり、位置基準マーカ331を四隅に配置することで、可動マーカ領域420の左右方向の端に加えて、可動マーカ領域420の上下方向の端をより容易に検出することができる。なお、位置基準マーカ331を対角線上に2つ配置するようにしてもよい。
【0110】
図11(A)に示す静止マーカ330Aにおいては、左右方向に延びる識別マーカ332が採用されている。
図11(A)に示す識別マーカ332を採用した場合には、左右方向に移動する操作部320の検出により好適である。
【0111】
図11(B)を参照して、別の変形例である静止マーカ330Bにおいても、位置基準マーカ331が四隅にそれぞれ配置されている。一方、識別マーカ332については、上下方向に延びるパターンが採用されている。
図11(B)に示す識別マーカ332を採用した場合には、上下方向に移動する操作部320の検出により好適である。
【0112】
図10および
図11に示すような静止マーカを用いる場合には、位置基準マーカ331および識別マーカ332の検出を多段階で実行してもよい。例えば、
図8のステップS102およびS110の処理において、カメラ画像内の位置基準マーカ331に相当するパターンを検出することで、静止マーカ領域410を設定してもよい。そして、カメラ画像内の識別マーカ332に相当するパターンを検出することで、装着されているアタッチメント300の種別を特定し、その特定した種別に応じて、静止マーカ領域410を基準として、可動マーカ領域420を設定するようにしてもよい(
図8のステップS206)。
【0113】
このような多段階の検出処理を採用することで、位置基準マーカ331の検出精度を高めることができるとともに、静止マーカ領域410および可動マーカ領域420の設定精度を高めることができる。
【0114】
(f2:静止マーカ330および可動マーカ340の反射率)
本実施の形態に従うアタッチメント300においては、上述したように、2種類のマーカが同一のカメラ画像内に写るように配置される。このように、カメラ画像を2つ以上の領域に分離してそれぞれにマーカを配置した場合には、各領域の大きさに制約が発生する他、位置ズレなどにより、ある領域に存在すべきマーカが別の領域に写ってしまい誤検出が生じる可能性がある。
【0115】
そこで、静止マーカ330および可動マーカ340の反射率を異ならせるとともに、各反射率に応じた撮影条件で撮影することで、誤検出の可能性を低減させてもよい。
【0116】
図12は、本実施の形態に従うアタッチメント300に用いられるマーカの別の一例を示す模式図である。説明の便宜上、
図12には、静止マーカ330および可動マーカ340をカメラ122で撮影した状態を示す。
【0117】
図12(A)を参照して、静止マーカ330および可動マーカ340の反射率は、カメラ122が受光感度を有する波長において、所定の差異を有しているとする。カメラ122により撮影されたカメラ画像には、筐体310の内面も写り込むので、筐体310の内面の反射率も含めて、3つの異なる反射率(あるいは、反射率の範囲)を設定する必要がある。
【0118】
検出精度の観点からは、筐体310の反射率に対して、高い反射率をもつマーカ、および、低い反射率をもつマーカとを配置することが好ましい。
【0119】
一例として、静止マーカ330の反射率を最も低く設定し、可動マーカ340の反射率を最も高く設定することができる。言い換えれば、静止マーカ330を「黒色」の素材で構成し、可動マーカ340を「白色」の素材で構成することができる。この場合、筐体310の内部は、「黒色」の素材より明るい色の素材を用いればよい。
【0120】
「白色」の素材としては、任意の反射材を用いることができる。この反射材としては、再帰性反射材がより好ましい。再帰性反射材は、一般的に市販されている材料を用いることができ、あるいは、蛍光ペンの素材などを利用するようにしてもよい。このように、静止マーカ330および可動マーカ340の少なくとも一方は、反射材で構成されることが好ましい。両マーカを反射材で構成する場合には、その反射率を大きく異ならせるようにすればよい。
【0121】
実際の撮影時には、発光部124がIR光を照射し、その反射光をカメラ122により受光することになる。上述の例においては、発光部124からのIR光に対する静止マーカ330の反射率は、発光部124からのIR光に対する可動マーカ340の反射率より低く設定される。
【0122】
このように互いに異なる反射率を有する静止マーカ330および可動マーカ340を配置することで、それぞれのマーカを検出する際に、反射光量の大きさに基づいて、互いを分離することができる。上述した典型例においては、発光部124からのIR光に対する筐体310の内面の反射率は、発光部124からのIR光に対する静止マーカ330の反射率と、発光部124からのIR光に対する可動マーカ340の反射率との間に設定される。
【0123】
図12(B)は、発光部124から照射されるIR光の強度を相対的に大きくするとともに、カメラ122により撮影された画像をネガポジ反転(白黒反転)させた結果の一例を示す。
図12(B)に示す撮影条件においては、照射されるIR光の強度が大きくなるので、反射率の高い可動マーカ340に加えて、筐体310の内面においてもIR光の反射が十分に生じ得る。そのため、静止マーカ330に対応するパターン411の領域のみが十分な反射光を得られずに「黒色」の状態になり、それ以外の領域は「白色」の状態になる。このような状態のカメラ画像をネガポジ反転させた結果が、
図12(B)に示すカメラ画像400Aとなる。カメラ画像400Aにおいては、パターン411は、他の領域から識別可能な状態になっている。
【0124】
図12(C)は、発光部124から照射されるIR光の強度を相対的に小さくして撮影した結果の一例を示す。
図12(C)に示す撮影条件においては、照射されるIR光の強度が小さいので、反射率の高い可動マーカ340からのみ、検出可能な強度のIR光が生じ得る。そのため、
図12(C)に示すカメラ画像400Bにおいては、可動マーカ340に対応するパターン412の領域のみが他の領域から識別可能な状態になっている。
【0125】
このように、静止マーカ330および可動マーカ340の間に反射率についての差を設けることで、各マーカの検出精度を高めることができる。さらに、各マーカを検出する際の撮影条件を調整することで、より検出精度を高めることができる。この撮影条件としては、発光部124から照射されるIR光の強度、カメラ122の露光時間、カメラ122のゲインなどを調整することができる。これら3つのファクタのうち1つを調整してもよいし、2つ以上を組み合わせて調整するようにしてもよい。以下、撮影条件の調整について説明する。
【0126】
図13は、静止マーカ330および可動マーカ340をカメラ122で撮影する際の撮影条件の調整方法を説明するための図である。通常、カメラ122は、画素毎に受光した光の強度に対応する輝度値を所定の階調値範囲のうちから選択する。例えば、各画素の輝度値を256階調で決定する場合には、カメラ画像としては、256階調のグレイスケール画像となる。このグレイスケール画像に対して、任意のしきい値を用いて、2値化することで、モノクロ画像を生成できる。
【0127】
上述したように、静止マーカ330、可動マーカ340および筐体310は、互いに異なる反射率(あるいは、反射率の範囲)を有しており、これらの反射率(あるいは、反射率の範囲)は互いに重複しないように設定される。
【0128】
図13(A)〜
図13(D)には、静止マーカ330、可動マーカ340および筐体310の各々をカメラ122で撮像したときに得られる輝度値の分布を示す。
図13(A)には、理想的な輝度値の分布を示し、静止マーカ330、可動マーカ340および筐体310からの反射光の強度が互いに分離可能な状態になっている。この場合、輝度値についてのしきい値TH1およびTH2を適用することで、静止マーカ330および可動マーカ340の領域をそれぞれ検出できる。つまり、
図13(A)に示す輝度値の分布が得られる場合には、一度の撮影だけで、静止マーカ330および可動マーカ340の領域を同時に検出できる。
【0129】
但し、発光部124から照射されるIR光の強度ばらつきや、物体表面の反射率のばらつきなどによって、カメラ122で受光される輝度値が各物質の反射率に対応しないものになる場合がある。
図13(B)には、筐体310からの反射光の強度が小さく、静止マーカ330の反射率の強度と混在している(
図13(B)の混在領域360参照)。
【0130】
図13(B)のような状況が生じ得る場合には、静止マーカ330および可動マーカ340をそれぞれ異なる撮影条件で撮影することで、それぞれのマーカの検出精度を高めることができる。
【0131】
図13(C)には、発光部124から照射されるIR光の強度を相対的に大きくして撮影して得られるカメラ画像内の輝度値の分布を示す。このような撮影条件においては、反射率の高い可動マーカ340に加えて、筐体310からの反射光の強度も高くなる。一方、静止マーカ330からの反射光の強度は低いままであるので、静止マーカ330の輝度値の分布と、筐体310の輝度値の分布との間には、ギャップ362が生じ得る。このギャップ362が一種のマージンとなって、カメラ画像内から静止マーカ330に対応する領域の検出精度を高めることができる。
【0132】
図13(D)には、発光部124から照射されるIR光の強度を相対的に小さくして撮影して得られるカメラ画像内の輝度値の分布を示す。このような撮影条件においては、反射率の低い静止マーカ330に加えて、筐体310からの反射光の強度も低くなる。一方、可動マーカ340からの反射光の強度は高いままであるので、可動マーカ340の輝度値の分布と、筐体310の輝度値の分布との間には、ギャップ364が生じ得る。このギャップ364が一種のマージンとなって、カメラ画像内から可動マーカ340に対応する領域の検出精度を高めることができる。
【0133】
図13(C)および
図13(D)に示すように、「黒色」の素材で構成される静止マーカ330、および、「白色」の素材で構成される可動マーカ340はいずれも、照射されるIR光の強度変化の影響を受けにくいことを利用して、発光部124から照射されるIR光の発光強度、カメラ122の露光時間、カメラ122のゲインといった撮影条件を調整することで、各マーカの検出精度を高めることができる。
【0134】
すなわち、
図8に示すフローチャートにおいて、静止マーカ330に相当するパターンの検出(ステップS102)において、被写体の反射率が相対的に低い領域からもより多くの反射光が得られるような撮影条件(発光部124から照射されるIR光の強度を高くする、カメラ122の露光時間を長くする、カメラ122のゲインを高めるなど)に設定する。一方、可動マーカ340に相当するパターンの検出(ステップS110)において、被写体の反射率が相対的に高い領域からの反射光が少なくなるような撮影条件(発光部124から照射されるIR光の強度を低くする、カメラ122の露光時間を短くする、カメラ122のゲインを低めるなど)に設定する。このような撮影条件の変更によって、マーカの検出精度を高めることができる。
【0135】
なお、本実施の形態においては、静止マーカ330、可動マーカ340および筐体310の反射率が互いに異なっていればよいので、この条件に適合していれば、各マーカの材質および特性は上述したものに限られない。例えば、静止マーカ330および可動マーカ340の両方について反射材を用いて構成してもよい。この場合、両方のマーカに再帰性反射材を用いてもよいし、一方のみについて再帰性反射材を用いてもよい。
【0136】
あるいは、両マーカを反射率の低い「黒色」の素材で構成してもよい。この場合は、「黒色」の度合いを異ならせることで、互いに異なる反射率を設定できる。
【0137】
上述の実施の形態においては、筐体310の内部に静止マーカ330および可動マーカ340が配置されるので、基本的には、静止マーカ330および可動マーカ340が配置される部位の素材は、筐体310の素材と同一である場合が多いが、これに限られるものではない。すなわち、静止マーカ330および可動マーカ340が配置される部材または素材を、筐体310とは異なる部材または素材としてもよい。
【0138】
上述したように、静止マーカ330および可動マーカ340の反射率を適切に設定することで、互いを誤検出する可能性を低減でき、静止マーカ領域410および可動マーカ領域420の面積を実質的に大きくすることができる。
【0139】
(f3:自発光型のマーカ)
上述の説明においては、発光部124から照射されるIR光の反射光をカメラ122が受光する場合において、少なくとも一方のマーカを反射材で作成する構成例について説明した。このような、一種のパッシブ型のデバイスに代えて、自発光するデバイスを用いてもよい。
【0140】
例えば、静止マーカ330および可動マーカ340の少なくとも一方については、LED(Light Emitting Diode)や有機EL(Electro Luminescence)発光デバイスなどを採用してもよい。
【0141】
(f4:静止マーカ330および可動マーカ340の材質)
本実施の形態に従うアタッチメント300内部に配置されるそれぞれのマーカは、発光部124から照射されるIR光に対する反射率を適切に設定する必要がある。一方、可視領域での反射率については厳密に考慮する必要はないので、外観上の見た目を向上させるような工夫を適用してもよい。
【0142】
図14は、本実施の形態に従うアタッチメント300内部に配置されるマーカの構成例を示す模式図である。
図14を参照して、発光部124から照射されるIR光を吸収する材料(例えば、カーボン)を含有するインクを用いてマーカのパターンを作成するとともに、それ以外の領域は、IR光を吸収する材料を含有しない同色のインクを用いて着色するようにしてもよい。
【0143】
カーボンはIR光を吸収するので、カーボンを含有する黒インクは、IR光に対する反射率が低くなる。そこで、カーボンを含有する黒インクと、カーボンを含有しない黒インクとを用いて、対象となるマーカのパターンを形成することができる。このようなマーカは、IR光を照射して得られるカメラ画像においては、所定のパターンを有するマーカとして認識できるが、肉眼では、一様な黒の帯に見える。
【0144】
図14に示すように、IR光を吸収する材料(例えば、カーボンを含有する黒インク)で構成される静止マーカ330および/または可動マーカ340と一体化するように、IR光を吸収しない材料(カーボンを含有しない黒インク)で構成されるパターンを配置することで、マーカであることが一見しては分からないので、デザインを阻害することがない。そのため、アタッチメント300内部に配置されたマーカを発見してユーザが興ざめすることを防止できる。
【0145】
また、カーボンを含有する黒インクとカーボンを含有しない黒インクとを織り交ぜてマーカを作成する必要があるので、汎用的なプリンターではマーカを作成することができず、アタッチメント300の偽造防止としての機能も果たす。
【0146】
偽造防止として用いる場合には、
図14に示すようなマーカと関連付ける必要は必ずしもない。例えば、カーボンを含有する黒インクで作成したパターンと、カーボンを含有しない黒インクで作成した同一のパターンとの両方を織り交ぜて配置することで、偽造防止を図ることができる。
【0147】
図15は、本実施の形態に従うアタッチメント300内部に配置される偽造防止を考慮したマーカの構成例を示す模式図である。
図15を参照して、例えば、静止マーカ330または可動マーカ340として機能するパターンを、カーボンを含有する黒インクおよびカーボンを含有しない黒インクでそれぞれ作成する。この場合、肉眼では、両方をパターンとして認識できるが、IR光を照射して得られるカメラ画像においては、カーボンを含有する黒インクで作成されたパターンのみが認識される。
【0148】
一般的に、アタッチメント300に対するユーザ操作を検出するアプリケーションにおいて、マーカを検出すべき位置は予め定められており、この位置に関する情報を予め知っていなければ、カーボンを含有する黒インクで作成されたパターンをいずれの位置に配置すべきかが分からない。そのため、カーボンを含有しない黒インクで作成されたパターンを「ダミー」のパターンとしてアタッチメント300内部に追加的に配置しておくことで、第三者によるアタッチメント300の偽造防止することができる。なお、この「ダミー」のパターンは、静止マーカ330または可動マーカ340のパターンと同一である必要はなく、むしろ、様々なパターンが複数配置されることで、偽造防止の効果を高めることができる。
【0149】
このように、静止マーカ330および可動マーカ340の少なくとも一方を、IR光を吸収する材料(例えば、カーボンを含有する黒インク)で構成するとともに、静止マーカ330および可動マーカ340が配置されている領域以外の領域に、赤外光を吸収しない材料(例えば、カーボンを含有しない黒インク)で構成される1または複数のパターン(ダミーパターン)を形成してもよい。この場合、
図15に示すように、赤外光を吸収しない材料で構成される1または複数のパターン(ダミーパターン)は、複数の静止マーカ330の間、または、複数の可動マーカ340の間に、それら複数のマーカと一体化するように配置されてもよい。
【0150】
以上のとおり、
図14および
図15に示すようなIR光を吸収する材料および吸収しない材料でそれぞれ作成したマーカを用いることで、デザイン性を高めることができるとともに、偽造防止の効果も発揮させることができる。
【0151】
<G.NFCの利用>
上述の説明においては、静止マーカ330に含まれる識別マーカ332などを用いて、アタッチメント300の種別、シリアル番号、属性といった個別情報を取得する構成について例示したが、このようなアタッチメント300の個別情報については、ICタグを用いて通知するようにしてもよい。
【0152】
図16は、本実施の形態に従うICタグ350が装着されたアタッチメント300の構成例を示す模式図である。
図16を参照して、アタッチメント300におけるコントローラ100(NFCリーダライタ134)の装着位置に関連付けて、ICタグ350が配置される。このように、ICタグ350は、支持部312によりコントローラ100が支持された場合に、NFCリーダライタ134に対応する位置に設けられる。そして、ICタグ350は、NFCリーダライタ134と非接触通信を行なう。ICタグ350には、各アタッチメントに特有の情報が格納されている。
【0153】
コントローラ100がアタッチメント300に装着されると、コントローラ100は、ICタグ350からデータを読み取る処理を行なって、その読み取り結果に基づいて、アタッチメント300が存在しているか否か、および、装着されたアタッチメント300の種別の特定を行なうことができる。
【0154】
この構成において、静止マーカ330に含まれる識別マーカ332(
図10など参照)を省略することができる。さらに、可動マーカ340の検出結果のみで、カメラ画像内の可動マーカ領域420を特定することができる場合には、静止マーカ330の全体を省略してもよい。
【0155】
図16に示すように、マーカとICタグ350とを組み合わせて用いることで、アタッチメント300が装着されたことをより正確に検出できるとともに、装着されたアタッチメント300の種別などを正確に認識できる。ICタグ350には、任意の大きさのデータを格納することができるので、マーカを用いる場合に比較して、識別可能なアタッチメント300の種別を大幅に増加させることができる。
【0156】
また、ICタグ350は、比較的低コストで作成でき、かつ、非接触で情報を遣り取りできるので、アタッチメント300を安価に提供することに寄与する。
【0157】
静止マーカ330の配置を省略した場合には、カメラ画像内に可動マーカ領域420のみを設定し、可動マーカ340の位置などを検出すればよいので、より大きな可動マーカ領域420を設定することができ、検出精度を高めることができる。
【0158】
<H.アタッチメントの変形例>
次に、アタッチメント300の変形例について説明する。
図17は、本実施の形態の変形例に従うアタッチメント300Aの構成例を示す模式図である。
図18は、本実施の形態の変形例に従うアタッチメント300Aに対するユーザ操作を検出するための方法を説明するための模式図である。
【0159】
図17を参照して、アタッチメント300Aは、
図4に示すアタッチメント300に対して、スライド操作を行なうための機構を付加した構成に相当する。より具体的には、アタッチメント300Aの操作部320の一部が筐体310の開口部と移動可能に係合されている。ユーザは、操作部320を押下する操作(押下操作)、操作部320を回転させる操作(回転操作)、および、操作部320をスライドする操作(スライド操作)が可能になっている。アタッチメント300の操作部320としては、ボタン機構、および、回転機構を含む。なお、押下操作または回転操作のいずれか一方のみが設けられた構成を採用してもよい。すなわち、アタッチメント300Aは、ボタン機構、回転機構およびスライド機構を含む。なお、押下操作、回転操作およびスライド機構のうちの一部のみが設けられた構成を採用してもよい。
【0160】
図18を参照して、アタッチメント300Aの操作部320に対するユーザ操作を検出する場合にも、
図5に示す方法と同様の方法が採用される。スライド操作に伴う操作部320の位置を検出する場合には、カメラ画像内の可動マーカ340に対応するパターンの大きさなどを利用することができる。
【0161】
なお、
図18に示すように、ユーザが操作部320をスライドする操作(スライド操作)に対して抗力を発生するためのバネ316などの付勢手段を用いることが好ましい。すなわち、
図18に示すアタッチメント300Aにおいては、操作部320に対するスライド操作に抗する付勢機構を含む。このような付勢機構を採用することで、ユーザがスライドさせたときだけ操作部320が目的の位置までスライドし、それ以外は基本位置に留まる動きを実現できる。
【0162】
<I.付記>
本実施の形態は、以下のような技術思想を含み得る。
【0163】
[項目1]
ゲームシステムであって、
記憶媒体と非接触通信を行なうリーダライタと、
赤外線画像を取得する赤外線カメラと、
前記リーダライタにより読み取られた情報に基づいて、前記記憶媒体の種別を判断する種別判断手段と、
前記種別判断手段により判断された前記記憶媒体の種別と前記赤外線カメラで取得された赤外線画像とに基づいて、所定のゲーム処理を実行するゲーム処理実行手段と、を備える。
【0164】
[項目2]
前記ゲーム処理実行手段は、前記赤外線画像に基づいて、前記記憶媒体の種別に応じて異なるゲーム処理を実行してもよい。
【0165】
[項目3]
リーダライタを搭載したゲームコントローラに装着可能なアタッチメントであって、
筐体と、
前記ゲームコントローラを支持する支持部と、
前記支持部により前記ゲームコントローラが支持された場合に、前記リーダライタに対応する位置に設けられ、当該リーダライタと非接触通信を行なうICタグとを備える。
【0166】
[項目4]
カメラおよびリーダライタを搭載したゲームコントローラに装着可能なアタッチメントであって、
筐体と、
前記筐体に設けられた操作部と、
前記カメラの撮影方向が前記筐体の内部へ向くように前記ゲームコントローラを支持する支持部と、
前記支持部により前記ゲームコントローラが支持された場合に、前記リーダライタに対応する位置に設けられ、当該リーダライタと非接触通信を行なうICタグとを備え、
前記操作部は、前記筐体内の位置に配置され、当該操作部に対する操作に応じて位置が変化する可動部材を含む。
【0167】
<J.利点>
本実施の形態によれば、簡素な構成を維持しつつ、ゲームコントローラ等と共に用いることで、多様なゲーム操作を実現することのできる、アタッチメントおよび当該アタッチメントを含むゲームシステムを実現できる。
【0168】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。