(58)【調査した分野】(Int.Cl.,DB名)
前記所定範囲を設定するステップは、前記始点から離れるにしたがって単調に大きくなり、前記始点から前記終点までの中途において最大となった後、前記終点に近づくにしたがって単調に小さくなるように前記所定範囲を設定する請求項1乃至3のいずれかに記載の情報処理プログラム。
【発明を実施するための形態】
【0019】
以下、本実施形態の情報処理システムについて、ゲームシステムを一例として説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(
図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
【0020】
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。
図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
【0021】
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。
図1および
図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
【0022】
図3は、本体装置2の一例を示す六面図である。
図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
【0023】
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
【0024】
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
【0025】
また、本体装置2は、ディスプレイ12の画面上にタッチパネル13を備える。本実施形態においては、タッチパネル13は、マルチタッチ入力が可能な方式(例えば、静電容量方式)のものである。ただし、タッチパネル13は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式(例えば、抵抗膜方式)のものであってもよい。
【0026】
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、
図6に示すスピーカ88)を備えている。
図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
【0027】
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
【0028】
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
【0029】
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
【0030】
図4は、左コントローラ3の一例を示す六面図である。
図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、
図1および
図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0031】
左コントローラ3は、アナログスティック32を備える。
図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
【0032】
左コントローラ3は、各種操作ボタンを備える。左コントローラ3は、ハウジング31の主面上に4つの操作ボタン33〜36(具体的には、右方向ボタン33、下方向ボタン34、上方向ボタン35、および左方向ボタン36)を備える。さらに、左コントローラ3は、録画ボタン37および−(マイナス)ボタン47を備える。左コントローラ3は、ハウジング31の側面の左上に第1Lボタン38およびZLボタン39を備える。また、左コントローラ3は、ハウジング31の側面の、本体装置2に装着される際に装着される側の面に第2Lボタン43および第2Rボタン44を備える。これらの操作ボタンは、本体装置2で実行される各種プログラム(例えば、OSプログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
【0033】
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
【0034】
図5は、右コントローラ4の一例を示す六面図である。
図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【0035】
右コントローラ4は、左コントローラ3と同様、方向入力部としてアナログスティック52を備える。本実施形態においては、アナログスティック52は、左コントローラ3のアナログスティック32と同じ構成である。また、右コントローラ4は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ4は、左コントローラ3と同様、ハウジング51の主面上に4つの操作ボタン53〜56(具体的には、Aボタン53、Bボタン54、Xボタン55、およびYボタン56)を備える。さらに、右コントローラ4は、+(プラス)ボタン57およびホームボタン58を備える。また、右コントローラ4は、ハウジング51の側面の右上に第1Rボタン60およびZRボタン61を備える。また、右コントローラ4は、左コントローラ3と同様、第2Lボタン65および第2Rボタン66を備える。
【0036】
また、ハウジング51の下側面には、窓部68が設けられる。詳細は後述するが、右コントローラ4は、ハウジング51の内部に配置される赤外撮像部123および赤外発光部124を備えている。赤外撮像部123は、右コントローラ4の下方向(
図5に示すy軸負方向)を撮像方向として、窓部68を介して右コントローラ4の周囲を撮像する。赤外発光部124は、右コントローラ4の下方向(
図5に示すy軸負方向)を中心とする所定範囲を照射範囲として、赤外撮像部123が撮像する撮像対象に窓部68を介して赤外光を照射する。窓部68は、赤外撮像部123のカメラのレンズや赤外発光部124の発光体等を保護するためのものであり、当該カメラが検知する波長の光や当該発光体が照射する光を透過する材質(例えば、透明な材質)で構成される。なお、窓部68は、ハウジング51に形成された孔であってもよい。なお、本実施形態においては、カメラが検知する光(本実施形態においては、赤外光)以外の波長の光の透過を抑制するフィルタ部材を赤外撮像部123自身が有する。ただし、他の実施形態においては、窓部68がフィルタの機能を有していてもよい。
【0037】
また、詳細は後述するが、右コントローラ4は、NFC通信部122を備える。NFC通信部122は、NFC(Near Field Communication)の規格に基づく近距離無線通信を行う。NFC通信部122は、近距離無線通信に用いられるアンテナ122aと、アンテナ122aから送出すべき信号(電波)を生成する回路(例えばNFCチップ)とを有する。なお、NFC通信部122は、NFCの規格に基づく近距離無線通信を行う代わりに、任意の近接通信(非接触通信とも言う)で近距離無線通信を行うようにしてもよい。ここで、NFCの規格は、近接通信(非接触通信)に用いることができるものであり、「任意の近接通信で近距離無線通信を行うようにしてもよい」とは、NFCの規格による近接通信を除いた他の近接通信で近距離無線通信を行ってもよいことを意図している。
【0038】
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
【0039】
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、
図3に示す構成の他、
図6に示す各構成要素81〜91、97、および98を備える。これらの構成要素81〜91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
【0040】
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central
Processing Unit)のみから構成されてもよいし、CPU機能を有するCPU811、GPU(Graphics Processing Unit)機能を有するGPU812等の複数の機能を含むSoC(System−on−a−chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラムや描画プログラム)を実行することによって、各種の情報処理を実行する。
【0041】
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【0042】
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
【0043】
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【0044】
本体装置2は、ネットワーク通信部82を備える。ネットワーク通信部82は、プロセッサ81に接続される。ネットワーク通信部82は、ネットワークを介して外部の装置と通信(具体的には、無線通信)を行う。本実施形態においては、ネットワーク通信部82は、第1の通信態様としてWi−Fiの規格に準拠した方式により、無線LANに接続して外部装置と通信を行う。また、ネットワーク通信部82は、第2の通信態様として所定の通信方式(例えば、独自プロトコルによる通信や、赤外線通信)により、同種の他の本体装置2との間で無線通信を行う。なお、上記第2の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置2との間で無線通信可能であり、複数の本体装置2の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【0045】
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
【0046】
プロセッサ81は、上述の左側端子17、右側端子21、および下側端子27に接続される。プロセッサ81は、左コントローラ3と有線通信を行う場合、左側端子17を介して左コントローラ3へデータを送信するとともに、左側端子17を介して左コントローラ3から操作データを受信する。また、プロセッサ81は、右コントローラ4と有線通信を行う場合、右側端子21を介して右コントローラ4へデータを送信するとともに、右側端子21を介して右コントローラ4から操作データを受信する。また、プロセッサ81は、クレードルと通信を行う場合、下側端子27を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置2は、左コントローラ3および右コントローラ4との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ3および右コントローラ4が本体装置2に装着された一体型装置または本体装置2単体がクレードルに装着された場合、本体装置2は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
【0047】
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
【0048】
本体装置2は、タッチパネル13の制御を行う回路であるタッチパネルコントローラ86を備える。タッチパネルコントローラ86は、タッチパネル13とプロセッサ81との間に接続される。タッチパネルコントローラ86は、タッチパネル13からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ81へ出力する。
【0049】
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
【0050】
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
【0051】
また、本体装置2は、加速度センサ89を備える。本実施形態においては、加速度センサ89は、所定の3軸(例えば、
図1に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ89は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。
【0052】
また、本体装置2は、角速度センサ90を備える。本実施形態においては、角速度センサ90は、所定の3軸(例えば、
図1に示すxyz軸)回りの角速度を検出する。なお、角速度センサ90は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。
【0053】
加速度センサ89および角速度センサ90は、プロセッサ81に接続され、加速度センサ89および角速度センサ90の検出結果は、プロセッサ81へ出力される。プロセッサ81は、上記の加速度センサ89および角速度センサ90の検出結果に基づいて、本体装置2の動きおよび/または姿勢に関する情報を算出することが可能である。
【0054】
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
【0055】
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
【0056】
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、
図6で示しているため
図7では省略している。
【0057】
左コントローラ3は、本体装置2との間で通信を行う通信制御部101を備える。
図7に示すように、通信制御部101は、端子42を含む各構成要素に接続される。本実施形態においては、通信制御部101は、端子42を介した有線通信と、端子42を介さない無線通信との両方で本体装置2と通信を行うことが可能である。通信制御部101は、左コントローラ3が本体装置2に対して行う通信方法を制御する。すなわち、左コントローラ3が本体装置2に装着されている場合、通信制御部101は、端子42を介して本体装置2と通信を行う。また、左コントローラ3が本体装置2から外されている場合、通信制御部101は、本体装置2(具体的には、コントローラ通信部83)との間で無線通信を行う。コントローラ通信部83と通信制御部101との間の無線通信は、例えばBluetooth(登録商標)の規格に従って行われる。
【0058】
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
【0059】
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(
図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
【0060】
左コントローラ3は、慣性センサを備える。具体的には、左コントローラ3は、加速度センサ104を備える。また、左コントローラ3は、角速度センサ105を備える。本実施形態においては、加速度センサ104は、所定の3軸(例えば、
図4に示すxyz軸)方向に沿った加速度の大きさを検出する。なお、加速度センサ104は、1軸方向あるいは2軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ105は、所定の3軸(例えば、
図4に示すxyz軸)回りの角速度を検出する。なお、角速度センサ105は、1軸回りあるいは2軸回りの角速度を検出するものであってもよい。加速度センサ104および角速度センサ105は、それぞれ通信制御部101に接続される。そして、加速度センサ104および角速度センサ105の検出結果は、適宜のタイミングで繰り返し通信制御部101へ出力される。
【0061】
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【0062】
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
【0063】
左コントローラ3は、振動によってユーザに通知を行うための振動子107を備える。本実施形態においては、振動子107は、本体装置2からの指令によって制御される。すなわち、通信制御部101は、本体装置2からの上記指令を受け取ると、当該指令に従って振動子107を駆動させる。ここで、左コントローラ3は、コーデック部106を備える。通信制御部101は、上記指令を受け取ると、指令に応じた制御信号をコーデック部106へ出力する。コーデック部106は、通信制御部101からの制御信号から振動子107を駆動させるための駆動信号を生成して振動子107へ与える。これによって振動子107が動作する。
【0064】
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
【0065】
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
【0066】
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
【0067】
また、右コントローラ4は、振動子117およびコーデック部116を備える。振動子117およびコーデック部116は、左コントローラ3の振動子107およびコーデック部106と同様に動作する。すなわち、通信制御部111は、本体装置2からの指令に従って、コーデック部116を用いて振動子117を動作させる。
【0068】
右コントローラ4は、NFCの規格に基づく近距離無線通信を行うNFC通信部122を備える。NFC通信部122は、いわゆるNFCリーダ・ライタの機能を有する。ここで、本明細書において近距離無線通信とは、一方の装置(ここでは、右コントローラ4)からの電波によって(例えば電磁誘導によって)他方の装置(ここでは、アンテナ122aと近接する装置)に起電力を発生させる通信方式が含まれる。他方の装置は、発生した起電力によって動作することが可能であり、電源を有していてもよいし有していなくてもよい。NFC通信部122は、右コントローラ4(アンテナ122a)と通信対象とが接近した場合(典型的には、両者の距離が十数センチメートル以下となった場合)に当該通信対象との間で通信可能となる。通信対象は、NFC通信部122との間で近距離無線通信が可能な任意の装置であり、例えばNFCタグやNFCタグの機能を有する記憶媒体である。ただし、通信対象は、NFCのカードエミュレーション機能を有する他の装置であってもよい。
【0069】
また、右コントローラ4は、赤外撮像部123を備える。赤外撮像部123は、右コントローラ4の周囲を撮像する赤外線カメラを有する。一例として、本体装置2および/または右コントローラ4は、撮像された情報(例えば、撮像された撮像画像における少なくとも一部の領域全体を分割した複数のブロックの輝度に関連する情報等)を算出し、当該情報に基づいて、右コントローラ4の周囲変化を判別する。また、赤外撮像部123は、環境光によって撮像を行ってもよいが、本実施形態においては、赤外線を照射する赤外発光部124を有する。赤外発光部124は、例えば、赤外線カメラが画像を撮像するタイミングと同期して、赤外線を照射する。そして、赤外発光部124によって照射された赤外線が撮像対象によって反射され、当該反射された赤外線が赤外線カメラによって受光されることで、赤外線の画像が取得される。これによって、赤外撮像部123は、より鮮明な赤外線画像を得ることができる。なお、赤外撮像部123と赤外発光部124とは、それぞれ別のデバイスとして右コントローラ4内に設けられてもよいし、同じパッケージ内に設けられた単一のデバイスとして右コントローラ4内に設けられてもよい。また、本実施形態においては、赤外線カメラを有する赤外撮像部123が用いられるが、他の実施形態においては、撮像手段として、赤外線カメラに代えて可視光カメラ(可視光イメージセンサを用いたカメラ)が用いられてもよい。
【0070】
右コントローラ4は、処理部121を備える。処理部121は、通信制御部111に接続される。また、処理部121は、NFC通信部122、赤外撮像部123、および赤外発光部124に接続される。処理部121は、本体装置2からの指令に応じて、NFC通信部122に対する管理処理を実行する。例えば、処理部121は、本体装置2からの指令に応じてNFC通信部122の動作を制御する。また、処理部121は、NFC通信部122の起動を制御したり、通信対象(例えば、NFCタグ)に対するNFC通信部122の動作(具体的には、読み出しおよび書き込み等)を制御したりする。また、処理部121は、通信制御部111を介して通信対象に送信されるべき情報を本体装置2から受信してNFC通信部122へ渡したり、通信対象から受信された情報をNFC通信部122から取得して通信制御部111を介して本体装置2へ送信したりする。
【0071】
また、処理部121は、CPUやメモリ等を含み、右コントローラ4に備えられた図示しない記憶装置(例えば、不揮発性メモリ等)に記憶された所定のプログラム(例えば、画像処理や各種演算を行うためのアプリケーションプログラム)に基づいて、本体装置2からの指令に応じて赤外撮像部123に対する管理処理を実行する。例えば、処理部121は、赤外撮像部123に撮像動作を行わせたり、撮像結果に基づく情報(撮像画像の情報、あるいは、当該情報から算出される情報等)を取得および/または算出して通信制御部111を介して本体装置2へ送信したりする。また、処理部121は、本体装置2からの指令に応じて赤外発光部124に対する管理処理を実行する。例えば、処理部121は、本体装置2からの指令に応じて赤外発光部124の発光を制御する。なお、処理部121が処理を行う際に用いるメモリは、処理部121内に設けられてもいいし、メモリ112であってもよい。
【0072】
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
【0073】
(描画プログラムの構成)
次に、本実施の形態のゲーム装置本体2上で描画プログラムを実行することで実現されるオブジェクトについて説明する。上述したとおり、描画プログラムは、ゲーム装置本体2のフラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される。本実施の形態のゲームにおいては、仮想三次元空間内で、雷のオブジェクトを生成する。以下では、本実施の形態の描画プログラムを実行することによって実現されるゲーム装置本体2の機能を説明することにより、描画プログラムの構成について説明する。
【0074】
図8は、ゲーム装置本体2のGPU812(
図6参照)によって描画プログラムを実行したときに実現される機能を示す図である。本実施の形態では、描画プログラムを実行するのがGPU812である例を挙げているが、CPU811等の他の処理部によって実行することとしてもよい。なお、
図8では、以下に説明する実施の形態に関係する機能のみを示し、ゲームを進行させるための他の機能については記載を省略している。
【0075】
本実施の形態の描画プログラムをGPU812によって実行することにより、位置指定部201、経由基準点指定部202、所定範囲設定部203、経由点決定部204、基準ベクトル決定部205、分岐先点決定部206、オブジェクト生成部207の機能が実現される。
【0076】
図9は、本実施の形態の描画プログラムによって生成される雷のオブジェクト210の例を示す図である。雷のオブジェクト210は、始点211と終点212を有し、始点211から終点212に延びる幹の部分と幹から分岐する枝の部分を有している。
【0077】
次に、
図10〜
図12を参照して、本実施の形態のGPU812によるオブジェクトの生成について説明する。まず、位置指定部201が、
図10(a)に示すように、オブジェクトの始点211と終点212を指定する。オブジェクトの始点、終点の位置は、CPU811から渡されるので、位置指定部201は、CPU811から指定されたデータを用いる。次に、経由基準点指定部202が、
図10(b)に示すように、始点211と終点212との直線上に3つの経由基準点213〜215を指定する。
図10(b)に示す例では、経由基準点213〜215を均等間隔になるように指定した例を示すが、経由基準点213〜215の間隔は必ずしも均等でなくてもよい。ここでは、説明の便宜上、3つの経由基準点213〜215を指定する例を挙げたが、
図9に示すような複雑さを持つ雷を生成する場合は、20程度の経由基準点を指定する。経由基準点をいくつ指定するかを指示するデータは、CPU811から渡される。
【0078】
次に、所定範囲設定部203は、経由基準点213〜215のそれぞれを基準とする所定範囲を設定する。経由基準点213を例とすると、
図11(a)に示すように、経由基準点213を表面に含み、始点211の側に膨らむ球の表面を所定範囲216として設定する。
【0079】
続いて、経由点決定部204は、所定範囲216上のランダムな点を経由点217として決定する。なお、本実施の形態では、所定範囲216上のランダムな点を経由点217として決定する例を挙げたが、例えば、位置によって選択される確率に偏りを設定してもよい。
【0080】
経由基準点214、215についても、経由基準点214、215を含む所定範囲218、220をそれぞれ、上記と同様の処理によって設定し、所定範囲218、220上のランダムな点を経由点219、221として決定する。オブジェクト生成部207は、始点211と、経由点217、219、221と、終点212を繋ぐことにより、雷のオブジェクトの幹の部分を生成する。
【0081】
ここで、経由基準点213〜215のそれぞれに設定した所定範囲216、218、220の大きさは、始点211から終点212に向かう過程で、所定範囲は徐々に大きくなり、途中から徐々に小さくなる。これにより、所定範囲216、218、220からランダムに決定した経由点217、219、221は、終点212に向かうにしたがって、終点212に自然に収束するように見える。
【0082】
図12(a)は、枝の部分の生成の仕方を示す図である。
図12(a)に示す例では、経由点217から分岐する例を示している。経由点において、分岐するか否かは、予め指定した確率とGPU812で生成した乱数とに基づいて決定する。経由点217にて分岐すると決定された場合には、基準ベクトル決定部205は、分岐基準点を決めるための基準ベクトルを求める。基準ベクトルは、一つ前の経由基準点から分岐すべき経由点へのベクトルである。
図12(a)に示す例では、一つ前は経由基準点ではなく始点211であり、このような場合は、始点211から経由点217へのベクトル230が基準ベクトルとなる。なお、ここで示した基準ベクトルの決め方は一例であり、基準ベクトルの決め方はここで説明した方法に限定されるものではない。
【0083】
次に、分岐先点決定部206は、経由点217から分岐した分岐先の点を決定する。具体的には、まず、経由点207に基準ベクトルを加えた位置にある点を分岐先基準点240として求める。次に、分岐先基準点240を含む所定範囲241を上記と同様の処理によって設定し、当該所定範囲241のランダムな点を分岐先点242として決定する。
【0084】
経由点217から分岐した枝をどの程度伸ばすか、すなわち分岐後に、何回、分岐先点を求めるかは、例えば、「始点から終点までの経由数」−「経由点を始点から数えた番号」によって決めることができる。
図12(a)に示す例では、経由点が3であり、分岐した経由点は1番目なので、3−1=2で2回と求められる。なお、終点212に近い経由点になると、分岐先に枝を伸ばす回数が0回、1回となってしまうので、その場合には、最低でも2回は伸ばすというような処理を採用してもよい。
【0085】
分岐先点242から先の分岐点の求め方は、先に説明した方法と同じである。すなわち、分岐先点242に基準ベクトルを加えた位置にある点を分岐先基準点243として求める。次に、分岐先基準点243を含む所定範囲244を上記と同様の処理によって設定し、当該所定範囲244のランダムな点を分岐先点245として決定する。オブジェクト生成部207は、経由点217と、分岐先点242、245を繋ぐことにより、雷のオブジェクトの枝を生成する。なお、オブジェクト生成部207は、経由点217から先に行くにしたがって、分岐先点をつなぐ線を薄くしていく。すなわち、線250は、元の線230より薄く、線251は線250よりもさらに薄くする。なお、
図12(a)においては、色の濃淡をそのまま図面として表現するのが困難であるので代わりに線の太さを変えて表現している。
【0086】
図12(b)は、
図11(b)に示すオブジェクトの幹の部分と、
図12(a)に示すオブジェクトの枝の部分を合体した図を示す。オブジェクト生成部207は、幹の部分のオブジェクトを生成すると共に、枝の部分も生成するので、
図12(b)に示すようなオブジェクトが生成される。
図12(b)では、経由点217でのみ分岐したオブジェクトを示しているが、経由点219、221にて分岐してもよいし、分岐先点242でさらに分岐してもよい。分岐先点242から再度分岐する場合は、「経由点」としていた部分が「分岐先点」に置き代わった形で上記の説明が適用される。分岐させるか否かは、上述したとおり、確率によって決定する。
【0087】
図13は、本実施の形態のGPU812が描画プログラムを実行することによって雷のオブジェクトを生成する動作を示すフローチャートである。GPU812は、あらかじめCPU811から、始点、終点、経由点数、分岐確率、色、幹(枝)の部分における所定範囲の大きさを示す量等のパラメータを与えられている。なお、各種パラメータは事前に製作者により指定されていてもよいし、何らかの条件により決定してもよい。
【0088】
位置指定部201は、まず、CPU811から与えられたパラメータを用いて、オブジェクトの始点及び終点(
図10(a)参照)を指定する(S10)。次に、経由基準点指定部202は、始点200と終点201との間に、経由点数分の経由基準点203〜205(
図10(b)参照)を設定する(S11)。
【0089】
続いて、所定範囲設定部203は、経由基準点203〜205のそれぞれに対して、所定範囲216、218、220(
図11(b)参照)を設定する(S12)。経由点決定部204は、所定範囲216、218、220からランダムな点を選び、経由点217、219、221(
図11(b)参照)として決定する(S13)。
【0090】
次に、分岐先点決定部206は、経由点217、219、221において、分岐するか否かを決定する(S14)。分岐すると決定された場合(S14でYES)、分岐先点決定部206は、オブジェクトの幹から分岐した枝の部分を生成する。例えば、経由点217で分岐すると決定された場合、基準ベクトル決定部205は、一つ前の点である始点211から経由点217へのベクトルを基準ベクトル230として決定し、経由点217に基準ベクトル230を加算した位置を分岐基準点240(
図12(a)参照)を決定する(S15)。
【0091】
続いて、分岐先点決定部206は、分岐基準点240を含む所定範囲241を設定し、所定範囲241からランダムな点を選び分岐先点242(
図12(a)参照)として決定する(S16)。分岐先点決定部206は、分岐先点を決定する処理を所定回数実行し、(S17)、所定回数実行したあと(S17でYES)、分岐するか否かの判定(S14)に戻る。分岐するか否かの判定(S14)においては、オブジェクトの枝の分岐先点についても、さらに分岐するか否かも判定する。
【0092】
分岐するか否かの判定において、分岐しないと判定された場合(S14でNO)、経由点213〜215、分岐先点242、245等の位置が決定されたと判定されるので、オブジェクト生成部207は、始点211、経由点213〜215、及び、分岐先点242、245、終点212を繋いで描画することによりオブジェクトを生成する(S18)。
【0093】
以上、本実施の形態の描画プログラムおよび描画プログラムによって実現されるGPUの機能について説明したが、本発明の情報処理プログラムは、上記した実施の形態に限定されるものではない。
【0094】
上記した実施の形態では、経由基準点213を表面に含み、始点211の側に膨らむ球の表面を所定範囲216として設定したが(
図11(a)参照)、所定範囲の設定の仕方は、他にも考えられる。
【0095】
図14(a)及び
図14(b)は、所定範囲の設定の仕方の他の例を示す図である。
図14(a)に示すように、経由基準点213を中心とする球の表面を所定範囲216として設定してもよい。
図14(b)は、全ての経由基準点213〜215について所定範囲216、218、220および経由点217、219、221を設定した例を示す図である。このようにして決定した経由点217、219、221を通る線を230〜233を引くことによっても、雷のオブジェクトを生成できる。また、本実施の形態では、経由基準点213を含む所定範囲216を設定する例を挙げたが、(経由基準点を表面に含まない)離れた球の表面を所定範囲として設定してもよい。
【0096】
また、上記した実施の形態では、球の表面を所定範囲216、218、220とし、その球の表面からランダムに選んだ点を経由点217、219、221としたが、球の内部を所定範囲として、球の内部からランダムに経由点を決定してもよい。また、所定範囲の形状は、必ずしも球に限定されず、例えば、立方体の表面または立方体の内部を所定範囲としてもよい。また、仮想空間が二次元空間の場合には、平面状の円の内部やその円周を所定範囲としてもよい。
【0097】
オブジェクト生成部は、オブジェクトを生成する際に、オブジェクトの周囲を、例えば、チューブライト状の線光源で照らす処理を行ってもよい。また、まぶしい領域を滲ませて表現するブルームというエフェクトを組み合わせもよい。
【0098】
上記した実施の形態では、始点211と終点212とを結ぶ直線上に経由基準点213〜215を設定する例を挙げたが、経由基準点は必ずしも、始点211と終点212とを結ぶ直線上になくてもよい。始点211と終点212とを結ぶカーブの上に経由基準点を設定することにより、カーブするアーク放電のような表現を行うことができる。また、上記した実施の形態において、オブジェクトの一部を描画しないこととしてもよい。例えば、終点212近くの雷は不可視であってもよい。
【0099】
上記した実施の形態において、所定範囲の大きさは、始点から次第に大きくなり、あるところを境に次第に小さくなるが、必ずしも単調に大きくなる、または小さくなる必要はなく、例えば、所定範囲が次第に大きくなっている途中において少し小さくなるようなものがあってもよい。
【0100】
上記した実施の形態では、雷のオブジェクトを生成する例を挙げたが、本発明の情報処理プログラムは、雷以外のオブジェクトの生成にも適用できる。例えば、幹と枝からなる樹木の形状のモデルを生成することや、壁のひび割れ、葉脈等にも適用することができる。