JP6938580B2 - ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理制御方法 - Google Patents

ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理制御方法 Download PDF

Info

Publication number
JP6938580B2
JP6938580B2 JP2019145552A JP2019145552A JP6938580B2 JP 6938580 B2 JP6938580 B2 JP 6938580B2 JP 2019145552 A JP2019145552 A JP 2019145552A JP 2019145552 A JP2019145552 A JP 2019145552A JP 6938580 B2 JP6938580 B2 JP 6938580B2
Authority
JP
Japan
Prior art keywords
correct answer
determination
input
game
determined
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019145552A
Other languages
English (en)
Other versions
JP2021023667A (ja
Inventor
真樹 和田
真樹 和田
進也 矢野
進也 矢野
宏樹 浜上
宏樹 浜上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2019145552A priority Critical patent/JP6938580B2/ja
Priority to US16/733,894 priority patent/US11247121B2/en
Publication of JP2021023667A publication Critical patent/JP2021023667A/ja
Application granted granted Critical
Publication of JP6938580B2 publication Critical patent/JP6938580B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、複数の設問のそれぞれについて正解となる正解方向への方向入力をプレイヤに行わせるゲーム処理に関する。
従来から、コントローラの移動態様を指示する画像を表示し、プレイヤはこれを見てコントローラを実空間内で移動させるゲームが知られている(例えば特許文献1)。このようなゲームでは、コントローラの姿勢を判定して、コントローラの移動方向と指示された移動態様との適合度を判定している。
特開2009−82696号公報
上記のようなゲームにおいて、コントローラを移動させている途中で、指示されている移動態様とは違う方向にコントローラが(一時的に)移動したような場合に、入力失敗と判定され易いという問題があった。
それ故に、本発明の目的は、指示された方向への方向入力の正解/不正解によって進行するゲームにおいて、方向入力の誤判定を減らすことが可能なゲームプログラム、ゲームシステム、ゲーム装置、ゲーム処理制御方法を提供することである。
上記目的を達成するために、例えば以下のような構成例が挙げられる。
構成例の一例は、情報処理装置のコンピュータに、複数の設問のそれぞれについて正解となる正解方向への方向入力をプレイヤに行わせるゲーム処理を行わせるゲームプログラムである。当該ゲームプログラムは、コンピュータに、以下の処理を行わせる。設問ごとの正解方向を表示によって指定する出題処理を行わせる。操作装置から送信される操作データを取得させる。操作データに基づいて入力方向の特定を行わせる。所定の判定条件に基づいて入力方向が指定された正解方向であるかそれ以外の方向であるかの正解判定を行わせ、当該正解判定を行わせる際に、特定された入力方向が正解と判定され易くなるように判定条件を正解方向に応じて変化させる。正解判定の結果に基づいてゲームを進行させる。
上記構成例によれば、プレイヤが入力した方向を判定するための判定条件について、正解方向に応じて当該判定条件を、正解と判定されやすくなるように変化させる。これにより、正解しやすいように調整された判定条件によって入力方向を判定することができる。そのため、予め正解方向をプレイヤに提示し、当該プレイヤに方向入力を行わせるゲームにおいて、誤判定が発生することを軽減できる。例えば、上下左右の4方向のいずれかが正解方向である場合における、右斜め上方向のような曖昧な方向の入力が行われた場合の誤判定を減らすことができる。
他の構成例として、操作装置は慣性センサを備えていてもよい。操作データには、慣性センサの検出結果に基づいたデータが含まれていてもよい。そして、コンピュータに、更に操作データに基づいて操作装置の姿勢または移動方向を算出させ、操作装置の姿勢または移動方向に基づいて入力方向を特定させてもよい。
上記構成例によれば、操作装置自体を動かして方向入力を行わせるゲームにおいて、誤判定の発生を軽減してゲームの興趣性を高めることができる。
他の構成例として、コンピュータに、操作装置の所定軸を示すベクトルを姿勢として算出させ、ベクトルの値に関して判定領域を設定し、ベクトルが正解の判定領域に含まれるか否かを判定条件とする正解判定を行わせ、当該正解判定を行わせる際に、設問ごとに正解に対応する判定領域を大きくすることによって、正解と判定され易くなるように当該判定条件を変化させてもよい。
上記構成例によれば、操作装置の所定軸を示すベクトルと、正解とされる判定領域とを用いて正解判定を行うが、その際に、判定領域の大きさを正解方向に応じて変化させてから正解判定を行うことができる。
他の構成例として、ベクトルは、操作装置の所定軸を示す3次元ベクトルを、基準姿勢におけるベクトルが原点となるよう2次元に射影した射影ベクトルであってもよい。そして、判定領域は、2次元の射影ベクトルに対し、原点を通る直線によって上下左右に区分された領域のうち、原点から所定の距離以内の範囲であっていずれの方向入力でもないと判定される無判定領域と、上下左右に区分された当該無判定領域の外側の領域であって、上下左右それぞれの方向への方向入力と判定するための方向判定領域とを含み、正解判定において、正解に対応する方向判定領域の中心角が大きくされてもよい。
上記構成例によれば、入力の大きさが無判定領域内に収まるような大きさの場合は有効な方向入力として扱わないようにできる。すなわち、ある程度しっかりと操作装置を傾けること要求することができ、中途半端な大きさの入力が誤判定されることを抑制できる。また、正解方向に応じて方向判定領域を大きくして判定するため、曖昧な方向入力が行われたような場合の誤判定を減らすこともできる。
他の構成例として、無判定領域は、下または上下の領域に対する原点からの距離が、左右の領域に対する原点からの距離よりも短くなるように設定されてもよい。
上記構成例によれば、例えば手首を支点として操作装置の姿勢を上下左右に変化させる場合に、左右方向に比べて方向入力が行いにくく、また、姿勢の変化が小さくなりがちなが上・下方向について、正解入力として判定されやすくすることができる。
他の構成例として、操作データには入力の大きさを示すデータが含まれていてもよい。そして、コンピュータに、入力の大きさが所定の閾値より大きい場合、正解判定を行わせる前に、入力方向を判定する他の判定処理を更に行わせてもよい。当該他の判定処理の結果、入力方向が指定された正解方向である場合は、上記正解判定を行うことなく、入力方向が正解である場合のゲーム進行を行わせてもよい。
上記構成例によれば、ある程度入力が大きい場合は、先に他の判定処理を用いて正解方向入力の判定を行う。これにより、正解判定を段階的なものをすることができ、より速やかな判定処理を行いつつ、総合的な判定精度をより高めることができる。
他の構成例として、コンピュータに、正解判定において、入力方向がいずれかの方向と判定される状態が所定時間継続したときに判定を確定させ、かつ前記正解方向と判定される状態について、それ以外の方向と判定される状態よりも短い継続時間で正解方向として判定を確定させることによって、正解と判定され易くなるように判定条件を変化させてもよい。
上記構成例によれば、正解あるいは不正解として確定するために、所定方向を向いている状態を所定の時間維持することを要求できる。また、正解のほうが不正解のほうよりも確定に必要な時間を短くしている。これにより、連続的に方向入力を行うように操作装置を動かした場合であって、その移動軌跡において(入力の途中で)不正解となる方向を跨ぐような入力になった場合に誤判定されることを抑制できる。
本実施形態によれば、正解方向がプレイヤに提示され、その方向入力を行わせるゲームにおいて、不正解の方向として誤判定されることを軽減することができる。
本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図 本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図 本体装置2の一例を示す六面図 左コントローラ3の一例を示す六面図 右コントローラ4の一例を示す六面図 本体装置2の内部構成の一例を示すブロック図 本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図 本ゲームをプレイする際のプレイヤおよびコントローラの姿勢の一例を示す図 基準姿勢と上下方向への右コントローラ4の姿勢の変化例を示す図 基準姿勢と左右方向への右コントローラ4の姿勢の変化例を示す図 ゲーム画面の一例を示す図 ゲーム画面の一例を示す図 ゲーム画面の一例を示す図 ゲーム画面の一例を示す図 ゲーム画面の一例を示す図 射影平面上における射影ベクトルの角度の定義を示した図 入力の大きさについて説明するための図 入力の大きさについて説明するための図 第1種閾値の一例を示す図 調整後の第1種閾値の一例を示す図 調整後の第1種閾値の一例を示す図 調整後の第1種閾値の一例を示す図 正解方向が上の場合の第2種閾値の一例を示す図 正解方向が左または右の場合の第2種閾値の一例を示す図 正解方向が下の場合の第2種閾値の一例を示す図 調整後の第2種閾値の一例を示す図 調整後の第2種閾値の一例を示す図 第3種閾値の一例を示す図 調整後の第3種閾値の一例を示す図 調整後の第3種閾値の一例を示す図 調整後の第3種閾値の一例を示す図 調整後の第3種閾値の一例を示す図 本体装置2のDRAM85に格納されるプログラムおよび情報の一例 ステージ情報406データ構成の一例 本実施形態のゲーム処理の詳細を示すフローチャート 解答入力・判定処理の詳細を示すフローチャート 解答入力・判定処理の詳細を示すフローチャート 第1の判定処理の詳細を示すフローチャート 第2の判定処理の詳細を示すフローチャート 第3の判定処理の詳細を示すフローチャート 正誤判定処理の詳細を示すフローチャート 判定用の閾値の他の例を示す図
以下、本発明の一実施形態について説明する。まず、本実施形態の一例に係るゲームシステムについて説明する。本実施形態におけるゲームシステム1の一例は、本体装置(情報処理装置;本実施形態ではゲーム装置本体として機能する)2と左コントローラ3および右コントローラ4とを含む。本体装置2は、左コントローラ3および右コントローラ4がそれぞれ着脱可能である。つまり、ゲームシステム1は、左コントローラ3および右コントローラ4をそれぞれ本体装置2に装着して一体化された装置として利用できる。また、ゲームシステム1は、本体装置2と左コントローラ3および右コントローラ4とを別体として利用することもできる(図2参照)。以下では、本実施形態のゲームシステム1のハードウェア構成について説明し、その後に本実施形態のゲームシステム1の制御について説明する。
図1は、本体装置2に左コントローラ3および右コントローラ4を装着した状態の一例を示す図である。図1に示すように、左コントローラ3および右コントローラ4は、それぞれ本体装置2に装着されて一体化されている。本体装置2は、ゲームシステム1における各種の処理(例えば、ゲーム処理)を実行する装置である。本体装置2は、ディスプレイ12を備える。左コントローラ3および右コントローラ4は、ユーザが入力を行うための操作部を備える装置である。
図2は、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態の一例を示す図である。図1および図2に示すように、左コントローラ3および右コントローラ4は、本体装置2に着脱可能である。なお、以下において、左コントローラ3および右コントローラ4の総称として「コントローラ」と記載することがある。
図3は、本体装置2の一例を示す六面図である。図3に示すように、本体装置2は、略板状のハウジング11を備える。本実施形態において、ハウジング11の主面(換言すれば、表側の面、すなわち、ディスプレイ12が設けられる面)は、大略的には矩形形状である。
なお、ハウジング11の形状および大きさは、任意である。一例として、ハウジング11は、携帯可能な大きさであってよい。また、本体装置2単体または本体装置2に左コントローラ3および右コントローラ4が装着された一体型装置は、携帯型装置となってもよい。また、本体装置2または一体型装置が手持ち型の装置となってもよい。また、本体装置2または一体型装置が可搬型装置となってもよい。
図3に示すように、本体装置2は、ハウジング11の主面に設けられるディスプレイ12を備える。ディスプレイ12は、本体装置2が生成した画像を表示する。本実施形態においては、ディスプレイ12は、液晶表示装置(LCD)とする。ただし、ディスプレイ12は任意の種類の表示装置であってよい。
本体装置2は、ハウジング11の内部においてスピーカ(すなわち、図6に示すスピーカ88)を備えている。図3に示すように、ハウジング11の主面には、スピーカ孔11aおよび11bが形成される。そして、スピーカ88の出力音は、これらのスピーカ孔11aおよび11bからそれぞれ出力される。
また、本体装置2は、本体装置2が左コントローラ3と有線通信を行うための端子である左側端子17と、本体装置2が右コントローラ4と有線通信を行うための右側端子21を備える。
図3に示すように、本体装置2は、スロット23を備える。スロット23は、ハウジング11の上側面に設けられる。スロット23は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム1およびそれと同種の情報処理装置に専用の記憶媒体(例えば、専用メモリカード)である。所定の種類の記憶媒体は、例えば、本体装置2で利用されるデータ(例えば、アプリケーションのセーブデータ等)、および/または、本体装置2で実行されるプログラム(例えば、アプリケーションのプログラム等)を記憶するために用いられる。また、本体装置2は、電源ボタン28を備える。
本体装置2は、下側端子27を備える。下側端子27は、本体装置2がクレードルと通信を行うための端子である。本実施形態において、下側端子27は、USBコネクタ(より具体的には、メス側コネクタ)である。上記一体型装置または本体装置2単体をクレードルに載置した場合、ゲームシステム1は、本体装置2が生成して出力する画像を据置型モニタに表示することができる。また、本実施形態においては、クレードルは、載置された上記一体型装置または本体装置2単体を充電する機能を有する。また、クレードルは、ハブ装置(具体的には、USBハブ)の機能を有する。
図4は、左コントローラ3の一例を示す六面図である。図4に示すように、左コントローラ3は、ハウジング31を備える。本実施形態においては、ハウジング31は、縦長の形状、すなわち、上下方向(すなわち、図1および図4に示すy軸方向)に長い形状である。左コントローラ3は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング31は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ3は、横長となる向きで把持されることも可能である。左コントローラ3が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
左コントローラ3は、アナログスティック32を備える。図4に示すように、アナログスティック32は、ハウジング31の主面に設けられる。アナログスティック32は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック32を傾倒することによって傾倒方向に応じた方向の入力(および、傾倒した角度に応じた大きさの入力)が可能である。なお、左コントローラ3は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、本実施形態においては、アナログスティック32を押下する入力が可能である。
左コントローラ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プログラムやアプリケーションプログラム)に応じた指示を行うために用いられる。
また、左コントローラ3は、左コントローラ3が本体装置2と有線通信を行うための端子42を備える。
図5は、右コントローラ4の一例を示す六面図である。図5に示すように、右コントローラ4は、ハウジング51を備える。本実施形態においては、ハウジング51は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ4は、本体装置2から外された状態において、縦長となる向きで把持されることも可能である。ハウジング51は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ4は、横長となる向きで把持されることも可能である。右コントローラ4が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
右コントローラ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を備える。
また、右コントローラ4は、右コントローラ4が本体装置2と有線通信を行うための端子64を備える。
図6は、本体装置2の内部構成の一例を示すブロック図である。本体装置2は、図3に示す構成の他、図6に示す各構成要素81〜91、97、および98を備える。これらの構成要素81〜91、97、および98のいくつかは、電子部品として電子回路基板上に実装されてハウジング11内に収納されてもよい。
本体装置2は、プロセッサ81を備える。プロセッサ81は、本体装置2において実行される各種の情報処理を実行する情報処理部であって、例えば、CPU(Central Processing Unit)のみから構成されてもよいし、CPU機能、GPU(Graphics Processing Unit)機能等の複数の機能を含むSoC(System−on−a−chip)から構成されてもよい。プロセッサ81は、記憶部(具体的には、フラッシュメモリ84等の内部記憶媒体、あるいは、スロット23に装着される外部記憶媒体等)に記憶される情報処理プログラム(例えば、ゲームプログラム)を実行することによって、各種の情報処理を実行する。
本体装置2は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ84およびDRAM(Dynamic Random Access Memory)85を備える。フラッシュメモリ84およびDRAM85は、プロセッサ81に接続される。フラッシュメモリ84は、主に、本体装置2に保存される各種のデータ(プログラムであってもよい)を記憶するために用いられるメモリである。DRAM85は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
本体装置2は、スロットインターフェース(以下、「I/F」と略記する。)91を備える。スロットI/F91は、プロセッサ81に接続される。スロットI/F91は、スロット23に接続され、スロット23に装着された所定の種類の記憶媒体(例えば、専用メモリカード)に対するデータの読み出しおよび書き込みを、プロセッサ81の指示に応じて行う。
プロセッサ81は、フラッシュメモリ84およびDRAM85、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
本体装置2は、コントローラ通信部83を備える。コントローラ通信部83は、プロセッサ81に接続される。コントローラ通信部83は、左コントローラ3および/または右コントローラ4と無線通信を行う。本体装置2と左コントローラ3および右コントローラ4との通信方式は任意であるが、本実施形態においては、コントローラ通信部83は、左コントローラ3との間および右コントローラ4との間で、Bluetooth(登録商標)の規格に従った通信を行う。
プロセッサ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は、クレードルを介してデータ(例えば、画像データや音声データ)を据置型モニタ等に出力することができる。
ここで、本体装置2は、複数の左コントローラ3と同時に(換言すれば、並行して)通信を行うことができる。また、本体装置2は、複数の右コントローラ4と同時に(換言すれば、並行して)通信を行うことができる。したがって、複数のユーザは、左コントローラ3および右コントローラ4のセットをそれぞれ用いて、本体装置2に対する入力を同時に行うことができる。一例として、第1ユーザが左コントローラ3および右コントローラ4の第1セットを用いて本体装置2に対して入力を行うと同時に、第2ユーザが左コントローラ3および右コントローラ4の第2セットを用いて本体装置2に対して入力を行うことが可能となる。
また、ディスプレイ12は、プロセッサ81に接続される。プロセッサ81は、(例えば、上記の情報処理の実行によって)生成した画像および/または外部から取得した画像をディスプレイ12に表示する。
本体装置2は、コーデック回路87およびスピーカ(具体的には、左スピーカおよび右スピーカ)88を備える。コーデック回路87は、スピーカ88および音声入出力端子25に接続されるとともに、プロセッサ81に接続される。コーデック回路87は、スピーカ88および音声入出力端子25に対する音声データの入出力を制御する回路である。
本体装置2は、電力制御部97およびバッテリ98を備える。電力制御部97は、バッテリ98およびプロセッサ81に接続される。また、図示しないが、電力制御部97は、本体装置2の各部(具体的には、バッテリ98の電力の給電を受ける各部、左側端子17、および右側端子21)に接続される。電力制御部97は、プロセッサ81からの指令に基づいて、バッテリ98から上記各部への電力供給を制御する。
また、バッテリ98は、下側端子27に接続される。外部の充電装置(例えば、クレードル)が下側端子27に接続され、下側端子27を介して本体装置2に電力が供給される場合、供給された電力がバッテリ98に充電される。
図7は、本体装置2と左コントローラ3および右コントローラ4との内部構成の一例を示すブロック図である。なお、本体装置2に関する内部構成の詳細については、図6で示しているため図7では省略している。
左コントローラ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(登録商標)の規格に従って行われる。
また、左コントローラ3は、例えばフラッシュメモリ等のメモリ102を備える。通信制御部101は、例えばマイコン(マイクロプロセッサとも言う)で構成され、メモリ102に記憶されるファームウェアを実行することによって各種の処理を実行する。
左コントローラ3は、各ボタン103(具体的には、ボタン33〜39、43、44、および47)を備える。また、左コントローラ3は、アナログスティック(図7では「スティック」と記載する)32を備える。各ボタン103およびアナログスティック32は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部101へ出力する。
左コントローラ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へ出力される。
通信制御部101は、各入力部(具体的には、各ボタン103、アナログスティック32、各センサ104および105)から、入力に関する情報(具体的には、操作に関する情報、またはセンサによる検出結果)を取得する。通信制御部101は、取得した情報(または取得した情報に所定の加工を行った情報)を含む操作データを本体装置2へ送信する。なお、操作データは、所定時間に1回の割合で繰り返し送信される。なお、入力に関する情報が本体装置2へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
上記操作データが本体装置2へ送信されることによって、本体装置2は、左コントローラ3に対して行われた入力を得ることができる。すなわち、本体装置2は、各ボタン103およびアナログスティック32に対する操作を、操作データに基づいて判別することができる。また、本体装置2は、左コントローラ3の動きおよび/または姿勢に関する情報を、操作データ(具体的には、加速度センサ104および角速度センサ105の検出結果)に基づいて算出することができる。
左コントローラ3は、電力供給部108を備える。本実施形態において、電力供給部108は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ3の各部(具体的には、バッテリの電力の給電を受ける各部)に接続される。
図7に示すように、右コントローラ4は、本体装置2との間で通信を行う通信制御部111を備える。また、右コントローラ4は、通信制御部111に接続されるメモリ112を備える。通信制御部111は、端子64を含む各構成要素に接続される。通信制御部111およびメモリ112は、左コントローラ3の通信制御部101およびメモリ102と同様の機能を有する。したがって、通信制御部111は、端子64を介した有線通信と、端子64を介さない無線通信(具体的には、Bluetooth(登録商標)の規格に従った通信)との両方で本体装置2と通信を行うことが可能であり、右コントローラ4が本体装置2に対して行う通信方法を制御する。
右コントローラ4は、左コントローラ3の各入力部と同様の各入力部を備える。具体的には、各ボタン113、アナログスティック52、慣性センサ(加速度センサ114および角速度センサ115)を備える。これらの各入力部については、左コントローラ3の各入力部と同様の機能を有し、同様に動作する。
右コントローラ4は、電力供給部118を備える。電力供給部118は、左コントローラ3の電力供給部108と同様の機能を有し、同様に動作する。
なお、本実施形態では、本体装置2から左コントローラ3および右コントローラ4をそれぞれ外した状態で、本体装置2単体をクレードルに載置して、本体装置2が生成して出力する画像を据置型モニタに表示する態様でプレイする場合を例として説明する。
次に、本実施形態で想定するゲーム処理の概要を説明する。本実施形態では、事前に正解方向を提示し、プレイヤにこの正解方向への方向入力を行わせるゲームを想定している。具体的には、複数の設問が用意されており、各設問毎に、上下左右の4方向のうちのいずれか1つの方向が「正解」の方向(以下、正解方向)として定義されている。そして、「出題」として各設問の正解方向が事前にプレイヤに示される。その後、プレイヤにコントローラを用いた方向入力を行わせ、その入力方向が上記正解方向か否かを判定することで進行するゲームである。特に、本例では、出題する際に、複数の設問分の正解方向を順番に示し、プレイヤに対してこの順番通りに正解方向を入力させるというゲームである。換言すれば、プレイヤの記憶力を試すゲームでもある。より具体的には、本実施形態で想定するゲームは旗振りゲームである。旗を振る方向が事前にプレイヤに提示(出題)され、プレイヤはコントローラを使って方向入力を行い、プレイヤオブジェクトに旗を振らせる、というゲームである。
次に、本実施形態で想定するゲームにおける操作に関して説明する。本ゲームでは、上記慣性センサを利用した方向入力を行う。すなわち、プレイヤは、コントローラを上下左右方向に振ることで、各方向への方向入力を行う。図8に、本ゲームをプレイする際のプレイヤおよびコントローラの姿勢の一例を示す。図8では、プレイヤが右コントローラ4を縦長となる向きで右手に把持してプレイする例を示す。また、上記の方向入力操作に際しては、右コントローラ4のy軸方向が地面と水平になる姿勢(右コントローラ4のy軸方向が、重力方向と直交する姿勢/図8の実空間座標系のz軸と平行となる姿勢)を「基準姿勢」とする。そして、プレイヤは、この「基準姿勢」を基準として、上下左右方向に右コントローラ4を振る動作を行う。この動作に伴う右コントローラ4の動きが検出され、上下左右方向への振りが各方向への方向入力として扱われる。
参考のため、図9及び図10に、上記基準姿勢と上下左右方向への右コントローラ4の姿勢の変化例を示す。図9は、上下方向への振りに伴う右コントローラ4の姿勢変化の一例を示す模式図である。図9で示すように、右コントローラ4のx軸方向を回転軸として右コントローラ4の先端部分が上(実空間座標系のy軸正方向)を向くように姿勢を回転させるような操作が「上方向」への入力(以下、上振り)となる。また、逆に右コントローラ4の先端部分が下(実空間座標系のy軸負方向)を向くように姿勢を回転させるような操作が「下方向」への入力(以下、下振り)となる。次に、図10は、左右方向への振りに伴う右コントローラ4の姿勢変化の一例を示す模式図である。図10で示すように、右コントローラ4のz軸方向を回転軸として右コントローラ4の先端部分が左(実空間座標系のx軸正方向)を向くように姿勢を回転させるような操作が「左方向」への入力(以下、左振り)となる。また、逆に右コントローラ4の先端部分が右(実空間座標系のx軸負方向)を向くように姿勢を回転させるような操作が「右方向」への入力(以下、右振り)となる。
なお、本例では右コントローラ4を用いる例を示すが、左コントローラ3を用いても同様の処理は可能である。
次に、画面例を用いてゲームの流れを説明する。ここでは、設問数が4つの場合を例とする。なお、正解方向については、第1問目から順に、上、右、左、下であるとする。
ゲームが開始されると、まず、旗を振る順番を示す「お手本」がプレイヤに提示される(換言すれば、出題される)。図11および図12は、当該お手本を提示する画面の一例である。図11では、旗を持ったお手本提示キャラクタが表示され、また、お手本を提示する旨のメッセージも表示されている。図12は、お手本提示キャラクタが実際に旗を振っている様子を示している。ここでは、お手本提示キャラクタが、上、右、左、下の順番で旗を振る動き(アニメーション)が表示されることになる(そして、プレイヤは、この旗を振る順番を記憶する必要がある)。
上記お手本の提示が終わると、図13に示すような解答のための準備画面が表示される。当該画面では、旗を持ったプレイヤキャラクタ201が表示され、更に、コントローラを水平の姿勢にして持つ旨の指示が表示される。プレイヤは上記図8で示したような姿勢となるようにコントローラを把持する。コントローラの姿勢が水平でかつ静止している状態が所定時間継続することで、解答の準備が整ったものと判定される。そして、図示は省略するが、解答開始の旨のメッセージ等が適宜表示され、解答の入力が開始する。その後、プレイヤは解答操作を行う。すなわち、プレイヤは、(自身の記憶力を頼りに)お手本で提示された順番通り、とプレイヤが考える方向にコントローラを振る操作を行っていく。つまり、方向入力を行っていく。この例では設問数は4つであるとする。そして、1設問が1回の振り操作に対応する。そのため、プレイヤは、合計4回の振り操作を行う必要がある。図14は、解答入力中の画面の一例である。プレイヤがコントローラを振る操作に応じて、画面内のプレイヤキャラクタ201が所定の方向に旗を振っている様子が示されている。また、プレイヤキャラクタ201の上方には、残りの設問数を示す情報も表示されている。なお、本例では、1回の方向入力(1回分の振り操作)毎に、その入力方向が正解か不正解かが示されるものとする。他の例では、4問分の入力が終わってからまとめて正解/不正解の表示を行うようにしてもよい。また、不正解のときにはそこで解答を終了するようにしてもよい。正解/不正解の表示は、例えば、丸印やバツ印を画面に適宜表示すること等で行われる。そして、解答入力が終われば、図15に示すような結果画面が表示される。当該結果画面では、正解数や得点等が表示される。
ところで、本例のように連続的にコントローラを振って方向入力を行う場合、その入力の途中で、本来入力したい方向とは違う方向への入力が発生して誤判定される可能性がある。すなわち、プレイヤの振り方(のクセ)等によっては、コントローラの姿勢変化の軌跡上(姿勢変化の過程)において、意図する方向と違う方向への入力として判定される場合もあり得る。例えば、右→上、の順に振る場合、プレイヤは腕を真上に上げているつもりでも、コントローラ(の先端)はまっすぐ上を向いておらずに、右斜めに傾いた姿勢となっている状態のとき、右方向への振りとして判定される可能性もある。また、コントローラの姿勢が上向きの姿勢に完全に変化しきる前の中間状態の姿勢のときに、タイミングによっては、右方向への振りとして判定される可能性もある。また、例えば右→上という順でコントローラを振る場合、プレイヤの振り方やクセ等によっては、上に振る前に、一瞬だけ下方向への入力が発生することがあり得る(上方向に振るために、下方向への「溜め」を無意識に行う等)。このような場合、プレイヤは右から上方向にコントローラを振ったつもりが、右→下方向への入力が行われたと誤判定される可能性がある。このような点に鑑みて、本実施形態では、連続的に方向入力を行う場合に誤判定される可能性を軽減し、正解しやすくするような入力判定制御を行っている。以下、本実施形態に係る入力判定制御の概要を説明する。
本実施例では、入力方向の判定に射影ベクトルを用いる。具体的には、プレイヤの正面方向に対して垂直な仮想平面(以下、射影平面)を想定する。この射影平面にコントローラのy軸方向(図4、図5参照)の姿勢ベクトルを、後述する基準姿勢におけるベクトルが原点となるようにして射影することで、射影ベクトルを算出する。そして、この射影ベクトルに基づいて、入力方向の判定を行う。
ここで、本実施形態に係る入力方向判定の前提として、本実施形態における上記射影平面上での射影ベクトルの角度の定義について説明する。図16は、当該射影平面上における射影ベクトルの角度の定義を示した図である、図16で示すように、y軸の右側を0度〜180度に割り当て、y軸の左側を0度〜−180度に割り当てている。以下の説明では、射影ベクトルの角度についてはこのような定義を前提として説明する。
また、本実施形態に係る入力方向判定の前提として、本実施形態における「入力の大きさ」の定義について説明する。この入力の大きさは、プレイヤが上下左右方向へコントローラを振る操作による、方向入力の大きさを示すものである。基本的に、上記射影ベクトルは、プレイヤがコントローラを上下左右にしっかりと向けるほど、大きなベクトルとなる。しかし、プレイヤがコントローラを振ったときに、勢い余って上記射影平面より手前にコントローラが向いてしまうことも考えられる。例えば、右コントローラ4を上振りする場合を想定する。この場合、振りの勢いが強いと、図17に示すように、右コントローラ4の姿勢について、右コントローラ4の先端が真上を向いた状態で止まらずに、プレイヤの背面側に少し傾いた姿勢になることも考えられる。このような場合、右コントローラ4の先端が真上を向いた状態のときと比べると、入力の大きさとしてはより大きなものであるにも関わらず、射影ベクトルの大きさとしては、右コントローラ4の先端が真上を向いた状態のときよりも小さいものとなってしまう。この点を考慮して、本実施形態では、以下のようにして入力の大きさを算出する。
上振りの場合を例にして説明すると、まず、入力の大きさの範囲と姿勢の変化との対応について、図18に示すように、0〜2の範囲内の値を割り当てる。図18では、基準姿勢の状態の入力の大きさを0とし、コントローラの先端が真上を向いている状態(コントローラのy軸が射影平面と平行になる姿勢)のときの入力の大きさを1としている。そして、コントローラの先端が実空間座標系におけるz軸負方向に向いた状態のときの入力の大きさを2としている。
このような割り当てを前提に、上記図17で示したような、コントローラの先端がプレイヤの背面側に少し傾いた姿勢(コントローラの向きが射影平面より手前に入っている姿勢)を例にする。この場合は、「2−射影ベクトルの大きさ」を入力の大きさとして算出する。例えば、図17の姿勢のときの射影ベクトルの大きさが0.8であるとする。この場合、2−0.8=1.2、が入力の大きさとして算出されることになる。つまり、コントローラの向きが射影平面より手前に入っている姿勢であるか否かが判定され、肯定の場合は「2−射影ベクトルの大きさ」が入力の大きさとして算出される。否定の場合は、射影ベクトルの大きさがそのまま入力の大きさとして算出されることになる。なお、コントローラの向きが射影平面より手前に入っている姿勢であるか否かは、慣性センサからの出力(例えばコントローラの回転角度等)に基づいて判定可能である。このような算出手法によって、本実施形態では、入力の大きさを0〜2の範囲内で変化する値として算出する。
次に、本実施形態における入力方向判定で用いる各種の閾値およびこれを用いた判定手法について説明する。基本的には、上記射影平面上における射影ベクトルの向きを見ることで、入力方向を判定する。本実施形態では、判定結果としては、「上」・「下」・「左」・「右」・「無し」の5種類の判定結果が得られるとする。また、判定に用いる閾値として、上方向として判定されるの角度、左方向として判定される角度、右方向として判定される角度、下方向として判定される角度が設定されている。また、それぞれの方向について必要な入力の大きさも設定されている(例えば、上下方向に比べて、左右方向への方向入力のほうが、よりしっかりとした入力が要求される)。
更に、本実施形態では、上記判定に使う閾値について、大きく分けて3種類の閾値を用いる。そして、上記入力の大きさに基づき、これら3種類の閾値を使い分ける3種類の判定が段階的に行われる。以下の説明では、この3種類の判定のことを「第1の判定」「第2の判定」「第3の判定」と呼ぶ。また、これら判定の順番としては、「第1の判定」「第2の判定」「第3の判定」の順番で行われ、いずれかの判定においていずれかの方向入力があることが判定されれば、そこで「現在の入力方向」が確定する。なお、この判定においては、主に、各設問の正解方向に応じて正解と判定される射影平面上の領域の大きさを調整するような制御を行うことで、誤判定される可能性を軽減して正解しやすくする入力判定制御を実現している。以下、これら3種類の判定について説明する。
[第1の判定について]
まず、第1の判定について説明する、第1の判定は、「入力の大きさがある程度大きなものである」場合を想定した判定である。つまり、ある程度大きな入力があった場合に当該第1の判定が行われる。本例では基本的には各設問の正解方向と判定される射影平面上の領域の大きさを調整するような制御を行うが、入力がある程度大きなものである場合は、プレイヤは、所定の方向を指示しきっていると考えられる。そこで、この場合は、正解方向として判定される角度(領域の大きさ)を必要以上に大きくする、ということはなるべく行わないようにしている。つまり、不正解方向に入力があったとしても、入力が大きいことからすれば、それは本当にプレイヤが入力方向を間違えている、という観点によるものである。
図19に、第1の判定で用いられる第1種閾値の模式図を示す。これは、上記射影平面を大きく4つの領域に区分けしたようなイメージである。図19においては、当該射影平面の中心が原点となっている。また、当該原点は、上記基準姿勢(の射影ベクトル)に対応する。また、図19において黒塗りで示される部分は、無判定領域を示す。この領域は、有効な方向入力として判定されるために最低限必要となる入力の大きさを示すものである。なお、本実施形態では、第1種閾値における無判定領域に対応する入力の大きさは0.9であるものとする。すなわち、0.9より大きな入力の大きさが発生した場合に、第1の判定が行われるものとする。
第1種閾値においては、まず、射影平面用で上方向と判定される領域(以下、上領域と呼ぶ)は、無反応領域外の領域であって、−40度〜+40度の範囲の領域である。また、右方向と判定される領域(以下、右領域と呼ぶ)は、無反応領域外の領域であって、+40度〜+120度の範囲の領域である。左方向と判定される領域(以下、左領域と呼ぶ)のは、無反応領域外の領域であって、−40度〜−120度の範囲の領域である。下方向と判定される領域(以下、下領域と呼ぶ)は、無反応領域外の領域であって、−120度〜−180度、および+180度〜+120度の範囲の領域である。なお、各方向に対応する領域の境界となる角度を示している境界線のことを、以下では角度閾値と呼ぶ。
第1の判定では、上記のような角度が設定されている第1種閾値の角度閾値を、設問毎にその正解方向に応じて変化させてから射影ベクトルの向きを判定する。この変化の具体例を挙げると、まず、正解が「上」の場合は、図20に示すように、上領域の角度閾値を−70度〜+70度に変化させる。つまり、上領域の中心角を大きくすることによって、上領域自体を少し大きくしている(なお、この値は、上記のように、必要以上に領域を大きくしすぎない意図を有する値にもなっている)。また、正解が「右」の場合は、図21に示すように、右領域の角度閾値を+40度〜+145度に変化させる。つまり、右領域を少し大きくしている。正解が「左」の場合は、図22に示すように、左領域の角度閾値を−40度〜−145度に変化させる。つまり、左領域を少し大きくしている。なお、正解が「下」の場合は、角度閾値は変化させない。また、この変化の具体的な値はあくまで一例であり、他の実施形態ではゲーム内容等に応じて他の値を用いてもよい。
このように、設問毎に、正解方向に対応する方向の領域を大きくすることで、その方向への正解入力として判定されやすくすることができる。
[直前入力を加味した調整について]
ところで、本実施形態では、上記のような正解方向に応じた調整に加えて、更に、直前の入力方向を加味した調整も行っている。これは、プレイヤが方向入力する操作の流れによっては、誤入力となりやすいものもあることに鑑みたものである。つまり、直前(の設問に対して)にプレイヤが入力した方向と、これから入力されるであろう正解方向との組み合わせによって、正解方向に対応する領域の大きさを更に変化させる、あるいはさせない、という制御も行っている。例えば、直前の入力方向が「左」または「右」である場合で、次に入力されるべき正解方向が「上」の場合を想定する。この場合、プレイヤが「上」へ動かそうとした際に一度手首を返してしまって「下」への入力として判定される場合があり得る。このような点を考慮して、「左」または「右」から「上」という入力の組み合わせの場合は、左右の角度閾値を大きくして「下」方向の領域を小さくすることで、「下」への入力を判定されにくいようにする。また、その逆に、方向の組み合わせによっては、上記のような判定領域を大きくする、ということを行わないようにする制御もあり得る。
本実施形態では、第1の判定においては、上記直前の入力を加味した調整として、次のような調整が行われる。すなわち、正解が「上」の場合で、直前の入力方向が「下」である場合(下→上の組み合わせの場合)は、上述したような上方向の角度閾値を大きくするという調整は行わないようにする。下から上への動きの場合は、入力方向がぶれることは少ないと考えられるためである。
[姿勢変化が無くても入力判定される場合の対処について]
また、上記の直前方向を加味した調整に加え、本実施形態では、更に、コントローラを動かしていないにもかかわらず入力判定されることを防ぐための調整も行う。例えば、第1問目の正解が「右」、第2問目の正解が「上」の場合を想定する。この場合、第1問目の判定では、図21で示したような閾値が用いられ、第2問目の判定では図20で示したような閾値が用いられることになる。そして、第1問目において、プレイヤの入力にかかる射影ベクトルの角度が+41度の方向であったとする。この場合、第1問目については、右領域の範囲内であるため、「右」方向への入力として判定される。その後、第2問目にかかる処理に移った場合で、コントローラを動かしていない場合を想定する。この場合、第2問目の判定では、+41度の方向は上領域に含まれるため、このまま判定すると、プレイヤがコントローラを動かしていない(姿勢を一切変化させていない)場合でも、上方向への入力(換言すれば、右方向以外の方向への入力)として判定されてしまう。そこで、本実施形態では、(コントローラの姿勢変化が発生していないにもかかわらず)現在の入力方向が設問をまたいだ前後で異なる方向として判定され得る場合には、現在の入力角度(=前回の入力角度)からプラスまたはマイナス5度の角度を新たな角度閾値とするという制御も行う。プラスまたはマイナスのいずれの方向に調整するかについては、現在の入力方向が前回の設問における入力方向となるような方向に調整する。例えば、上記の場合は、現在の射影ベクトルの角度である+41度が「右」方向に含まれるように、+41度から5度引いた+36度を上方向と右方向の境界の角度閾値とする。
[第2の判定について]
次に、第2の判定について説明する。本実施形態では、第2の判定は、入力の大きさが0.9以下の場合に行われる。つまり、第1の判定を行う条件が満たされなかった場合、この第2の判定が行われる。第2の判定では、上下左右の方向に対応する閾値がそれぞれ予め用意されている(つまり、プリセットされている)。これらの閾値のことを、第2種閾値と呼ぶ。以下、図面を用いて、各方向に対応する第2種閾値の例を説明する。
図23は、正解方向が上方向の場合に用いる第2種閾値の一例である(以下、第2種上方向閾値と呼ぶ)。第2種上方向閾値では、必要となる入力の大きさは、上下左右全ての方向について、0.5に設定されている。また、上領域としては−68度〜+68度の範囲となっている。右領域は+68度〜+120度、左領域は、−68度〜−120度の範囲となっている。また、−120度〜−180度および+180度〜+120度の範囲が下領域となっている。
次に、図24は、正解方向が左または右方向である場合に用いる第2種閾値の一例である(以下、第2種左右方向閾値と呼ぶ)。第2種左右方向閾値では、必要となる入力の大きさは、上下左右全ての方向について、0.5に設定されている。また、上領域は−40度〜+40度の範囲となっている。右領域は+40度〜+145度の範囲であり、左領域は、−40度〜−145度の範囲となっている。また、下領域は、−145度〜−180度および+180度〜+145度の範囲となっている。
次に、図25は、正解方向が下方向の場合に用いる第2種閾値の一例である(以下、第2種下方向閾値と呼ぶ)。第2種下方向閾値では、必要となる入力の大きさは、上下左右全ての方向について、0.15に設定されている。また、上領域は−40度〜+40度の範囲となっている。右領域は+40度〜+125度の範囲であり、左領域は、−40度〜−125度の範囲となっている。また、下領域は、−120度〜−180度および+180度〜+120度の範囲となっている。
このように、正解方向に応じて複数の第2種閾値を使い分けることで、各方向について正解として判定されやすいようにすることができる。
また、第2の判定においても、第1の判定と同様に、直前入力を加味した調整が行われる。具体的には、上述の第2種閾値に対して、更に以下のような調整が行われる。まず、正解方向が上方向であって、直前の入力方向が左または右方向だった場合、図26に示すように第2種上方向閾値の調整が行われる。すなわち、角度閾値は変化しないが、必要となる入力の大きさ(無判定領域の大きさ)の調整が行われる。具体的には、上方向の判定について必要な入力の大きさが0.5から0.86に変更される。また、正解方向が左方向であって、直前の入力方向が右である場合、あるいは、正解方向が右方向であって、直前の入力方向が左である場合は、図27に示すように第2種左右方向閾値が調整される。すなわち、右および左方向について必要な入力の大きさが0.5から0.3に変更される(結果、左右方向においてそれぞれ逆方向へ移動する動きについては、より小さな入力でも拾えることになる)。
なお、本例では、第2の判定において、下方向が正解の場合は、直前方向を加味した調整は特に行わない。
また、第2の判定においても、上記第1の判定において説明したような、コントローラの姿勢変化がない場合の入力判定に対処するための調整が行われる。
[第3の判定]
次に、第3の判定について説明する。本実施形態では、上記第2の判定において、方向入力が無しと判定された場合に、この第3の判定が行われる。図28に、第3の判定において用いられる第3種閾値の模式図を示す。第3種閾値では、必要となる入力の大きさは、上方向については0.45、それ以外の方向は、0.4に設定されている。また、上領域は−60度〜+60度の範囲となっている。右領域は+60度〜+125度の範囲であり、左領域は、−60度〜−125度の範囲となっている。また、下領域は、−125度〜−180度および+180度〜+125度の範囲となっている。
また、第3の判定においては、正解方向が下方向である場合、図28で示した第3種閾値に対して、次のような調整を加えたうえ入力方向の判定が行われる。すなわち、図29に示すように、右領域の大きさを+60度〜+120度に変更し、左領域の大きさを−60度〜−120度の大きさに変更する(つまり、下領域を少し大きくする)。
更に、第3の判定においても、上記第1及び第2の判定と同様に、直前入力を加味した調整が行われる。具体的には、上述の第3種閾値に対して、更に以下のような調整が行われる。まず、正解方向が上方向の場合であって、直前の入力方向が下方向の場合は、図30に示すように、上領域の大きさを−40度〜+40度に変更する。また、正解方向が上方向の場合であって、直前の入力方向が左または右方向の場合は、図31に示すように、右領域の大きさを+60度〜+140度に、左領域の大きさを−60度〜−140度の大きさに変更する。
次に、正解方向が下方向の場合であって、直前の入力方向が上の場合は、上述した図29のような変化に加えて更に、図32で示すように、下方向において必要な入力の大きさを0.4から0.45に変更する。
また、第3の判定においても、上記第1の判定に関して説明したような、コントローラの姿勢変化がない場合の入力判定に対処するための調整は行われる。
このように、第3の判定を用意することで、第2の判定では方向入力として判定されないような(入力の大きさが小さめの)入力でも、その入力方向を判定することが可能である。
上記のような判定手法で、「現在の入力方向」を判定することができる。ここで、本実施形態では、判定された「現在の入力方向」を即座に「設問に対する解答」としては確定せずに、所定フレーム分の時間の経過を待ってから、「設問に対する解答」として確定している。具体的には、「現在の入力方向」が正解方向である場合は、5フレームの間その方向が続けば、正解の解答として確定させる。「現在の入力方向」が不正解である場合は、その方向が12フレームの間続けば、不正解の解答として確定させている。これにより、不正解方向を跨ぐような軌跡でコントローラを動かした場合、この不正解の方向が正式な解答として誤検出されることを防ぐことができる。
このように、本実施形態では、入力方向を判定する際に3種類の閾値を利用しており、更に、各種の閾値について、正解方向に応じてその内容を変化させている。これにより、プレイヤの入力が正解方向への入力として判定されやすくすることができる。
なお、上述した各種閾値における具体的な数値はあくまで一例であり、ゲーム内容などに応じた値に適宜設定すればよい。
次に、図33〜図41を参照して、本実施形態で実行されるゲーム処理についてより詳細に説明する。
[利用されるデータについて]
まず、本ゲームシステム1で用いられる各種データについて説明する。図33は、本体装置2のDRAM85に格納されるプログラムおよび情報の一例を示している。DRAM85には、ゲーム処理プログラム401、操作データ402、設問データ405、第1種閾値データ409、第2種閾値データ410、第3種閾値データ414、現在方向データ415、前回入力方向データ416、正誤判定確定用データ417、解答結果データ418、等が格納される。
ゲーム処理プログラム401は、本実施形態にかかるゲーム処理を実行するためのプログラムである。具体的には、後述する図35のフローチャートの処理を実行するためのプログラムである。
操作データ402は、コントローラに対して行われた各種操作を示すデータである。操作データ402には、慣性センサデータ403、ボタンデータ404等が含まれる。慣性センサデータ403は、上記加速度センサ104、114および角速度センサ105、115から出力された加速度データ、角速度データである。ボタンデータ404は各種ボタンの押下状態を示すデータである。
設問データ405は、本ゲーム処理で出題される各設問に関するデータである。ここで、本ゲームでは、上記のように複数の設問の正解方向を順番に提示して、その順番通りに入力させている。この一度に出題する設問のセットのことを本例では「ステージ」と呼ぶ。つまり、1ステージに複数の設問が含まれているという構成となっている。そして、設問データ405には、このステージ単位でデータを格納する構成となっている。具体的には、設問データ405には複数のステージ情報406が含まれている。図33では、第nステージ情報(nは1から始まる整数)として示している。図34に、当該ステージ情報406のデータ構成の一例を示す。ステージ情報406は、出題順番4061および正解方向情報4062の項目を有するテーブル形式のデータとして構成されている。出題順番4061は、各設問を出題する順番を示す情報である。本例では、旗を振る順番に対応する。正解方向情報4062は、各設問における正解方向を示す情報である。
図33に戻り、第1種閾値データ409は、上記図19で示したような第1種閾値の内容を定義したデータである。すなわち、必要な入力の大きさや、上下左右の境界となる上記角度閾値について定義しているデータである。
第2種閾値データ410は、上記第2種閾値の内容を定義したデータである。本例では、第2種閾値データ410には、第2種上方向閾値データ411、第2種左右方向閾値データ412、第2種下方向閾値データ413が含まれている。それぞれ、図23〜25を用いて説明したような第2種上方向閾値、第2種左右方向閾値、第2種下方向閾値に対応するデータである。
なお、本実施形態では、第2の判定において右方向と左方向の判定に用いる閾値が実質的に同じであるため、左右に共通のデータとしているが、他の実施形態では、左方向と右方向とで異なる内容の閾値とし、別々のデータとして持たせる構成でもよい。
次に、第3種閾値データ414は、図28を用いて上述した第3種閾値の内容を定義したデータである。
現在方向データ415は、「現在の入力方向」を示すデータである。すなわち、上述したような判定の結果として決定された、現在のフレームにおける入力方向を示すデータである。なお、初期値は、現在方向がまだ判定されていないことを示す「未設定」を示す情報が設定されるものとする。
前回入力方向データ416は、直前の設問における解答(正解不正解にかかわらず)として確定した入力方向を示すデータである。
正誤確定判定用データ417は、上述したような、所定フレーム分の時間の経過を待ってから「設問に対する解答」を確定する処理に用いるデータである。具体的には、現在方向データ415の履歴を過去12フレーム分まで格納可能なデータである。また、12フレーム分を越えた場合は、古い順に消去される。
解答結果データ418は、各設問に対するプレイヤの解答内容を記憶しておくためのデータである。例えば、各設問に対して未解答の状態か否か、未解答でない場合は、その解答内容、が示されるデータである。当該データは、最終的な得点計算等に用いられる。また、解答の進行状況(何問目まで解答済みか)についても当該データに基づき把握可能である。
その他、図示は省略するが、処理中に算出された上記射影ベクトルを示すデータや上記お手本提示キャラクタやプレイヤキャラクタ等の画像データ等、ゲーム処理で用いられる各種データもDRAM85に格納される。
[詳細フローチャート]
次に、図35のフローチャートを参照して、ゲームシステム1によって実行されるゲーム処理の流れを説明する。なお、図35においてステップS3〜S5の処理ループは、例えば1フレーム(例えば1/60秒)毎に繰り返し実行されるものとする。
ゲームが開始されると、ゲーム処理に用いる各種データが初期化された後、ステップS1で、プロセッサ81は、出題処理を実行する。これは、上記図11を用いて示したような、「お手本」をプレイヤに提示するための処理である。具体的には、プロセッサ81は、設問データ405から今回出題するステージに対応するステージ情報406を取得する。続いて、プロセッサ81は、上記図11で示したような出題画面を生成して表示する。そして、プロセッサ81は、ステージ情報406に含まれる出題順番4061および正解方向情報4062に基づいて、正解方向、すなわち、コントローラ(旗)を振る順番をプレイヤに提示する。具体的には、プロセッサ81は、上記お手本提示キャラクタに、出題順番4061で示される順番で各設問の正解方向に旗オブジェクトを振る動きを行わせる。
出題処理が終われば、次に、ステップS2で、プロセッサ81は、ゲーム開始処理を実行する。具体的には、プロセッサ81は、上記図13で示したような準備画面を表示し、プレイヤにコントローラを基準姿勢になるように持つことを促す表示を行う。その後、コントローラが基準姿勢になったことが確認できれば、例えば解答入力開始のためのカウントダウン表示等を行い、プレイヤからの解答入力の受付を開始する。なお、基準姿勢の確認については、例えば、慣性センサデータ403に基づいて、コントローラが上記図8等で示したような水平かつ静止している状態が所定フレーム数継続したか否か、等で判定する。
次に、ステップS3で、プロセッサ81は、解答入力・判定処理を実行する。図36〜図37は、当該解答入力・判定処理の詳細を示すフローチャートである。図36において、まず、ステップS11で、プロセッサ81は、操作データ402を取得する。
次に、ステップS12で、プロセッサ81は、慣性センサデータ403に基づいて、上記のような射影ベクトルを算出する。具体的には、プロセッサ81は、慣性センサデータ403に基づいてコントローラのy軸方向(図5参照)の姿勢を示す3次元ベクトルを算出する。更に、この3次元ベクトルを、上記基準姿勢が原点となるように上述したような射影平面に射影して2次元の射影ベクトルを算出する。これにより、射影ベクトルの向きおよび射影ベクトルの大きさが算出できる。
次に、ステップS13で、プロセッサ81は、上記図18を用いて説明したような入力の大きさを算出する。例えば、プロセッサ81は、コントローラの姿勢が、図18で示したような0〜1の範囲内であるか、1〜2の範囲内であるかを判定する。そして、1〜2の範囲内の姿勢である場合は、「2−射影ベクトルの大きさ」で得られる値を入力の大きさとして算出する。一方、0〜1の範囲内であれば、射影ベクトルの大きさをそのまま入力の大きさとして算出する。
なお、本例では、当該算出した入力の大きさを用いて以下の処理を行うが、他の実施形態では、当該入力の大きさを「射影ベクトルの大きさ」に反映して、射影ベクトルの大きさを用いた処理を行うようにしてもよい。
次に、ステップS14で、プロセッサ81は、現在方向データ415を初期化する。
次に、ステップS15で、プロセッサ81は、第1の判定処理を実行する。図38は、当該第1の判定処理の詳細を示すフローチャートである。まず、ステップS31で、プロセッサ81は、上記算出した入力の大きさが0.9より大きいか否かを判定する。当該判定の結果、0.9以下の場合は(ステップS31でNO)、プロセッサ81は、当該第1の判定を処理を終了する。すなわち、「現在の入力方向」がまだ決まっていない状態で第1の判定処理が終了することになる。
一方、入力の大きさが0.9より大きい場合は(ステップS31でYES)、ステップS32で、プロセッサ81は、第1種閾値データ409を読み込む。
次に、ステップS33で、プロセッサ81は、現在の設問についての正解方向情報4062を取得する。そして、プロセッサ81は、上記図20〜図22を用いて説明したような、正解方向に応じて角度閾値を調整する処理を実行する。
次に、ステップS34で、プロセッサ81は、直前の入力方向を加味した角度閾値の調整処理を実行する。すなわち、前回入力方向データ416と今回の正解方向とに基づき、所定の方向の角度閾値を更に調整する処理を実行する。なお、設問が第1問目の場合は、前回の入力方向は確定していない(例えば前回入力方向データ416の内容が未設定と判定される)ため、当該処理は行われない。
次に、ステップS35で、プロセッサ81は、上述したようなコントローラの姿勢変化がないにもかかわらず、前回フレームと今回フレームとの処理で異なる入力方向として判定されることに対処するための調整処理を実行する。例えば、プロセッサ81は、前回入力方向データ416で示される入力方向の角度と、上記ステップS34までの処理で調整した閾値(今回使用する閾値)を用いて、入力方向を判定する。そして、その判定結果が前回フレームの処理における入力方向と変わってしまうか否かを判定する。つまり、コントローラを動かしていなくても入力判定されてしまうような状態か否かを判定する。その結果、前回の入力角度を今回使用する閾値で判定すると前回の判定結果と変わってしまう場合は、上記のように、今回の判定で用いる閾値の角度閾値を更に調整する処理を行う。なお、この処理についても、設問が第1問目の場合は前回入力方向データ416がまだ無いため、行われないことになる。
次に、ステップS36で、プロセッサ81は、上記各種の調整が行われた第1種閾値と上記算出した射影ベクトル(の向き)を用いて、現在の入力方向の判定を行う。続いてステップS37で、プロセッサ81は、当該判定結果を示す情報を現在方向データ415に格納する。つまり、「現在の入力方向」が決まったことになる(なお、ここでは、「上」・「下」・「左」・「右」のいずれかが決まることになる)。更に、プロセッサ81は、当該現在方向データ415と同内容の情報を正誤確定判定用データ417にも追加する。以上で、第1の判定処理は終了する。
図36に戻り、次に、ステップS16で、プロセッサ81は、現在方向データ415を参照して、上記第1の判定処理の結果、「現在の入力方向」が決まったか否かを判定する。その結果、「現在の入力方向」が決まった場合は(ステップS16でYES)、後述するステップS20に処理が進められる。
一方、「現在の入力方向」がまだ決まっていない場合は(ステップS16でNO)、ステップS17で、プロセッサ81は、第2の判定処理を実行する。図39は、第2判定処理の詳細を示すフローチャートである。まず、ステップS41で、プロセッサ81は、現在の設問についての正解方向情報4062を取得する。更に、プロセッサ81は、現在の設問の正解方向に応じて、上記第2種上方向閾値データ411、第2種左右方向閾値データ412、第2種下方向閾値データ413のうちのいずれかを読み込む。
次に、ステップS42で、プロセッサ81は、直前の入力方向を加味した角度閾値の調整処理を実行する。すなわち、前回入力方向データ416と現在の設問の正解方向とに基づき、所定の方向の角度閾値を更に調整する処理を実行する。なお、上記ステップS34と同様、設問が第1問目の場合は、当該処理は行われない。
次に、ステップS43で、プロセッサ81は、上記ステップS35と同様の、コントローラの姿勢変化がないにもかかわらず、前回フレームと今回フレームとの処理で異なる入力方向として判定されることに対処するための調整処理を実行する。この処理も、上記ステップS35と同様に、設問が第1問目の場合は実行されないことになる。
次に、ステップS44で、プロセッサ81は、上記各種の調整が行われた第2種閾値と上記算出した射影ベクトルの方向および入力の大きさを用いて、現在の入力方向の判定が行われる。この判定では、判定結果としては、「上」・「下」・「左」・「右」・「無し」のいずれかとなる。ここで、「無し」と判定されるのは、例えば、上記ステップS13で算出された入力の大きさが、上記調整後の第2種閾値で必要とされる「入力の大きさ」に満たない場合等である。
次に、ステップS45で、上記判定結果が「無し」であるか否かが判定される。その結果、「無し」ではない場合は(ステップS45でNO)、ステップS46で、プロセッサ81は、上記判定結果を示す情報を現在方向データ415に格納する。つまり、「上」・「下」・「左」・「右」のいずれかが現在の入力方向として決定されることになる。更に、プロセッサ81は、当該現在方向データ415と同内容の情報を正誤確定判定用データ417にも追加する。そして、第2の判定処理は終了する。一方、上記判定結果が「無し」の場合は(ステップS45でYES)、上記ステップS46の処理は行われずに、第2の判定処理は終了する。
図36に戻り、次に、ステップS18で、プロセッサ81は、第2の判定処理の結果、現在の入力方向が「無し」と判定されていたか否かを判定する。すなわち、現在方向データ415に「上」・「下」・「左」・「右」のいずれかが設定されているか否かを判定する。当該判定の結果、「無し」ではない場合(「上」・「下」・「左」・「右」のいずれかが設定されている場合)は(ステップS18でNO)、後述するステップS20に処理が進められる。一方、「無し」の場合は(ステップS18でYES)、ステップS19で、プロセッサ81は、第3の判定処理を実行する。
図40は、第3判定処理の詳細を示すフローチャートである。まず、ステップS51で、プロセッサ81は、第3種閾値データ414を読み込む。
次に、ステップS52で、プロセッサ81は、直前の入力方向を加味した角度閾値の調整処理を実行する。すなわち、前回入力方向データ416と今回の正解方向情報4062とに基づき、所定の方向の角度閾値を更に調整する処理を実行する。なお、上記ステップS34と同様、設問が第1問目の場合は、当該処理は行われない。
次に、ステップS53で、プロセッサ81は、上述したようなコントローラの姿勢変化がないにもかかわらず、前回フレームと今回フレームとの処理で異なる入力方向として判定されることに対処するための調整処理を実行する。この処理についても、上記ステップS35と同様に設問が第1問目の場合は行われないことになる。
次に、ステップS54で、プロセッサ81は、上記の調整が行われた第3種閾値と上記算出した射影ベクトルの方向および入力の大きさを用いて、現在の入力方向の判定を行う。この判定結果としては、「上」・「下」・「左」・「右」・「無し」のいずれかとなる。
次に、ステップS55で、プロセッサ81は、当該判定結果を示す情報を現在方向データ415に格納する。これにより、「無し」の場合も含めて、「現在の入力方向」が決まることになる。更に、プロセッサ81は、当該現在方向データ415と同内容の情報を正誤確定判定用データ417にも追加する。以上で、第3の判定処理は終了する。
次に、図37のステップS20で、プロセッサ81は、正誤確定処理を実行する。これは、正解/不正解の状態が所定フレーム数続いたかを見ることで、正解/不正解の解答を確定させるための処理である。図41は、当該正誤確定処理の詳細を示すフローチャートである。まず、ステップS61で、プロセッサ81は、現在方向データ415を参照して、現在の入力方向が今回の設問の正解方向であるか否かを判定する。その結果、正解方向である場合は(ステップS61でYES)、次に、ステップS62で、プロセッサ81は、正誤確定判定用データ417を参照し、(コントローラの姿勢が)正解方向である状態が5フレーム続いたか否かを判定する。当該判定の結果、正解方向の状態が5フレーム続いた場合は(ステップS62でYES)、ステップS63で、プロセッサ81は、今回の設問に対する解答として正解したことを確定するための処理を実行する。具体的には、解答結果データ418に現在の設問に対して正解した旨を示す情報を設定する。更に、プロセッサ81は、ここで確定した入力方向を示す情報を前回入力方向データ416に設定する。
一方、まだ5フレーム続いていない場合は(ステップS62でNO)、上記ステップS63の処理は行われず、正誤確定処理は終了する。
一方、上記ステップS61の判定の結果、現在の入力方向が正解方向ではない場合(ステップS61でNO)、次に、ステップS64で、プロセッサ81は、正解方向では無い状態が12フレーム続いたか否かを判定する。すなわち、コントローラの姿勢が正解以外の所定の1方向を向いている状態が12フレーム続いたか否かを判定する。例えば、正解が上方向である場合は、右、左、下の方向入力が12フレーム続いたか否かを判定する。すなわち、現在の入力方向が「無し」の場合は、このような不正解確定のためのフレーム数のカウントは行わない。
上記判定の結果、不正解となる所定の一方向を入力している状態が(同じ姿勢のまま)12フレーム続いた場合は(ステップS64でYES)、ステップS65で、プロセッサ81は、今回の設問に対する解答が不正解であることを確定するための処理を実行する。すなわち、解答結果データ418に現在の設問に対して不正解である旨を示す情報を設定する。更に、プロセッサ81は、ここで確定した入力方向を示す情報を前回入力方向データ416に設定する。
一方、上記判定の結果、まだ12フレーム続いていない場合は(ステップS64でNO)、上記ステップS65の処理は行われず、正誤確定処理は終了する。
図37に戻り、次に、ステップS21で、プロセッサ81は、正誤確定処理の結果、現在の設問に対して正解が確定したか否かを判定する。その結果、正解が確定した場合は(ステップS21でYES)、ステップS22で、プロセッサ81は、正解時の処理を実行する。具体的には、プロセッサ81は、正解時の演出を表示するための各種設定を行う(例えば丸印を表示する演出等)。その他、プロセッサ81は、残り設問数の表示を更新するための処理等も行う。
一方、現在の設問について正解が確定していない場合は(ステップS21でNO)、ステップS23で、プロセッサ81は、正誤確定処理の結果、現在の設問に対して不正解であることが確定したか否かを判定する。その結果、不正解が確定した場合は(ステップS23でYES)、ステップS24で、プロセッサ81は、不正解時の処理を実行する。具体的には、プロセッサ81は、不正解時の演出を表示するための各種設定を行う(例えばバツ印を表示する演出等)。その他、プロセッサ81は、残り設問数の表示を更新するための処理等も行う。
一方、ステップS23の判定の結果、現在の設問について正解も不正解も確定していない場合は(ステップS23でNO)、上記ステップS24の処理は行われず、解答入力・判定処理は終了する。
図35に戻り、解答入力・判定処理が終われば、ステップS4で、プロセッサ81は、上記の処理結果を反映した画面を生成して表示する。これにより、現在の入力方向に応じてプレイヤキャラクタ201が旗を振る動作や、各設問毎の正解・不正解の演出等が表示される。
次に、ステップS5で、プロセッサ81は、プレイヤが解答入力を終了したか否かを判定する。たとえば全ての設問に解答させる場合には、プロセッサ81は、解答結果データ418に基づき、正誤のいずれかが確定した方向入力が設問数の分だけ行われたか否かを判定する。または、いずれかの設問に不正解となった時点で解答を終了してもよい。当該判定の結果、解答入力がまだ終わっていない場合は(ステップS5でNO)、ステップS3に戻り、処理が繰り返される。
一方、解答入力が終わっている場合は(ステップS5でYES)、ステップS6で、プロセッサ81は、結果表示処理を実行する。プロセッサ81は、解答結果データ418を参照し、得点計算等を行い、今回のステージにおける結果画面を生成して表示する。以上で、(1ステージ分にかかる)ゲーム処理は終了する。
このように、本実施形態では、正解方向を予めプレイヤに提示してその方向を入力させるゲームにおいて、正解と判定されやすくなるように、正解判定に用いる判定条件をその正解方向に応じて調整している。これにより、誤判定が発生する頻度を軽減させることができる。
(変形例)
なお、上記実施形態では、一人プレイのゲームであることを想定した例を挙げているが、例えば二人のプレイヤによる対戦形式のゲームとしてもよい。例えば、一方のプレイヤが右コントローラ4を使い、他方のプレイヤが左コントローラ3を使い、二人同時に解答入力を行わせてもよい。そして、より早く、より正解数を多く解答したほうが勝利するというゲームとしてもよい。
また、出題と解答入力のタイミングに関して、上記の例では、1ステージ分の設問セットの正解方向を先にまとめて提示し、解答させるという例を挙げていた。正解方向の提示と解答入力については、これに限らない。例えば、いわゆる音楽ゲームのように、画面の上から下に正解方向を示す矢印画像が移動してきて、この矢印画像が画面の所定の位置に来るタイミングに合わせて方向入力を行わせるような態様のゲームでも、上記のような処理は適用可能である。この場合は、移動してくる矢印画像の1つ1つが上記における「設問」に該当する。
また、入力方向の判定(特定)手法について、上述の例では、コントローラの姿勢を射影平面に射影した射影ベクトルを用いる例を挙げた。いわば、コントローラの姿勢の変化を見て入力方向を特定していた。他の実施形態では、慣性センサデータ403に基づいてコントローラの移動方向を特定し、この移動方向に基づいて入力方向を特定するようにしてもよい。つまり、コントローラを平行移動させることで方向入力を可能としてもよい。また、この場合でも、入力方向の判定に用いる判定条件(例えば上記の各種閾値)について、正解方向に応じて判定条件を変化させてから判定するようにすればよい。
また、解答のための方向入力についても、上記のような慣性センサを利用する入力の他、いわゆるアナログスティックやタッチパネル等のアナログ入力が可能な操作装置を用いてもよい。このようなアナログ入力が可能な操作装置を用いる場合でも、上記の処理は適用可能である。もちろん、方向キーや方向ボタンのようなボタン入力で方向入力を行うような場合でも上記処理は適用可能である。
また、上記実施形態では、入力方向の判定に用いる閾値として大きく3種類挙げ、各種の閾値についていくつか例示した。他の実施形態では、上述した例以外の閾値を用いてもよいことはいうまでもない。例えば、上または下方向が正解方向である場合、図42に示すような閾値を用いるようにしてもよい。この図の例では、上領域および下領域において必要な入力の大きさが、左右領域における入力の大きさよりも小さく設定されている。すなわち、原点からの距離が短く設定されている。これは、コントローラを振ることで方向入力する際に、上下方向への方向入力が左右方向への入力よりも入力しにくい場合(特に、手首を支点としてコントローラを振るような場合)があることを考慮したものである。これにより、上下方向への入力を拾いやすくすることができ、上下方向が正解方向の場合に、正解と判定されやすいようにすることができる。また、この他、(ゲームの内容に応じて)下領域の入力の大きさだけを小さくするようにしてもよい。あるいは、必要な入力の大きさを上領域のものよりも更に小さいものとしてもよい。手首を支点としてコントローラを振るような場合、上下左右のうち、下方向への入力が最も認識されにくい(下方向が最も手首が曲がりにくい)ことに鑑みたものである。
また、上記実施形態で示したようなゲームシステム1に限らず、他の実施形態では、上記のようなゲーム処理が可能なスマートフォンやタブレット端末等の情報処理装置を用いる態様であってもよい。コントローラについても、このようなスマートフォン等と通信可能なものであってもよい。
1 ゲームシステム
2 本体装置
3 左コントローラ
4 右コントローラ
81 プロセッサ

Claims (22)

  1. 情報処理装置のコンピュータに、複数の設問のそれぞれについて正解となる正解方向への方向入力をプレイヤに行わせるゲーム処理を行わせるゲームプログラムであって、
    前記コンピュータに、
    前記設問ごとの前記正解方向を表示によって指定する出題処理を行わせ、
    操作装置から送信される操作データを取得させ、
    前記操作データに基づいて入力方向の特定を行わせ、
    所定の判定条件に基づいて前記入力方向が指定された前記正解方向であるかそれ以外の方向であるかの正解判定を行わせ、当該正解判定を行わせる際に、前記特定された入力方向が正解と判定され易くなるように前記判定条件を前記正解方向に応じて変化させ、
    前記正解判定の結果に基づいてゲームを進行させる、ゲームプログラム。
  2. 前記操作装置は慣性センサを備え、
    前記操作データには前記慣性センサの検出結果に基づいたデータが含まれ、
    前記コンピュータに、
    更に前記操作データに基づいて前記操作装置の姿勢または移動方向を算出させ、
    前記操作装置の姿勢または移動方向に基づいて前記入力方向を特定させる、請求項1に記載のゲームプログラム。
  3. 前記コンピュータに、
    前記操作装置の所定軸を示すベクトルを前記姿勢として算出させ、
    前記ベクトルの値に関して判定領域を設定し、前記ベクトルが正解の判定領域に含まれるか否かを前記判定条件とする前記正解判定を行わせ、当該正解判定を行わせる際に、前記設問ごとに正解に対応する前記判定領域を大きくすることによって、正解と判定され易くなるように当該判定条件を変化させる、請求項2に記載のゲームプログラム。
  4. 前記ベクトルは、前記操作装置の前記所定軸を示す3次元ベクトルを、基準姿勢におけるベクトルが原点となるように2次元に射影した射影ベクトルであって、
    前記判定領域は、2次元の前記射影ベクトルに対し、前記原点を通る直線によって上下左右に区分された領域のうち、前記原点から所定の距離以内の範囲であっていずれの方向入力でもないと判定される無判定領域と、前記上下左右に区分された当該無判定領域の外側の領域であって、前記上下左右それぞれの方向への方向入力と判定するための方向判定領域とを含み、前記正解判定において、正解に対応する前記方向判定領域の中心角が大きくされる、請求項3に記載のゲームプログラム。
  5. 前記無判定領域は、前記下または上下の領域に対する前記原点からの距離が、前記左右の領域に対する前記原点からの距離よりも短くなるように設定される、請求項4に記載のゲームプログラム。
  6. 前記操作データには前記入力の大きさを示すデータが含まれ、
    前記コンピュータに、
    前記入力の大きさが所定の閾値より大きい場合、前記正解判定を行わせる前に、前記入力方向を判定する他の判定処理を更に行わせ、
    前記他の判定処理の結果、前記入力方向が指定された前記正解方向である場合は、前記正解判定を行うことなく、入力方向が正解である場合のゲーム進行を行わせる、請求項1に記載のゲームプログラム。
  7. 前記コンピュータに、
    前記正解判定において、前記入力方向がいずれかの方向と判定される状態が所定時間継続したときに判定を確定させ、かつ前記正解方向と判定される状態について、それ以外の方向と判定される状態よりも短い継続時間で正解方向として判定を確定させることによって、正解と判定され易くなるように前記判定条件を変化させる、請求項1から6のいずれかに記載のゲームプログラム。
  8. 複数の設問のそれぞれについて正解となる正解方向への方向入力をプレイヤに行わせるゲーム処理を行うゲームシステムであって、
    操作装置と、
    プロセッサとを備え、
    前記プロセッサは、
    前記設問ごとの前記正解方向を表示によって指定する出題処理を行い、
    操作装置から送信される操作データを取得し、
    前記操作データに基づいて入力方向の特定を行い、
    所定の判定条件に基づいて前記入力方向が指定された前記正解方向であるかそれ以外の方向であるかの正解判定を行い、当該正解判定を行う際に、前記特定された入力方向が正解と判定され易くなるように前記判定条件を前記正解方向に応じて変化させ、
    前記正解判定の結果に基づいてゲームを進行する、ゲームシステム。
  9. 前記操作装置は慣性センサを備え、
    前記操作データには前記慣性センサの検出結果に基づいたデータが含まれ、
    前記プロセッサは、
    更に前記操作データに基づいて前記操作装置の姿勢または移動方向を算出し、
    前記操作装置の姿勢または移動方向に基づいて前記入力方向を特定する、請求項8に記載のゲームシステム。
  10. 前記プロセッサは、
    前記操作装置の所定軸を示すベクトルを前記姿勢として算出し、
    前記ベクトルの値に関して判定領域を設定し、前記ベクトルが正解の判定領域に含まれるか否かを前記判定条件とする前記正解判定を行い、当該正解判定を行う際に、前記設問ごとに正解に対応する前記判定領域を大きくすることによって、正解と判定され易くなるように当該判定条件を変化させる、請求項9に記載のゲームシステム。
  11. 前記ベクトルは、前記操作装置の前記所定軸を示す3次元ベクトルを、基準姿勢におけるベクトルが原点となるよう2次元に射影した射影ベクトルであって、
    前記判定領域は、2次元の前記射影ベクトルに対し、前記原点を通る直線によって上下左右に区分された領域のうち、前記原点から所定の距離以内の範囲であっていずれの方向入力でもないと判定される無判定領域と、前記上下左右に区分された当該無判定領域の外側の領域であって、前記上下左右それぞれの方向への方向入力と判定するための方向判定領域とを含み、前記正解判定が行われる際、正解に対応する前記方向判定領域の中心角が大きくされる、請求項10に記載のゲームシステム。
  12. 前記無判定領域は、前記下または上下の領域に対する前記原点からの距離が、前記左右の領域に対する前記原点からの距離よりも短くなるように設定される、請求項11に記載のゲームシステム。
  13. 前記操作データには前記入力の大きさを示すデータが含まれ、
    前記プロセッサは、
    前記入力の大きさが所定の閾値より大きい場合、前記正解判定を行わせる前に、前記入力方向を判定する他の判定処理を更に行い、
    前記他の判定処理の結果、前記入力方向が指定された前記正解方向である場合は、前記正解判定を行うことなく、入力方向が正解である場合のゲーム進行を行う、請求項8に記載のゲームシステム。
  14. 前記プロセッサは、
    前記正解判定において、前記入力方向がいずれかの方向と判定される状態が所定時間継続したときに判定を確定させ、かつ前記正解方向と判定される状態について、それ以外の方向と判定される状態よりも短い継続時間で正解方向として判定を確定させることによって、正解と判定され易くなるように前記判定条件を変化させる、請求項8から13のいずれかに記載のゲームシステム。
  15. 複数の設問のそれぞれについて正解となる正解方向への方向入力をプレイヤに行わせるゲーム処理を行うゲーム装置であって、
    前記設問ごとの前記正解方向を表示によって指定する出題処理を行い、
    操作装置から送信される操作データを取得し、
    前記操作データに基づいて入力方向の特定を行い、
    所定の判定条件に基づいて前記入力方向が指定された前記正解方向であるかそれ以外の方向であるかの正解判定を行い、当該正解判定を行う際に、前記特定された入力方向が正解と判定され易くなるように前記判定条件を前記正解方向に応じて変化させ、
    前記正解判定の結果に基づいてゲームを進行する、ゲーム装置。
  16. 前記操作装置は慣性センサを備え、
    前記操作データには前記慣性センサの検出結果に基づいたデータが含まれ、
    前記ゲーム装置は、
    更に前記操作データに基づいて前記操作装置の姿勢または移動方向を算出し、
    前記操作装置の姿勢または移動方向に基づいて前記入力方向を特定する、請求項15に記載のゲーム装置。
  17. 前記ゲーム装置は、
    前記操作装置の所定軸を示すベクトルを前記姿勢として算出し、
    前記ベクトルの値に関して判定領域を設定し、前記ベクトルが正解の判定領域に含まれるか否かを前記判定条件とする前記正解判定を行い、当該正解判定を行う際に、前記設問ごとに正解に対応する前記判定領域を大きくすることによって、正解と判定され易くなるように当該判定条件を変化させる、請求項16に記載のゲーム装置。
  18. 前記ゲーム装置は、
    前記正解判定において、前記入力方向がいずれかの方向と判定される状態が所定時間継続したときに判定を確定させ、かつ前記正解方向と判定される状態について、それ以外の方向と判定される状態よりも短い継続時間で正解方向として判定を確定させることによって、正解と判定され易くなるように前記判定条件を変化させる、請求項15から17のいずれかに記載のゲーム装置。
  19. 複数の設問のそれぞれについて正解となる正解方向への方向入力をプレイヤに行わせるゲーム処理をコンピュータに実行させるためのゲーム処理制御方法であって、
    前記コンピュータに、
    前記設問ごとの前記正解方向を表示によって指定する出題処理を行わせ、
    操作装置から送信される操作データを取得させ、
    前記操作データに基づいて入力方向の特定を行わせ、
    所定の判定条件に基づいて前記入力方向が指定された前記正解方向であるかそれ以外の方向であるかの正解判定を行わせ、当該正解判定を行わせる際に、前記特定された入力方向が正解と判定され易くなるように前記判定条件を前記正解方向に応じて変化させ、
    前記正解判定の結果に基づいてゲームを進行させる、ゲーム処理制御方法。
  20. 前記操作装置は慣性センサを備え、
    前記操作データには前記慣性センサの検出結果に基づいたデータが含まれ、
    前記コンピュータに、
    更に前記操作データに基づいて前記操作装置の姿勢または移動方向を算出させ、
    前記操作装置の姿勢または移動方向に基づいて前記入力方向を特定させる、請求項19に記載のゲーム処理制御方法。
  21. 前記コンピュータに、
    前記操作装置の所定軸を示すベクトルを前記姿勢として算出させ、
    前記ベクトルの値に関して判定領域を設定し、前記ベクトルが正解の判定領域に含まれるか否かを前記判定条件とする前記正解判定を行わせ、当該正解判定を行わせる際に、前記設問ごとに正解に対応する前記判定領域を大きくすることによって、正解と判定され易くなるように当該判定条件を変化させる、請求項20に記載のゲーム処理制御方法。
  22. 前記コンピュータに、
    前記正解判定において、前記入力方向がいずれかの方向と判定される状態が所定時間継続したときに判定を確定させ、かつ前記正解方向と判定される状態について、それ以外の方向と判定される状態よりも短い継続時間で正解方向として判定を確定させることによって、正解と判定され易くなるように前記判定条件を変化させる、請求項19から21のいずれかに記載のゲーム処理制御方法。
JP2019145552A 2019-08-07 2019-08-07 ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理制御方法 Active JP6938580B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019145552A JP6938580B2 (ja) 2019-08-07 2019-08-07 ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理制御方法
US16/733,894 US11247121B2 (en) 2019-08-07 2020-01-03 Computer-readable non-transitory storage medium having game program stored therein, game system, game apparatus, and game processing control method for correct direction determination

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019145552A JP6938580B2 (ja) 2019-08-07 2019-08-07 ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理制御方法

Publications (2)

Publication Number Publication Date
JP2021023667A JP2021023667A (ja) 2021-02-22
JP6938580B2 true JP6938580B2 (ja) 2021-09-22

Family

ID=74498366

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019145552A Active JP6938580B2 (ja) 2019-08-07 2019-08-07 ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理制御方法

Country Status (2)

Country Link
US (1) US11247121B2 (ja)
JP (1) JP6938580B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7425813B2 (ja) * 2022-02-15 2024-01-31 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2682024A1 (en) * 2007-03-28 2008-10-02 Ntn Buzztime, Inc. Mobile device used as controller in interactive gaming environment
JP2008272123A (ja) * 2007-04-26 2008-11-13 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
US20090069096A1 (en) * 2007-09-12 2009-03-12 Namco Bandai Games Inc. Program, information storage medium, game system, and input instruction device
JP5410710B2 (ja) 2007-09-12 2014-02-05 株式会社バンダイナムコゲームス プログラム、情報記憶媒体、ゲームシステム
US20090226870A1 (en) * 2008-02-08 2009-09-10 Minotti Jody M Method and system for interactive learning
JP5374681B2 (ja) * 2008-03-28 2013-12-25 株式会社セガ ゲーム装置及びプログラム
US8057290B2 (en) * 2008-12-15 2011-11-15 Disney Enterprises, Inc. Dance ring video game
JP2010233671A (ja) * 2009-03-30 2010-10-21 Namco Bandai Games Inc プログラム、情報記憶媒体及びゲーム装置
JP2010233742A (ja) * 2009-03-30 2010-10-21 Konami Digital Entertainment Co Ltd ゲーム装置、動作判定方法、および、プログラム
US9701880B2 (en) * 2010-07-14 2017-07-11 Universidade Federal De Minas Gerais-Ufmg Process for preparing absorbent material for apolar compounds or mixtures
JP5604253B2 (ja) * 2010-10-08 2014-10-08 株式会社ビジネス・ブレークスルー 回答端末、回答方法、回答集計システム
US9208692B2 (en) * 2010-10-11 2015-12-08 The Herman Group, Co. System for measuring speed and magnitude of responses and methods thereof
JP5829020B2 (ja) * 2010-12-22 2015-12-09 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、および、ゲーム処理方法
JP5830135B1 (ja) 2014-06-16 2015-12-09 株式会社カプコン ゲームプログラムおよびゲーム装置
JP6427414B2 (ja) * 2014-12-26 2018-11-21 株式会社バンダイナムコエンターテインメント 入力処理装置及びプログラム
JP5953418B1 (ja) * 2015-11-10 2016-07-20 株式会社Cygames ユーザ入力の操作性を向上させるプログラム、電子装置、システム及び方法
JP6206854B2 (ja) * 2015-12-29 2017-10-04 株式会社コナミデジタルエンタテインメント ゲーム制御装置及びプログラム
JP6877893B2 (ja) * 2016-06-06 2021-05-26 任天堂株式会社 ゲーム装置、ゲームシステム、ゲームプログラム、および振り入力判定方法
JP2018153640A (ja) * 2018-04-09 2018-10-04 株式会社コナミデジタルエンタテインメント ゲームシステム、及びプログラム

Also Published As

Publication number Publication date
US11247121B2 (en) 2022-02-15
US20210038973A1 (en) 2021-02-11
JP2021023667A (ja) 2021-02-22

Similar Documents

Publication Publication Date Title
US11439907B2 (en) Audio feedback that varies based on direction of input stroke
US10010793B2 (en) Techniques for improved user interface helping super guides
US10610782B2 (en) Game system, non-transitory storage medium having game program stored therein, game apparatus, and game processing method
US10758819B2 (en) Game system, non-transitory storage medium having stored therein game program, information processing apparatus, and game control method
JP6670201B2 (ja) ゲームシステム、ゲームプログラム、及びゲーム処理装置
US11583759B2 (en) Information processing system, storage medium storing information processing program, information processing apparatus, and information processing method
JP6653293B2 (ja) 情報処理システム、情報処理プログラム、情報処理装置、および、情報処理方法
US10661162B2 (en) Game system, non-transitory storage medium having stored therein game program, game apparatus, and game method
US10639545B2 (en) Game system, game program, information processing device, and information processing method
JP2022002627A (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
JP6938580B2 (ja) ゲームプログラム、ゲームシステム、ゲーム装置、およびゲーム処理制御方法
JP7248720B2 (ja) ゲームプログラム、ゲーム装置、ゲームシステム、およびゲーム処理方法
US11045728B2 (en) Game system, non-transitory storage medium having stored therein game program, information processing apparatus, and game control method
JP6893417B2 (ja) ゲームシステム、ゲームプログラム、情報処理装置、および、情報処理方法
JP6837921B2 (ja) ゲームプログラム、情報処理装置、情報処理システム、および、情報処理方法
JP2017217339A (ja) ゲームプログラム、情報処理装置、情報処理システム、ゲーム処理方法
JP2023039201A (ja) ゲームプログラム、情報処理装置、情報処理システム、および、ゲーム処理方法
JP7441252B2 (ja) 情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法
JP6821073B1 (ja) 情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法
JP7425813B2 (ja) 情報処理プログラム、情報処理装置、情報処理方法、および情報処理システム
JP2021037298A (ja) 情報処理システム、情報処理プログラム、情報処理装置、および情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210420

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210824

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210901

R150 Certificate of patent or registration of utility model

Ref document number: 6938580

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250