(57)【要約】      （修正有）【課題】綺麗な形状の雷のオブジェクトを生成する描画プログラムを提供する。【解決手段】描画プログラムは、ＧＰＵに、仮想空間内におけるオブジェクトの始点２１１と終点２１２の位置を指定するステップと、始点２１１と終点２１２との間に少なくとも１つの経由基準点２１３〜２１５を指定するステップと、経由基準点２１３〜２１５を基準とし、始点２１１および終点２１２の近くにおいては、他の場所に比べて相対的に小さくなるような所定範囲２１６、２１８、２２０を設定するステップと、所定範囲２１６、２１８、２２０から経由点２１７、２１９、２２１を決定するステップと、始点２１１、経由点２１７、２１９、２２１、および終点２１２を結ぶオブジェクトを生成するステップとを実行させる。【選択図】図１１
2018206202.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に、
仮想空間内におけるオブジェクトの始点と終点の位置を指定するステップと、
前記始点と前記終点との間に少なくとも１つの経由基準点を指定するステップと、
前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定するステップと、
前記所定範囲内から経由点を決定するステップと、
前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するステップと、
を実行させる情報処理プログラム。
【請求項２】
前記所定範囲は、前記経由基準点を含む球である請求項１に記載の情報処理プログラム。
【請求項３】
前記経由点を決定するステップは、前記球の表面または前記球の内部からランダムに点を選択して、前記経由点として決定する請求項２に記載の情報処理プログラム。
【請求項４】
前記所定範囲を設定するステップは、前記始点から離れるにしたがって単調に大きくなり、前記始点から前記終点までの中途において最大となった後、前記終点に近づくにしたがって単調に小さくなるように前記所定範囲を設定する請求項１乃至３のいずれかに記載の情報処理プログラム。
【請求項５】
前記情報処理装置に、
前記経由点において、前記オブジェクトを分岐させるか否かを決定するステップと、
前記経由点で前記オブジェクトを分岐させると決定された場合に、分岐基準点を定める基準となる基準ベクトルを決定するステップと、
前記経由点に前記基準ベクトルを加算して前記分岐基準点を決定し、前記分岐基準点に基づいて分岐先点を決定し、前記分岐先点が決定された後は、前記分岐先点に前記基準ベクトルを加算して新たな分岐基準点を決定し、前記新たな分岐基準点に基づいて分岐先点を決定する処理を所定回数だけ繰り返し行うステップと、
を実行させ、
前記オブジェクトを生成するステップでは、前記オブジェクトを分岐させると決定された前記経由点から前記分岐先点を順に結んだオブジェクトを生成する請求項１乃至３のいずれかに記載の情報処理プログラム。
【請求項６】
前記基準ベクトルは、前記経由点の一つ前の経由点または前記始点から前記経由点までのベクトルである請求項５に記載の情報処理プログラム。
【請求項７】
前記オブジェクトを生成するステップは、前記始点から離れるほど前記オブジェクトの色を薄くする請求項１乃至６のいずれかに記載の情報処理プログラム。
【請求項８】
仮想空間内にオブジェクトを生成するための情報処理装置であって、
前記仮想空間内におけるオブジェクトの始点と終点の位置を指定する位置指定部と、
前記始点と前記終点との間に少なくとも１つの経由基準点を指定する経由基準点指定部と、
前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定する所定範囲設定部と、
前記所定範囲内から経由点を決定する経由点決定部と、
前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するオブジェクト生成部と、
を備える情報処理装置。
【請求項９】
仮想空間内にオブジェクトを生成する処理を実行するＧＰＵを備えた情報処理装置であって、
前記ＧＰＵは、
ＣＰＵから指定された前記仮想空間内におけるオブジェクトの始点と終点の位置の間に少なくとも１つの経由基準点を指定するステップと、
前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定するステップと、
前記所定範囲内から経由点を決定するステップと、
前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するステップと、
を実行する情報処理装置。
【請求項１０】
仮想空間内にオブジェクトを生成するための情報処理システムであって、
前記仮想空間内におけるオブジェクトの始点と終点の位置を指定する位置指定部と、
前記始点と前記終点との間に少なくとも１つの経由基準点を指定する経由基準点指定部と、
前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定する所定範囲設定部と、
前記所定範囲内から経由点を決定する経由点決定部と、
前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するオブジェクト生成部と、
を備える情報処理システム。
【請求項１１】
仮想空間内にオブジェクトを生成するための情報処理方法であって、
前記仮想空間内におけるオブジェクトの始点と終点の位置を指定するステップと、
前記始点と前記終点との間に少なくとも１つの経由基準点を指定するステップと、
前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定するステップと、
前記所定範囲内から経由点を決定するステップと、
前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するステップと、
を備える情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理装置、情報処理システム、及び情報処理方法に関する。
【背景技術】
【０００２】
従来から、仮想空間内において雷を表現する手法として、雷がうねって変化する様子を描画したテクスチャを複数用意しておき、複数のテクスチャを差し替えてアニメーションを行いながら、テクスチャを貼り付けたポリゴンを描画するという手法が知られていた。しかし、この手法は、雷の変化がパターン化してしまい、表現のリアル性に欠けるとともに、多数のテクスチャを用意しなければならずメモリの消費量が増大するという問題があった。特許文献１は、この問題を解決し、少ない処理負荷で、雷が変化する様子をよりリアルに表現できるプログラムを提供している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１６４３２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されたプログラムは、複数のパーツオブジェクトを連結して雷の画像を生成する。具体的には、パーツオブジェクトの幅を徐々に細くすると共に、パーツオブジェクトを分岐するかどうかを乱数で決定する。また、特許文献１に記載されたプログラムでは、雷が落ちるべき目標点が存在するときには、雷の発生点から目標点へ向かう単位ベクトルを角度補正ベクトルとして用い、各パーツオブジェクトの向きを補正する。
【０００５】
しかしながら、特許文献１に記載されたプログラムは、雷の角度変化が全体的に小さくなったり、雷の発生点付近と目標点の付近とでパーツオブジェクトの向きが大きく異なったりすることがあるなど、雷の画像を綺麗に生成できないことがあった。
【０００６】
そこで、本発明は、上記背景に鑑み、綺麗な形状の雷を生成する情報処理プログラム等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理プログラムは、情報処理装置に、仮想空間内におけるオブジェクトの始点と終点の位置を指定するステップと、前記始点と前記終点との間に少なくとも１つの経由基準点を指定するステップと、前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定するステップと、前記所定範囲内から経由点を決定するステップと、前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するステップとを実行させる。この構成により、綺麗な形状を有する雷のオブジェクトを生成することができる。
【０００８】
本発明の情報処理プログラムにおいて、前記所定範囲は、前記経由基準点を含む球であってもよい。本発明の情報処理プログラムにおいて、前記経由点を決定するステップは、前記球の表面または前記球の内部からランダムに点を選択して、前記経由点として決定してもよい。
【０００９】
前記所定範囲を設定するステップは、前記始点から離れるにしたがって単調に大きくなり、前記始点から前記終点までの中途において最大となった後、前記終点に近づくにしたがって単調に小さくなるように前記所定範囲を設定してもよい。これにより、始点からいったん広がって伸び、終点に向かって収束する綺麗な形状の雷のオブジェクトを生成できる。
【００１０】
本発明の情報処理プログラムは、前記情報処理装置に、前記経由点において、前記オブジェクトを分岐させるか否かを決定するステップと、前記経由点で前記オブジェクトを分岐させると決定された場合に、分岐基準点を定める基準となる基準ベクトルを決定するステップと、前記経由点に前記基準ベクトルを加算して前記分岐基準点を決定し、前記分岐基準点に基づいて分岐先点を決定し、前記分岐先点が決定された後は、前記分岐先点に前記基準ベクトルを加算して新たな分岐基準点を決定し、前記新たな分岐基準点に基づいて分岐先点を決定する処理を所定回数だけ繰り返し行うステップとを実行させ、前記オブジェクトを生成するステップでは、前記オブジェクトを分岐させると決定された前記経由点から前記分岐先点を順に結んだオブジェクトを生成してもよい。この構成により、始点から終点に向かうにしたがって分岐する雷のオブジェクトを生成できる。
【００１１】
本発明の情報処理プログラムにおいて、前記基準ベクトルは、前記経由点の一つ前の経由点または前記始点から前記経由点までのベクトルであってもよい。これにより、適切な方向に分岐をさせることができる。
【００１２】
本発明の情報処理プログラムにおいて、前記オブジェクトを生成するステップは、前記始点から離れるほど前記オブジェクトの色を薄くしてもよい。これにより、自然な雷のオブジェクトを生成できる。
【００１３】
本発明の情報処理装置は、仮想空間内にオブジェクトを生成するための情報処理装置であって、前記仮想空間内におけるオブジェクトの始点と終点の位置を指定する位置指定部と、前記始点と前記終点との間に少なくとも１つの経由基準点を指定する経由基準点指定部と、前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定する所定範囲設定部と、前記所定範囲内から経由点を決定する経由点決定部と、前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するオブジェクト生成部とを備える。
【００１４】
本発明の他の態様の情報処理装置は、仮想空間内にオブジェクトを生成する処理を実行するＧＰＵを備えた情報処理装置であって、前記ＧＰＵは、ＣＰＵから指定された前記仮想空間内におけるオブジェクトの始点と終点の位置の間に少なくとも１つの経由基準点を指定するステップと、前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定するステップと、前記所定範囲内から経由点を決定するステップと、前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するステップとを実行する。
【００１５】
本発明の情報処理システムは、仮想空間内にオブジェクトを生成するための情報処理システムであって、前記仮想空間内におけるオブジェクトの始点と終点の位置を指定する位置指定部と、前記始点と前記終点との間に少なくとも１つの経由基準点を指定する経由基準点指定部と、前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定する所定範囲設定部と、前記所定範囲内から経由点を決定する経由点決定部と、前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するオブジェクト生成部とを備える。
【００１６】
本発明の情報処理方法は、仮想空間内にオブジェクトを生成するための情報処理方法であって、前記仮想空間内におけるオブジェクトの始点と終点の位置を指定するステップと、前記始点と前記終点との間に少なくとも１つの経由基準点を指定するステップと、前記基準点の位置を基準とした所定の大きさの所定範囲を設定し、かつ前記経由基準点が複数指定される場合に、前記始点および前記終点に近い前記所定範囲の大きさを相対的に小さく設定するステップと、前記所定範囲内から経由点を決定するステップと、前記始点、前記経由点、および前記終点を結ぶオブジェクトを生成するステップとを備える。
【発明の効果】
【００１７】
本発明によれば、綺麗な形状を有する雷のオブジェクトを生成することができる。
【図面の簡単な説明】
【００１８】
【図１】本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図
【図２】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図３】本体装置２の一例を示す六面図
【図４】左コントローラ３の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本体装置２の内部構成の一例を示すブロック図
【図７】本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図
【図８】描画プログラムを実行したときに実現される機能を示す図
【図９】本実施の形態の描画プログラムによって生成される雷のオブジェクトの例を示す図
【図１０】（ａ）始点と終点を指定した図  （ｂ）経由基準点を指定した図
【図１１】（ａ）一の経由基準点について経由点を設定した図  （ｂ）全経由基準点について経由点を設定した図
【図１２】（ａ）枝を生成した図  （ｂ）生成されるオブジェクトを示す図
【図１３】雷のオブジェクトを生成する動作を示すフローチャート
【図１４】（ａ）一の経由基準点について所定範囲の設定の別の例を示す図  （ｂ）全経由基準点について所定の範囲の設定の別の例を示す図
【発明を実施するための形態】
【００１９】
以下、本実施形態の情報処理システムについて、ゲームシステムを一例として説明する。本実施形態におけるゲームシステム１の一例は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、ゲームシステム１は、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、ゲームシステム１は、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。以下では、本実施形態のゲームシステム１のハードウェア構成について説明し、その後に本実施形態のゲームシステム１の制御について説明する。
【００２０】
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００２１】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００２２】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００２３】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００２４】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００２５】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００２６】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００２７】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００２８】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００２９】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００３０】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１および図４に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００３１】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２は、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、左コントローラ３は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック３２を押下する入力が可能である。
【００３２】
左コントローラ３は、各種操作ボタンを備える。左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および左方向ボタン３６）を備える。さらに、左コントローラ３は、録画ボタン３７および−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００３３】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００３４】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００３５】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、およびＹボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、右コントローラ４は、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００３６】
また、ハウジング５１の下側面には、窓部６８が設けられる。詳細は後述するが、右コントローラ４は、ハウジング５１の内部に配置される赤外撮像部１２３および赤外発光部１２４を備えている。赤外撮像部１２３は、右コントローラ４の下方向（図５に示すｙ軸負方向）を撮像方向として、窓部６８を介して右コントローラ４の周囲を撮像する。赤外発光部１２４は、右コントローラ４の下方向（図５に示すｙ軸負方向）を中心とする所定範囲を照射範囲として、赤外撮像部１２３が撮像する撮像対象に窓部６８を介して赤外光を照射する。窓部６８は、赤外撮像部１２３のカメラのレンズや赤外発光部１２４の発光体等を保護するためのものであり、当該カメラが検知する波長の光や当該発光体が照射する光を透過する材質（例えば、透明な材質）で構成される。なお、窓部６８は、ハウジング５１に形成された孔であってもよい。なお、本実施形態においては、カメラが検知する光（本実施形態においては、赤外光）以外の波長の光の透過を抑制するフィルタ部材を赤外撮像部１２３自身が有する。ただし、他の実施形態においては、窓部６８がフィルタの機能を有していてもよい。
【００３７】
また、詳細は後述するが、右コントローラ４は、ＮＦＣ通信部１２２を備える。ＮＦＣ通信部１２２は、ＮＦＣ（Ｎｅａｒ  Ｆｉｅｌｄ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ）の規格に基づく近距離無線通信を行う。ＮＦＣ通信部１２２は、近距離無線通信に用いられるアンテナ１２２ａと、アンテナ１２２ａから送出すべき信号（電波）を生成する回路（例えばＮＦＣチップ）とを有する。なお、ＮＦＣ通信部１２２は、ＮＦＣの規格に基づく近距離無線通信を行う代わりに、任意の近接通信（非接触通信とも言う）で近距離無線通信を行うようにしてもよい。ここで、ＮＦＣの規格は、近接通信（非接触通信）に用いることができるものであり、「任意の近接通信で近距離無線通信を行うようにしてもよい」とは、ＮＦＣの規格による近接通信を除いた他の近接通信で近距離無線通信を行ってもよいことを意図している。
【００３８】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００３９】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９１、９７、および９８を備える。これらの構成要素８１〜９１、９７、および９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００４０】
本体装置２は、プロセッサ８１を備える。プロセッサ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のみから構成されてもよいし、ＣＰＵ機能を有するＣＰＵ８１１、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）機能を有するＧＰＵ８１２等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）から構成されてもよい。プロセッサ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラムや描画プログラム）を実行することによって、各種の情報処理を実行する。
【００４１】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、プロセッサ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００４２】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、プロセッサ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、プロセッサ８１の指示に応じて行う。
【００４３】
プロセッサ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００４４】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、プロセッサ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００４５】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、プロセッサ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００４６】
プロセッサ８１は、上述の左側端子１７、右側端子２１、および下側端子２７に接続される。プロセッサ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、プロセッサ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、プロセッサ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００４７】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、複数のユーザは、左コントローラ３および右コントローラ４のセットをそれぞれ用いて、本体装置２に対する入力を同時に行うことができる。一例として、第１ユーザが左コントローラ３および右コントローラ４の第１セットを用いて本体装置２に対して入力を行うと同時に、第２ユーザが左コントローラ３および右コントローラ４の第２セットを用いて本体装置２に対して入力を行うことが可能となる。
【００４８】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とプロセッサ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ８１へ出力する。
【００４９】
また、ディスプレイ１２は、プロセッサ８１に接続される。プロセッサ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００５０】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、プロセッサ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００５１】
また、本体装置２は、加速度センサ８９を備える。本実施形態においては、加速度センサ８９は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ８９は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【００５２】
また、本体装置２は、角速度センサ９０を備える。本実施形態においては、角速度センサ９０は、所定の３軸（例えば、図１に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ９０は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。
【００５３】
加速度センサ８９および角速度センサ９０は、プロセッサ８１に接続され、加速度センサ８９および角速度センサ９０の検出結果は、プロセッサ８１へ出力される。プロセッサ８１は、上記の加速度センサ８９および角速度センサ９０の検出結果に基づいて、本体装置２の動きおよび／または姿勢に関する情報を算出することが可能である。
【００５４】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびプロセッサ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、プロセッサ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００５５】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００５６】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００５７】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００５８】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００５９】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、および４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００６０】
左コントローラ３は、慣性センサを備える。具体的には、左コントローラ３は、加速度センサ１０４を備える。また、左コントローラ３は、角速度センサ１０５を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００６１】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、またはセンサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００６２】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００６３】
左コントローラ３は、振動によってユーザに通知を行うための振動子１０７を備える。本実施形態においては、振動子１０７は、本体装置２からの指令によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記指令を受け取ると、当該指令に従って振動子１０７を駆動させる。ここで、左コントローラ３は、コーデック部１０６を備える。通信制御部１０１は、上記指令を受け取ると、指令に応じた制御信号をコーデック部１０６へ出力する。コーデック部１０６は、通信制御部１０１からの制御信号から振動子１０７を駆動させるための駆動信号を生成して振動子１０７へ与える。これによって振動子１０７が動作する。
【００６４】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００６５】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００６６】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２、慣性センサ（加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００６７】
また、右コントローラ４は、振動子１１７およびコーデック部１１６を備える。振動子１１７およびコーデック部１１６は、左コントローラ３の振動子１０７およびコーデック部１０６と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの指令に従って、コーデック部１１６を用いて振動子１１７を動作させる。
【００６８】
右コントローラ４は、ＮＦＣの規格に基づく近距離無線通信を行うＮＦＣ通信部１２２を備える。ＮＦＣ通信部１２２は、いわゆるＮＦＣリーダ・ライタの機能を有する。ここで、本明細書において近距離無線通信とは、一方の装置（ここでは、右コントローラ４）からの電波によって（例えば電磁誘導によって）他方の装置（ここでは、アンテナ１２２ａと近接する装置）に起電力を発生させる通信方式が含まれる。他方の装置は、発生した起電力によって動作することが可能であり、電源を有していてもよいし有していなくてもよい。ＮＦＣ通信部１２２は、右コントローラ４（アンテナ１２２ａ）と通信対象とが接近した場合（典型的には、両者の距離が十数センチメートル以下となった場合）に当該通信対象との間で通信可能となる。通信対象は、ＮＦＣ通信部１２２との間で近距離無線通信が可能な任意の装置であり、例えばＮＦＣタグやＮＦＣタグの機能を有する記憶媒体である。ただし、通信対象は、ＮＦＣのカードエミュレーション機能を有する他の装置であってもよい。
【００６９】
また、右コントローラ４は、赤外撮像部１２３を備える。赤外撮像部１２３は、右コントローラ４の周囲を撮像する赤外線カメラを有する。一例として、本体装置２および／または右コントローラ４は、撮像された情報（例えば、撮像された撮像画像における少なくとも一部の領域全体を分割した複数のブロックの輝度に関連する情報等）を算出し、当該情報に基づいて、右コントローラ４の周囲変化を判別する。また、赤外撮像部１２３は、環境光によって撮像を行ってもよいが、本実施形態においては、赤外線を照射する赤外発光部１２４を有する。赤外発光部１２４は、例えば、赤外線カメラが画像を撮像するタイミングと同期して、赤外線を照射する。そして、赤外発光部１２４によって照射された赤外線が撮像対象によって反射され、当該反射された赤外線が赤外線カメラによって受光されることで、赤外線の画像が取得される。これによって、赤外撮像部１２３は、より鮮明な赤外線画像を得ることができる。なお、赤外撮像部１２３と赤外発光部１２４とは、それぞれ別のデバイスとして右コントローラ４内に設けられてもよいし、同じパッケージ内に設けられた単一のデバイスとして右コントローラ４内に設けられてもよい。また、本実施形態においては、赤外線カメラを有する赤外撮像部１２３が用いられるが、他の実施形態においては、撮像手段として、赤外線カメラに代えて可視光カメラ（可視光イメージセンサを用いたカメラ）が用いられてもよい。
【００７０】
右コントローラ４は、処理部１２１を備える。処理部１２１は、通信制御部１１１に接続される。また、処理部１２１は、ＮＦＣ通信部１２２、赤外撮像部１２３、および赤外発光部１２４に接続される。処理部１２１は、本体装置２からの指令に応じて、ＮＦＣ通信部１２２に対する管理処理を実行する。例えば、処理部１２１は、本体装置２からの指令に応じてＮＦＣ通信部１２２の動作を制御する。また、処理部１２１は、ＮＦＣ通信部１２２の起動を制御したり、通信対象（例えば、ＮＦＣタグ）に対するＮＦＣ通信部１２２の動作（具体的には、読み出しおよび書き込み等）を制御したりする。また、処理部１２１は、通信制御部１１１を介して通信対象に送信されるべき情報を本体装置２から受信してＮＦＣ通信部１２２へ渡したり、通信対象から受信された情報をＮＦＣ通信部１２２から取得して通信制御部１１１を介して本体装置２へ送信したりする。
【００７１】
また、処理部１２１は、ＣＰＵやメモリ等を含み、右コントローラ４に備えられた図示しない記憶装置（例えば、不揮発性メモリ等）に記憶された所定のプログラム（例えば、画像処理や各種演算を行うためのアプリケーションプログラム）に基づいて、本体装置２からの指令に応じて赤外撮像部１２３に対する管理処理を実行する。例えば、処理部１２１は、赤外撮像部１２３に撮像動作を行わせたり、撮像結果に基づく情報（撮像画像の情報、あるいは、当該情報から算出される情報等）を取得および／または算出して通信制御部１１１を介して本体装置２へ送信したりする。また、処理部１２１は、本体装置２からの指令に応じて赤外発光部１２４に対する管理処理を実行する。例えば、処理部１２１は、本体装置２からの指令に応じて赤外発光部１２４の発光を制御する。なお、処理部１２１が処理を行う際に用いるメモリは、処理部１２１内に設けられてもいいし、メモリ１１２であってもよい。
【００７２】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００７３】
（描画プログラムの構成）
次に、本実施の形態のゲーム装置本体２上で描画プログラムを実行することで実現されるオブジェクトについて説明する。上述したとおり、描画プログラムは、ゲーム装置本体２のフラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される。本実施の形態のゲームにおいては、仮想三次元空間内で、雷のオブジェクトを生成する。以下では、本実施の形態の描画プログラムを実行することによって実現されるゲーム装置本体２の機能を説明することにより、描画プログラムの構成について説明する。
【００７４】
図８は、ゲーム装置本体２のＧＰＵ８１２（図６参照）によって描画プログラムを実行したときに実現される機能を示す図である。本実施の形態では、描画プログラムを実行するのがＧＰＵ８１２である例を挙げているが、ＣＰＵ８１１等の他の処理部によって実行することとしてもよい。なお、図８では、以下に説明する実施の形態に関係する機能のみを示し、ゲームを進行させるための他の機能については記載を省略している。
【００７５】
本実施の形態の描画プログラムをＧＰＵ８１２によって実行することにより、位置指定部２０１、経由基準点指定部２０２、所定範囲設定部２０３、経由点決定部２０４、基準ベクトル決定部２０５、分岐先点決定部２０６、オブジェクト生成部２０７の機能が実現される。
【００７６】
図９は、本実施の形態の描画プログラムによって生成される雷のオブジェクト２１０の例を示す図である。雷のオブジェクト２１０は、始点２１１と終点２１２を有し、始点２１１から終点２１２に延びる幹の部分と幹から分岐する枝の部分を有している。
【００７７】
次に、図１０〜図１２を参照して、本実施の形態のＧＰＵ８１２によるオブジェクトの生成について説明する。まず、位置指定部２０１が、図１０（ａ）に示すように、オブジェクトの始点２１１と終点２１２を指定する。オブジェクトの始点、終点の位置は、ＣＰＵ８１１から渡されるので、位置指定部２０１は、ＣＰＵ８１１から指定されたデータを用いる。次に、経由基準点指定部２０２が、図１０（ｂ）に示すように、始点２１１と終点２１２との直線上に３つの経由基準点２１３〜２１５を指定する。図１０（ｂ）に示す例では、経由基準点２１３〜２１５を均等間隔になるように指定した例を示すが、経由基準点２１３〜２１５の間隔は必ずしも均等でなくてもよい。ここでは、説明の便宜上、３つの経由基準点２１３〜２１５を指定する例を挙げたが、図９に示すような複雑さを持つ雷を生成する場合は、２０程度の経由基準点を指定する。経由基準点をいくつ指定するかを指示するデータは、ＣＰＵ８１１から渡される。
【００７８】
次に、所定範囲設定部２０３は、経由基準点２１３〜２１５のそれぞれを基準とする所定範囲を設定する。経由基準点２１３を例とすると、図１１（ａ）に示すように、経由基準点２１３を表面に含み、始点２１１の側に膨らむ球の表面を所定範囲２１６として設定する。
【００７９】
続いて、経由点決定部２０４は、所定範囲２１６上のランダムな点を経由点２１７として決定する。なお、本実施の形態では、所定範囲２１６上のランダムな点を経由点２１７として決定する例を挙げたが、例えば、位置によって選択される確率に偏りを設定してもよい。
【００８０】
経由基準点２１４、２１５についても、経由基準点２１４、２１５を含む所定範囲２１８、２２０をそれぞれ、上記と同様の処理によって設定し、所定範囲２１８、２２０上のランダムな点を経由点２１９、２２１として決定する。オブジェクト生成部２０７は、始点２１１と、経由点２１７、２１９、２２１と、終点２１２を繋ぐことにより、雷のオブジェクトの幹の部分を生成する。
【００８１】
ここで、経由基準点２１３〜２１５のそれぞれに設定した所定範囲２１６、２１８、２２０の大きさは、始点２１１から終点２１２に向かう過程で、所定範囲は徐々に大きくなり、途中から徐々に小さくなる。これにより、所定範囲２１６、２１８、２２０からランダムに決定した経由点２１７、２１９、２２１は、終点２１２に向かうにしたがって、終点２１２に自然に収束するように見える。
【００８２】
図１２（ａ）は、枝の部分の生成の仕方を示す図である。図１２（ａ）に示す例では、経由点２１７から分岐する例を示している。経由点において、分岐するか否かは、予め指定した確率とＧＰＵ８１２で生成した乱数とに基づいて決定する。経由点２１７にて分岐すると決定された場合には、基準ベクトル決定部２０５は、分岐基準点を決めるための基準ベクトルを求める。基準ベクトルは、一つ前の経由基準点から分岐すべき経由点へのベクトルである。図１２（ａ）に示す例では、一つ前は経由基準点ではなく始点２１１であり、このような場合は、始点２１１から経由点２１７へのベクトル２３０が基準ベクトルとなる。なお、ここで示した基準ベクトルの決め方は一例であり、基準ベクトルの決め方はここで説明した方法に限定されるものではない。
【００８３】
次に、分岐先点決定部２０６は、経由点２１７から分岐した分岐先の点を決定する。具体的には、まず、経由点２０７に基準ベクトルを加えた位置にある点を分岐先基準点２４０として求める。次に、分岐先基準点２４０を含む所定範囲２４１を上記と同様の処理によって設定し、当該所定範囲２４１のランダムな点を分岐先点２４２として決定する。
【００８４】
経由点２１７から分岐した枝をどの程度伸ばすか、すなわち分岐後に、何回、分岐先点を求めるかは、例えば、「始点から終点までの経由数」−「経由点を始点から数えた番号」によって決めることができる。図１２（ａ）に示す例では、経由点が３であり、分岐した経由点は１番目なので、３−１＝２で２回と求められる。なお、終点２１２に近い経由点になると、分岐先に枝を伸ばす回数が０回、１回となってしまうので、その場合には、最低でも２回は伸ばすというような処理を採用してもよい。
【００８５】
分岐先点２４２から先の分岐点の求め方は、先に説明した方法と同じである。すなわち、分岐先点２４２に基準ベクトルを加えた位置にある点を分岐先基準点２４３として求める。次に、分岐先基準点２４３を含む所定範囲２４４を上記と同様の処理によって設定し、当該所定範囲２４４のランダムな点を分岐先点２４５として決定する。オブジェクト生成部２０７は、経由点２１７と、分岐先点２４２、２４５を繋ぐことにより、雷のオブジェクトの枝を生成する。なお、オブジェクト生成部２０７は、経由点２１７から先に行くにしたがって、分岐先点をつなぐ線を薄くしていく。すなわち、線２５０は、元の線２３０より薄く、線２５１は線２５０よりもさらに薄くする。なお、図１２（ａ）においては、色の濃淡をそのまま図面として表現するのが困難であるので代わりに線の太さを変えて表現している。
【００８６】
図１２（ｂ）は、図１１（ｂ）に示すオブジェクトの幹の部分と、図１２（ａ）に示すオブジェクトの枝の部分を合体した図を示す。オブジェクト生成部２０７は、幹の部分のオブジェクトを生成すると共に、枝の部分も生成するので、図１２（ｂ）に示すようなオブジェクトが生成される。図１２（ｂ）では、経由点２１７でのみ分岐したオブジェクトを示しているが、経由点２１９、２２１にて分岐してもよいし、分岐先点２４２でさらに分岐してもよい。分岐先点２４２から再度分岐する場合は、「経由点」としていた部分が「分岐先点」に置き代わった形で上記の説明が適用される。分岐させるか否かは、上述したとおり、確率によって決定する。
【００８７】
図１３は、本実施の形態のＧＰＵ８１２が描画プログラムを実行することによって雷のオブジェクトを生成する動作を示すフローチャートである。ＧＰＵ８１２は、あらかじめＣＰＵ８１１から、始点、終点、経由点数、分岐確率、色、幹（枝）の部分における所定範囲の大きさを示す量等のパラメータを与えられている。なお、各種パラメータは事前に製作者により指定されていてもよいし、何らかの条件により決定してもよい。
【００８８】
位置指定部２０１は、まず、ＣＰＵ８１１から与えられたパラメータを用いて、オブジェクトの始点及び終点（図１０（ａ）参照）を指定する（Ｓ１０）。次に、経由基準点指定部２０２は、始点２００と終点２０１との間に、経由点数分の経由基準点２０３〜２０５（図１０（ｂ）参照）を設定する（Ｓ１１）。
【００８９】
続いて、所定範囲設定部２０３は、経由基準点２０３〜２０５のそれぞれに対して、所定範囲２１６、２１８、２２０（図１１（ｂ）参照）を設定する（Ｓ１２）。経由点決定部２０４は、所定範囲２１６、２１８、２２０からランダムな点を選び、経由点２１７、２１９、２２１（図１１（ｂ）参照）として決定する（Ｓ１３）。
【００９０】
次に、分岐先点決定部２０６は、経由点２１７、２１９、２２１において、分岐するか否かを決定する（Ｓ１４）。分岐すると決定された場合（Ｓ１４でＹＥＳ）、分岐先点決定部２０６は、オブジェクトの幹から分岐した枝の部分を生成する。例えば、経由点２１７で分岐すると決定された場合、基準ベクトル決定部２０５は、一つ前の点である始点２１１から経由点２１７へのベクトルを基準ベクトル２３０として決定し、経由点２１７に基準ベクトル２３０を加算した位置を分岐基準点２４０（図１２（ａ）参照）を決定する（Ｓ１５）。
【００９１】
続いて、分岐先点決定部２０６は、分岐基準点２４０を含む所定範囲２４１を設定し、所定範囲２４１からランダムな点を選び分岐先点２４２（図１２（ａ）参照）として決定する（Ｓ１６）。分岐先点決定部２０６は、分岐先点を決定する処理を所定回数実行し、（Ｓ１７）、所定回数実行したあと（Ｓ１７でＹＥＳ）、分岐するか否かの判定（Ｓ１４）に戻る。分岐するか否かの判定（Ｓ１４）においては、オブジェクトの枝の分岐先点についても、さらに分岐するか否かも判定する。
【００９２】
分岐するか否かの判定において、分岐しないと判定された場合（Ｓ１４でＮＯ）、経由点２１３〜２１５、分岐先点２４２、２４５等の位置が決定されたと判定されるので、オブジェクト生成部２０７は、始点２１１、経由点２１３〜２１５、及び、分岐先点２４２、２４５、終点２１２を繋いで描画することによりオブジェクトを生成する（Ｓ１８）。
【００９３】
以上、本実施の形態の描画プログラムおよび描画プログラムによって実現されるＧＰＵの機能について説明したが、本発明の情報処理プログラムは、上記した実施の形態に限定されるものではない。
【００９４】
上記した実施の形態では、経由基準点２１３を表面に含み、始点２１１の側に膨らむ球の表面を所定範囲２１６として設定したが（図１１（ａ）参照）、所定範囲の設定の仕方は、他にも考えられる。
【００９５】
図１４（ａ）及び図１４（ｂ）は、所定範囲の設定の仕方の他の例を示す図である。図１４（ａ）に示すように、経由基準点２１３を中心とする球の表面を所定範囲２１６として設定してもよい。図１４（ｂ）は、全ての経由基準点２１３〜２１５について所定範囲２１６、２１８、２２０および経由点２１７、２１９、２２１を設定した例を示す図である。このようにして決定した経由点２１７、２１９、２２１を通る線を２３０〜２３３を引くことによっても、雷のオブジェクトを生成できる。また、本実施の形態では、経由基準点２１３を含む所定範囲２１６を設定する例を挙げたが、（経由基準点を表面に含まない）離れた球の表面を所定範囲として設定してもよい。
【００９６】
また、上記した実施の形態では、球の表面を所定範囲２１６、２１８、２２０とし、その球の表面からランダムに選んだ点を経由点２１７、２１９、２２１としたが、球の内部を所定範囲として、球の内部からランダムに経由点を決定してもよい。また、所定範囲の形状は、必ずしも球に限定されず、例えば、立方体の表面または立方体の内部を所定範囲としてもよい。また、仮想空間が二次元空間の場合には、平面状の円の内部やその円周を所定範囲としてもよい。
【００９７】
オブジェクト生成部は、オブジェクトを生成する際に、オブジェクトの周囲を、例えば、チューブライト状の線光源で照らす処理を行ってもよい。また、まぶしい領域を滲ませて表現するブルームというエフェクトを組み合わせもよい。
【００９８】
上記した実施の形態では、始点２１１と終点２１２とを結ぶ直線上に経由基準点２１３〜２１５を設定する例を挙げたが、経由基準点は必ずしも、始点２１１と終点２１２とを結ぶ直線上になくてもよい。始点２１１と終点２１２とを結ぶカーブの上に経由基準点を設定することにより、カーブするアーク放電のような表現を行うことができる。また、上記した実施の形態において、オブジェクトの一部を描画しないこととしてもよい。例えば、終点２１２近くの雷は不可視であってもよい。
【００９９】
上記した実施の形態において、所定範囲の大きさは、始点から次第に大きくなり、あるところを境に次第に小さくなるが、必ずしも単調に大きくなる、または小さくなる必要はなく、例えば、所定範囲が次第に大きくなっている途中において少し小さくなるようなものがあってもよい。
【０１００】
上記した実施の形態では、雷のオブジェクトを生成する例を挙げたが、本発明の情報処理プログラムは、雷以外のオブジェクトの生成にも適用できる。例えば、幹と枝からなる樹木の形状のモデルを生成することや、壁のひび割れ、葉脈等にも適用することができる。
【符号の説明】
【０１０１】
１  ゲームシステム
２  本体装置
３  左コントローラ
４  右コントローラ
１１  ハウジング
１２  ディスプレイ
１７  左側端子
２１  右側端子
４２、６４  端子
８１  プロセッサ
８３  コントローラ通信部
８９  加速度センサ
９０  角速度センサ
１００  携帯機コントローラ
１０４、１１４  加速度センサ
１０５、１１５  角速度センサ
１３０  ゲーム制御部
１３１  操作データ取得部
１３２  振動強さ計算部
１３３  振動データ生成部
１３４  プレイヤキャラクタ制御部
１３５  画像処理部
１３６  ゲーム状況データ記憶部
１３７  波形データ記憶部
１３８  振動制御部
２０１  位置指定部
２０２  経由基準点設定部
２０３  所定範囲設定部
２０４  経由点決定部
２０５  基準ベクトル決定部
２０６  分岐先点決定部
２０７  オブジェクト生成部
２１０  オブジェクト
２１１  始点
２１２  終点
２１３〜２１５  経由基準点
２１６、２１８、２２０  所定範囲
２１７、２１９、２２１  経由点
【図１】
2018206202.tif 000003
【図２】
2018206202.tif 000004
【図３】
2018206202.tif 000005
【図４】
2018206202.tif 000006
【図５】
2018206202.tif 000007
【図６】
2018206202.tif 000008
【図７】
2018206202.tif 000009
【図８】
2018206202.tif 000010
【図９】
2018206202.tif 000011
【図１０】
2018206202.tif 000012
【図１１】
2018206202.tif 000013
【図１２】
2018206202.tif 000014
【図１３】
2018206202.tif 000015
【図１４】
2018206202.tif 000016