(57)【要約】      （修正有）【課題】ゲームの処理に応じて異なる振動のフィードバックを行うゲームシステムを提供する。【解決手段】ゲームシステムは、ゲーム装置と、左右のコントローラを有する。ゲーム装置は、左右のコントローラから操作データを受信し、受信した操作データに基づいて、左右のコントローラに対して振り入力が行われているか否かを判定する振り判定部１３１と、左のコントローラに対して振り入力が行われているとき、左のコントローラの振動子を所定の強さで振動させると共に、右のコントローラの振動子を弱く振動させ、右のコントローラに対して振り入力が行われているとき、右のコントローラの振動子を所定の強さで振動させると共に、左のコントローラの振動子を弱く振動させるよう、振動データを生成する振動データ生成部１３２と、を備える。【選択図】図１２
2018110624.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と、第１の操作装置と、第２の操作装置を含むゲームシステムであって、
前記第１の操作装置は、
第１の慣性センサと、
前記情報処理装置から指示された強さで振動する第１の振動部と、
前記情報処理装置に前記第１の慣性センサから取得されるデータを含む第１の操作データを送信し、前記情報処理装置から前記第１の振動部を振動させるための第１の振動データを受信する第１の通信部と、を備え、
前記第２の操作装置は、
第２の慣性センサと、
前記情報処理装置から指示された強さで振動する第２の振動部と、
前記情報処理装置に前記第２の慣性センサから取得されるデータを含む第２の操作データを送信し、前記情報処理装置から前記第２の振動部を振動させるための第２の振動データを受信する第２の通信部と、を備え、
前記情報処理装置は、
前記第１の操作装置から前記第１の操作データ、前記第２の操作装置から前記第２の操作データを受信し、前記第１の操作装置に前記第１の振動データ、前記第２の操作装置に前記第２の振動データを送信する第３の通信部と、
前記第１の操作データおよび前記第２の操作データに基づいて、前記第１の操作装置に対して振り入力が行われているか否か、および前記第２の操作装置に対して振り入力が行われているか否かを判定する振り判定部と、
前記第１の操作装置に対して振り入力が行われているとき、前記第１の振動部を所定の強さで振動させると共に、前記第２の振動部を前記第１の振動部より弱い強さで振動させ、前記第２の操作装置に対して振り入力が行われているとき、前記第２の振動部を所定の強さで振動させると共に、前記第１の振動部を前記第２の振動部より弱い強さで振動させるよう、前記第１の振動データおよび前記第２の振動データを生成する振動データ生成部と、を備える、
ゲームシステム。
【請求項２】
前記振動データ生成部は、時間経過と共に振動の強さが弱くなるよう前記第１の振動データおよび前記第２の振動データを生成する、請求項１記載のゲームシステム。
【請求項３】
前記振動データ生成部は、波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成する、請求項１または２記載のゲームシステム。
【請求項４】
前記振動データ生成部は、波形情報が記憶された波形情報記憶部から波形情報を読み出し、読み出した波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成する、請求項３記載のゲームシステム。
【請求項５】
前記振動データ生成部は、波形の振幅を設定することによって振動の強さを設定する、請求項３または４記載のゲームシステム。
【請求項６】
前記情報処理装置はさらに、
仮想空間内において、前記第１の操作データおよび前記第２の操作データに基づいてプレイヤキャラクタオブジェクトを制御するプレイヤキャラクタ制御部と、
前記プレイヤキャラクタオブジェクトを含む前記仮想空間の画像を生成する画像処理部をさらに備える、請求項１から５のいずれか記載のゲームシステム。
【請求項７】
情報処理装置と、前記情報処理装置に通信可能に接続された複数の操作装置とを含むゲームシステムであって、
前記操作装置は、
振りに応じた操作データを出力する慣性センサと、
前記情報処理装置から送信される振動データに基づいて振動する振動部と、を備え、
前記情報処理装置は、
前記操作装置から送信された操作データに基づいて、前記操作装置に対して振り入力が行われているか否かを判定する振り判定部と、
振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる振動データを生成する振動データ生成部と、
を備えるゲームシステム。
【請求項８】
慣性センサと振動部とを有する複数の操作装置を含むゲームシステムであって、
前記慣性センサからの操作データに基づいて振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、前記慣性センサからの操作データに基づいて振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させるゲームシステム。
【請求項９】
第１の慣性センサおよび第１の振動部を有する第１の操作装置と、第２の慣性センサおよび第２の振動部を有する第２の操作装置と通信可能に接続されたコンピュータによってゲーム処理を制御するゲームプログラムであって、前記コンピュータに、
前記第１の慣性センサで取得され前記第１の操作装置から送信された前記第１の操作データ、および、前記第２の慣性センサで取得され前記第２の操作装置から送信された前記第２の操作データを取得するステップと、
前記第１の操作データおよび前記第２の操作データに基づいて、前記第１の操作装置に対して振り入力が行われているか否か、および前記第２の操作装置に対して振り入力が行われているか否かを判定するステップと、
前記第１の操作装置に対して振り入力が行われているとき、前記第１の振動部を所定の強さで振動させると共に、前記第２の振動部を前記第１の振動部より弱い強さで振動させ、前記第２の操作装置に対して振り入力が行われているとき、前記第２の振動部を所定の強さで振動させると共に、前記第１の振動部を前記第２の振動部より弱い強さで振動させるよう、第１の振動データおよび第２の振動データを生成するステップと、
前記第１の操作装置に対して送信する前記第１の振動データ、および、前記第２の操作装置に対して送信する前記第２の振動データを出力するステップと、
を実行させるゲームプログラム。
【請求項１０】
前記第１の振動データおよび第２の振動データを生成するステップは、時間経過と共に振動の強さが弱くなるよう前記第１の振動データおよび前記第２の振動データを生成する、請求項９記載のゲームプログラム。
【請求項１１】
前記第１の振動データおよび第２の振動データを生成するステップは、波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成する、請求項９または１０記載のゲームプログラム。
【請求項１２】
前記第１の振動データおよび第２の振動データを生成するステップは、波形情報が記憶された波形情報記憶部から波形情報を読み出し、読み出した波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成する、請求項１１記載のゲームプログラム。
【請求項１３】
前記第１の振動データおよび第２の振動データを生成するステップは、波形の振幅を設定することによって振動の強さを設定する、請求項１１または１２記載のゲームプログラム。
【請求項１４】
仮想空間内において、前記第１の操作データおよび前記第２の操作データに基づいてプレイヤキャラクタオブジェクトを制御するステップと、
前記プレイヤキャラクタオブジェクトを含む前記仮想空間の画像を生成するステップと、
をさらに実行させる、請求項９から１３のいずれか記載のゲームプログラム。
【請求項１５】
慣性センサおよび振動部を有する複数の操作装置と通信可能に接続されたコンピュータによってゲーム処理を制御するゲームプログラムであって、前記コンピュータに、
前記複数の操作装置から受信した複数の操作データを取得するステップと、
前記複数の操作データに基づいて、前記複数の操作装置に対して振り入力が行われているか否かを判定するステップと、
振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる振動データを生成するステップと、
前記複数の操作装置に対して送信する前記振動データを出力するステップと、
を実行させるゲームプログラム。
【請求項１６】
第１の慣性センサおよび第１の振動部を有する第１の操作装置と、第２の慣性センサおよび第２の振動部を有する第２の操作装置と通信可能に接続された情報処理装置であって、
前記第１の操作装置から第１の操作データ、前記第２の操作装置から第２の操作データを受信し、前記第１の操作装置に第１の振動データ、前記第２の操作装置に第２の振動データを送信する通信部と、
前記第１の操作データおよび前記第２の操作データに基づいて、前記第１の操作装置に対して振り入力が行われているか否か、および前記第２の操作装置に対して振り入力が行われているか否かを判定する振り判定部と、
前記第１の操作装置に対して振り入力が行われているとき、前記第１の振動部を所定の強さで振動させると共に、前記第２の振動部を前記第１の振動部より弱い強さで振動させ、前記第２の操作装置に対して振り入力が行われているとき、前記第２の振動部を所定の強さで振動させると共に、前記第１の振動部を前記第２の振動部より弱い強さで振動させるよう、前記第１の振動データおよび前記第２の振動データを生成する振動データ生成部と、
を備える情報処理装置。
【請求項１７】
前記振動データ生成部は、時間経過と共に振動の強さが弱くなるよう前記第１の振動データおよび前記第２の振動データを生成する、請求項１６記載の情報処理装置。
【請求項１８】
前記振動データ生成部は、波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成する、請求項１６または１７記載の情報処理装置。
【請求項１９】
前記振動データ生成部は、波形情報が記憶された波形情報記憶部から波形情報を読み出し、読み出した波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成する、請求項１８記載の情報処理装置。
【請求項２０】
前記振動データ生成部は、波形の振幅を設定することによって振動の強さを設定する、請求項１８または１９記載の情報処理装置。
【請求項２１】
仮想空間内において、前記第１の操作データおよび前記第２の操作データに基づいてプレイヤキャラクタオブジェクトを制御するプレイヤキャラクタ制御部と、
前記プレイヤキャラクタオブジェクトを含む前記仮想空間の画像を生成する画像処理部をさらに備える、
請求項１６から２０のいずれか記載の情報処理装置。
【請求項２２】
慣性センサおよび振動部を有する複数の操作装置と通信可能に接続された情報処理装置であって、
前記複数の操作装置から前記操作データを受信すると共に、前記操作装置に前記振動データを送信する通信部と、
前記操作装置から受信した操作データに基づいて、前記操作装置に対して振り入力が行われているか否かを判定する振り判定部と、
振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる振動データを生成する振動データ生成部と、
を備える情報処理装置。
【請求項２３】
第１の慣性センサおよび第１の振動部を有する第１の操作装置と、第２の慣性センサおよび第２の振動部を有する第２の操作装置と通信可能に接続されたコンピュータによってゲーム処理を制御する方法であって、
前記第１の慣性センサで取得され前記第１の操作装置から送信された前記第１の操作データ、および、前記第２の慣性センサで取得され前記第２の操作装置から送信された前記第２の操作データを取得するステップと、
前記第１の操作データおよび前記第２の操作データに基づいて、前記第１の操作装置に対して振り入力が行われているか否か、および前記第２の操作装置に対して振り入力が行われているか否かを判定するステップと、
前記第１の操作装置に対して振り入力が行われているとき、前記第１の振動部を所定の強さで振動させると共に、前記第２の振動部を前記第１の振動部より弱い強さで振動させ、前記第２の操作装置に対して振り入力が行われているとき、前記第２の振動部を所定の強さで振動させると共に、前記第１の振動部を前記第２の振動部より弱い強さで振動させるよう、第１の振動データおよび第２の振動データを生成するステップと、
前記第１の操作装置に対して前記第１の振動データ、前記第２の操作装置に対して前記第２の振動データを送信するステップと、
を備えるゲーム制御方法。
【請求項２４】
慣性センサおよび振動部を有する複数の操作装置と通信可能に接続されたコンピュータによってゲーム処理を制御する方法であって、
前記複数の操作装置から受信した複数の操作データを取得するステップと、
前記複数の操作データに基づいて、前記複数の操作装置に対して振り入力が行われているか否かを判定するステップと、
振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる振動データを生成するステップと、
前記複数の操作装置に対して前記振動データを送信するステップと、
を備えるゲーム制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、触覚によるフィードバック機能を有するゲームシステム及びゲームプログラム等に関する。
【背景技術】
【０００２】
従来から、触覚によるフィードバック機能を有するゲームシステムが知られていた。特許文献１は、モニタに接続されたゲーム装置と、ゲーム装置に操作指示を与えるコントローラからなるゲームシステムを開示している。コントローラには、バイブレータが内蔵されており、バイブレータを駆動することによってコントローラを振動させる。この構成により、特許文献１では、モニタ上でオブジェクトを視認できない状態において、触覚刺激によって非表示のオブジェクトをユーザに推測させるゲームを実現している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されたゲームシステムは、バイブレータをＯＮ／ＯＦＦすることによってコントローラの振動を制御するものであって、ゲーム内容に応じて振動の内容を細かく調整することはできなかった。本発明は、ゲームの処理に応じて異なる振動のフィードバックを行うゲームシステムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明のゲームシステムは、情報処理装置と、第１の操作装置と、第２の操作装置を含むゲームシステムであって、前記第１の操作装置は、第１の慣性センサと、前記情報処理装置から指示された強さで振動する第１の振動部と、前記情報処理装置に前記第１の慣性センサから取得されるデータを含む第１の操作データを送信し、前記情報処理装置から前記第１の振動部を振動させるための第１の振動データを受信する第１の通信部と、を備え、前記第２の操作装置は、第２の慣性センサと、前記情報処理装置から指示された強さで振動する第２の振動部と、前記情報処理装置に前記第２の慣性センサから取得されるデータを含む第２の操作データを送信し、前記情報処理装置から前記第２の振動部を振動させるための第２の振動データを受信する第２の通信部と、を備え、前記情報処理装置は、前記第１の操作装置から前記第１の操作データ、前記第２の操作装置から前記第２の操作データを受信し、前記第１の操作装置に前記第１の振動データ、前記第２の操作装置に前記第２の振動データを送信する第３の通信部と、前記第１の操作データおよび前記第２の操作データに基づいて、前記第１の操作装置に対して振り入力が行われているか否か、および前記第２の操作装置に対して振り入力が行われているか否かを判定する振り判定部と、前記第１の操作装置に対して振り入力が行われているとき、前記第１の振動部を所定の強さで振動させると共に、前記第２の振動部を前記第１の振動部より弱い強さで振動させ、前記第２の操作装置に対して振り入力が行われているとき、前記第２の振動部を所定の強さで振動させると共に、前記第１の振動部を前記第２の振動部より弱い強さで振動させるよう、前記第１の振動データおよび前記第２の振動データを生成する振動データ生成部と、を備える。
【０００６】
この構成により、第１の操作装置と第２の操作装置のうち振っていない方の操作装置にも弱い振動が発生するので、ユーザは両手に振動を感じることで臨場感が高まる。また、振った方の操作装置に強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【０００７】
本発明のゲームシステムにおいて、前記振動データ生成部は、時間経過と共に振動の強さが弱くなるよう前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、次の操作の際にも、振動を発生させることができる。
【０００８】
本発明のゲームシステムにおいて、前記振動データ生成部は、波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、複雑な振動データを生成することができる。
【０００９】
本発明のゲームシステムにおいて、前記振動データ生成部は、波形情報が記憶された波形情報記憶部から波形情報を読み出し、読み出した波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、振動データを容易に生成することができる。
【００１０】
本発明のゲームシステムにおいて、前記振動データ生成部は、波形の振幅を設定することによって振動の強さを設定してもよい。この構成により、振動の強さを容易に設定することができる。
【００１１】
本発明のゲームシステムにおいて、前記情報処理装置はさらに、仮想空間内において、前記第１の操作データおよび前記第２の操作データに基づいてプレイヤキャラクタオブジェクトを制御し、前記振り入力に応じて当該プレイヤキャラクタオブジェクトに所定のアニメーションをさせるプレイヤキャラクタ制御部と、前記プレイヤキャラクタオブジェクトを含む前記仮想空間の画像を生成する画像処理部をさらに備えてもよい。
【００１２】
この構成により、操作に応じてプレイヤキャラクタオブジェクトを制御すると共に、それに応じた振動を発生することができる。
【００１３】
本発明の別の態様に係るゲームシステムは、情報処理装置と、前記情報処理装置に通信可能に接続された複数の操作装置とを含むゲームシステムであって、前記操作装置は、振りに応じた操作データを出力する慣性センサと、前記情報処理装置から送信される振動データに基づいて振動する振動部と、を備え、前記情報処理装置は、前記操作装置から送信された操作データに基づいて、前記操作装置に対して振り入力が行われているか否かを判定する振り判定部と、振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる振動データを生成する振動データ生成部と、を備える。
【００１４】
この構成により、複数の操作装置のうち振っていない操作装置にも弱い振動が発生するので、ユーザは複数の操作装置から振動を感じることで臨場感が高まる。また、振った操作装置に強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【００１５】
本発明の別の態様に係るゲームシステムは、慣性センサと振動部とを有する複数の操作装置を含むゲームシステムであって、前記慣性センサからの操作データに基づいて振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、前記慣性センサからの操作データに基づいて振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる。
【００１６】
この構成により、複数の操作装置のうち振っていない操作装置にも弱い振動が発生するので、ユーザは複数の操作装置から振動を感じることで臨場感が高まる。また、振った操作装置に強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【００１７】
本発明のゲームプログラムは、第１の慣性センサおよび第１の振動部を有する第１の操作装置と、第２の慣性センサおよび第２の振動部を有する第２の操作装置と通信可能に接続されたコンピュータによってゲーム処理を制御するゲームプログラムであって、前記コンピュータに、前記第１の慣性センサで取得され前記第１の操作装置から送信された前記第１の操作データ、および、前記第２の慣性センサで取得され前記第２の操作装置から送信された前記第２の操作データを取得するステップと、前記第１の操作データおよび前記第２の操作データに基づいて、前記第１の操作装置に対して振り入力が行われているか否か、および前記第２の操作装置に対して振り入力が行われているか否かを判定するステップと、前記第１の操作装置に対して振り入力が行われているとき、前記第１の振動部を所定の強さで振動させると共に、前記第２の振動部を前記第１の振動部より弱い強さで振動させ、前記第２の操作装置に対して振り入力が行われているとき、前記第２の振動部を所定の強さで振動させると共に、前記第１の振動部を前記第２の振動部より弱い強さで振動させるよう、第１の振動データおよび第２の振動データを生成するステップと、前記第１の操作装置に対して送信する前記第１の振動データ、および、前記第２の操作装置に対して送信する前記第２の振動データを出力するステップと、を実行させる。
【００１８】
この構成により、第１の操作装置と第２の操作装置のうち振っていない方の操作装置にも弱い振動が発生するので、ユーザは両手に振動を感じることで臨場感が高まる。また、振った方の操作装置に強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【００１９】
本発明のゲームプログラムにおいて、前記第１の振動データおよび第２の振動データを生成するステップは、時間経過と共に振動の強さが弱くなるよう前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、次の操作の際にも、振動を発生させることができる。
【００２０】
本発明のゲームプログラムにおいて、前記第１の振動データおよび第２の振動データを生成するステップは、波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、複雑な振動データを生成することができる。
【００２１】
本発明のゲームプログラムにおいて、前記第１の振動データおよび第２の振動データを生成するステップは、波形情報が記憶された波形情報記憶部から波形情報を読み出し、読み出した波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、振動データを容易に生成することができる。
【００２２】
本発明のゲームプログラムにおいて、前記第１の振動データおよび第２の振動データを生成するステップは、波形の振幅を設定することによって振動の強さを設定してもよい。この構成により、振動の強さを容易に設定することができる。
【００２３】
本発明のゲームプログラムは、仮想空間内において、前記第１の操作データおよび前記第２の操作データに基づいてプレイヤキャラクタオブジェクトを制御し、前記振り入力に応じて当該プレイヤキャラクタオブジェクトに所定のアニメーションをさせるステップと、前記プレイヤキャラクタオブジェクトを含む前記仮想空間の画像を生成するステップと、をさらに実行させてもよい。
【００２４】
この構成により、操作に応じてプレイヤキャラクタオブジェクトを制御すると共に、それに応じた振動を発生することができる。
【００２５】
本発明の別の態様のプログラムは、慣性センサおよび振動部を有する複数の操作装置と通信可能に接続されたコンピュータによってゲーム処理を制御するゲームプログラムであって、前記コンピュータに、前記複数の操作装置から受信した複数の操作データを取得するステップと、前記複数の操作データに基づいて、前記複数の操作装置に対して振り入力が行われているか否かを判定するステップと、振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる振動データを生成するステップと、前記複数の操作装置に対して送信する前記振動データを出力するステップと、を実行させる。
【００２６】
この構成により、複数の操作装置のうち振っていない操作装置にも弱い振動が発生するので、ユーザは複数の操作装置から振動を感じることで臨場感が高まる。また、振った操作装置に強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【００２７】
本発明の情報処理装置は、第１の慣性センサおよび第１の振動部を有する第１の操作装置と、第２の慣性センサおよび第２の振動部を有する第２の操作装置と通信可能に接続された情報処理装置であって、前記第１の操作装置から第１の操作データ、前記第２の操作装置から第２の操作データを受信し、前記第１の操作装置に第１の振動データ、前記第２の操作装置に第２の振動データを送信する通信部と、前記第１の操作データおよび前記第２の操作データに基づいて、前記第１の操作装置に対して振り入力が行われているか否か、および前記第２の操作装置に対して振り入力が行われているか否かを判定する振り判定部と、前記第１の操作装置に対して振り入力が行われているとき、前記第１の振動部を所定の強さで振動させると共に、前記第２の振動部を前記第１の振動部より弱い強さで振動させ、前記第２の操作装置に対して振り入力が行われているとき、前記第２の振動部を所定の強さで振動させると共に、前記第１の振動部を前記第２の振動部より弱い強さで振動させるよう、前記第１の振動データおよび前記第２の振動データを生成する振動データ生成部と、を備える。
【００２８】
この構成により、第１の操作装置と第２の操作装置のうち振っていない方の操作装置にも弱い振動が発生するので、ユーザは両手に振動を感じることで臨場感が高まる。また、振った方の操作装置に強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【００２９】
本発明の情報処理装置において、前記振動データ生成部は、時間経過と共に振動の強さが弱くなるよう前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、次の操作の際にも、振動を発生させることができる。
【００３０】
本発明の情報処理装置において、前記振動データ生成部は、波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、複雑な振動データを生成することができる。
【００３１】
本発明の情報処理装置において、前記振動データ生成部は、波形情報が記憶された波形情報記憶部から波形情報を読み出し、読み出した波形情報に基づいて前記第１の振動データおよび前記第２の振動データを生成してもよい。この構成により、振動データを容易に生成することができる。
【００３２】
本発明の情報処理装置において、前記振動データ生成部は、波形の振幅を設定することによって振動の強さを設定してもよい。この構成により、振動の強さを容易に設定することができる。
【００３３】
本発明の情報処理装置は、仮想空間内において、前記第１の操作データおよび前記第２の操作データに基づいてプレイヤキャラクタオブジェクトを制御し、前記振り入力に応じて当該プレイヤキャラクタオブジェクトに所定のアニメーションをさせるプレイヤキャラクタ制御部と、前記プレイヤキャラクタオブジェクトを含む前記仮想空間の画像を生成する画像処理部をさらに備えてもよい。
【００３４】
この構成により、操作に応じてプレイヤキャラクタオブジェクトを制御すると共に、それに応じた振動を発生することができる。
【００３５】
本発明の別の態様の情報処理装置は、慣性センサおよび振動部を有する複数の操作装置と通信可能に接続された情報処理装置であって、前記複数の操作装置から前記操作データを受信すると共に、前記操作装置に前記振動データを送信する通信部と、前記操作装置から受信した操作データに基づいて、前記操作装置に対して振り入力が行われているか否かを判定する振り判定部と、振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる振動データを生成する振動データ生成部と、を備える。
【００３６】
本発明のゲーム制御方法は、第１の慣性センサおよび第１の振動部を有する第１の操作装置と、第２の慣性センサおよび第２の振動部を有する第２の操作装置と通信可能に接続されたコンピュータによってゲーム処理を制御する方法であって、前記第１の慣性センサで取得され前記第１の操作装置から送信された前記第１の操作データ、および、前記第２の慣性センサで取得され前記第２の操作装置から送信された前記第２の操作データを取得するステップと、前記第１の操作データおよび前記第２の操作データに基づいて、前記第１の操作装置に対して振り入力が行われているか否か、および前記第２の操作装置に対して振り入力が行われているか否かを判定するステップと、前記第１の操作装置に対して振り入力が行われているとき、前記第１の振動部を所定の強さで振動させると共に、前記第２の振動部を前記第１の振動部より弱い強さで振動させ、前記第２の操作装置に対して振り入力が行われているとき、前記第２の振動部を所定の強さで振動させると共に、前記第１の振動部を前記第２の振動部より弱い強さで振動させるよう、第１の振動データおよび第２の振動データを生成するステップと、前記第１の操作装置に対して前記第１の振動データ、前記第２の操作装置に対して前記第２の振動データを送信するステップと、を備える。
【００３７】
この構成により、複数の操作装置のうち振っていない操作装置にも弱い振動が発生するので、ユーザは複数の操作装置から振動を感じることで臨場感が高まる。また、振った操作装置に強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【００３８】
本発明のゲーム制御方法は、慣性センサおよび振動部を有する複数の操作装置と通信可能に接続されたコンピュータによってゲーム処理を制御する方法であって、前記複数の操作装置から受信した複数の操作データを取得するステップと、前記複数の操作データに基づいて、前記複数の操作装置に対して振り入力が行われているか否かを判定するステップと、振り入力が行われていると判定された操作装置の振動部を所定の強さで振動させると共に、振り入力が行われていないと判定された操作装置の振動部を前記所定の強さより弱く振動させる振動データを生成するステップと、前記複数の操作装置に対して前記振動データを送信するステップと、を備える。
【００３９】
この構成により、複数の操作装置のうち振っていない操作装置にも弱い振動が発生するので、ユーザは複数の操作装置から振動を感じることで臨場感が高まる。また、振った操作装置に強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【発明の効果】
【００４０】
本発明によれば、第１の操作装置と第２の操作装置のうち、振った方の操作装置には強い振動が発生すると共に、振っていない方の操作装置にも弱い振動が発生するので、ユーザは両手に振動を感じることで臨場感が高まる。
【図面の簡単な説明】
【００４１】
【図１】本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図
【図２】本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図
【図３】本体装置２の一例を示す六面図
【図４】左コントローラ３の一例を示す六面図
【図５】右コントローラ４の一例を示す六面図
【図６】本体装置２の内部構成の一例を示すブロック図
【図７】本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図
【図８】左コントローラ３および右コントローラ４を本体装置２に外した状態でゲームを行う様子の一例を示す図
【図９】左コントローラ３から出力される操作データの一例を示す図
【図１０】右コントローラ４から出力される操作データの一例を示す図
【図１１】本実施形態で例として取り上げるゲームの画面を示す図
【図１２】本実施形態のゲームシステム１の処理を実行するゲーム制御部を示す図
【図１３】振動の強さを決定するためのテーブルを示す図
【図１４】波形データ記憶部１３５に記憶された波形データの例を示す図
【図１５】本実施形態の本体装置２の動作を示すフローチャート
【発明を実施するための形態】
【００４２】
以下、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム１の一例は、本体装置（情報処理装置；本実施形態ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。以下では、まず本実施形態のゲームシステムのハードウェア構成について説明し、その後に本実施形態のゲームシステムの制御について説明する。
【００４３】
（本体装置、左コントローラ、右コントローラの説明）
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００４４】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００４５】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。本実施形態において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００４６】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００４７】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。本実施形態においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００４８】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。本実施形態においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００４９】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００５０】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００５１】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、記憶媒体を装着可能な形状を有する。記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００５２】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。本実施形態において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００５３】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。本実施形態においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００５４】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２が、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック押下する入力が可能である。
【００５５】
左コントローラ３は、各種操作ボタンを備える。まず、左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および、左方向ボタン３６）を備える。さらに、録画ボタン３７、−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上に第１Ｌボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面の、本体装置２に装着される際に装着される側の面に第２Ｌボタン４３および第２Ｒボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００５６】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００５７】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。本実施形態においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００５８】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。本実施形態においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、および、Ｙボタン５６）を備える。さらに、＋（プラス）ボタン５７、ホームボタン５８を備える。また、右コントローラ４は、右コントローラ４は、ハウジング５１の側面の右上に第１Ｒボタン６０およびＺＲボタン６１を備える。また、左コントローラ３と同様、第２Ｌボタン６５および第２Ｒボタン６６を備える。
【００５９】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００６０】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９８を備える。これらの構成要素８１〜９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００６１】
本体装置２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）８１を備える。ＣＰＵ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、厳密にはＣＰＵ機能、ＧＰＵ機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）である。ＣＰＵ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００６２】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、ＣＰＵ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００６３】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する。）９１を備える。スロットＩ／Ｆ９１は、ＣＰＵ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、ＣＰＵ８１の指示に応じて行う。
【００６４】
ＣＰＵ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００６５】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、ＣＰＵ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。本実施形態においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００６６】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、ＣＰＵ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、本実施形態においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００６７】
ＣＰＵ８１は、上述の左側端子１７、右側端子２１、および、下側端子２７に接続される。ＣＰＵ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信する。また、ＣＰＵ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信する。また、ＣＰＵ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、本実施形態においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、画像データや音声データ）を据置型モニタ等に出力することができる。
【００６８】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、ユーザは、複数の左コントローラ３および複数の右コントローラ４を用いて本体装置２に対する入力を行うことができる。
【００６９】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とＣＰＵ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、ＣＰＵ８１へ出力する。
【００７０】
また、ディスプレイ１２は、ＣＰＵ８１に接続される。ＣＰＵ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００７１】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、ＣＰＵ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００７２】
また、本体装置２は、加速度センサ８９を備える。本実施形態においては、加速度センサ８９は、所定の３軸（例えば、図１に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ８９は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。
【００７３】
また、本体装置２は、角速度センサ９０を備える。本実施形態においては、角速度センサ９０は、所定の３軸（例えば、図１に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ９０は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。
【００７４】
上記の加速度センサ８９および角速度センサ９０は、ＣＰＵ８１に接続され、加速度センサ８９および角速度センサ９０の検出結果は、ＣＰＵ８１へ出力される。ＣＰＵ８１は、上記の加速度センサ８９および角速度センサ９０の検出結果に基づいて、本体装置２の動きおよび／または姿勢に関する情報を算出することが可能である。
【００７５】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびＣＰＵ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、ＣＰＵ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００７６】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００７７】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００７８】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。本実施形態においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００７９】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００８０】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、４６、４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００８１】
左コントローラ３は、慣性センサを備える。具体的には、加速度センサ１０４を備える。また、角速度センサ１０５を備える。本実施形態においては、加速度センサ１０４は、所定の３軸（例えば、図４に示すｘｙｚ軸）方向に沿った加速度の大きさを検出する。なお、加速度センサ１０４は、１軸方向あるいは２軸方向の加速度を検出するものであってもよい。本実施形態においては、角速度センサ１０５は、所定の３軸（例えば、図４に示すｘｙｚ軸）回りの角速度を検出する。なお、角速度センサ１０５は、１軸回りあるいは２軸回りの角速度を検出するものであってもよい。加速度センサ１０４および角速度センサ１０５は、それぞれ通信制御部１０１に接続される。そして、加速度センサ１０４および角速度センサ１０５の検出結果は、適宜のタイミングで繰り返し通信制御部１０１へ出力される。
【００８２】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、または、センサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００８３】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判別することができる。また、本体装置２は、左コントローラ３の動きおよび／または姿勢に関する情報を、操作データ（具体的には、加速度センサ１０４および角速度センサ１０５の検出結果）に基づいて算出することができる。
【００８４】
左コントローラ３は、振動によってユーザに通知を行うための振動子１０７を備える。本実施形態においては、振動子１０７は、本体装置２からの指令によって制御される。すなわち、通信制御部１０１は、本体装置２からの上記指令を受け取ると、当該指令に従って振動子１０７を駆動させる。ここで、左コントローラ３は、コーデック部１０６を備える。通信制御部１０１は、上記指令を受け取ると、指令に応じた制御信号をコーデック部１０６へ出力する。コーデック部１０６は、通信制御部１０１からの制御信号から振動子１０７を駆動させるための駆動信号を生成して振動子１０７へ与える。これによって振動子１０７が動作する。
【００８５】
振動子１０７は、より具体的にはリニア振動モータである。リニア振動モータは、回転運動をする通常のモータと異なり、入力される電圧に応じて所定方向に駆動されるため、入力される電圧の波形に応じた振幅、周波数で振動をさせることができる。本実施形態において、本体装置２から左コントローラ３に送信される振動制御信号は、単位時間ごとに周波数と振幅とを表すデジタル信号であってよい。別の実施形態においては、波形そのものを示す情報を送信するようにしてもよいが、振幅と周波数だけを送信することで通信データ量を削減することができる。また、さらにデータ量を削減するため、そのときの振幅と周波数の数値に替えて、前回の値からの差分だけを送信するようにしてもよい。この場合、コーデック部１０６は、通信制御部１０１から取得される振幅と周波数の値を示すデジタル信号をアナログの電圧の波形に変換し、当該波形に合わせて電圧を入力することで振動子１０７を駆動させる。したがって、本体装置２は、単位時間ごとに送信する振幅および周波数を変えることによって、そのときに振動子１０７を振動させる振幅と周波数を制御することができる。なお、本体装置２から左コントローラ３に送信される振幅と周波数は、１つに限らず、２つ以上送信するようにしてもよい。その場合、コーデック部１０６は、受信された複数の振幅と周波数それぞれが示す波形を合成することで、振動子１０７を制御する電圧の波形を生成することができる。
【００８６】
左コントローラ３は、電力供給部１０８を備える。本実施形態において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００８７】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００８８】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２、慣性センサ（加速度センサ１１４および角速度センサ１１５）を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００８９】
また、右コントローラ４は、振動子１１７およびコーデック部１１６を備える。振動子１１７および増幅器１１６は、左コントローラ３の振動子１０７およびコーデック部１０６と同様に動作する。すなわち、通信制御部１１１は、本体装置２からの指令に従って、コーデック部１１６を用いて振動子１１７を動作させる。
【００９０】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００９１】
（各コントローラを用いたゲーム制御）
本実施形態では、ユーザは、ゲームシステム１を用いて所定のゲームを行う。例えば、ユーザは、本体装置２のディスプレイ１２に表示されたプレイヤキャラクタをゲーム空間内で移動させ、所定の敵キャラクタと対戦するゲームを行う。なお、本実施形態では、ユーザは、１人でゲームを行うこともできるし、複数人でゲームを行うこともできる。ユーザが１人でゲームを行う場合、ユーザは、自身のプレイヤキャラクタＰをゲーム空間内で移動させ、本体装置２によって制御される敵キャラクタ（ノンプレイヤキャラクタ）と対戦する。
【００９２】
本実施形態においては、ユーザは、左コントローラ３及び右コントローラ４を本体装置２から外した状態でゲームシステム１を利用することが可能である。図８は、１人のユーザが左コントローラ３を左手に把持して、右コントローラ４を右手に把持してゲームシステム１を利用する様子の一例を示す図である。この場合、図８に示すように、左コントローラ３と右コントローラ４との位置関係が固定されておらず、両コントローラ３，４を自由に動かすことができる。なお、ユーザは、図１に示すように、左コントローラ３および右コントローラ４を本体装置２に装着してゲーム操作を行うことももちろん可能である。
【００９３】
（各コントローラから出力される操作データ）
次に、各コントローラから出力される操作データについて説明する。これらのコントローラから出力される操作データは、本体装置２によって取得され、例えばＤＲＡＭ８５等のメモリに格納される。図９は、左コントローラ３から出力される操作データの一例を示す図である。図１０は、右コントローラ４から出力される操作データの一例を示す図である。
【００９４】
図９に示されるように、左コントローラ３から出力される操作データＤ３００には、加速度データＤ３０１と、角速度データＤ３０２と、左スティックデータＤ３０３と、各ボタンデータＤ３０４とが含まれる。図９に示される操作データＤ３００は、所定の時間間隔（例えば、１／２００秒間隔）で左コントローラ３から本体装置２に出力される。なお、左コントローラ３が携帯機コントローラ１００として構成される場合も、無線コントローラ３００として構成される場合も、図９に示される操作データＤ３００が本体装置２に出力される。
【００９５】
加速度データＤ３０１は、加速度センサ１０４によって検出された加速度の値を示すデータである。角速度データＤ３０２は、角速度センサ１０５によって検出された角速度の値を示すデータである。
【００９６】
左スティックデータＤ３０３は、アナログスティック３２に対する操作に応じたデータであり、スティック部材の傾倒方向に応じた方向を示すデータと、スティック部材の傾倒量を示すデータとを含む。また、上述のように、アナログスティック３２は、スティック部材に対する押下入力も行うことができる入力部である。左スティックデータＤ３０３には、アナログスティック３２に対して押下入力が行われたか否かを示すデータも含まれる。
【００９７】
各ボタンデータＤ３０４には、左コントローラ３の各ボタンに対する操作が行われたか否かを示すデータ（ＯＮ又はＯＦＦを示すデータ）が含まれる。例えば、各ボタンデータ３０４には、操作ボタン３３〜３６が押下されたか否かを示すデータ、録画ボタン３７が押下されたか否かを示すデータ、第１Ｌボタン３８が押下されたか否かを示すデータ、ＺＬボタン３９が押下されたか否かを示すデータ、及び、−ボタン４７が押下されたか否かを示すデータが含まれる。
【００９８】
また、図１０に示されるように、右コントローラ４から出力される操作データＤ４００には、加速度データＤ４０１と、角速度データＤ４０２と、右スティックデータＤ４０３と、各ボタンデータＤ４０４とが含まれる。図１０に示される操作データＤ４００は、所定の時間間隔（例えば、１／２００秒間隔）で右コントローラ４から本体装置２に出力される。なお、右コントローラ４が、携帯機コントローラ１００として構成される場合も、無線コントローラ３００として構成される場合も、図１０に示される操作データＤ４００が本体装置２に出力される。
【００９９】
加速度データＤ４０１は、加速度センサ１１４によって検出された加速度の値を示すデータである。角速度データＤ４０２は、角速度センサ１１５によって検出された角速度の値を示すデータである。
【０１００】
右スティックデータＤ４０３は、アナログスティック５２に対する操作に応じたデータであり、スティック部材の傾倒方向に応じた方向を示すデータと、スティック部材の傾倒量を示すデータとを含む。また、上述のように、アナログスティック５２は、スティック部材に対する押下入力も行うことができる入力部である。右スティックデータＤ４０３には、アナログスティック５２に対して押下入力が行われたか否かを示すデータも含まれる。
【０１０１】
各ボタンデータＤ４０４には、右コントローラ４の各ボタンに対する操作が行われたか否かを示すデータ（ＯＮ又はＯＦＦを示すデータ）が含まれる。例えば、各ボタンデータＤ４０４には、操作ボタン５３〜５６が押下されたか否かを示すデータ、ホームボタン５８が押下されたか否かを示すデータ、第１Ｒボタン６０が押下されたか否かを示すデータ、ＺＲボタン６１が押下されたか否かを示すデータ、及び、＋ボタン５７が押下されたか否かを示すデータが含まれる。
【０１０２】
（操作データに基づくゲーム処理）
以下、本実施形態のゲーム制御について説明する。以下においては、図１１に示すように、仮想空間内のプレイヤキャラクタ１２０が両手に持ったハンマー１２１を敵に向かって投げつけて、敵キャラクタ１２２を倒すゲームを例として説明する。このゲームにおいて、プレイヤが左コントローラ３及び右コントローラ４を振る操作を行うと、仮想空間内のプレイヤキャラクタ１２０がハンマー１２１を投げる。このとき、左コントローラ３及び右コントローラ４の振動子が振動する。特に、左コントローラ３を振ったときには左コントローラ３の振動子１０７が強く、右コントローラ４の振動子１１７がそれより弱く振動する。逆に、右コントローラ４を振ったときには右コントローラ４の振動子１１７が強く、左コントローラ３の振動子１０７がそれより弱く振動する。このように振動を制御することによれば、振っている方のコントローラがより強く振動するため、操作に実感が得られ、動き入力に合わせたより効果的な振動フィードバックを得ることができる。かつ、他方のコントローラも弱く振動させることで左右が連動している感覚も得られ、別々の対象ではなく、１体のキャラクタの一部をそれぞれ制御している実感を伴うことになり、本実施形態のゲームにおいてはより効果的な振動フィードバックを得ることができる。
【０１０３】
図１２は、本実施形態のゲームシステム１の処理を実行するゲーム制御部１３０を示す図である。ゲーム制御部１３０は、ＣＰＵ８１が第１スロットに装着される外部記憶媒体またはフラッシュメモリ８４等に記憶されたプログラムを実行することにより実現される。なお、図１２には、本実施形態で説明するゲーム制御に必要な構成のみを示すが、実際には、ゲームの内容に応じた制御を行うための機能を有している。
【０１０４】
ゲーム制御部１３０は、振り判定部１３１と、振動データ生成部１３２と、プレイヤキャラクタ制御部１３３と、画像処理部１３４とを有している。振り判定部１３１は、コントローラ通信部８３を通じて取得した左コントローラ３及び右コントローラ４の操作データＤ３００，Ｄ４００のうちの加速度データＤ３０１，Ｄ４０１に基づいて、左コントローラ３、右コントローラ４が振られたか否かを判定する。本実施形態では、加速度データＤ３０１，Ｄ４０１が所定の閾値を超えた場合に振りがあったと判定し、所定の閾値以下の場合には振りがなかったと判定する。なお、ここでは、振り判定部１３１は、加速度データＤ３０１，Ｄ４０１を用いて振りの判定を行っているが、角速度データＤ３０２，Ｄ４０２を用いて振りの判定を行ってもよい。
【０１０５】
振動データ生成部１３２は、振り判定部１３１による判定結果に基づいて、左コントローラ３、右コントローラ４の振動子１０７，１１７を振動させるための振動データを生成する。図１３は、振動の強さを決定するためのテーブルを示す図である。基本的には、左コントローラ３と右コントローラ４のうち、振りがあったとされた方のコントローラを振動させると共に、振りがなかったとされた方のコントローラについては、振りがあった方よりも弱く振動させる振動データを生成する。ただし、図１３に見られるように、両方のコントローラ３，４に振りの入力があったと判定された場合には、両方の処理が発生することにより、結果として両方とも強く振動させる振動データが生成される。なお、いずれにも振りの入力がなかったと判定された場合には、振動をさせないものとする。
【０１０６】
図１４は、波形データ記憶部１３５に記憶された波形データの例を示す図である。波形データは、最初に強く振動し、０．１〜０．２秒で減衰して振動が０になるようなデータである。振動データ生成部１３２は、波形データ記憶部１３５から波形データを読み出し、読み出した波形データに基づいて振動データを生成する。具体的には、強い振動データを生成する場合には、波形データの振幅を大きくし、弱い振動データを生成する場合には、波形データをそのまま用いるか、振幅を小さくする。なお、図１４に示す波形データは一例であり、波形データはゲーム処理の内容に応じて様々な波形データを用いることができる。また、波形データを予め用意せず、周波数と振幅を演算によって決定するようにしてもよい。
【０１０７】
プレイヤキャラクタ制御部１３３は、振り判定結果に基づいてプレイヤキャラクタオブジェクトにアニメーションを行わせる。例えば、左コントローラ３の振りがあったと判定された場合には、プレイヤキャラクタ１２０は左手に持ったハンマー１２１を投げ、右コントローラ４の振りがあったと判定された場合には、プレイヤキャラクタ１２０は右手に持ったハンマー１２１を投げるというアニメーションをさせる。ここでは、左コントローラ３の振りがあった場合と右コントローラ４の振りがあった場合とで、プレイヤキャラクタ１２０に行わせるアニメーションを変えているが、左コントローラ３に振りがあった場合と右コントローラ４に振りがあった場合とで同じアニメーションを行わせるようにしてもよい。
【０１０８】
画像処理部１３４は、プレイヤキャラクタ制御部１３３で決定されたプレイヤキャラクタ１２０のアニメーションに基づいて仮想空間の画像を生成して、ディスプレイ１２に表示させる機能を有する。
【０１０９】
図１５は、本実施形態の本体装置２の動作を示すフローチャートである。本体装置２は、図１５に示すフローチャートを所定の時間間隔（例えば、１／６０秒）で実行し、ゲーム処理を実現する。
【０１１０】
本体装置２の振り判定部１３１は、左コントローラ３及び右コントローラ４から送信された操作データを記憶したバッファから操作データを取得し（Ｓ１０）、取得した操作データに基づいて、左コントローラ３及び右コントローラ４の振り判定を行う（Ｓ１２）。振り判定部１３１は、判定結果を振動データ生成部１３２およびプレイヤキャラクタ制御部１３３に渡す。
【０１１１】
振動データ生成部１３２は、左コントローラ３及び右コントローラ４の振り判定結果に基づいて、図１３に示すテーブルにしたがって、生成すべき振動データの強弱を決定し、振動データを生成する（Ｓ１４）。ここでは、左コントローラ３を振動させる振動データと右コントローラ４を振動させる振動データを生成する。振動データ生成部１３２は、生成した振動データを、左コントローラ３及び右コントローラ４に送信するための送信バッファに出力する。送信バッファに入れられた振動データは、所定のタイミングで読み出されて、コントローラ通信部８３を通じて、左コントローラ３及び右コントローラ４に送信される。
【０１１２】
一方、プレイヤキャラクタ制御部１３３は、入力された振り判定結果に基づいて、プレイヤキャラクタ１２０の挙動を決定するプレイヤキャラクタ制御を行う（Ｓ１８）。そして、決定された制御に基づいて、プレイヤキャラクタを含む仮想空間の画像処理を行うことにより（Ｓ２０）、画像がディスプレイ１２に表示される。以上、本実施の形態のゲームシステム１およびゲーム制御方法について説明した。
【０１１３】
本実施形態のゲームシステム１は、左コントローラ３と右コントローラ４のうち振っていない方のコントローラにも弱い振動が発生するので、ユーザは両手に振動を感じることで臨場感が高まる。また、振った方のコントローラに強い振動が発生するので、操作した感覚に合った自然なフィードバックが得られる。
【０１１４】
また、本実施形態のゲームシステム１は、左右のコントローラ３，４の振動を制御すると共に、振り判定の結果に応じてプレイヤキャラクタオブジェクトを制御して、画像処理を行うので、ユーザの触覚に対するフィードバックと同時に、対応する内容を視覚にもフィードバックすることができる。
【０１１５】
以上、本発明のゲームシステムについて実施形態を挙げて詳細に説明したが、本発明は上記した実施形態に限定されるものではない。上記した実施形態では、振り判定部１３１は左右のコントローラ３，４の振りがあったか否かを判定する例を挙げたが、振り判定部１３１は振りの強さを判定し、その結果を振動データ生成部１３２およびプレイヤキャラクタ制御部１３３に渡すこととしてもよい。これにより、振動データ生成部１３２は、振りの強さに応じて振動の強さを変えることができる。また、プレイヤキャラクタ制御部１３３は、振りの強さに応じてハンマーの飛距離を変更することができる。このように左右のコントローラ３，４の振りの強さに応じてゲームのエフェクトを変えることにより、ゲーム性を高めることができる。
【０１１６】
上記実施形態では、音量については言及していなかったが、振り判定部１３１による判定結果に基づいて音量を制御してもよい。音量についても、振りの大きさに基づいて出力する音量の大きさを変えてもよい。
【０１１７】
上記した実施の形態では、左右のコントローラ３，４を振って、そのフィードバックの振動を左右のコントローラ３，４に与える例を挙げて説明したが、本発明において、適用される操作装置の数は２つに限定されず、３つ以上の操作装置を備えるゲームシステムにも本発明を適用することができる。
【０１１８】
例えば、足首に巻き付けて使うコントローラを用い、ボールを蹴る動作に応じて、仮想空間内のプレイヤキャラクタがシュートするアニメーションを行うゲームの場合、右足で蹴ったときに、右足のコントローラを強く振動させると共に、左足に巻き付けたコントローラ及び両手に持ったコントローラを弱く振動させてもよい。このように、複数の操作装置を有する場合には、振りがあったと判定された操作装置に対して強い振動を与える振動データを送信し、振りがなかったと判定された操作装置に対して弱い振動を与える振動データを送信する。
【０１１９】
また、上記した実施の形態では、左右のコントローラ３，４を振る例を挙げたが、コントローラ３，４を振る場合だけでなく、コントローラ３，４のボタンを押した場合に振動をフィードバックする場合にも本発明を適用することが可能である。例えば、両手に拳銃を持ったゲームキャラクタを操作する場合、右のコントローラ４で発砲したときに、右のコントローラ４に強い振動を与えると共に、左のコントローラ３も弱く振動させてもよい。
【符号の説明】
【０１２０】
１  ゲームシステム
２  本体装置
３  左コントローラ
４  右コントローラ
１１  ハウジング
１２  ディスプレイ
１７  左側端子
２１  右側端子
４２，６４  端子
８１  ＣＰＵ
８３  コントローラ通信部
８９  加速度センサ
９０  角速度センサ
１００  携帯機コントローラ
１０４、１１４  加速度センサ
１０５、１１５  角速度センサ
１３０  ゲーム制御部
１３１  振り判定部
１３２  振動データ生成部
１３３  プレイヤキャラクタ制御部
１３４  画像処理部
１３５  波形データ記憶部
【図１】
2018110624.tif 000003
【図２】
2018110624.tif 000004
【図３】
2018110624.tif 000005
【図４】
2018110624.tif 000006
【図５】
2018110624.tif 000007
【図６】
2018110624.tif 000008
【図７】
2018110624.tif 000009
【図８】
2018110624.tif 000010
【図９】
2018110624.tif 000011
【図１０】
2018110624.tif 000012
【図１１】
2018110624.tif 000013
【図１２】
2018110624.tif 000014
【図１３】
2018110624.tif 000015
【図１４】
2018110624.tif 000016
【図１５】
2018110624.tif 000017