JP5478172B2 - Information processing program and information processing apparatus - Google Patents
Information processing program and information processing apparatus Download PDFInfo
- Publication number
- JP5478172B2 JP5478172B2 JP2009216874A JP2009216874A JP5478172B2 JP 5478172 B2 JP5478172 B2 JP 5478172B2 JP 2009216874 A JP2009216874 A JP 2009216874A JP 2009216874 A JP2009216874 A JP 2009216874A JP 5478172 B2 JP5478172 B2 JP 5478172B2
- Authority
- JP
- Japan
- Prior art keywords
- motion
- load
- frame
- animation
- game
- 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
Links
- 230000010365 information processing Effects 0.000 title claims description 38
- 230000033001 locomotion Effects 0.000 claims description 272
- 238000001514 detection method Methods 0.000 claims description 60
- 230000009471 action Effects 0.000 claims description 45
- 230000003252 repetitive effect Effects 0.000 claims description 35
- 230000008859 change Effects 0.000 claims description 33
- 230000007423 decrease Effects 0.000 claims description 13
- 230000001133 acceleration Effects 0.000 description 119
- 238000000034 method Methods 0.000 description 101
- 230000008569 process Effects 0.000 description 82
- 230000005484 gravity Effects 0.000 description 62
- 239000013598 vector Substances 0.000 description 27
- 238000012545 processing Methods 0.000 description 24
- 230000001141 propulsive effect Effects 0.000 description 23
- 239000003550 marker Substances 0.000 description 19
- 238000003384 imaging method Methods 0.000 description 16
- 238000013500 data storage Methods 0.000 description 14
- 230000003247 decreasing effect Effects 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000001419 dependent effect Effects 0.000 description 10
- 238000005452 bending Methods 0.000 description 9
- 230000037396 body weight Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 8
- 230000004044 response Effects 0.000 description 8
- 238000004088 simulation Methods 0.000 description 8
- 238000001228 spectrum Methods 0.000 description 7
- 238000012937 correction Methods 0.000 description 5
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010137 moulding (plastic) Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004080 punching Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002238 attenuated effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000000245 forearm Anatomy 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/218—Input arrangements for video game devices characterised by their sensors, purposes or types using pressure sensors, e.g. generating a signal proportional to the pressure applied by the player
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/42—Processing 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/428—Processing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0334—Foot operated pointing devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/20—Input arrangements for video game devices
- A63F13/21—Input arrangements for video game devices characterised by their sensors, purposes or types
- A63F13/211—Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
- A63F13/44—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment involving timing of operations, e.g. performing an action within a time slot
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/80—Special adaptations for executing a specific game genre or game mode
- A63F13/803—Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/10—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
- A63F2300/1068—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being specially adapted to detect the point of contact of the player on a surface, e.g. floor mat, touch pad
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/6045—Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
- A63F2300/6607—Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0435—Change or adaptation of the frame rate of the video stream
Landscapes
- Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Description
この発明は情報処理プログラムおよび情報処理装置に関し、特にたとえば、ユーザの荷重を示す荷重値を用いて操作する、情報処理プログラムおよび情報処理装置に関する。 The present invention relates to an information processing program and an information processing apparatus, and more particularly to an information processing program and an information processing apparatus that are operated using a load value indicating a user's load, for example.
この種の情報処理装置の一例が特許文献1に開示されている。この特許文献1のゲーム装置では、4つの荷重センサを備えるゲームコントローラの支持板に、プレイヤが足を乗せ、4つの荷重センサによって検出される荷重値が操作データとして入力される。したがって、ゲーム装置では、操作データとして入力された荷重値に基づいてゲーム処理が実行される。たとえば、フラフープのゲーム処理では、プレイヤがゲームコントローラ上に乗り、このゲームコントローラの四隅に備えられた4つの荷重センサのうち、検出される荷重値が最大となる荷重センサが配置される位置に応じて、プレイヤキャラクタの腰の位置が決定される。
An example of this type of information processing apparatus is disclosed in
しかし、特許文献1のゲーム装置では、検出される荷重値が最大となる荷重センサが配置される位置に応じて、プレイヤキャラクタの腰の位置が決定されるだけなので、プレイヤの動作に対してプレイヤキャラクタのアニメーションフレームが遅延してしまうことがある。また、荷重値に基づいてアニメーションフレームを補正したとしても、単に荷重値が最大となる荷重センサが配置される位置にプレイヤキャラクタの腰の位置が来るように移動されるだけなので、ゲーム画面を見たプレイヤは違和感を覚えてしまう。つまり、フラフープを行うようなプレイヤの反復動作とプレイヤキャラクタのアニメーションとを同期されることについては改善の余地があった。
However, in the game device of
それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。 Therefore, a main object of the present invention is to provide a novel information processing program and information processing apparatus.
また、この発明の他の目的は、ユーザの動作とオブジェクトのアニメーションとを円滑に同期させることができる、情報処理プログラムおよび情報処理装置を提供することができる。 Another object of the present invention is to provide an information processing program and an information processing apparatus capable of smoothly synchronizing a user's action and an object animation.
第1の発明は、所定の反復動作を行うユーザの荷重を示す荷重値に基づいて所定の情報処理を行うコンピュータに実行させる情報処理プログラムである。荷重値取得ステップは、荷重検出装置からの信号に基づいてユーザの荷重を示す荷重値を取得する。第1動作開始検出ステップは、荷重値取得ステップによって取得された荷重値に基づいて、ユーザの反復動作における第1動作の開始を検出する。つまり、反復動作のうちの一部の動作の開始が検出される。更新速度制御ステップは、第1動作開始検出ステップによって検出された第1動作の開始時が、表示装置に表示されるオブジェクトのアニメーションフレームについて当該第1動作に対応して設定される第1所定区間外であるとき、当該アニメーションフレームの更新速度が所定の速度となるように速くする。これによって、アニメーションフレームの進行の遅延が解消される。 The first invention is an information processing program that is executed by a computer that performs predetermined information processing based on a load value indicating a load of a user who performs a predetermined repetitive motion. In the load value acquisition step, a load value indicating a user's load is acquired based on a signal from the load detection device. The first motion start detection step detects the start of the first motion in the repetitive motion of the user based on the load value acquired by the load value acquisition step. That is, the start of some of the repetitive actions is detected. The update speed control step includes a first predetermined section in which the start time of the first motion detected by the first motion start detection step is set corresponding to the first motion for the animation frame of the object displayed on the display device. When it is outside, the update speed of the animation frame is increased to a predetermined speed. This eliminates the delay of the animation frame progression.
第1の発明によれば、第1動作の開始時が第1所定区間外である場合には、アニメーションフレームの更新速度を速くするので、アニメーションフレームの進行の遅延を解消して、ユーザの動作とアニメーションとを円滑に同期させることができる。 According to the first invention, when the start time of the first action is outside the first predetermined interval, the update speed of the animation frame is increased, so that the delay of the progress of the animation frame is eliminated, and the user action And animation can be synchronized smoothly.
第2の発明は、第1の発明に従属し、更新速度制御ステップは、第1動作開始検出ステップによって検出された第1動作の開始時が、第1所定区間内であるとき、アニメーションフレームの更新速度が所定の速度よりも小さい速度となるように速くする。つまり、所定の速度は、第1動作の開始時が第1所定区間内である場合のアニメーションフレームの更新速度よりも大きい値に設定される。 The second invention is dependent on the first invention, and the update speed control step is performed when the start time of the first motion detected by the first motion start detection step is within the first predetermined interval. The update speed is increased so as to be smaller than a predetermined speed. That is, the predetermined speed is set to a value larger than the update speed of the animation frame when the start time of the first action is within the first predetermined section.
第2の発明によれば、所定の速度は、第1動作の開始時が第1所定区間内である場合のアニメーションフレームの更新速度よりも大きいので、第1動作の開始時が第1所定区間外である場合には、アニメーションフレームを高速に進行させて、その遅延を解消することができる。 According to the second invention, since the predetermined speed is higher than the update speed of the animation frame when the start time of the first action is within the first predetermined period, the start time of the first action is the first predetermined period. If it is outside, the animation frame can be advanced at high speed to eliminate the delay.
第3の発明は、第1または第2の発明に従属し、フレーム更新ステップは、第1動作の開始時が第1所定区間外であるとき、更新速度制御ステップによって速くされた更新速度で、当該第1所定区間までアニメーションフレームを更新する。つまり、等速で第1所定区間までアニメーションフレームが進行される。 A third invention is dependent on the first or second invention, and the frame update step is performed at an update rate increased by the update rate control step when the start time of the first operation is outside the first predetermined interval. The animation frame is updated up to the first predetermined section. That is, the animation frame is advanced to the first predetermined section at a constant speed.
第3の発明によれば、速い更新速度で第1所定区間までアニメーションフレームを進行させるので、アニメーションの遅延を解消することができる。 According to the third aspect, the animation frame is advanced to the first predetermined section at a high update speed, so that the animation delay can be eliminated.
第4の発明は、第1ないし第3の発明のいずれかに従属し、更新速度制御ステップは、第1所定区間では、アニメーションフレームの更新速度を減速する。 The fourth invention is dependent on any one of the first to third inventions, and the update speed control step reduces the update speed of the animation frame in the first predetermined section.
第4の発明によれば、たとえば、第1動作が減速する動きを含む場合に、それをアニメーションで表現することができる。 According to the fourth aspect of the invention, for example, when the first action includes a slowing movement, it can be expressed by animation.
第5の発明は、第4の発明に従属し、更新速度制御ステップは、第1所定区間では、その終期に向かうに従ってアニメーションフレームの更新速度を減速する。 The fifth invention is dependent on the fourth invention, and the update speed control step decelerates the update speed of the animation frame toward the end of the first predetermined section.
第5の発明によれば、たとえば、第1動作が次第に減速するような動きである場合に、それをアニメーションで表現することができる。 According to the fifth aspect, for example, when the first motion is a motion that gradually decelerates, it can be expressed by animation.
第6の発明は、第1ないし第5の発明に従属し、反復動作は、第1動作と、この第1動作とは異なる第2動作とを含む。したがって、第1動作と第2動作とが繰り返し実行される。 A sixth invention is dependent on the first to fifth inventions, and the repetitive operation includes a first operation and a second operation different from the first operation. Accordingly, the first operation and the second operation are repeatedly executed.
第6の発明によれば、第1動作と第2動作とが繰り返し実行され、少なくとも、第1動作が同期するようにアニメーションフレームが更新されるので、結果的に第1動作および第2動作を含むユーザの動作とアニメーションとの同期を取ることができる。 According to the sixth invention, the first operation and the second operation are repeatedly executed, and at least the animation frame is updated so that the first operation is synchronized. As a result, the first operation and the second operation are performed as a result. It is possible to synchronize the motion of the user including the animation.
第7の発明は第6の発明に従属し、第1動作は、オブジェクトが推進力を得るための動作であり、第2の動作は、当該推進力を得るための動作の準備運動である。つまり、推進力を得るための動作とその準備運動とによって反復動作が成り立っている。 The seventh invention is dependent on the sixth invention, wherein the first action is an action for the object to obtain a propulsive force, and the second action is a preparatory movement for the action for obtaining the propulsive force. That is, the repetitive motion is established by the motion for obtaining the propulsive force and the preparatory motion.
第7の発明によれば、第1動作の開始が検出され、これによってオブジェクトは推進力を得るため、アニメーションフレームを速く進行させることにより、オブジェクトが推進力を得たことを表現することができる。 According to the seventh aspect, since the start of the first motion is detected and the object obtains the propulsion force, the object can obtain the propulsion force by advancing the animation frame quickly. .
第8の発明は、第6または第7の発明に従属し、荷重値取得ステップによって取得された荷重値に基づいて、ユーザの反復動作における第2動作の開始を検出する第2動作開始検出ステップをコンピュータにさらに実行させる。更新速度制御ステップは、第2動作開始検出ステップによって第2動作の開始が検出されたとき、アニメーションフレームの更新速度を速くする。かかる場合にも、アニメーションフレームの進行の遅延が解消される。 An eighth invention is dependent on the sixth or seventh invention, and based on the load value acquired by the load value acquisition step, a second operation start detection step for detecting the start of the second operation in the repetitive operation of the user. Is further executed by the computer. The update speed control step increases the update speed of the animation frame when the start of the second motion is detected by the second motion start detection step. Even in such a case, the delay in the progress of the animation frame is eliminated.
第8の発明によれば、第2動作の開始が検出された場合もアニメーションフレームの進行の遅延が解消されるので、ユーザの動作とアニメーションとを円滑に同期させることができる。 According to the eighth aspect, since the delay in the progress of the animation frame is eliminated even when the start of the second action is detected, the user's action and the animation can be smoothly synchronized.
第9の発明は、第8の発明に従属し、更新速度制御ステップは、第2動作開始検出ステップによって検出された第2動作の開始時が、オブジェクトのアニメーションフレームについて当該第2動作に対応して設定される第2所定区間内であるとき、第2動作の開始時が当該第2所定区間外である場合よりも、アニメーションフレームの更新速度を速くする。 A ninth invention is according to the eighth invention, and the update speed control step corresponds to the second motion of the animation frame of the object when the second motion detected by the second motion start detection step is started. When the second predetermined section is set, the animation frame update speed is made faster than when the start time of the second action is outside the second predetermined section.
第9の発明によれば、第2動作の開始時が第2所定区間内である場合には、アニメーションフレームの更新速度を速くするので、第2動作を検出した後に、次の第1動作を検出するまでにアニメーションフレームを第1所定区間近辺に近付けることができる。したがって、ユーザの動作とアニメーションとの同期を取り易くすることができる。 According to the ninth invention, when the start time of the second motion is within the second predetermined section, the animation frame update speed is increased. Therefore, after the second motion is detected, the next first motion is performed. The animation frame can be brought close to the first predetermined section before detection. Therefore, it is possible to easily synchronize the user's action and the animation.
第10の発明は、第9の発明に従属し、第2所定区間は第1所定区間より長く設定される。 A tenth invention is dependent on the ninth invention, and the second predetermined section is set longer than the first predetermined section.
第10の発明によれば、第2所定区間は第1所定区間よりも長く設定されるので、第2動作を検出した後に、次の第1動作を検出するまでに、アニメーションフレームを第1所定区間近辺に近付け易くすることができる。 According to the tenth aspect, since the second predetermined section is set longer than the first predetermined section, the animation frame is set to the first predetermined period after the second movement is detected and before the next first movement is detected. It is possible to easily approach the vicinity of the section.
第11の発明は、第10の発明に従属し、第2所定区間に対応するオブジェクトのアニメーションフレームは、第2動作の予備動作に対応するアニメーションフレームを含む。つまり、第2所定区間は、第2動作の開始時に相当するアニメーションフレームよりも前のアニメーションフレームを含む。 An eleventh invention is according to the tenth invention, and the animation frame of the object corresponding to the second predetermined section includes an animation frame corresponding to the preliminary action of the second action. In other words, the second predetermined section includes an animation frame before the animation frame corresponding to the start of the second action.
第11の発明においても第10の発明と同様に、アニメーションフレームを第1所定区間近辺に近付け易くすることができる。 In the eleventh aspect, similar to the tenth aspect, the animation frame can be easily brought near the first predetermined section.
第12の発明は、第6ないし第11の発明に従属し、反復動作は、荷重値の変化の大きい大反復動作または当該大反復動作よりも荷重値の変化の小さい小反復動作である。動作判別ステップは、荷重値の変化の周期に基づいて、ユーザの動作が大反復動作であるか小反復動作であるかを判別する。また、動作検出ステップは、荷重値の変化に基づいて、第1動作および第2動作を検出する。更新速度制御ステップは、動作判別ステップによってユーザの動作が大反復動作であることが判別されたとき、動作検出ステップによって検出された第1動作および第2動作に応じてアニメーションフレームの更新速度を変化させる。 A twelfth invention is dependent on the sixth to eleventh inventions, and the repetitive motion is a large repetitive motion with a large change in load value or a small repetitive motion with a small change in load value compared to the large repetitive motion. The motion determination step determines whether the user's motion is a large repetitive motion or a small repetitive motion based on the load value change cycle. The motion detection step detects the first motion and the second motion based on the change in the load value. The update speed control step changes the update speed of the animation frame according to the first action and the second action detected by the action detection step when the action judgment step determines that the user's action is a large repetitive action. Let
第12の発明によれば、大反復動作が判別された場合には、第1動作および第2動作に応じてアニメーションフレームの更新速度を変化させるので、つまり第1動作および第2動作の両方に応じてアニメーションフレームの更新を制御するので、ユーザの動作とアニメーションフレームとの同期をより正確に取ることができる。 According to the twelfth aspect, when a large repetitive motion is determined, the animation frame update speed is changed according to the first motion and the second motion, that is, both the first motion and the second motion. Since the update of the animation frame is controlled accordingly, the user's action and the animation frame can be more accurately synchronized.
第13の発明は、第12の発明に従属し、更新速度制御ステップは、動作判別ステップによってユーザの動作が小反復動作であることが判別されたとき、動作検出ステップによって検出された第1動作のみに応じてアニメーションフレームの更新速度を変化させる。 A thirteenth invention is according to the twelfth invention, and the update speed control step includes the first motion detected by the motion detection step when the motion determination step determines that the user motion is a small repetitive motion. Change the animation frame update rate only according to the above.
第13の発明によれば、小反復動作である場合には、第1動作のみに応じてアニメーションの更新速度を変化させても、ユーザの動作とアニメーションフレームとの同期を取ることができる。 According to the thirteenth aspect, in the case of a small repetitive motion, the user's motion and the animation frame can be synchronized even if the animation update speed is changed only in accordance with the first motion.
第14の発明は、第1の発明に従属し、第1所定区間の最初のアニメーションフレームは、第1動作開始検出ステップによって検出された第1動作の開始時におけるユーザの姿勢に対応する。 The fourteenth invention is dependent on the first invention, and the first animation frame in the first predetermined section corresponds to the posture of the user at the start of the first motion detected by the first motion start detection step.
第14の発明によれば、第1所定区間の最初のアニメーションフレームは第1動作の開始時におけるユーザの姿勢に対応するので、第1所定区間外で第1動作の開始時を検出した場合に、アニメーションフレームの更新速度を速くして第1所定区間に近付けることにより、アニメーションフレームの進行の遅延を解消することができる。 According to the fourteenth aspect, since the first animation frame in the first predetermined section corresponds to the user's posture at the start of the first action, when the start time of the first action is detected outside the first predetermined section. By delaying the update speed of the animation frame and approaching the first predetermined section, it is possible to eliminate the delay in the progress of the animation frame.
第15の発明は、第9の発明に従属し、第1所定区間の最初のアニメーションフレームは、第1動作開始検出ステップによって検出された第1動作の開始時におけるユーザの姿勢に対応し、第2所定区間の最初のアニメーションフレームは、第2動作開始検出ステップによって検出された第2動作の開始以前におけるユーザの姿勢に対応する。 A fifteenth aspect is according to the ninth aspect, wherein the first animation frame in the first predetermined section corresponds to the user's posture at the start of the first movement detected by the first movement start detection step, 2 The first animation frame in a predetermined section corresponds to the user's posture before the start of the second motion detected by the second motion start detection step.
第15の発明によれば、第2所定区間の最初のアニメーションは、第2動作の開始以前におけるユーザの姿勢に対応するので、第14の発明の効果に加えて、第2所定区間内で第2動作の開始時を検出した場合には、出来る限り速くアニメーションフレームを第1所定区間に近付けることができる。 According to the fifteenth aspect, since the first animation in the second predetermined section corresponds to the user's posture before the start of the second action, in addition to the effect of the fourteenth aspect, the first animation in the second predetermined section When the start time of the second motion is detected, the animation frame can be brought closer to the first predetermined section as quickly as possible.
第16の発明は、所定の反復動作を行うユーザの荷重を示す荷重値に基づいて所定の情報処理を行う情報処理装置であって、荷重検出装置からの信号に基づいてユーザの荷重を示す荷重値を取得する荷重値取得手段、荷重値取得手段によって取得された荷重値に基づいて、ユーザの反復動作における所定の動作の開始を検出する動作開始検出手段、および動作開始検出手段によって検出された所定の動作の開始時が、表示装置に表示されるオブジェクトについての当該所定の動作に対応して設定されるアニメーションフレームの所定区間外であるとき、当該アニメーションフレームの更新速度が所定の速度となるように速くする更新速度制御手段を備える、情報処理装置である。 A sixteenth aspect of the invention is an information processing apparatus that performs predetermined information processing based on a load value indicating a load of a user who performs a predetermined repetitive motion, and a load indicating a user's load based on a signal from the load detection apparatus A load value acquisition means for acquiring a value, an operation start detection means for detecting the start of a predetermined action in the repetitive motion of the user, and an operation start detection means based on the load value acquired by the load value acquisition means When the start of the predetermined motion is outside the predetermined section of the animation frame set corresponding to the predetermined motion for the object displayed on the display device, the update speed of the animation frame becomes the predetermined speed. It is an information processing apparatus provided with the update speed control means to make it faster.
第16の発明においても、第1の発明と同様に、ユーザの動作とアニメーションとを円滑に同期させることができる。 In the sixteenth invention as well, similar to the first invention, the user's motion and animation can be smoothly synchronized.
この発明によれば、反復動作における第1動作の開始時がアニメーションフレームについて当該第1動作に対応して設定される第1所定期間外である場合には、速い更新速度でアニメーションフレームを更新するので、アニメーションの進行の遅延を解消して、ユーザの動作とアニメーションとを円滑に同期させることができる。 According to the present invention, when the start time of the first motion in the repetitive motion is outside the first predetermined period set corresponding to the first motion for the animation frame, the animation frame is updated at a fast update speed. Therefore, it is possible to eliminate the delay in the progress of the animation and to smoothly synchronize the user's operation and the animation.
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。 The above object, other objects, features and advantages of the present invention will become more apparent from the following detailed description of embodiments with reference to the drawings.
図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置(以下、単に「ゲーム装置」という)12、コントローラ22および荷重コントローラ36を含む。なお、図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ(22,36)と通信可能に設計されている。また、ゲーム装置12と各コントローラ(22,36)とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。
Referring to FIG. 1, a
ゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、情報処理プログラムの一例としてのゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が挿入されて、ハウジング14内のディスクドライブ54(図2参照)に装着される。ディスクスロット16の周囲には、LEDと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。
The
また、ゲーム装置12のハウジング14の前面であり、その上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット16の近傍には、外部メモリカード用コネクタカバー28が設けられる。この外部メモリカード用コネクタカバー28の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、図示しない外部メモリカード(以下、単に「メモリカード」という)が挿入される。メモリカードは、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。
Further, on the front surface of the
なお、メモリカードとしては、汎用のSDカードを用いることができるが、メモリスティックやマルチメディアカード(登録商標)のような他の汎用のメモリカードを用いることもできる。 Note that a general-purpose SD card can be used as the memory card, but other general-purpose memory cards such as a memory stick and a multimedia card (registered trademark) can also be used.
ゲーム装置12のハウジング14の後面には、AVコネクタ58(図2参照)が設けられ、そのAVコネクタ58を用いて、AVケーブル32aを通してゲーム装置12にモニタ34およびスピーカ34aを接続する。このモニタ34およびスピーカ34aは典型的にはカラーテレビジョン受像機であり、AVケーブル32aは、ゲーム装置12からの映像信号をカラーテレビのビデオ入力端子に入力し、音声信号を音声入力端子に入力する。したがって、カラーテレビ(モニタ)34の画面上にたとえば3次元(3D)ビデオゲームのゲーム画像が表示され、左右のスピーカ34aからゲーム音楽や効果音などのステレオゲーム音声が出力される。また、モニタ34の周辺(この実施例では、モニタ34の上側)には、2つの赤外LED(マーカ)340m,340nを備えるマーカ部34bが設けられる。このマーカ部34bは、電源ケーブル32bを通してゲーム装置12に接続される。したがって、マーカ部34bには、ゲーム装置12から電源が供給される。これによって、マーカ340m,340nは発光し、それぞれモニタ34の前方に向けて赤外光を出力する。
An AV connector 58 (see FIG. 2) is provided on the rear surface of the
なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。
The
このゲームシステム10において、ユーザまたはプレイヤがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク18を選択し、その光ディスク18をゲーム装置12のディスクドライブ54にローディングする。応じて、ゲーム装置12がその光ディスク18に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、入力手段26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段26に対する操作以外にも、コントローラ22自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。
In this
図2は図1実施例のビデオゲームシステム10の電気的な構成を示すブロック図である。図示は省略するが、ハウジング14内の各コンポーネントは、プリント基板に実装される。図2に示すように、ゲーム装置12には、CPU40が設けられる。このCPU40は、ゲームプロセッサとして機能する。このCPU40には、システムLSI42が接続される。このシステムLSI42には、外部メインメモリ46、ROM/RTC48、ディスクドライブ54およびAV IC56が接続される。
FIG. 2 is a block diagram showing an electrical configuration of the
外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク18からプログラムデータやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。
The external
システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。
The
入出力プロセッサ(I/Oプロセッサ)42aは、データの送受信を実行したり、データのダウンロードを実行したりする。データの送受信やダウンロードについては後で詳細に説明する。 The input / output processor (I / O processor) 42a executes data transmission / reception or data download. Data transmission / reception and downloading will be described in detail later.
GPU42bは、描画手段の一部を形成し、CPU40からのグラフィクスコマンド(作画命令)を受け、そのコマンドに従ってゲーム画像データを生成する。ただし、CPU40は、グラフィクスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラムをGPU42bに与える。
The GPU 42b forms part of the drawing means, receives a graphics command (drawing command) from the
図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。なお、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。
Although illustration is omitted, as described above, the
なお、この実施例では、GPU42bがゲーム画像データを生成する場合について説明するが、ゲームアプリケーション以外の任意のアプリケーションを実行する場合には、GPU42bは当該任意のアプリケーションについての画像データを生成する。 In this embodiment, the case where the GPU 42b generates game image data will be described. However, when executing any application other than the game application, the GPU 42b generates image data for the arbitrary application.
また、DSP42cは、オーディオプロセッサとして機能し、内部メインメモリ42eや外部メインメモリ46に記憶されるサウンドデータや音波形(音色)データを用いて、スピーカ34aから出力する音、音声或いは音楽に対応するオーディオデータを生成する。
The
上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ34およびスピーカ34aに出力される。したがって、ゲーム画面がモニタ34に表示され、ゲームに必要な音(音楽)がスピーカ34aから出力される。
The game image data and audio data generated as described above are read by the
また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。
The input /
入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(送信データとする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(受信データとする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、受信データをフラッシュメモリ44に記憶する。ただし、一定の場合には、受信データをそのまま破棄する。さらに、入出力プロセッサ42aは、ダウンロードサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、ダウンロードデータをフラッシュメモリ44に記憶する。
The input /
また、入出力プロセッサ42aは、コントローラ22や荷重コントローラ36から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40のゲーム処理によって利用された後、バッファ領域から消去される。
The input /
なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格にしたがってコントローラ22や荷重コントローラ36との間で通信を行う。
In this embodiment, as described above, the
また、図面の都合上、図2では、コントローラ22と荷重コントローラ36とをまとめて記載してある。
For convenience of drawing, FIG. 2 shows the
さらに、入出力プロセッサ42aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。
Further, an
詳細な説明は省略するが、図1にも示したように、ゲーム装置12(ハウジング14)には、電源ボタン20a、リセットボタン20bおよびイジェクトボタン20cが設けられる。電源ボタン20aは、システムLSI42に接続される。この電源ボタン20aがオンされると、システムLSI42は、ゲーム装置12の各コンポーネントに図示しないACアダプタを経て電源が供給され、通常の通電状態となるモード(以下、「通常モード」という)を設定する。一方、電源ボタン20aがオフされると、システムLSI42は、ゲーム装置12の一部のコンポーネントのみに電源が供給され、消費電力を必要最低限に抑えるモード(以下、「スタンバイモード」という)を設定する。この実施例では、スタンバイモードが設定された場合には、システムLSI42は、入出力プロセッサ42a、フラッシュメモリ44、外部メインメモリ46、ROM/RTC48および無線通信モジュール50、無線コントローラモジュール52以外のコンポーネントに対して、電源供給を停止する指示を行う。したがって、このスタンバイモードは、CPU40によってアプリケーションの実行が行われないモードである。
Although detailed description is omitted, as shown in FIG. 1, the game apparatus 12 (housing 14) is provided with a
なお、システムLSI42には、スタンバイモードにおいても電源が供給されるが、GPU42b、DSP42cおよびVRAM42dへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。
Although power is supplied to the
また、図示は省略するが、ゲーム装置12のハウジング14内部には、CPU40やシステムLSI42などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。
Although not shown, a fan for discharging the heat of the IC such as the
ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン20aがオフされたときに、すべての回路コンポーネントへの電源供給が完全に停止される。
However, when it is not desired to use the standby mode, the power supply to all the circuit components is completely stopped when the
また、通常モードとスタンバイモードの切り替えは、コントローラ22の電源スイッチ26hのオン/オフの切り替えによっても遠隔操作によって行うことが可能である。当該遠隔操作を行わない場合には、スタンバイモードにおいて無線コントローラモジュール52aへの電源供給を行わない設定にしてもよい。
Further, switching between the normal mode and the standby mode can also be performed by remote operation by switching on / off the
リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク18が排出される。
The
図3(A)ないし図3(E)は、コントローラ22の外観の一例を示す。図3(A)はコントローラ22の先端面を示し、図3(B)はコントローラ22の上面を示し、図3(C)はコントローラ22の右側面を示し、図3(D)はコントローラ22の下面を示し、そして、図3(E)はコントローラ22の後端面を示す。
FIGS. 3A to 3E show an example of the appearance of the
図3(A)ないし図3(E)を参照して、コントローラ22は、たとえばプラスチック成型によって形成されたハウジング22aを有している。ハウジング22aは、略直方体形状であり、ユーザが片手で把持可能な大きさである。ハウジング22a(コントローラ22)には、入力手段(複数のボタンないしスイッチ)26が設けられる。具体的には、図3(B)に示すように、ハウジング22aの上面には、十字キー26a、1ボタン26b、2ボタン26c、Aボタン26d、−ボタン26e、HOMEボタン26f、+ボタン26gおよび電源スイッチ26hが設けられる。また、図3(C)および図3(D)に示すように、ハウジング22aの下面に傾斜面が形成されており、この傾斜面に、Bトリガースイッチ26iが設けられる。
3A to 3E, the
十字キー26aは、4方向プッシュスイッチであり、矢印で示す4つの方向、前(または上)、後ろ(または下)、右および左の操作部を含む。この操作部のいずれか1つを操作することによって、プレイヤによって操作可能なキャラクタまたはオブジェクト(プレイヤキャラクタまたはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりすることができる。 The cross key 26a is a four-way push switch, and includes four operation directions indicated by arrows, front (or up), back (or down), right and left operation units. By operating any one of the operation units, it is possible to instruct the moving direction of a character or object (player character or player object) that can be operated by the player, or to instruct the moving direction of the cursor.
1ボタン26bおよび2ボタン26cは、それぞれ、押しボタンスイッチである。たとえば3次元ゲーム画像を表示する際の視点位置や視点方向、すなわち仮想カメラの位置や画角を調整する等のゲームの操作に使用される。または、1ボタン26bおよび2ボタン26cは、Aボタン26dおよびBトリガースイッチ26iと同じ操作或いは補助的な操作をする場合に用いるようにしてもよい。
Each of the 1
Aボタンスイッチ26dは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。
The
−ボタン26e、HOMEボタン26f、+ボタン26gおよび電源スイッチ26hもまた、押しボタンスイッチである。−ボタン26eは、ゲームモードを選択するために使用される。HOMEボタン26fは、ゲームメニュー(メニュー画面)を表示するために使用される。+ボタン26gは、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ26hは、ゲーム装置12の電源を遠隔操作によってオン/オフするために使用される。
The −
なお、この実施例では、コントローラ22自体をオン/オフするための電源スイッチは設けておらず、コントローラ22の入力手段26のいずれかを操作することによってコントローラ22はオンとなり、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなるようにしてある。
In this embodiment, a power switch for turning on / off the
Bトリガースイッチ26iもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ22で選択した位置を指定したりするために使用される。また、Bトリガースイッチ26iを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bトリガースイッチ26iは、通常のBボタンと同様に機能し、Aボタン26dによって決定したアクションを取り消すなどのために使用される。
The B-
また、図3(E)に示すように、ハウジング22aの後端面に外部拡張コネクタ22bが設けられ、また、図3(B)に示すように、ハウジング22aの上面であり、後端面側にはインジケータ22cが設けられる。外部拡張コネクタ22bは、図示しない別の拡張コントローラを接続するためなどに使用される。インジケータ22cは、たとえば、4つのLEDで構成され、4つのうちのいずれか1つを点灯することにより、点灯LEDに対応するコントローラ22の識別情報(コントローラ番号)を示したり、点灯させるLEDの個数によってコントローラ22の電源残量を示したりすることができる。
Further, as shown in FIG. 3 (E), an
さらに、コントローラ22は、撮像情報演算部80(図4参照)を有しており、図3(A)に示すように、ハウジング22aの先端面には撮像情報演算部80の光入射口22dが設けられる。また、コントローラ22は、スピーカ86(図4参照)を有しており、このスピーカ86は、図3(B)に示すように、ハウジング22aの上面であり、1ボタン26bとHOMEボタン26fとの間に設けられる音抜き孔22eに対応して、ハウジング22a内部に設けられる。
Furthermore, the
なお、図3(A)ないし図3(E)に示したコントローラ22の形状や、各入力手段26の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。
It should be noted that the shape of the
図4はコントローラ22の電気的な構成を示すブロック図である。この図4を参照して、コントローラ22はプロセッサ70を含み、このプロセッサ70には、内部バス(図示せず)によって、外部拡張コネクタ22b、入力手段26、メモリ72、加速度センサ74、無線モジュール76、撮像情報演算部80、LED82(インジケータ22c)、バイブレータ84、スピーカ86および電源回路88が接続される。また、無線モジュール76には、アンテナ78が接続される。
FIG. 4 is a block diagram showing an electrical configuration of the
プロセッサ70は、コントローラ22の全体制御を司り、入力手段26、加速度センサ74および撮像情報演算部80によって入力された情報(入力情報)を、入力データとして無線モジュール76およびアンテナ78を介してゲーム装置12に送信(入力)する。このとき、プロセッサ70は、メモリ72を作業領域ないしバッファ領域として用いる。
The
上述した入力手段26(26a−26i)からの操作信号(操作データ)は、プロセッサ70に入力され、プロセッサ70は操作データを一旦メモリ72に記憶する。
The operation signal (operation data) from the input means 26 (26a-26i) described above is input to the
また、加速度センサ74は、コントローラ22の縦方向(y軸方向)、横方向(x軸方向)および前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ74は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。
Further, the acceleration sensor 74 detects the respective accelerations of the three axes of the
たとえば、加速度センサ74は、第1所定時間毎に、x軸,y軸,z軸の各々についての加速度(ax,ay,az)を検出し、検出した加速度のデータ(加速度データ)をプロセッサ70に入力する。たとえば、加速度センサ74は、各軸方向の加速度を、−2.0g〜2.0g(gは重力加速度である。以下、同じ。)の範囲で検出する。プロセッサ70は、加速度センサ74から与えられる加速度データを、第2所定時間毎に検出し、一旦メモリ72に記憶する。プロセッサ70は、操作データ、加速度データおよび後述するマーカ座標データの少なくとも1つを含む入力データを作成し、作成した入力データを、第3所定時間(たとえば、5msec)毎にゲーム装置12に送信する。
For example, the acceleration sensor 74 detects acceleration (ax, ay, az) for each of the x-axis, y-axis, and z-axis at each first predetermined time, and the detected acceleration data (acceleration data) is processed by the
なお、図3(A)−図3(E)では省略したが、この実施例では、加速度センサ74は、ハウジング22a内部の基板上の十字キー26aが配置される付近に設けられる。
Although omitted in FIGS. 3A to 3E, in this embodiment, the acceleration sensor 74 is provided in the vicinity of the cross key 26a on the substrate inside the
無線モジュール76は、たとえばBluetoothの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ78から放射する。つまり、入力データは、無線モジュール76によって微弱電波信号に変調されてアンテナ78(コントローラ22)から送信される。この微弱電波信号が上述したゲーム装置12に設けられた無線コントローラモジュール52によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置12(CPU40)は、コントローラ22からの入力データを取得することができる。そして、CPU40は、取得した入力データとプログラム(ゲームプログラム)とに従ってゲーム処理を行う。
The
さらに、上述したように、コントローラ22には、撮像情報演算部80が設けられる。この撮像情報演算部80は、赤外線フィルタ80a、レンズ80b、撮像素子80cおよび画像処理回路80dによって構成される。赤外線フィルタ80aは、コントローラ22の前方から入射する光から赤外線のみを通過させる。上述したように、モニタ34の表示画面近傍(周辺)に配置されるマーカ340mおよび340nは、モニタ34の前方に向かって赤外光を出力する赤外LEDである。したがって、赤外線フィルタ80aを設けることによってマーカ340mおよび340nの画像をより正確に撮像することができる。レンズ84は、赤外線フィル82を透過した赤外線を集光して撮像素子80cへ出射する。撮像素子80cは、たとえばCMOSセンサあるいはCCDのような固体撮像素子であり、レンズ80bによって集光された赤外線を撮像する。したがって、撮像素子80cは、赤外線フィルタ80aを通過した赤外線だけを撮像して画像データを生成する。以下では、撮像素子80cによって撮像された画像を撮像画像と呼ぶ。撮像素子80cによって生成された画像データは、画像処理回路80dで処理される。画像処理回路80dは、撮像画像内における撮像対象(マーカ340mおよび340n)の位置を算出し、第4所定時間毎に、当該位置を示す各座標値を撮像データとしてプロセッサ70に出力する。なお、画像処理回路80dにおける処理については後述する。
Furthermore, as described above, the imaging
図5は図1に示した荷重コントローラ36の外観を示す斜視図である。図5に示すように、荷重コントローラ36は、プレイヤがその上に乗る(プレイヤの足を乗せる)台36a、および台36aにかかる荷重を検出するための少なくとも4つの荷重センサ36bを備える。なお、各荷重センサ36bは台36aに内包されており(図6,図7参照)、図5においてはその配置が点線で示されている。
FIG. 5 is a perspective view showing an appearance of the
台36aは、略直方体に形成されており、上面視で略長方形状である。たとえば長方形の短辺が30cm程度に設定され、その長辺が50cm程度に設定される。プレイヤが乗る台36aの上面は平坦にされる。台36aの4隅の側面は、部分的に円柱状に張り出すように形成されている。
The
この台36aにおいて、4つの荷重センサ36bは、所定の間隔を置いて配置される。この実施例では、4つの荷重センサ36bは、台36aの周縁部に、具体的には4隅にそれぞれ配置される。荷重センサ36bの間隔は、台36aに対するプレイヤの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。
In the table 36a, the four
図6は、図5に示した荷重コントローラ36のVI−VI断面図を示すとともに、荷重センサ36bの配置された隅の部分が拡大表示されている。この図6から分かるように、台36aは、プレイヤが乗るための支持板360と脚362を含む。脚362は、荷重センサ36bが配置される箇所に設けられる。この実施例では4つの荷重センサ36bが4隅に配置されるので、4つの脚362が4隅に設けられる。脚362は、たとえばプラスチック成型によって略有底円筒状に形成されており、荷重センサ36bは、脚362内の底面に設けられた球面部品362a上に配置される。支持板360は、この荷重センサ36bを介して脚362に支持される。
6 shows a VI-VI cross-sectional view of the
支持板360は、上面と側面上部とを形成する上層板360a、下面と側面下部とを形成する下層板360b、および上層板360aと下層板360bとの間に設けられる中層板360cを含む。上層板360aと下層板360bとは、たとえばプラスチック成型により形成されており、接着等により一体化される。中層板360cは、たとえば1枚の金属板のプレス成型により形成されている。この中層板360cが、4つの荷重センサ36bの上に固定される。上層板360aは、その下面に格子状のリブ(図示しない)を有しており、当該リブを介して中層板360cに支持されている。
The
したがって、台36aにプレイヤが乗ったときには、その荷重は、支持板360、荷重センサ36bおよび脚362を伝達する。図6に矢印で示したように、入力される荷重によって生じた床からの反作用は、脚362から、球面部品362a、荷重センサ36b、中層板360cを介して、上層板360aに伝達する。
Therefore, when the player gets on the
荷重センサ36bは、たとえば歪ゲージ(歪センサ)式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ36bでは、荷重入力に応じて、起歪体370aが変形して歪が生じる。この歪が、起歪体に貼り付けられた歪センサ370bによって、電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ36bは、入力荷重を示す電圧信号を出力端子から出力する。
The
なお、荷重センサ36bは、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。
The
図5に戻って、荷重コントローラ36には、さらに、電源ボタン36cが設けられる。この電源ボタン36cがオンされると、荷重コントローラ36の各回路コンポーネント(図7参照)に電源が供給される。ただし、荷重コントローラ36は、ゲーム装置12からの指示に従ってオンされる場合もある。また、荷重コントローラ36は、プレイヤが乗っていない状態が一定時間(たとえば、30秒)以上継続すると、電源がオフされる。ただし、荷重コントローラ36が起動されている状態で、電源ボタン36cをオンしたときに、電源がオフされてもよい。
Returning to FIG. 5, the
図7のブロック図には、荷重コントローラ36の電気的な構成の一例が示される。なお、この図7では、信号および通信の流れは実線矢印で示される。破線矢印は、電源の供給を示している。
An example of the electrical configuration of the
荷重コントローラ36は、その動作を制御するためのマイクロコンピュータ(マイコン)100を含む。マイコン100は図示しないCPU、ROMおよびRAM等を含み、CPUはROMに記憶されたプログラムに従って荷重コントローラ36の動作を制御する。
The
マイコン100には、電源ボタン36c、ADコンバータ102、DC−DCコンバータ104および無線モジュール106が接続される。さらに、無線モジュール106には、アンテナ106aが接続される。また、4つの荷重センサ36bは、図3ではロードセル36bとして示される。4つの荷重センサ36bは、それぞれ、増幅器108を介してADコンバータ102に接続される。
The
また、荷重コントローラ36には電源供給のために電池100が収容されている。他の実施例では、電池に代えてACアダプタを接続し、商用電源を供給するようにしてもよい。かかる場合には、DC−DCコンバータに代えて、交流を直流に変換し、直流電圧を降圧および整流する電源回路を設ける必要がある。この実施例では、マイコン100および無線モジュール106への電源の供給は、電池から直接的に行われる。つまり、マイコン100内部の一部のコンポーネント(CPU)と無線モジュール106とには、常に電源が供給されており、電源ボタン36cがオンされたか否か、ゲーム装置12から電源オン(荷重検出)のコマンドが送信されたか否かを検出する。一方、荷重センサ36b、ADコンバータ102および増幅器108には、電池110からの電源がDC−DCコンバータ104を介して供給される。DC−DCコンバータ104は、電池110からの直流電流の電圧値を異なる電圧値に変換して、荷重センサ36b、ADコンバータ102および増幅器108に与える。
The
これら荷重センサ36b、ADコンバータ102および増幅器108への電源供給は、マイコン100によるDC−DCコンバータ104の制御によって、必要に応じて行われるようにしてよい。つまり、マイコン100は、荷重センサ36bを動作させて荷重を検出する必要があると判断されるときに、DC−DCコンバータ104を制御して、各荷重センサ36b、ADコンバータ102および各増幅器108に電源を供給するようにしてよい。
The power supply to the
電源が供給されると、各荷重センサ36bは、入力された荷重を示す信号を出力する。当該信号は各増幅器108で増幅され、ADコンバータ102でアナログ信号からディジタルデータに変換されて、マイコン100に入力される。各荷重センサ36bの検出値には各荷重センサ36bの識別情報が付与されて、いずれの荷重センサ36bの検出値であるかが識別可能にされる。このようにして、マイコン100は、同一時刻における4つの荷重センサ36bのそれぞれの荷重検出値を示すデータを取得することができる。
When power is supplied, each
一方、マイコン100は、荷重センサ36bを動作させる必要がないと判断されるとき、つまり、荷重検出タイミングでないとき、DC−DCコンバータ104を制御して、荷重センサ36b、ADコンバータ102および増幅器108への電源の供給を停止する。このように、荷重コントローラ36では、必要なときにだけ、荷重センサ36bを動作させて荷重の検出を行うことができるので、荷重検出のための電力消費を抑制することができる。
On the other hand, the
荷重検出の必要なときとは、典型的には、ゲーム装置12(図1)が荷重データを取得したいときである。たとえば、ゲーム装置12が荷重情報を必要とするとき、ゲーム装置12は荷重コントローラ36に対して荷重取得命令を送信する。マイコン100は、ゲーム装置12から荷重取得命令を受信したときに、DC−DCコンバータ104を制御して、荷重センサ36b等に電源を供給し、荷重を検出する。一方、マイコン100は、ゲーム装置12から荷重取得命令を受信していないときには、DC−DCコンバータ104を制御して、電源供給を停止する。あるいは、マイコン100は、一定時間ごとに荷重検出タイミングであると判断して、DC−DCコンバータ104を制御するようにしてもよい。このような周期的な荷重取得を行う場合、周期情報は、たとえば、初めにゲーム装置12からマイコン100に与えられ、または、予めマイコン100に記憶されてよい。
The time when load detection is necessary is typically when the game apparatus 12 (FIG. 1) wants to acquire load data. For example, when the
荷重センサ36bからの検出値を示すデータは、荷重コントローラ36の操作データ(入力データ)として、マイコン100から無線モジュール106およびアンテナ106bを介してゲーム装置12(図1)に送信される。たとえば、ゲーム装置12からの命令を受けて荷重検出を行った場合、マイコン100は、ADコンバータ102から荷重センサ36bの検出値データを受信したときに、当該検出値データをゲーム装置12に送信する。あるいは、マイコン100は、一定時間ごとに検出値データをゲーム装置12に送信するようにしてもよい。
Data indicating the detection value from the
なお、無線モジュール106は、ゲーム装置12の無線コントローラモジュール52と同じ無線規格(Bluetooth、無線LANなど)で通信可能にされる。したがって、ゲーム装置12のCPU40は、無線コントローラモジュール52等を介して荷重取得命令を荷重コントローラ36に送信することができる。荷重コントローラ36のマイコン100は、無線モジュール106およびアンテナ106aを介して、ゲーム装置12からの命令を受信し、また、各荷重センサ36bの荷重検出値(または荷重算出値)を含む入力データをゲーム装置12に送信することができる。
The
図8は、コントローラ22および荷重コントローラ36を用いて仮想ゲームをプレイするときの状態を概説する図解図である。図8に示すように、ビデオゲームシステム10でコントローラ22および荷重コントローラ36を用いて仮想ゲームをプレイする際、プレイヤは、荷重コントローラ36の上に乗り、一方の手でコントローラ22を把持する。厳密に言うと、プレイヤは、コントローラ22の先端面(撮像情報演算部80が撮像する光の入射口22d側)がマーカ340mおよび340nの方を向く状態で、荷重コントローラ36に乗り、コントローラ22を把持する。ただし、図1からも分かるように、マーカ340mおよび340nは、モニタ34の画面の横方向と平行に配置されている。この状態で、プレイヤは、コントローラ22が指示する画面上の位置を変更したり、コントローラ22と各マーカ340mおよび340nとの距離を変更したりすることによってゲーム操作を行う。
FIG. 8 is an illustrative view outlining a state when a virtual game is played using the
なお、図8では、プレイヤがモニタ34の画面に対して横を向くように荷重コントローラ36を縦置きにしてあるが、ゲームによっては、プレイヤがモニタ34の画面に対して正面を向くように荷重コントローラ36を横置きにしてよい。
In FIG. 8, the
図9は、マーカ340mおよび340nと、コントローラ22との視野角を説明するための図である。図9に示すように、マーカ340mおよび340nは、それぞれ、視野角θ1の範囲で赤外光を放射する。また、撮像情報演算部80の撮像素子80cは、コントローラ22の視線方向を中心とした視野角θ2の範囲で入射する光を受光することができる。たとえば、マーカ340mおよび340nの視野角θ1は、共に34°(半値角)であり、一方、撮像素子80cの視野角θ2は41°である。プレイヤは、撮像素子80cが2つのマーカ340mおよび340nからの赤外光を受光することが可能な位置および向きとなるように、コントローラ22を把持する。具体的には、撮像素子80cの視野角θ2の中に少なくとも一方のマーカ340mおよび340nが存在し、かつ、マーカ340mまたは340nの少なくとも一方の視野角θ1の中にコントローラ22が存在する状態となるように、プレイヤはコントローラ22を把持する。この状態にあるとき、コントローラ22は、マーカ340mおよび340nの少なくとも一方を検知することができる。プレイヤは、この状態を満たす範囲でコントローラ22の位置および向きを変化させることによってゲーム操作を行うことができる。
FIG. 9 is a diagram for explaining viewing angles between the
なお、コントローラ22の位置および向きがこの範囲外となった場合、コントローラ22の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。
In addition, when the position and orientation of the
操作可能範囲内でコントローラ22が把持される場合、撮像情報演算部80によって各マーカ340mおよび340nの画像が撮像される。すなわち、撮像素子80cによって得られる撮像画像には、撮像対象である各マーカ340mおよび340nの画像(対象画像)が含まれる。図10は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路80dは、各マーカ340mおよび340nの撮像画像における位置を表す座標(マーカ座標)を算出する。
When the
撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路80dは、まず、この高輝度部分を対象画像の候補として検出する。次に、画像処理回路80dは、検出された高輝度部分の大きさに基づいて、その高輝度部分が対象画像であるか否かを判定する。撮像画像には、対象画像である2つのマーカ340mおよび340nの画像340m’および340n’のみならず、窓からの太陽光や部屋の蛍光灯の光によって対象画像以外の画像が含まれていることがある。高輝度部分が対象画像であるか否かの判定処理は、対象画像であるマーカ340mおよび340nの画像340m’および340n’と、それ以外の画像とを区別し、対象画像を正確に検出するために実行される。具体的には、当該判定処理においては、検出された高輝度部分が、予め定められた所定範囲内の大きさであるか否かが判定される。そして、高輝度部分が所定範囲内の大きさである場合には、当該高輝度部分は対象画像を表すと判定される。逆に、高輝度部分が所定範囲内の大きさでない場合には、当該高輝度部分は対象画像以外の画像を表すと判定される。
Since the target image appears as a high luminance part in the image data of the captured image, the
さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路80dは当該高輝度部分の位置を算出する。具体的には、当該高輝度部分の重心位置を算出する。ここでは、当該重心位置の座標をマーカ座標と呼ぶ。また、重心位置は撮像素子80cの解像度よりも詳細なスケールで算出することが可能である。ここでは、撮像素子80cによって撮像された撮像画像の解像度が126×96であるとし、重心位置は1024×768のスケールで算出されるものとする。つまり、マーカ座標は、(0,0)から(1024,768)までの整数値で表現される。
Further, as a result of the above determination processing, for the high luminance portion determined to represent the target image, the
なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きをY軸正方向とし、右向きをX軸正方向とする座標系(XY座標系)で表現されるものとする。 The position in the captured image is represented by a coordinate system (XY coordinate system) in which the upper left of the captured image is the origin, the downward direction is the Y axis positive direction, and the right direction is the X axis positive direction.
また、対象画像が正しく検出される場合には、判定処理によって2つの高輝度部分が対象画像として判定されるので、2箇所のマーカ座標が算出される。画像処理回路80dは、算出された2箇所のマーカ座標を示すデータを出力する。出力されたマーカ座標のデータ(マーカ座標データ)は、上述したように、プロセッサ70によって入力データに含まれ、ゲーム装置12に送信される。
When the target image is correctly detected, two high-intensity parts are determined as the target image by the determination process, so that two marker coordinates are calculated. The
ゲーム装置12(CPU40)は、受信した入力データからマーカ座標データを検出すると、このマーカ座標データに基づいて、モニタ34の画面上におけるコントローラ22の指示位置(指示座標)と、コントローラ22からマーカ340mおよび340nまでの各距離とを算出することができる。具体的には、2つのマーカ座標の中点の位置から、コントローラ22の向いている位置すなわち指示位置が算出される。また、撮像画像における対象画像間の距離が、コントローラ22と、マーカ340mおよび340nとの距離に応じて変化するので、2つのマーカ座標間の距離を算出することによって、ゲーム装置12はコントローラ22とマーカ340mおよび340nとの間の距離を把握できる。
When the game apparatus 12 (CPU 40) detects the marker coordinate data from the received input data, the game apparatus 12 (CPU 40) detects the indicated position (indicated coordinates) of the
上述したように、コントローラ22および荷重コントローラ36を用いて仮想ゲームをプレイする場合、荷重コントローラ36で検出される荷重値に基づいてゲーム処理を実行することができる。この実施例では、仮想ゲームが開始されると、本編の開始に先立って、プレイヤが静止した状態において荷重コントローラ36によって4つの荷重センサ36bの荷重値が検出され、検出された4つの荷重値からプレイヤの体重値が算出(測定)され、測定された体重値が基準値として設定(メインメモリ42eまたは46に記憶)され、たとえば、設定された基準値と仮想ゲームの実行中に検出される荷重値(この実施例では、4つの荷重センサ36bで検出される荷重値の合計値)とに基づいてゲーム処理が実行される。つまり、プレイヤの体重値はゲーム処理を実行する場合の基準値となる。ただし、この実施例の仮想ゲームでは、プレイヤの体重の大小による有利不利を無くすため、現在の荷重値を基準値で割った値(以下、「体重率」という)に基づいてゲーム処理を実行するようにしてある。
As described above, when a virtual game is played using the
図11(A)および図11(B)には、この実施例の仮想ゲームをプレイする場合に、モニタ34に表示されるゲーム画面200の例が示される。たとえば、図11(A)は、プレイヤオブジェクト202が羽ばたいて空を飛行している場合(通常飛行時)のゲーム画面200を示す。また、図11(B)は、プレイヤオブジェクト202がノンプレイヤオブジェクト204に着地するべく、羽を大きく広げてほぼ直立した状態で下降している場合(下降時)のゲーム画面200を示す。図11(A)および図11(B)に示すように、ゲーム画面200には、プレイヤオブジェクト202が表示されるとともに、複数のノンプレイヤオブジェクト204が表示される。プレイヤオブジェクト(ゲームキャラクタ)202は、鳥を模したオブジェクト(動画オブジェクト)である。ノンプレイヤオブジェクト204は、プレイヤオブジェクト202が着地する目標となるオブジェクトである。
FIGS. 11A and 11B show an example of a
この仮想ゲームでは、プレイヤオブジェクト202はプレイヤの操作に従って移動(飛行)し、複数のノンプレイヤオブジェクト204に着地しながら最終的な目標位置(ゴール)を目指す。たとえば、プレイヤオブジェクト202が、着地すべきすべてのノンプレイヤオブジェクト204を経由して、制限時間内にゴールに到達すると、ゲームクリアとなる。一方、プレイヤオブジェクト202がゴールに到達する前に制限時間を超えてしまったり、プレイヤオブジェクト202がノンプレイヤオブジェクト204を囲む海に落ちている時間が一定時間(たとえば、10秒)を超えてしまったり、プレイヤオブジェクト202が一定回数(たとえば、3回)海に落ちてしまったりすると、ゲームオーバとなる。
In this virtual game, the
ゲーム中では、プレイヤは、荷重コントローラ36に乗り、鳥が羽ばたくように両手を上下に動かす(羽ばたき動作を行う)。すると、荷重コントローラ36で検出される荷重値が変化する。したがって、体重率WRも変化する。この体重率WRの変化に基づいて、プレイヤオブジェクト202の移動が制御される。この実施例では、プレイヤが羽ばたき動作を行うときの手(腕)の振りの強さ(体重率WRの変化量)に応じてプレイヤオブジェクト202の移動量(移動速度)が制御され、荷重コントローラ36上におけるプレイヤの重心位置に応じてプレイヤオブジェクト202の移動方向が制御される。
During the game, the player rides on the
具体的には、図12(A)に示すように、プレイヤは、荷重コントローラ36上で、両手を大きく広げて、肩を中心に両手を大きく上下に振るように動作(大きく羽ばたく動作)を行ったり、図12(B)に示すように、プレイヤが、荷重コントローラ36上で、両手を小さく広げて、肘を中心に前腕を上下に振るように動作(小さく羽ばたく動作)を行ったりする。
Specifically, as shown in FIG. 12A, on the
図示は省略するが、プレイヤが大きく羽ばたく動作(大羽ばたき動作)を行うと、プレイヤオブジェクト202も大羽ばたき動作のアニメーションでモニタ34に表示され、プレイヤが小さく羽ばたく動作(小羽ばたき動作)を行うと、プレイヤオブジェクト202も小羽ばたき動作のアニメーションでモニタ34に表示される。同様に図示は省略するが、大羽ばたき動作のアニメーションは、小羽ばたき動作のアニメーションに比べて、羽の可動範囲(上下方向への移動範囲)が広く(大きく)される。
Although illustration is omitted, when the player performs a large flapping motion (large flapping motion), the
ここで、プレイヤが行う、大羽ばたき動作と、小羽ばたき動作との判別方法について説明する。図13には、プレイヤが図12(A)に示したような大羽ばたき動作をした場合における、体重率WRの時間変化のグラフの一例が示される。また、図14には、プレイヤが図12(B)に示したような小羽ばたき動作をした場合における、体重率WRの時間変化のグラフの一例が示される。図13および図14(図15も同じ)では、体重率WRの時間変化は実線の波形で示される。ただし、体重率WRが1.0の場合、つまり体重値(基準値)と現在の荷重値とが一致する場合を基準として、グラフの上側が荷重コントローラ36によって検出されるプレイヤの荷重が加重されている側であり、グラフの下側が荷重コントローラ36によって検出されるプレイヤの荷重が軽減されている側である。
Here, a method for discriminating between large and small flapping motions performed by the player will be described. FIG. 13 shows an example of a graph of the change over time in the weight ratio WR when the player performs a flapping motion as shown in FIG. FIG. 14 shows an example of a graph of a change over time in the weight ratio WR when the player performs a flapping motion as shown in FIG. In FIG. 13 and FIG. 14 (FIG. 15 is also the same), the time change of the body weight ratio WR is shown by a solid line waveform. However, when the weight ratio WR is 1.0, that is, when the weight value (reference value) matches the current load value, the player's load detected by the
図13および図14に示す体重率WRの時間変化を、それぞれ離散フーリエ変換すると、各々の図に示すように、パワースペクトル(周波数のインデックス番号nに対する振幅A)が得られる。図13および図14(図15も同じ)では、パワースペクトルについては、ドットで示してある。このように、離散フーリエ変換処理を実行するのは、プレイヤの羽ばたき動作(特に大羽ばたき動作)を正しく認識するためである。つまり、体重率WRの時間変化の波形からは、プレイヤの小羽ばたき動作と大羽ばたき動作とを区別するのが困難だからである。 When the time change of the weight ratio WR shown in FIGS. 13 and 14 is discrete Fourier transformed, a power spectrum (amplitude A with respect to frequency index number n) is obtained as shown in each figure. In FIGS. 13 and 14 (the same applies to FIG. 15), the power spectrum is indicated by dots. The reason why the discrete Fourier transform process is executed in this way is to correctly recognize the player's flapping motion (particularly the large flapping motion). In other words, it is difficult to distinguish the flapping motion of the player from the flapping motion of the player from the waveform of the time change of the weight ratio WR.
ここで、離散フーリエ変換では、波形のデータ数をxとし、時間刻みをdt(秒)とすると、周波数fは1/(x・dt)刻みとなる。この実施例では、x=30,dt=1/60(ゲームフレーム)であるため、周波数f(Hz)は2刻みとなる。したがって、インデックス番号nを2倍した値が周波数f(Hz)となる。ただし、ゲームフレームは、画面更新単位時間である。 Here, in the discrete Fourier transform, if the number of waveform data is x and the time increment is dt (seconds), the frequency f is in 1 / (x · dt) increments. In this embodiment, since x = 30 and dt = 1/60 (game frame), the frequency f (Hz) becomes 2 steps. Therefore, the value obtained by doubling the index number n is the frequency f (Hz). However, the game frame is a screen update unit time.
図13から分かるように、大羽ばたき動作の場合には、周波数のインデックス番号n=1のときに、振幅Aが最大値となる。また、図14から分かるように、小羽ばたき動作の場合には、周波数のインデックス番号n=2のときに、振幅Aが最大値となる。したがって、体重率WRの時間変化を離散フーリエ変換し、その結果、振幅Aが最大となる場合の周波数のインデックス番号nを調べることにより、大羽ばたき動作であるか、小羽ばたき動作であるかを判別することができると考えられる。ただし、図示は省略するが、実験の結果では、プレイヤが大羽ばたき動作を行った場合においても、ノイズの影響により、周波数のインデックス番号n=2のときに、振幅Aが最大値となることがあった。このため、この実施例では、大羽ばたき動作または小羽ばたき動作を、数1に従って判別するようにしてある。振幅Aが最大値となる周波数のインデックス番号n、または振幅Aが最大値となる周波数のインデックス番号nおよび当該振幅Aが、数1を満たす場合には、小羽ばたき動作と判別され、数1を満たさない場合には、大羽ばたき動作と判別される。ただし、大羽ばたき動作時のノイズ(スペクトルノイズ)の最大値をPn(0.0001)とする。
As can be seen from FIG. 13, in the case of a large flapping operation, the amplitude A becomes the maximum value when the frequency index number n = 1. Further, as can be seen from FIG. 14, in the case of the flapping operation, the amplitude A becomes the maximum value when the frequency index number n = 2. Therefore, by performing discrete Fourier transform on the time change of the body weight ratio WR, as a result, by examining the index number n of the frequency when the amplitude A is maximum, it is determined whether the movement is a large or small flapping operation. I think it can be done. Although illustration is omitted, in the experiment results, even when the player performs a flapping motion, the amplitude A may become the maximum value when the frequency index number n = 2 due to the influence of noise. there were. For this reason, in this embodiment, a large flapping operation or a small flapping operation is discriminated according to the equation (1). When the index number n of the frequency at which the amplitude A becomes the maximum value, or the index number n of the frequency at which the amplitude A becomes the maximum value and the amplitude A satisfy the
[数1]
n≧3
または
n=2でAが最大、かつn=3でA≧Pn
ただし、数1を満たさない場合に、周波数のインデックス番号n=1−15において、すべての振幅AがPn未満である場合には、周期的な動作が何ら行われていないと考えられるため、プレイヤが羽ばたき動作を行っていないと判断するようにしてある。
[Equation 1]
n ≧ 3
Or n = 2, A is maximum, and n = 3, A ≧ Pn
However, if
このように、プレイヤの羽ばたき動作の有無および羽ばたき動作の種類(大羽ばたき動作または小羽ばたき動作)が判別されると、羽ばたきの種類に応じてアニメーションが選択され、選択されたアニメーションが再生される。したがって、上述したように、プレイヤの羽ばたき動作に応じて、プレイヤオブジェクト202の羽ばたき動作のアニメーションがモニタ34に表示されるのである。
Thus, when the presence / absence of the flapping motion of the player and the type of flapping motion (large flapping motion or small flapping motion) are determined, an animation is selected according to the type of flapping, and the selected animation is reproduced. Therefore, as described above, the animation of the flapping motion of the
ただし、プレイヤが羽ばたき動作を行っておらず、プレイヤオブジェクト202が3次元仮想空間内を下降している場合には、プレイヤオブジェクト202が下降中のアニメーション(下降時アニメーション)が再生される。
However, when the player is not flapping, and the
ここで、上述したように、この実施例では、荷重コントローラ36に乗っているプレイヤが羽ばたき動作を行うことにより、その荷重コントローラ36で検出される荷重値が変動し、体重率WRも変動する。したがって、たとえば、荷重コントローラ36に乗っているプレイヤが屈伸運動を行った場合にも、プレイヤが羽ばたき動作を行った場合と同様に、その荷重コントローラ36で検出される荷重値が周期的に変動する。かかる場合の体重率WRの時間変化のグラフの一例が図15に示される。図13ないし図15を比較して分かるように、屈伸運動を行った場合には、羽ばたき動作を行った場合よりも、体重率WRの変動がかなり大きくなる。
Here, as described above, in this embodiment, when a player riding on the
後で具体的に示すが、この実施例では、体重率WRの大きさ(負の値)に応じた推進力がプレイヤオブジェクト202に与えられ、これによって、プレイヤオブジェクト202は3次元仮想空間内を移動する。このため、プレイヤが屈伸運動を行った場合には、プレイヤが羽ばたき動作を行った場合よりも、大きな推進力をプレイヤオブジェクト202に与えることができ、プレイヤオブジェクト202を大きく移動させることができる。しかし、このような屈伸運動は、開発者等が意図する操作方法ではない。
As will be described in detail later, in this embodiment, a propulsive force according to the size (negative value) of the weight ratio WR is given to the
したがって、この実施例では、プレイヤの直前の羽ばたき動作(羽ばたき区間)において、一定の閾値(たとえば、1.3)を超える体重率WRが存在する場合には、屈伸運動のような意図しない動作が行われていると判断して、仮想ゲームのスコアを減点したり、プレイヤオブジェクト202を進行し難くしたりしてある。
Therefore, in this embodiment, if there is a weight ratio WR exceeding a certain threshold (for example, 1.3) in the flapping motion (flapping section) immediately before the player, an unintended motion such as a flexion / extension motion is performed. It is determined that the game is being performed, the score of the virtual game is reduced, or the
この実施例では、前々回の振り下ろし動作の開始から前回(直前)の振り下ろし動作の開始までの区間を、直前の羽ばたき動作(羽ばたき区間)として認識するようにしてある。ただし、図13−図15では、振り下ろし動作の開始時点を一点鎖線で示してある。振り下ろし動作とは、羽ばたき動作において、プレイヤが両手ないし両腕を振り下ろす動作を意味する。この振り下ろし動作の開始の判定方法については、後で詳細に説明することにする。ただし、上述したように、図15に示す体重率WRの時間変化が得られるのは、プレイヤが屈伸運動を行っている場合であるため、後述する判定方法においては、振り下ろし動作の開始が判定されるのではなく、足の曲げ動作の開始が判定されているのである。 In this embodiment, a section from the start of the last swing-down operation to the start of the previous (previous) swing-down operation is recognized as the previous flapping operation (flapping section). However, in FIG. 13 to FIG. 15, the starting point of the swing-down operation is indicated by a one-dot chain line. The swing-down motion means an operation in which the player swings down both hands or arms in the flapping motion. A method for determining the start of the swing-down operation will be described in detail later. However, as described above, the time change of the weight ratio WR shown in FIG. 15 is obtained when the player is performing flexion and extension exercises. Therefore, in the determination method described later, the start of the swing-down motion is determined. Instead, it is determined that a foot bending motion is started.
上述したように、ゲーム中では、体重率WRに基づく推進力Accがプレイヤオブジェクト202に与えられる。この実施例では、推進力Accは、数2に従って算出される。ただし、体重率WRは所定の閾値(この実施例では、0.985)未満である。このように、体重率WRが1.0よりも小さい値である場合に、推進力Accを与えるのは、鳥が羽を振り下ろしたときに推進力を得るのと同様に、プレイヤが振り下ろし動作を行ったときに推進力を得るようにしたためである。したがって、プレイヤが行う羽ばたき動作のうち、両手ないし両腕を上方向に振り上げる動作(振り上げ動作)は、推進量を得るための振り下ろし動作の準備動作であると言える。また、所定の閾値未満としたのは、ノイズによる影響を無くすためである。
As described above, the driving force Acc based on the weight ratio WR is given to the
[数2]
推進力Acc=1.0−体重率WR
ここで、数2から分かるように、体重率WRが小さい程、推進力Accが大きくなる。つまり、荷重値の変動が大きい場合に、推進力Accが大きくなる。また、推進力Accは、体重率WRが所定の閾値未満である場合に与えられ、この推進力Accは1ゲームフレーム毎に、プレイヤオブジェクト202の移動に反映されるため、所定の閾値未満である時間が長いほど、つまり大羽ばたき動作のように羽ばたき動作の周期が長いほど、推進力Accを得る回数が多くなる。結果として、大きい推進力Accがプレイヤオブジェクト202に与えられ、したがって、プレイヤオブジェクト202の移動距離または移動速度が大きくなる(数3および数4参照)。
[Equation 2]
Propulsion Acc = 1.0-weight ratio WR
Here, as can be seen from
数2で算出される推進力Accはスカラ量であるが、3次元仮想空間においては、プレイヤオブジェクト202が直立した状態で頭頂部から真上に延びる単位ベクトル(Yベクトル)AccDirに、そのスカラ量を積分シミュレーションで用いる値(AccSim)に変換して乗算される。ただし、単位ベクトルAccDirは、後述するように、プレイヤの重心位置に応じてプレイヤオブジェクト202がローカル座標のX軸周りおよびY軸周りに回転されることにより、決定される。
The propulsive force Acc calculated by
積分シミュレーションでは、推進力Accに基づいて、移動後のプレイヤオブジェクト202の位置(3次元位置)Posが数3および数4に従って算出される。ただし、プレイヤオブジェクト202は、現在のゲームフレーム(現フレーム)において、頭頂部が向く方向すなわち単位ベクトルAccDirの向きに移動される。また、数3および数4においては、プレイヤオブジェクト202の次のゲームフレーム(次フレーム)の速度をVel_newとし、移動前すなわち現フレームの速度をVel_oldとし、3次元仮想空間の重力加速度ベクトルをGravityとし、現フレームの3次元位置をPos_oldとし、そして、次フレームの3次元位置をPos_newとしてある。また、数3においては、次フレームの速度Vel_newには、プレイヤオブジェクト202が下降時に前後方向に移動する場合の加速度ベクトル(AccBoard×FallTransDir)が反映される。ただし、AccBoardは並進加速度(水平方向の加速度)であり、FallTransDirは並進方向(水平方向)の方向ベクトル(プレイヤオブジェクト202の正面方向または背面方向のベクトル)である。
In the integral simulation, the position (three-dimensional position) Pos of the
[数3]
Vel_new={Vel_old+(AccSim×AccDir)+(AccBoard×FallTransDir)-Gravity}×0.994
[数4]
Pos_new=Pos_old+Vel_new
ただし、この実施例では、重力加速度ベクトルGravity=(0,0.014,0)としてある。ここで、この実施例では、現実世界における距離1mを、3次元仮想空間内における距離10としてあるが、その比率に応じて重力加速度Gravityを設定すると、プレイヤの羽ばたき動作によってプレイヤオブジェクト202を飛行させるために十分な推進力を得るのは困難であるため、実験等により経験的に得られた比較的小さい値に設定される。また、0.994は空気抵抗である。したがって、定数である必要はなく、仮想ゲームの進行状況に応じて可変的に設定するようにしてもよい。
[Equation 3]
Vel_new = {Vel_old + (AccSim × AccDir) + (AccBoard × FallTransDir) -Gravity} × 0.994
[Equation 4]
Pos_new = Pos_old + Vel_new
However, in this embodiment, the gravitational acceleration vector Gravity = (0, 0.014, 0). Here, in this embodiment, the distance 1 m in the real world is set as the
数3から分かるように、加速度ベクトル((AccSim×AccDir)または(AccBoard×FallTransDir))と重力加速度ベクトルGravityとを現フレームの速度Vel_oldに足して、空気抵抗の値を掛けることにより、次フレームの速度Vel_newを得る。また、数4から分かるように、次フレームの速度Vel_newを現フレームの座標Pos_oldに足して、次フレームの座標Pos_newを得る。これは、シミュレーションに使用する推進力AccSimを積分(2回積分)した結果である。
As can be seen from
なお、プレイヤによる羽ばたき動作が無い場合には、体重率WRが1またはほぼ1であるため、シミュレーションに使用する推進力AccSim(加速度ベクトル(AccSim×AccDir))は0となり、数3は数5のように示される。
Note that when there is no flapping motion by the player, the weight ratio WR is 1 or almost 1, so the driving force AccSim (acceleration vector (AccSim × AccDir)) used for the simulation is 0, and
[数5]
Vel_new={Vel_old+(AccBoard×FallTransDir)-Gravity}×0.994
したがって、1ゲームフレーム毎に、次フレームの速度Vel_newのY成分が0.014ずつ減少する。これにより、3次元仮想空間における自由落下が表現される。つまり、数3では、3次元仮想空間の重力場において、推進力が発生したときの物体の並進運動が記述されている。
[Equation 5]
Vel_new = {Vel_old + (AccBoard × FallTransDir) -Gravity} × 0.994
Therefore, for each game frame, the Y component of the velocity Vel_new of the next frame decreases by 0.014. Thereby, free fall in the three-dimensional virtual space is expressed. That is,
また、プレイヤによる羽ばたき動作が有り、プレイヤオブジェクト202が下降していない場合には、数3において、プレイヤオブジェクト202の下降時における前後方向の加速度ベクトル(AccBoard×FallTransDir)は0となる。
Further, when there is a flapping motion by the player and the
このようにして、プレイヤオブジェクトの3次元仮想空間における移動後の3次元位置Pos_newが算出され、数6に示す行列式Aに従って、プレイヤオブジェクト202は、3次元仮想空間に配置される。ただし、数6に示す行列式Aの各要素は次の意味を持つ。要素(Xx,Xy,Xz)はプレイヤオブジェクト202のローカル座標のX軸を当てはめる方向であり、要素(Yx,Yy,Yz)はプレイヤオブジェクト202のローカル座標のY軸を当てはめる方向であり、要素(Zx,Zy,Zz)はプレイヤオブジェクト202のローカル座標のZ軸を当てはめる方向であり、要素(Px,Py,Pz)はプレイヤオブジェクト202のローカル座標の中心(重心)を置くワールド座標(3次元座標)である。
In this way, the three-dimensional position Pos_new after the movement of the player object in the three-dimensional virtual space is calculated, and the
[数6]
[Equation 6]
また、ゲーム中では、荷重コントローラ36上におけるプレイヤの荷重の重心位置に応じて、プレイヤオブジェクト202の進行方向(移動方向)が決定(制御)される。図16(A)は、荷重コントローラ36の上面(支持板360の上層板360aの表面)すなわち重心位置の検出範囲の中心を原点O(0,0)に設定し、水平面内における原点Oからの重心位置のずれ量で、プレイヤオブジェクト202の頭部の向き(移動方向)が決定される。ここでは、荷重コントローラ36の支持板360の横方向が検出範囲のX軸方向であり、その縦方向が検出範囲のY軸方向である。ただし、荷重コントローラ36に正しく乗ったプレイヤの顔の方向(正面方向)は、図16(A)の紙面の上方である。また、図16(A)に示すように、検出範囲の右方向がX軸のプラス方向であり、検出範囲の上方向がY軸のプラス方向である。
Further, during the game, the traveling direction (movement direction) of the
ここで、図16(A)に示す状態において、左上の荷重センサ36bの荷重検出値をR1、左下の荷重センサ36bの荷重検出値をR2、右上の荷重センサ36bの荷重検出値をR3、右下の荷重センサ36bの荷重検出値をR4としたとき、検出範囲の座標系における重心のX座標(XG)は、右荷重値と左荷重値との差分に基づいて算出され、重心のY座標(YG)は上荷重値と下荷重値との差分に基づいて算出される。重心のX座標(XG)は数7によって算出され、重心のY座標(YG)は数8によって算出される。
[数7]
XG=((R3+R4)−(R1+R2))×k1
[数8]
YG=((R1+R3)−(R2+R4))×k2
ここで、k1,k2は定数である。ただし、−1≦XG≦1、−1≦YG≦1である。
In the state shown in FIG. 16A, the load detection value of the upper
[Equation 7]
XG = ((R3 + R4) − (R1 + R2)) × k1
[Equation 8]
YG = ((R1 + R3) − (R2 + R4)) × k2
Here, k1 and k2 are constants. However, −1 ≦ XG ≦ 1 and −1 ≦ YG ≦ 1.
なお、この実施例では、荷重コントローラ36の検出範囲の中心を原点Oに設定するようにしてあるが、プレイヤによって、立ち位置が異なるため、プレイヤが荷重コントローラ36に乗り、体重値を計測している場合の重心位置を原点Oに設定してもよい。
In this embodiment, the center of the detection range of the
この実施例では、プレイヤオブジェクト202が飛行している場合において、下降している場合と下降していない場合とで、プレイヤオブジェクト202の移動方向の制御方法が異なる。以下、それぞれの場合について説明することにする。
In this embodiment, when the
プレイヤオブジェクト202が下降していない場合には、プレイヤオブジェクト202は、荷重コントローラ36で検出される荷重の重心位置のX座標に応じて左右方向に回転され、重心位置のY座標に応じて前後方向に回転される。
When the
重心位置が検出範囲内の領域(I)または領域(III)に含まれ、重心位置のX座標が負の場合には、プレイヤオブジェクト202は、ローカル座標のY軸回りに、反時計周り(左周り)に回転される。また、重心位置が検出範囲内の領域領域(II)または領域(IV)に含まれ、重心位置のX座標が正の場合には、プレイヤオブジェクト202は、ローカル座標のY軸回りに、時計周り(右周り)に回転される。
When the gravity center position is included in the region (I) or region (III) within the detection range and the X coordinate of the gravity center position is negative, the
具体的には、図16(B)に示すように、プレイヤオブジェクト202を真上から見た場合に、重心位置のX座標の負の値に応じて、プレイヤオブジェクト202のローカル座標のY軸の反時計回りの回転量が決定され、重心位置のX座標の正の値に応じて、プレイヤオブジェクト202のローカル座標のY軸の時計周りの回転量が決定される。回転量は、重心位置のX座標の大きさに比例する。また、重心位置のX座標が正の値であれば、プレイヤオブジェクト202は、そのローカル座標のY軸の時計回りに回転し続ける。
Specifically, as shown in FIG. 16B, when the
ただし、この実施例では、ローカル座標は、プレイヤオブジェクト202が直立した状態において、横(水平)方向がX軸方向であり、縦(垂直)方向がY軸方向であり、前後(奥行き)方向がZ軸方向である。また、各軸は、プレイヤオブジェクト202の中心ないし重心を通る。さらに、プレイヤオブジェクト202が直立した状態で、その左手(左の羽)の方向がローカル座標のX軸のプラス方向であり、その上方向がローカル座標のY軸のプラス方向であり、その前方向(腹の方向)がローカル座標のZ軸のプラス方向である。
However, in this embodiment, in the state where the
また、重心位置が検出範囲内の領域(I)または領域(II)に含まれ、重心位置のY座標が正の場合には、図17に示すように、頭部が前方(正面方向)に傾くように、プレイヤオブジェクト202はローカル座標のX軸回りに回転する。正面方向への傾斜量(回転量)は、重心位置のY座標の大きさに比例するが、最大傾斜量はプレイヤオブジェクト202が直立した状態から55度である。
Further, when the center of gravity position is included in the region (I) or region (II) within the detection range and the Y coordinate of the center of gravity position is positive, as shown in FIG. 17, the head is forward (front direction). The
図示は省略するが、重心位置が検出範囲内の領域(III)または領域(IV)に含まれ、重心位置のY座標が負の場合には、プレイヤオブジェクト202は、ローカル座標のX軸回りであり、その背面方向に回転される。ただし、プレイヤオブジェクト202の背面方向への最大傾斜量は35度に設定される。これは、プレイヤオブジェクト202が腹を上にして飛行しているような所望でない状態を回避するためである。
Although illustration is omitted, when the gravity center position is included in the region (III) or region (IV) within the detection range and the Y coordinate of the gravity center position is negative, the
一方、プレイヤオブジェクト202が下降している場合には、プレイヤオブジェクト202は、荷重コントローラ36で検出される荷重の重心位置のX座標に応じて左右方向に回転され、重心位置のY座標に応じて前後方向に並進される。
On the other hand, when the
プレイヤオブジェクト202が下降している場合においても、重心位置のX座標に応じて、プレイヤオブジェクト202はローカル座標のY軸周りに回転される。これは、図16(B)を用いて説明したのと同じであるため、重複した説明は省略する。
Even when the
また、プレイヤオブジェクト202が下降している場合には、図18に示すように、重心位置のY座標に応じて、プレイヤオブジェクト202は、前後方向に移動(並進)される。つまり、かかる場合には、プレイヤオブジェクト202の頭部は傾斜されない。また、並進する場合の移動量(変位量)は、重心位置のY座標の大きさによって決定される。このように、下降時に、重心位置のY座標に応じて並進されるのは、プレイヤオブジェクト202をノンプレイヤオブジェクト204に着地させ易くするためである。重心位置のY座標が正の場合には、プレイヤオブジェクト202は、正面方向に移動(並進)する。このとき、Y座標が大きくなると、移動量も大きくされる。一方、重心位置のY座標が負の場合には、プレイヤオブジェクト202は、正面方向とは逆向き(背面方向)に並進する。このとき、Y座標が小さくなると、つまり負の方向に大きくなると、移動量が大きくされる。ただし、プレイヤオブジェクト202が1ゲームフレームで移動する移動量の最大値は予め設定されている。
Further, when the
また、図13−図15に示したような体重率WRの時間変化から、プレイヤが腕を上方向に振り上げる動作(振り上げ動作)の開始を判定(振り上げ判定)するとともに、腕を下方向に振り下ろす動作(振り下ろし動作)の開始を判定(振り下ろし判定)する。これは、プレイヤの羽ばたき動作とプレイヤオブジェクト202の羽ばたき動作のアニメーションとを同期させるためである。
Further, from the time change of the weight ratio WR as shown in FIG. 13 to FIG. 15, the player determines the start of the operation of swinging up the arm (swing-up operation) (swing-up determination) and moves the arm downward. Judge the start of the swing-down action (down-swing action). This is to synchronize the flapping motion of the player with the flapping motion animation of the
以下、振り下ろし判定の方法および振り上げ判定の方法、およびプレイヤの羽ばたき動作とプレイヤオブジェクト202の羽ばたき動作のアニメーションとの同期について順番に説明することにする。
Hereinafter, the swing-down determination method, the swing-up determination method, and the synchronization of the flapping motion of the player and the animation of the flapping motion of the
この実施例では、現フレームの体重率WRが1つ手前のゲームフレーム(前フレーム)の体重率WRよりも小さく、しかも現フレームの体重率WRの値が一定値(0.985)未満になると、振り下ろし動作の開始であると判定する。また、この実施例では、体重率WRの値が一定値(0.98)以上であり、体重率WRが減少した後に増加すると、振り上げ動作の開始であると判定する。具体的には、2つ手前のゲームフレーム(前々フレーム)の体重率WRよりも前フレームの体重率WRが小さく、しかも現フレームの体重率WRが前フレームの体重率WRよりも一定値(0.001)以上大きい場合に、体重率WRが減少した後に増加したことが検出され、さらに、前フレームの体重率が一定値(0.98)以上である場合に、振り上げ動作の開始が判定される。このように、体重率WRがその基準値(1.0)よりも大きい側(上側)において、一定区間(3ゲームフレーム分)における体重率WRの変化に基づいて、局所的(一時的)に体重率WRが減少(荷重値の減少)して増加したことが検出されるときに、振り上げ動作の開始が判定される。これらは、図13および図14に示したような体重率WRの時間変化に基づいて、経験的に得られた判定方法である。 In this embodiment, when the weight ratio WR of the current frame is smaller than the weight ratio WR of the previous game frame (previous frame) and the value of the weight ratio WR of the current frame is less than a certain value (0.985). It is determined that the swing-down operation is started. In this embodiment, when the weight ratio WR is equal to or greater than a certain value (0.98) and increases after the weight ratio WR is decreased, it is determined that the swing-up operation is started. Specifically, the weight ratio WR of the previous frame is smaller than the weight ratio WR of the two previous game frames (the frame before two frames), and the weight ratio WR of the current frame is a constant value ( When the weight ratio WR is greater than 0.001), it is detected that the weight ratio WR has increased, and when the weight ratio of the previous frame is equal to or greater than a certain value (0.98), the start of the swing-up operation is determined. Is done. In this way, on the side (upper side) where the weight ratio WR is larger than the reference value (1.0), locally (temporarily) based on the change in the weight ratio WR in a certain section (for three game frames). When it is detected that the weight ratio WR has increased (decreased load value), it is determined that the swing-up operation has started. These are determination methods obtained empirically based on the time change of the weight ratio WR as shown in FIG. 13 and FIG.
ただし、体重率WRが減少するというのは、現フレームの体重率WRが前フレームの体重率WRよりも小さいことを意味し、体重率WRが増加するというのは、前フレームの体重率WRが前フレームの体重率WRよりも大きいことを意味する。また、振り上げ動作の開始を判定する場合に、体重率WRが一定値以上であることを条件としたのは、図13に示したように、体重率WRが0.9あたりの極小値の前後で振り上げ動作の開始であると判定するのを防止するためである。つまり、この実施例では、プレイヤが大羽ばたき動作を行っている場合に、両手(両腕)を肩と同じくらいの高さ或いは肩よりも上方の高さに振り上げた動作を、「振り上げ動作」として判定するようにしているのである。これが、開発者等が意図するプレイヤの「振り上げ動作」である。 However, the weight ratio WR decreases means that the weight ratio WR of the current frame is smaller than the weight ratio WR of the previous frame, and the weight ratio WR increases that the weight ratio WR of the previous frame It means that it is larger than the weight ratio WR of the previous frame. Moreover, when determining the start of the swing-up operation, the condition that the weight ratio WR is equal to or greater than a certain value is that the weight ratio WR is around the minimum value per 0.9 as shown in FIG. This is to prevent it from being determined that the swing-up operation has started. That is, in this embodiment, when the player is performing a large flapping motion, the motion of swinging both hands (both arms) to the same height as the shoulder or above the shoulder is referred to as the “swinging motion”. It is determined to be as follows. This is the “swing-up operation” of the player intended by the developer or the like.
なお、上述した図13−図15では、振り下ろし動作の開始時を一点鎖線で示す。また、図13では、振り上げ動作の開始時を二点鎖線で示す。 In FIGS. 13 to 15 described above, the start time of the swing-down operation is indicated by a one-dot chain line. In FIG. 13, the start of the swing-up operation is indicated by a two-dot chain line.
次に、プレイヤの羽ばたき動作と、プレイヤオブジェクト202の羽ばたき動作のアニメーションとの同期について説明する。まず、プレイヤオブジェクト202のアニメーションは、羽ばたきの種類(大小)に拘わらず、いずれも60フレーム(60コマ)で構成されている。上述したように、羽ばたきの種類で異なるのは、羽の可動範囲の大きさだけである。以下には、大羽ばたき動作の場合について、プレイヤの羽ばたき動作とプレイヤオブジェクト202の羽ばたき動作のアニメーションとの同期について説明するが、小羽ばたき動作についても同様である。
Next, synchronization between the flapping motion of the player and the flapping motion animation of the
図19には、大羽ばたきのアニメーションについての60フレーム(アニメーションフレーム)のうち、特徴的なアニメーションフレーム(ここでは、0(60),7,15,22,30,37,45,52)が抜き出される。アニメーションフレームは、0から始まって59まで進み、次のアニメーションフレームで0(60)に戻る。ただし、図19では、簡単のため、プレイヤオブジェクト202の頭部、胴体および羽のみを示してある。また、図19では、プレイヤオブジェクト202の正面方向は、紙面に対して垂直方向である。さらに、図19では、上段に、アニメーションフレームの0から30までを示し、下段に、アニメーションフレームの30から60(0)までを示してある。
In FIG. 19, out of 60 frames (animation frames) of the flapping animation, characteristic animation frames (here, 0 (60), 7, 15, 22, 30, 37, 45, 52) are extracted. Is issued. The animation frame starts from 0 and proceeds to 59, and returns to 0 (60) in the next animation frame. However, in FIG. 19, for the sake of simplicity, only the head, trunk, and wings of the
図19に示すように、アニメーションフレームが0のときには、プレイヤオブジェクト202は、たとえば、水平方向に羽を広げた状態であり、3次元仮想空間の水平面に対して羽がなす角度は0度である。この実施例では、アニメーションフレームが再生されると、プレイヤオブジェクト202は、水平方向に羽を広げた状態から上に羽を振り上げ、アニメーションフレームが15フレームで羽が最高位置に達し、その後、羽が振り下ろされる。そして、アニメーションフレームが45フレームで羽が最下位置に達し、その後、羽が振り上げられて、60フレーム(0フレーム)で初期の状態に戻る。
As shown in FIG. 19, when the animation frame is 0, the
したがって、15フレームから45フレーム(15→22→30→37→45)の手前までが、プレイヤオブジェクト202の振り下ろし動作についてのアニメーションフレームに相当し、45フレームから15フレーム(45→52→60(0)→7→15)の手前までが、プレイヤオブジェクト202の振り上げ動作についてのアニメーションフレームに相当する。
Therefore, the frame from the 15th frame to the 45th frame (15 → 22 → 30 → 37 → 45) corresponds to the animation frame for the swinging motion of the
また、図19に示すように、プレイヤオブジェクト202の振り下ろし動作またはそのアニメーションフレーム(15−45フレーム)に対応して、振り下ろし加速度発生可能区間(15−30フレーム)が設定され、プレイヤオブジェクト202の振り上げ動作またはそのアニメーションフレーム(45−15フレーム)に対応して、振り上げ加速度発生可能区間(30−60フレーム)が設定される。つまり、振り下ろし加速度発生可能区間は、振り下ろし動作についてのアニメーションフレームの開始から途中までの間に設定される。また、振り上げ加速度発生可能区間は、振り下ろし動作についてのアニメーションフレームの途中から振り上げ動作のアニメーションフレームの途中までの間に設定される。したがって、振り上げ加速度発生可能区間は、振り下ろし動作の一部(振り上げ動作の予備動作)についてのアニメーションフレーム(30−45)を含む。図19に示すように振り下ろし加速度発生可能区間および振り上げ加速度発生可能区間を設定した理由については後述するため、ここでは省略する。
Further, as shown in FIG. 19, a swing-down acceleration possible section (15-30 frames) is set corresponding to the swing-down motion of the
なお、アニメーションフレームは60個(60コマ)であるが、小数点でフレーム数(フレーム番号)を指定することもできる。たとえば、フレーム番号が0のアニメーションフレームにおけるプレイヤオブジェクト202の腕の角度(水平面となす角度)が0度であり、フレーム番号が1のアニメーションフレームにおけるプレイヤオブジェクト202の腕の角度が10度であるとし、フレーム番号として0.5を指定すると、腕の角度が5度のプレイヤオブジェクト202を得ることができる。したがって、理論上、プレイヤオブジェクト202のポーズの種類は、無限大に存在する。
Although there are 60 animation frames (60 frames), the number of frames (frame number) can be specified with a decimal point. For example, it is assumed that the arm angle of the
この実施例では、プレイヤの羽ばたき動作と、プレイヤオブジェクト202のアニメーションフレームの同期を取る方法として、振り下ろし動作の開始の判定時または振り下ろし動作の開始の判定後におけるアニメーションフレームの進め方Aと、振り上げ動作の開始の判定時または振り上げ動作の判定後におけるアニメーションフレームの進め方Bとがある。ただし、プレイヤが小羽ばたき動作を行う場合には、振り上げ動作が判定されることがないため、アニメーションフレームの進め方Aのみによって同期が取られる。すなわち、プレイヤが、図12(A)を用いて説明したように、開発者等の意図するような大羽ばたき動作を行う場合には、振り下ろし動作と振り上げ動作とが判定されるため、アニメーションフレームの進め方Aおよび進め方Bを用いて、プレイヤの羽ばたき動作とプレイヤオブジェクト202のアニメーションフレームとの同期を取るようにしている。
In this embodiment, as a method of synchronizing the flapping motion of the player and the animation frame of the
まず、アニメーションフレームの進め方Aについて説明する。上述したように、振り下ろし動作の開始が判定されると、後述する振り下ろし加速フラグ404p(図21参照)がオンされる。振り下ろし加速フラグ404pがオンになっている場合に、現在のアニメーションフレームが図19に示す振り下ろし加速度発生可能区間(フレーム番号:15以上30未満)内であるかどうかが判断される。
First, the animation frame advancement method A will be described. As described above, when the start of the swing-down operation is determined, a swing-down
なお、後述するように、振り下ろし加速フラグ404pは、振り下ろし加速度発生可能区間において、アニメーションフレームの更新(進行)速度を加速させると、オフされる。
As will be described later, the swing-down
振り下ろし動作の開始が判定されたときに、現在のアニメーションフレームが振り下ろし加速度発生可能区間内である場合には、振り下ろし加速度が発生される。つまり、アニメーションフレームの加速度FrameAccに0より大きい値が設定され、更新速度がゲームフレーム(1/60(秒))よりも速くされる。この実施例では、アニメーションフレームのフレーム加速度FrameAccは、数9に従って算出される。ただし、AnimFrameMaxは、アニメーションフレームの最大フレーム数(この実施例では、60)である。また、CycleSwingは、1回の羽ばたき動作に要した時間(羽ばたき区間)、すなわち振り下ろし判定が行われた時間間隔であり、ゲームフレーム数で表わされる。以下、同様である。したがって、羽ばたき動作を行っている周期が短ければ短いほど、アニメーションフレームのフレーム加速度FrameAccが大きい値に設定されて、アニメーションフレームの更新速度が大きくなる。
When it is determined that the swing-down operation is started, if the current animation frame is within the swing-down acceleration generation possible section, a swing-down acceleration is generated. That is, a value larger than 0 is set in the acceleration FrameAcc of the animation frame, and the update speed is made faster than the game frame (1/60 (second)). In this embodiment, the frame acceleration FrameAcc of the animation frame is calculated according to
[数9]
FrameAcc=AnimFrameMax/CycleSwing
このように、プレイヤの振り下ろし動作が行われた時または直後に、フレーム加速度FrameAccが発生されると、その瞬間にアニメーションフレームの進行が速くなるとともに、プレイヤオブジェクト202が羽を振り下ろすアニメーションが再生される。このため、プレイヤの羽ばたき動作と、プレイヤオブジェクト202の羽ばたき動作とが同期(リンク)しているように見える。その後、アニメーションフレームは、次の振り下ろし動作または振り上げ動作が判定されるまで、惰性で進行する。つまり、何ら加速が無ければ(FrameAcc=0)、アニメーションフレームのフレーム速度が空気抵抗によって減少していき、やがて0になり、アニメーションの再生が止まる。
[Equation 9]
FrameAcc = AnimFrameMax / CycleSwing
As described above, when the frame acceleration FrameAcc is generated immediately after the player's swing-down motion is performed, the animation frame progresses at that moment, and the animation in which the
具体的には、ゲーム画面を表示(更新)する時のアニメーションフレームのフレーム数は、数10および数11に従って決定される。ただし、アニメーションフレームの更新(進行)速度(フレーム速度)はFrameVelで示され、アニメーションフレームの加速度(フレーム加速度)はFrameAccで示され、アニメーションフレームのフレーム数(番号)はFrameで示される。また、現フレーム(今回)の値には、oldが付され、次フレーム(次回)の値には、newが付される。したがって、数10では、空気抵抗を考慮した次回のフレーム速度が算出され、また、数11では、次回のフレーム番号が算出される。
Specifically, the number of animation frames when the game screen is displayed (updated) is determined according to
[数10]
FrameVel_new=(FrameVel_old+FrameAcc)×0.99
[数11]
Frame_new=Frame_old+FrameVel_new
ただし、0.99は空気抵抗である。したがって、定数である必要はなく、仮想ゲームの進行状況に応じて可変的に設定してもよい。
[Equation 10]
FrameVel_new = (FrameVel_old + FrameAcc) x 0.99
[Equation 11]
Frame_new = Frame_old + FrameVel_new
However, 0.99 is air resistance. Therefore, it need not be a constant, and may be variably set according to the progress of the virtual game.
一方、振り下ろし動作の開始が判定されたときに、現在のアニメーションフレームが振り下ろし加速度発生可能区間内でない場合には、振り下ろし加速度発生可能区間まで、数12で算出されたフレーム速度(ただし、フレーム加速度AnimeVcc=0)に従ってアニメーションフレームが進められる。 On the other hand, if the current animation frame is not within the swing-down acceleration possible section when the start of the swing-down operation is determined, the frame speed calculated by Equation 12 (however, up to the swing-down acceleration possible section) (however, The animation frame is advanced according to the frame acceleration (AimVcc = 0).
[数12]
FrameVel_old=AnimFrameMax×1.7/CycleSwing
そして、アニメーションフレームが振り下ろし加速度発生可能区間まで進められると、上述したように、フレーム加速度FrameAccが発生され、プレイヤの羽ばたき動作と、プレイヤオブジェクト202の羽ばたき動作との同期が取られる。
[Equation 12]
FrameVel_old = AnimFrameMax × 1.7 / CycleSwing
Then, when the animation frame is swung down and advanced to a section where acceleration can be generated, the frame acceleration FrameAcc is generated as described above, and the flapping motion of the player and the flapping motion of the
ここで、数9と数12とを比較して分かるように、数12で得られるフレーム速度は、数9で得られる加速度FrameAccの1.7倍である。たとえば、アニメーションフレームが7フレームである場合に、振り下ろし動作の開始の判定があると、アニメーションフレームは、数12で得られた1.7倍のフレーム速度で15フレームまで到達し、その後、数10で算出されたフレーム速度で30フレームまで到達する。ただし、この場合には、振り下ろし動作は、振り下ろし加速度発生可能区間外で行われているため、15フレームから30フレームまでの間における加速度FrameAccは0である。したがって、アニメーションフレームのフレーム速度は、15フレームから30フレームまでの間で空気抵抗(ここでは、0.99)によって減速(減衰)される。つまり、このような場合には、7フレームから15フレームまでのフレーム速度は、15フレームから30フレームまで(振り下ろし加速発生可能区間)のフレーム速度よりも大きく、等速である。
Here, as can be seen by comparing
したがって、この場合には、アニメーションフレームの更新速度を15フレームから30フレームまでの間で、一旦加速した後に減速させることにはならないため、プレイヤオブジェクト202に、実際の鳥(比較的大型の鳥)が羽ばたいているような動作を実行させることができない。
Therefore, in this case, since the update speed of the animation frame is once accelerated between 15 frames and 30 frames and then cannot be decelerated, an actual bird (relatively large bird) is given to the
しかし、上述のように、振り下ろし動作の開始の判定が振り下ろし加速度発生可能区間外であった場合には、1.7倍のフレーム速度で15フレームまでアニメーションフレームが進行され、15フレームから30フレームの間でフレーム速度が減速され、次の振り下ろし判定が行われるようなサイクル(以下、「サイクルA」と呼ぶことにする)となるので、プレイヤが1回の羽ばたき動作を行うことにより、プレイヤオブジェクト202が1回の羽ばたき動作を行う(アニメーションフレームが0フレームから59フレームまで進行する)ことが保障される。また、このような場合には、振り下ろし加速度発生可能区間では、フレーム速度は加速されないが、プレイヤが振り下ろし動作を開始したことに応じて、1.7倍のフレーム速度でアニメーションフレームは更新される。つまり、プレイヤの動作に応じてプレイヤオブジェクト202の動作が制御されているため、プレイヤは違和感を覚えることはない。
However, as described above, when the determination of the start of the swing-down operation is outside the section where the swing-down acceleration can be generated, the animation frame is advanced up to 15 frames at a frame speed of 1.7 times, and from the 15th frame to the 30th frame. Since the frame speed is reduced between frames and the next swing-down determination is performed (hereinafter referred to as “cycle A”), the player performs one flapping motion, It is ensured that the
また、数12に従って算出されるフレーム速度は、振り下ろし動作の開始の判定の時間間隔である羽ばたき区間(羽ばたき周期)CycleSwingに反比例しているので、ゆっくり(遅く)羽ばたき動作を行うと、サイクルAがゆっくり(遅く)進行し、速く羽ばたき動作を行うと、サイクルAが速く進行する。
Further, the frame speed calculated according to
このため、振り下ろし動作の開始を判定するだけでアニメーションフレームの進行を制御した場合であっても、プレイヤの羽ばたき動作とアニメーションとの同期を取ることができる。 For this reason, even if the progress of the animation frame is controlled only by determining the start of the swing-down motion, the player's flapping motion and the animation can be synchronized.
上述したように、振り下ろし動作の開始が判定されたときに、現在のアニメーションフレームが振り下ろし加速度発生可能区間内である場合には、フレーム加速度FrameAccを発生させて、その後に、数10および数11に従って惰性でアニメーションフレームを更新させるようにしてある。しかし、これだけでは、アニメーションフレームがプレイヤの行う次の振り下ろし動作を含む羽ばたき動作に対して遅延してしまうことになる。
As described above, when the start of the swing-down operation is determined, and the current animation frame is within the swing-down acceleration generation possible section, the frame acceleration FrameAcc is generated, and then the
この遅延を解消するため、この実施例では、プレイヤが大羽ばたき動作を行うことにより、振り上げ動作の開始を判定することができる場合には、アニメーションフレームの進め方Aのみならず、アニメーションフレームの進め方Bを用いて、アニメーションフレームの進行を制御するようにしてある。 In order to eliminate this delay, in this embodiment, when the player can determine the start of the swing-up motion by performing a large flapping motion, not only the animation frame progression method A but also the animation frame progression method B Is used to control the progress of the animation frame.
すなわち、アニメーションフレームの進め方Aにより、或る程度、プレイヤの羽ばたき動作とアニメーションフレームとの同期を取り、さらに、アニメーションフレームの進め方Bにより、より正確に、プレイヤの羽ばたき動作とアニメーションフレームとの同期を取るようにしているのである。 That is, the animation frame advancement method A synchronizes the flapping motion of the player and the animation frame to some extent, and the animation frame advancement method B more accurately synchronizes the player flapping motion and the animation frame. I am trying to take it.
なお、上述したように、数12で得られるフレーム速度は、数9で得られる加速度FrameAccの1.7倍である。これは、プレイヤの羽ばたき動作(振り下ろし動作)によって得られる加速度FrameAccよりも、フレーム速度を大きくするために設定された倍率であり、実験等により経験的に得られた数値である。
Note that, as described above, the frame speed obtained by
次に、アニメーションフレームの進め方Bについて説明する。上述したように、振り上げ動作の開始が判定されると、後述する振り上げ加速フラグ404n(図21参照)がオンされる。振り上げ加速フラグ404nがオンになっている場合に、現在のアニメーションフレームが図19に示す振り上げ加速度発生可能区間(フレーム番号:30以上60未満)内であるかどうかを判断する。
Next, the animation frame progression method B will be described. As described above, when the start of the swing-up operation is determined, a swing-up
なお、後述するように、振り上げ加速フラグ404nは、振り上げ加速度発生可能区間において、アニメーションフレームの更新速度を加速させると、オフされる。
As will be described later, the swing-up
振り上げ動作の開始が判定さたときに、現在のアニメーションフレームが振り上げ加速度発生可能区間内である場合には、振り上げ加速度が発生される。つまり、フレーム加速度FrameAccに0より大きい値(この実施例では、2)が設定され、更新速度がゲームフレーム(1/60(秒))よりも速くされる。ただし、現在のフレーム速度FrameVel_oldが2以上である場合には、フレーム加速度FrameAccは0に設定される。つまり、プレイヤの振り上げ動作が行われた時またはその直後に、フレーム加速度FrameAccを発生され、その瞬間にアニメーションフレームの進行が最も速くなるとともに、プレイヤオブジェクト202が羽を振り上げるアニメーションが再生される。このため、プレイヤの羽ばたき動作と、プレイヤオブジェクト202の羽ばたき動作とが同期しているように見える。したがって、プレイヤの羽ばたき動作とアニメーションフレームとが同期しているように見えない場合には、プレイヤは、自身の羽ばたき動作、特に振り上げ動作が正しく行われていないことを、画面(ゲーム画面200等)を通して理解することができる。これによって、プレイヤに開発者等が意図する(正しい)羽ばたき動作(トレーニングの動作)を行わせることを促進することになると考えられる。
When it is determined that the swing-up operation is started, if the current animation frame is within the swing-acceleration-producible section, a swing-up acceleration is generated. That is, a value greater than 0 (2 in this embodiment) is set to the frame acceleration FrameAcc, and the update speed is made faster than the game frame (1/60 (second)). However, when the current frame speed FrameVel_old is 2 or more, the frame acceleration FrameAcc is set to 0. That is, the frame acceleration FrameAcc is generated when the player swings up or immediately after that, and the animation frame progresses at the fastest moment and the animation in which the
一方、振り上げ動作の開始が判定されたときに、現在のアニメーションフレームが振り上げ加速度発生可能区間内でない場合には、アニメーションフレームは、惰性で進行される。詳細な説明は省略するが、振り上げ動作の場合のフレーム数の算出も、上述した数10および数11に従って算出される。
On the other hand, when it is determined that the swing-up operation has started, if the current animation frame is not within the swing-acceleration acceleration-producible section, the animation frame proceeds with inertia. Although detailed description is omitted, the calculation of the number of frames in the case of the swing-up operation is also calculated according to the above-described
ここで、振り下ろし加速度発生可能区間を15フレーム以上30フレーム未満に設定しているのは、その間にアニメーションフレームの進行を加速させると、プレイヤの振り下ろし動作に同期して、プレイヤオブジェクト202が羽を振り下ろしていると、プレイヤが感じるからである。
Here, the section where the swing-down acceleration can be generated is set to 15 frames or more and less than 30 frames. If the progress of the animation frame is accelerated during that time, the
仮に、アニメーションフレームが37フレーム付近において、アニメーションフレームの進行を加速させ、アニメーションフレームが45フレーム付近まで速く進んだとすると、プレイヤオブジェクト202が、羽を振り下ろした後、直ぐに羽を振り上げたと、プレイヤが感じてしまう。すなわち、プレイヤは、振り下ろし動作を行ったにも関わらず、振り上げ動作が認識されたと感じてしまうことになる。
If the animation frame is accelerated at around 37 frames and the animation frame progresses rapidly to around 45 frames, the player feels that the
また、振り上げ加速度発生可能区間を30フレーム以上60フレーム未満に設定しているのは、そのうち、45フレーム以上60フレーム未満については、振り下げ加速度発生可能区間と同様に、その間にアニメーションフレームの進行を加速させると、プレイヤの振り上げ動作に同期して、プレイヤオブジェクト202が羽を振り上げていると、プレイヤが感じるからである。
In addition, the period in which the swing acceleration can be generated is set to 30 frames or more and less than 60 frames. Among them, for 45 frames or more and less than 60 frames, the animation frame progresses during the same period as the swing acceleration generation possible section. This is because, when accelerated, the player feels that the
さらに、振り上げ加速度発生可能区間に30フレーム以上45フレーム未満を含んでいるのは、数ゲームフレーム後に来るはずのプレイヤの振り下ろし動作の開始の判定に備えて、出来るだけ振り下ろし加速度発生可能区間にアニメーションフレームを近づけておくためである。この場合、アニメーションフレームの30フレーム以上45フレーム未満においては、見た目には振り下ろしのアニメーションであるため、プレイヤが振り上げ動作を行ったにも関わらず、振り下ろしのアニメーションが再生されることになる。しかし、羽ばたき動作では、プレイヤは振り上げ動作を行った直後には振り下ろし動作を行うため、次の動作を予測してアニメーションフレームを進め易くすることにより、プレイヤの羽ばたき動作とアニメーションとの同期を取ることができる。逆に、プレイヤは振り下ろし動作を行った直後に振り上げ動作を行う必要性は無く、振り下ろし動作を行った後にそのままの姿勢を維持することがあったり、プレイヤが振り上げ動作を行ったとしても、上述した手法では、その振り上げ動作の開始を判定されないことがあったりするため、次の動作を予測してアニメーションフレームを進め易くしておく必要がない場合もある。 Furthermore, the range in which the swing-up acceleration can be generated includes 30 frames or more and less than 45 frames in the range in which the swing-down acceleration can be generated as much as possible in preparation for the determination of the start of the swing-down motion of the player who should come after several game frames. This is to keep the animation frame close. In this case, when the animation frame is 30 frames or more and less than 45 frames, the animation is a swing-down animation. Therefore, the swing-down animation is reproduced even though the player performs a swing-up motion. However, in the flapping motion, the player performs the swing-down motion immediately after performing the swing-up motion. Therefore, the next motion is predicted and the animation frame is easily advanced to synchronize the flapping motion of the player with the animation. be able to. Conversely, there is no need for the player to perform the swing-up operation immediately after performing the swing-down operation, and the player may maintain the same posture after performing the swing-down operation, or even if the player performs the swing-up operation, In the above-described method, the start of the swing-up operation may not be determined, and there is a case where it is not necessary to predict the next operation and advance the animation frame easily.
また、振り上げ加速度発生可能区間に30フレーム以上45フレーム未満を含んでいるのは、上述したサイクルAにおいて、1.7倍のフレーム速度で15フレームまで進める(追いつく)部分(以下、「補正区間」という)があるが、この補正区間を小さくするためである。具体的には、振り上げ加速度発生可能区間が長いと、当該区間において、振り上げ動作の開始が判定されると、アニメーションフレームの更新速度(フレーム速度)が加速され、アニメーションフレームの進行が大きくなる。これによって、プレイヤの振り下ろし動作後の振り上げ動作によるフレーム加速度FrameAccが得られ、次に振り下ろし動作の開始が判定されるときに、アニメーションフレームが15フレーム付近まで進んでいる可能性が高くなる。つまり、補正区間を縮めることができる。また、タイミングによっては、補正区間が無くなることもある。補正区間が無くなった場合には、15フレームから30フレームの間で振り下ろし動作の開始が判定され、アニメーションフレームが一旦加速された後に、減速されることになる。かかる場合には、プレイヤの羽ばたき動作とアニメーションとが正確に同期する。 In addition, the period in which the swing acceleration can be generated includes 30 frames or more and less than 45 frames. In the cycle A described above, the portion that advances (catches up) to 15 frames at a frame rate of 1.7 times (hereinafter referred to as “correction section”). This is to reduce the correction interval. Specifically, when the swing acceleration generation possible section is long, when the start of the swing-up operation is determined in the section, the animation frame update speed (frame speed) is accelerated and the progress of the animation frame increases. As a result, the frame acceleration FrameAcc is obtained by the swing-up operation after the player's swing-down motion, and when it is determined that the swing-down motion starts next, there is a high possibility that the animation frame has advanced to around 15 frames. That is, the correction section can be shortened. Also, depending on the timing, the correction section may be lost. When there is no correction section, the start of the swing-down operation is determined between 15 and 30 frames, and the animation frame is once accelerated and then decelerated. In such a case, the flapping motion of the player and the animation are accurately synchronized.
また、図示は省略するが、プレイヤが小羽ばたき動作を行う場合には、振り上げ判定が行われなくても、振り下ろし加速度発生可能区間においてアニメーションフレームを加速するだけで、プレイヤの羽ばたき動作とプレイヤオブジェクト202の羽ばたき動作のアニメーションとの同期を取ることができる。これは、プレイヤが大羽ばたき動作を行う場合にも同様である。したがって、振り上げ動作の開始の判定処理および振り上げ加速度発生可能区間における加速処理を実行しなくてもよいとも考えられる。 Although illustration is omitted, when the player performs a flapping motion, even if the swing-up determination is not performed, the flapping motion of the player and the player object can be determined by accelerating the animation frame in the swing-acceleration possible section. It is possible to synchronize with the animation of the flapping motion of 202. This is the same when the player performs a flapping motion. Therefore, it may be considered that the determination process for starting the swing-up operation and the acceleration process in the section where the swing-up acceleration can be generated need not be executed.
しかし、この実施例では、より正確に同期を取るために、振り上げ動作の開始の判定処理を行うとともに、振り上げ加速度発生可能区間において加速処理を実行するようにしてある。 However, in this embodiment, in order to achieve more accurate synchronization, determination processing for starting the swing-up operation is performed, and acceleration processing is performed in a section where the swing-up acceleration can be generated.
図20には、図2に示したメインメモリ(42e,46)のメモリマップ400の一例を示す図解図である。図20に示すように、メインメモリ(42e,46)には、プログラム記憶領域402およびデータ記憶領域4040が設けられる。プログラム記憶領域402には、ゲームプログラムが記憶され、ゲームプログラムは、メイン処理プログラム402a、画像生成プログラム402b、画像表示プログラム402c、荷重取得プログラム402d、体重率算出プログラム402e、重心算出プログラム402f、動作判別プログラム402g、並進運動算出プログラム402h、回転運動算出プログラム402iおよびアニメーション同期プログラム402jなどによって構成される。
FIG. 20 is an illustrative view showing one example of a memory map 400 of the main memory (42e, 46) shown in FIG. As shown in FIG. 20, the main memory (42e, 46) is provided with a
メイン処理プログラム402aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム402bは、後述する画像データ404bを用いて、ゲーム画像データを生成(更新)するためのプログラムである。画像表示プログラム402cは、画像生成プログラム402bに従って生成されたゲーム画像データをゲーム画面(200など)としてモニタ34に表示(出力)するためのプログラムである。
The
荷重取得プログラム402dは、荷重コントローラ36で計測(検出)される現在の荷重値を取得するためのプログラムである。具体的には、4つの荷重センサ36bのそれぞれで検出される荷重値が合計される。この実施例では、仮想ゲームの本編の開始に先立って、プレイヤが荷重コントローラ36の上に乗り、静止した状態で、当該プレイヤの体重値が検出される。この体重値に対応する数値データが取得され、後述する基準値データ404fとしてデータ記憶領域404に記憶される。また、ゲーム中では、1ゲームフレーム毎に荷重値が検出され、検出された荷重値に対応する数値データが取得され、後述する現荷重値データ404gとしてデータ記憶領域404に記憶される。
The load acquisition program 402d is a program for acquiring the current load value measured (detected) by the
体重率算出プログラム402eは、荷重取得プログラム402dに従って取得された現在(現フレーム)の荷重値を、同じく荷重取得プログラム402dに従って取得されたプレイヤの体重値(基準値)で割った体重率WRを1ゲームフレーム毎に算出するためのプログラムである。この体重率算出プログラム402eに従って算出された体重率WRの数値データが体重率データとして後述する体重率データバッファ404aに時系列に従って記憶される。
The weight
重心算出プログラム402fは、荷重取得プログラム402dに従って検出された各荷重センサ36bにおける荷重値を用いて、数7および数8に従って重心位置の座標(XG,YG)を算出し、算出した座標(XG,YG)に対応する座標データを後述する重心位置データ404hとしてデータ記憶領域404に記憶するためのプログラムである。
The center-of-
動作判別プログラム402gは、1ゲームフレーム毎に算出される体重率WRの時間変化を、一定時間(この実施例では、30ゲームフレーム)毎に離散フーリエ変換した結果に基づいて、プレイヤによる羽ばたき動作の有無および羽ばたき動作の種類(大羽ばたき動作または小羽ばたき動作)を判別するためのプログラムである。 The motion determination program 402g performs the flapping motion of the player based on the result of the discrete Fourier transform of the time change of the weight ratio WR calculated for each game frame every fixed time (in this embodiment, 30 game frames). This is a program for determining presence / absence and type of flapping motion (large flapping motion or small flapping motion).
並進運動算出プログラム402hは、羽ばたき動作によって得られる推進力または重心算出プログラム402fに従って算出された重心位置のY座標(YG)に基づいて、プレイヤオブジェクト202の一定時間(1ゲームフレーム)後の位置(3次元座標)を算出するためのプログラムである。
Based on the propulsive force obtained by the flapping motion or the Y coordinate (YG) of the center of gravity calculated according to the center of
回転運動算出プログラム402iは、重心算出プログラム402fに従って算出された重心位置の座標(XG,YG)に基づいて、プレイヤオブジェクト202のローカル座標のX軸回りの回転量およびローカル座標のY軸回りの回転量を算出するためのプログラムである。アニメーション同期プログラム402jは、プレイヤの羽ばたき動作に、プレイヤオブジェクト202の羽ばたき動作のアニメーションを同期させるためのプログラムである。
The rotational motion calculation program 402i, based on the coordinates (XG, YG) of the center of gravity position calculated according to the center of
なお、図示は省略するが、ゲームプログラムには、音出力プログラムやバックアッププログラムなども含まれる。音出力プログラムは、プレイヤオブジェクトの音声(擬声音)、効果音、音楽(BGM)のようなゲームに必要な音を生成し、スピーカ34aから出力するためのプログラムである。バックアッププログラムは、メインメモリ(42e,46)に記憶されたゲームデータ(途中データ,結果データ)を、フラッシュメモリ44やSDカードにセーブするためのプログラムである。
Although not shown, the game program includes a sound output program and a backup program. The sound output program is a program for generating sounds necessary for the game, such as player object sounds (sounds), sound effects, and music (BGM), and outputting the sounds from the
図21には、データ記憶領域404の具体的な内容が示される。図21に示すように、データ記憶領域404には、体重率データバッファ404aが設けられる。また、データ記憶領域404には、画像データ404b、大羽ばたきアニメーションデータ404c、小羽ばたきアニメーションデータ404d、下降時アニメーションデータ404e、基準値データ404f、現荷重値データ404gおよび重心位置データ404hが記憶される。さらに、データ記憶領域404には、下降中フラグ404i、体重率下降フラグ404j、振り上げ判定フラグ404k、振り下ろし判定フラグ404m、振り上げ加速フラグ404n、振り下ろし加速フラグ404p、大羽ばたきフラグ404q、小羽ばたきフラグ404r、着地成功フラグ404s、着地失敗フラグ404t、ゲームクリアフラグ404uおよびゲームオーバフラグ404vが設けられる。
FIG. 21 shows specific contents of the
体重率データバッファ404aは、体重率算出プログラム402eに従って1ゲームフレーム毎に算出される体重率データを、時系列に従って記憶するためのデータバッファである。
The weight
画像データ404bは、画像生成プログラム402bに従ってゲーム画像データを生成する際に使用されるポリゴンデータやテクスチャデータなどのデータである。大羽ばたきアニメーションデータ404cは、プレイヤオブジェクト202が大羽ばたき動作する場合のアニメーションのデータであって、60個(コマ)のアニメーションフレームで構成される。小羽ばたきアニメーションデータ404dは、プレイヤオブジェクト202が小羽ばたき動作する場合のアニメーションのデータであって、60個のアニメーションフレームで構成される。上述したように、大羽ばたきと小羽ばたきとでは、羽の可動範囲が異なるだけである。下降時アニメーションデータ404eは、プレイヤオブジェクト202が下降する場合のアニメーションのデータであって、45個のアニメーションフレームで構成される。
The
基準値データ404fは、仮想ゲームの本編に先立って荷重取得プログラム402dに従って取得された荷重値すなわちプレイヤの体重値についての数値データである。現荷重値データ404gは、荷重取得プログラム402dに従って取得される現在(現フレーム)の荷重値についての数値データである。重心位置データ404hは、重心算出プログラム402fに従って算出される現在(現フレーム)の重心位置の座標(XG,YG)についての座標データである。
The reference value data 404f is numerical data regarding the load value acquired according to the load acquisition program 402d prior to the main part of the virtual game, that is, the weight value of the player. The current
下降中フラグ404iは、プレイヤオブジェクト202が下降中であるかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。プレイヤオブジェクト202が下降中である場合には、下降中フラグ404iは成立(オン)され、レジスタにデータ値「1」が設定される。一方、プレイヤオブジェクト202が下降中でない場合には、下降中フラグ404iは不成立(オフ)され、レジスタにデータ値「0」が設定される。
The descending flag 404i is a flag for determining whether or not the
体重率下降フラグ404jは、体重率WRが下降(減少)しているかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。体重率WRが下降している場合には、体重率下降フラグ404jはオンされ、レジスタにデータ値「1」が設定される。一方、体重率WRが下降していない場合すなわち体重率WRが上昇したり変化しなかったりする場合には、体重率下降フラグ404jはオフされ、レジスタにデータ値「0」が設定される。
The weight
振り上げ判定フラグ404kは、振り上げ動作の開始が判定されたかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。振り上げ動作の開始が判定されると、振り上げ判定フラグ404kはオンされ、レジスタにデータ値「1」が設定される。一方、振り下ろし動作の開始が判定されると、振り上げ判定フラグ404kはオフされ、レジスタにデータ値「0」が設定される。ただし、後述する振り下ろし判定フラグ404mがオンされた場合にも、振り上げ判定フラグ404kはオフされる。
The swing-up determination flag 404k is a flag for determining whether or not the start of the swing-up operation has been determined, and includes a 1-bit register. When the start of the swing-up operation is determined, the swing-up determination flag 404k is turned on, and the data value “1” is set in the register. On the other hand, when the start of the swing-down operation is determined, the swing-up determination flag 404k is turned off, and the data value “0” is set in the register. However, the swing-up determination flag 404k is also turned off when a later-described swing-down
振り下ろし判定フラグ404mは、振り下ろし動作の開始が判定されたかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。振り下ろし動作の開始が判定されると、振り下ろし判定フラグ404mはオンされ、レジスタにデータ値「1」が設定される。一方、振り上げ動作の開始が判定されると、振り下ろし判定フラグ404mはオフされ、レジスタにデータ値「0」が設定される。ただし、上述した振り上げ判定フラグ404kがオンされた場合にも、振り下ろし判定フラグ404mはオフされる。
The swing-down
振り上げ加速フラグ404nは、振り上げ動作に応じてアニメーションフレームを加速させたか否かを判定するためのフラグであり、1ビットのレジスタで構成される。振り上げ動作の開始が判定されると、振り上げ加速フラグ404nはオンされ、レジスタにデータ値「1」が設定される。また、振り上げ動作の開始が判定され、アニメーションフレームが加速されると、振り上げ加速フラグ404nはオフされ、レジスタにデータ値「0」が設定される。
The swing-up
振り下ろし加速フラグ404pは、振り下ろし動作に応じてアニメーションフレームを加速させたか否かを判定するためのフラグであり、1ビットのレジスタで構成される。振り下ろし動作の開始が判定されると、振り下ろし加速フラグ404pはオンされ、レジスタにデータ値「1」が設定される。また、振り下ろし動作の開始が判定され、アニメーションフレームが加速されると、振り下ろし加速フラグ404pはオフされ、レジスタにデータ値「0」が設定される。
The swing-down
大羽ばたきフラグ404qは、大羽ばたき動作が判別されたかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。大羽ばたき動作が判別されると、大羽ばたきフラグ404qはオンされ、レジスタにデータ値「1」が設定される。一方、大羽ばたき動作が判別されなければ、大羽ばたきフラグ404qはオフされ、レジスタにデータ値「0」が設定される。ただし、後述する小羽ばたきフラグ404rがオンされた場合やプレイヤが羽ばたき動作を行っていない場合にも、大羽ばたきフラグ404qはオフされる。
The large flapping
小羽ばたきフラグ404rは、小羽ばたき動作が判別されたかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。小羽ばたき動作が判別されると、小羽ばたきフラグ404rはオンされ、レジスタにデータ値「1」が設定される。一方、小羽ばたき動作が判別されなければ、小羽ばたきフラグ404rはオフされ、レジスタにデータ値「0」が設定される。ただし、上述した大羽ばたきフラグ404qがオンされた場合やプレイヤが羽ばたき動作を行っていない場合にも、小羽ばたきフラグ404rはオフされる。
The fluttering flag 404r is a flag for determining whether or not the flapping operation is discriminated, and is configured by a 1-bit register. When the flapping operation is determined, the flapping flag 404r is turned on, and the data value “1” is set in the register. On the other hand, if the flapping operation is not discriminated, the flapping flag 404r is turned off and the data value “0” is set in the register. However, the small flapping flag 404r is also turned off when the above-described large
着地成功フラグ404sは、プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に成功したかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に成功すると、着地成功フラグ404sはオンされ、レジスタにデータ値「1」が設定される。一方、プレイヤオブジェクト202がノンプレイヤオブジェクト204に着地に成功していなければ、着地成功フラグ404sはオフされ、レジスタにデータ値「0」が設定される。
The landing
着地失敗フラグ404tは、プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に失敗したかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に失敗すると、着地失敗フラグ404tはオンされ、レジスタにデータ値「1」が設定される。一方、プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に失敗していなければ、着地失敗フラグ404tはオフされ、レジスタにデータ値「0」が設定される。
The
ゲームクリアフラグ404uは、仮想ゲームがクリアされたかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。ゲームクリアされると、ゲームクリアフラグ404uがオンされ、レジスタにデータ値「1」が設定される。一方、ゲームクリアでなければ、ゲームクリアフラグ404uがオフされ、レジスタにデータ値「0」が設定される。 The game clear flag 404u is a flag for determining whether or not the virtual game has been cleared, and includes a 1-bit register. When the game is cleared, the game clear flag 404u is turned on, and the data value “1” is set in the register. On the other hand, if the game is not cleared, the game clear flag 404u is turned off, and the data value “0” is set in the register.
ゲームオーバフラグ404vは、仮想ゲームがゲームオーバになったかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。ゲームオーバになると、ゲームオーバフラグ404vがオンされ、レジスタにデータ値「1」が設定される。一方、ゲームオーバでなければ、ゲームオーバフラグ404vがオフされ、レジスタにデータ値「0」が設定される。
The game over
なお、図示は省略するが、データ記憶領域404には、音データのような他のデータが記憶され、ゲームプログラムの実行に必要なタイマ(カウンタ)や他のフラグが設けられる。
Although not shown, the
具体的には、図2に示したCPU40が図22−図25に示すフロー図に従って全体処理を実行する。図示は省略するが、全体処理とは別のタスクにより、CPU40は、一定時間(30ゲームフレーム)毎に、体重率WRの時間変化を離散フーリエ変換する処理を実行する。
Specifically, the
図22に示すように、全体処理を開始すると、ステップS1で、初期設定を実行する。このステップS1では、CPU40は、体重率データバッファ404a、基準値データ404f、現荷重値データ404gおよび重心位置データ404hをクリアしたり、画像データ404b、大羽ばたきアニメーションデータ404c、小羽ばたきアニメーションデータ404dおよび下降時アニメーションデータ404eをデータ記憶領域404にロードしたり、各種フラグ404i−404vをオフしたりする。
As shown in FIG. 22, when the entire process is started, initial setting is executed in step S1. In this step S1, the
次のステップS3では、プレイヤの体重値を検出し、基準値として記憶する。つまり、CPU40は、仮想ゲームの本編の開始に先立って、4つの荷重センサ36bで検出された荷重値の合計を体重値として取得し、その数値データを基準値データ404fとしてデータ記憶領域404に記憶する。そして、ステップS5で、仮想ゲームの本編を開始する。
In the next step S3, the weight value of the player is detected and stored as a reference value. That is, prior to the start of the main part of the virtual game, the
続いて、ステップS7では、現在(現フレーム)の荷重値を取得し、取得した荷重値を記憶する。つまり、CPU40は、4つの荷重センサ36bで検出された荷重値の合計を現在の荷重値として取得し、その数値データを現荷重値データ404gとしてデータ記憶領域404に記憶する。
Subsequently, in step S7, the current (current frame) load value is acquired, and the acquired load value is stored. That is, the
なお、ステップS7−S79の処理のスキャンタイムは、1ゲームフレーム(1/60(秒))であるため、仮想ゲーム中では、1ゲームフレーム毎に、現在の荷重値が検出される。つまり、現荷重値データ404gは、1ゲームフレーム毎に更新される。このことは、次の重心位置データ404hも同様である。
Since the scan time of the processing of steps S7 to S79 is one game frame (1/60 (second)), the current load value is detected for each game frame in the virtual game. That is, the current
次のステップS9では、現在の重心位置を算出し、算出した重心位置を記憶する。つまり、CPU40は、4つの荷重センサ36bから取得した荷重値を用いて、数2および数3に従って、現フレームの重心位置の座標(XG,YG)を算出し、算出した重心位置の座標(XG,YG)についての座標データを重心位置データ404hとしてデータ記憶領域404に記憶する。
In the next step S9, the current center of gravity position is calculated, and the calculated center of gravity position is stored. That is, the
続いて、ステップS11では、後述する動作判別処理(図26−図28参照)を実行する。次のステップS13では、動作判別処理の結果に基づいて、大羽ばたきかどうかを判断する。ここでは、CPU40は、大羽ばたきフラグ404qがオンであるかどうかを判断する。ステップS13で“YES”であれば、つまり大羽ばたきフラグ404qがオンであれば、大羽ばたきであると判断して、ステップS15で、積分シミュレーションで使用する推進力AccSimに、体重率WRを用いて算出された推進力Accに0.05を掛けた値を設定し(AccSim=Acc×0.05)、ステップS17で、大羽ばたきのアニメーションを選択して、図23に示すステップS25に進む。
Subsequently, in step S11, an operation determination process (see FIGS. 26 to 28) described later is executed. In the next step S13, it is determined based on the result of the operation determination process whether or not it is fluttering. Here, the
また、ステップS13で“NO”であれば、つまり大羽ばたきフラグ404qがオフであれば、ステップS19で、小羽ばたきであるかどうかを判断する。つまり、CPU40は、小羽ばたきフラグ404rがオンであるかどうかを判断する。ステップS19で“NO”であれば、つまり小羽ばたきでなければ、プレイヤが羽ばたき動作を行っていないと判断して、そのままステップS25に進む。一方、ステップS19で“YES”であれば、つまり小羽ばたきであれば、ステップS21で、積分シミュレーションで使用する推進力AccSimに、体重率WRを用いて算出された推進力Accに0.0425を掛けた値を設定し(AccSim=Acc×0.0425)、ステップS23で、小羽ばたきのアニメーションを選択して、ステップS25に進む。
If “NO” in the step S13, that is, if the large flapping
図23に示すステップS25では、重心の前後すなわち重心位置のY座標(YG)による並進加速度AccBoardを算出する。次のステップS27では、プレイヤオブジェクト202の移動後(次フレーム)の速度Vel_newを数3に従って算出する。続いて、ステップS29では、速度Vel_newが最大速度VelMaxを超えているかどうかを判断する。ステップS29で“NO”であれば、つまり速度Vel_newが最大速度VelMax以下であれば、そのままステップS33に進む。一方、ステップS29で“YES”であれば、つまり速度Vel_newが最大速度VelMaxを超えていれば、ステップS31で、速度Vel_newに最大速度VelMaxを設定して、ステップS33に進む。つまり、ステップS31では、速度Vel_newが最大速度VelMaxで制限される。
In step S25 shown in FIG. 23, the translational acceleration AccBoard based on the Y coordinate (YG) of the center of gravity position, that is, before and after the center of gravity is calculated. In the next step S27, the velocity Vel_new after the movement (next frame) of the
ステップS33では、プレイヤオブジェクト202の移動後の3次元位置Pos_newを数4に従って算出する。次のステップS35では、プレイヤオブジェクト202が下降中であるかどうかを判断する。ここでは、CPU40は、プレイヤオブジェクト202の現在の速度Vel_oldのY成分が一定値(この実施例では、−0.7)未満であるかどうかを判断する。ステップS35で“NO”であれば、つまり現在の速度Vel_oldのY成分が一定値以上であれば、プレイヤオブジェクト202は下降中でないと判断し、ステップS39で、重心位置のX座標(XG)およびY座標(YG)に基づいて、プレイヤオブジェクト202の回転量を算出し、ステップS41で、下降中フラグ404iをオフして、図24に示すステップ53に進む。
In step S33, the three-dimensional position Pos_new after the movement of the
つまり、ステップS39では、CPU40は、重心位置のY座標(YG)に基づいてローカル座標のX軸周りの回転量と、重心位置のX座標(XG)に基づいてローカル座標のY軸周りの回転量とを算出する。このX軸周りの回転量とY軸周りの回転量とによって、まず、3次元仮想空間において、プレイヤオブジェクト202のローカル座標のZ軸を当てはめる方向(Zベクトル(Xz,Yz,Zz))を決定する。次に、このZベクトルに直交し、プレイヤオブジェクト202の左手方向に延びるローカル座標のX軸を当てはめる方向(Xベクトル(Xx,Yx,Zx))を決定する。さらに、ZベクトルとXベクトルとの外積を求めて、3次元仮想空間において、プレイヤオブジェクト202のローカル座標のY軸を当てはめる方向(Yベクトル(Xy,Yy,Zy))すなわち単位ベクトルAccDirを決定する。ただし、Xベクトル、YベクトルおよびZベクトルは、大きさ「1」の単位ベクトルである。
That is, in step S39, the
一方、ステップS35で“YES”であれば、つまり現在の速度Vel_oldのY成分が一定値未満であれば、プレイヤオブジェクト202は下降中であると判断して、ステップS36で、重心位置のX座標(XG)に基づいて、プレイヤオブジェクト202の回転量を算出し、ステップS39で、下降時アニメーションを選択して、図24に示すステップS43に進む。
On the other hand, if “YES” in the step S35, that is, if the Y component of the current velocity Vel_old is less than a predetermined value, it is determined that the
つまり、ステップS36では、CPU40は、重心位置のX座標(XG)に基づいて、プレイヤオブジェクト202のローカル座標のY軸周りの回転量のみを算出し、3次元仮想空間において、プレイヤオブジェクト202のローカル座標のZ軸を当てはめる方向(Zベクトル)を決定する。その後、上述したように、3次元仮想空間において、プレイヤオブジェクト202のローカル座標のX軸を当てはめる方向(Xベクトル)を決定し、さらに、3次元仮想空間において、プレイヤオブジェクト202のローカル座標のY軸を当てはめる方向(Yベクトル)を決定する。
That is, in step S36, the
図24に示すステップS43では、下降中フラグ404iがオフであるかどうかを判断する。つまり、CPU40は、プレイヤオブジェクト202が下降を開始したかどうかを判断するのである。ステップS43で“YES”であれば、つまり下降中フラグ404iがオフであれば、プレイヤオブジェクト202が下降を開始したと判断して、ステップS45で、下降中フラグ404iをオンし、ステップS47で、アニメーションフレームFrame_newにフレーム番号の初期値(この実施例では、0)を設定し、ステップS51で、決定されたアニメーションフレームFrame_newのアニメーションを設定して、図25に示すステップS59に進む。
In step S43 shown in FIG. 24, it is determined whether or not the descending flag 404i is off. That is, the
一方、ステップS43で“NO”であれば、つまり下降中フラグ404iがオンであれば、プレイヤオブジェクト202は既に下降中であると判断して、ステップS49でアニメーションフレームFrame_newに1加算して、ステップS51に進む。ただし、アニメーションフレームFrame_newの現在の値が「44」である場合には、つまりアニメーションフレームが最終フレームである場合には、ステップS49においてアニメーションフレームFrame_newに1加算されると、その値は「0」に設定される。つまり、アニメーションフレームのフレーム番号が初期値に戻される。
On the other hand, if “NO” in the step S43, that is, if the descending flag 404i is turned on, it is determined that the
また、図23に示したように、プレイヤオブジェクト202が下降中でない場合には、ステップS37で“NO”となり、ステップS41で下降中フラグ404iをオフして後に、ステップS53で、ステップS17またはS23で選択された羽ばたきアニメーション(大羽ばたきアニメーション,小羽ばたきアニメーション)と現在の羽ばたきアニメーションとが異なるかどうかを判断する。ステップS53で“NO”であれば、つまり選択された羽ばたきアニメーションと現在の羽ばたきアニメーションとが一致している場合には、そのままステップS57に進む。一方、ステップS53で“YES”であれば、つまり選択された羽ばたきアニメーションと現在の羽ばたきアニメーションとが異なる場合には、ステップS55で、羽ばたきアニメーションを切り替えて、ステップS57に進む。
Also, as shown in FIG. 23, when the
なお、ステップS55では、単にアニメーションを切り替えるようにしてあるが、大羽ばたきのアニメーションと小羽ばたきのアニメーションとを一気に切り替えると、ゲーム画面200を見ているプレイヤが違和感を覚えてしまう。このため、この実施例では、それらのアニメーションをブレンドするようにしてある。簡単に説明すると、たとえば、大羽ばたきのアニメーションから小羽ばたきのアニメーションに切り替える場合には、両方のアニメーションを再生する。たとえば、アニメーションを切り替えた瞬間では、大羽ばたきの再生比率は1.0であり、小羽ばたきの再生比率は0.0である。ただし、大羽ばたきのアニメーションと小羽ばたきのアニメーションとは、アニメーションフレームのフレーム番号は一致している。その再生比率が一定時間(この実施例では、30ゲームフレーム=0.5秒)の間で次第に(たとえば、線形的に、または段階的に)変化され、つまり大羽ばたきの再生比率が減少されるとともに、小羽ばたきの再生比率が増加され、アニメーションの切替開始から一定時間が経過すると(たとえば、30ゲームフレーム目には)、大羽ばたきの再生比率が0.0となり、小羽ばたきの再生比率が1.0となる。したがって、大羽ばたきのアニメーションから小羽ばたきのアニメーションに切り替えられる。説明は省略するが、小羽ばたきのアニメーションから大羽ばたきのアニメーションに切り替える場合も同様である。
In step S55, the animation is simply switched. However, if the large-flapping animation and the small-flapping animation are switched at once, the player watching the
図24に戻って、ステップS57では、後述する同期処理(図29−図31)を実行する。続いて、図25に示すステップS59では、所定の場所に着地成功したかどうかを判断する。ここでは、CPU40は、着地すべきノンプレイヤオブジェクト204に着地したかどうかを判断するのである。詳細な説明は省略するが、着地すべきノンプレイヤオブジェクト204は、予め設定されていたり、仮想ゲームの進行に応じて可変的に設定されたりする。ただし、CPU40は、プレイヤオブジェクト202と着地すべきノンプレイヤオブジェクト204との当たりを判定して、当該ノンプレイヤオブジェクト204上にプレイヤオブジェクト202が乗っているすなわち着地しているかどうかを判断するのである。
Returning to FIG. 24, in step S57, a synchronization process (FIGS. 29 to 31) described later is executed. Subsequently, in step S59 shown in FIG. 25, it is determined whether or not the landing is successful at a predetermined place. Here, the
ステップS59で“YES”であれば、つまり所定の場所に着地成功したと判断すると、ステップS61で、着地成功フラグ404sをオンして、ステップS67に進む。ステップS59で“NO”であれば、つまりプレイヤオブジェクト202が飛行中であったり、海に落ちてしまったり、既に着地したことのあるノンプレイヤオブジェクト204に再度着地したりした場合には、所定の場所に着地成功していないと判断して、ステップS63で、所定の場所に着地失敗かどうかを判断する。ここでは、CPU40は、プレイヤオブジェクト202が着地すべきノンプレイヤオブジェクト204以外のノンプレイヤオブジェクト204に着地したり、ノンプレイヤオブジェクト204を囲む海に落ちたりしたかどうかを判断する。
If “YES” in the step S59, that is, if it is determined that the landing has been successfully made at a predetermined place, the landing
ステップS63で“NO”であれば、つまりプレイヤオブジェクト202が飛行中である場合には、所定の場所に着地失敗していないと判断して、そのままステップS67に進む。一方、ステップS63で“YES”であれば、つまりプレイヤオブジェクト202が着地すべきノンプレイヤオブジェクト204以外のノンプレイヤオブジェクト204に着地したり、プレイヤオブジェクト202がノンプレイヤオブジェクト204を囲む海に落ちてしまったりした場合には、所定の場所に着地失敗したと判断して、ステップS65で、着地失敗フラグ404tをオンして、そのままステップS71に進む。
If “NO” in the step S63, that is, if the
ステップS67では、ゲームクリアかどうかを判断する。つまり、CPU40は、プレイヤオブジェクト202が、所定の着地点をすべて経由して、ゴールに到着したかどうかを判断する。ステップS67で“YES”であれば、つまりゲームクリアであれば、ステップS69で、ゲームクリアフラグ404uをオンして、ステップS75に進む。
In step S67, it is determined whether or not the game is cleared. That is, the
一方、ステップS67で“NO”であれば、つまりゲームクリアでなければ、ステップS71で、ゲームオーバであるかどうかを判断する。ここでは、CPU40は、プレイヤオブジェクト202がゴールに到達する前に、制限時間を超えてしまったり、プレイヤオブジェクト202が所定回数(たとえば、3回)着地に失敗したり、プレイヤオブジェクト202が海に落ちている時間が所定時間(たとえば、10秒)を超えたりしたかどうかを判断する。ステップS71で“NO”であれば、つまりゲームオーバでなければ、そのままステップS75に進む。一方、ステップS71で“YES”であれば、つまりゲームオーバであれば、ステップS73で、ゲームオーバフラグ404vをオンして、ステップS75に進む。
On the other hand, if “NO” in the step S67, that is, if the game is not cleared, it is determined whether or not the game is over in a step S71. Here, the
ステップS75では、ゲーム画像を生成する。ここでは、CPU40は、数6で示す行列式Aに従ってプレイヤオブジェクト202を3次元仮想空間に配置するとともに、ステップS51で設定されたアニメーションフレームのアニメーションを下降時アニメーションデータ404eから読み出したり、ステップS57の同期処理で設定されたアニメーションフレームのアニメーションを羽ばたきアニメーションデータ(404c,404d)から読み出したりして描画(更新)する。また、ノンプレイヤオブジェクト204を含む背景画像を描画(更新)する。さらに、着地成功フラグ404s、着地失敗フラグ404t、ゲームクリアフラグ404uまたはゲームオーバフラグ404vがオンであれば、着地成功、着地失敗、ゲームクリアまたはゲームオーバを表現する画像を生成する。たとえば、着地成功、着地失敗、ゲームクリアまたはゲームオーバを示す旨のテキストがゲーム画像に上書きされる。このとき、図示は省略するが、着地成功、着地失敗、ゲームクリアまたはゲームオーバに応じた効果音ないし音楽が出力される。
In step S75, a game image is generated. Here, the
次のステップS77では、ゲーム画像を表示する。つまり、CPU40は、ステップS75で生成(更新)したゲーム画像をゲーム画面(200など)としてモニタ34に表示する。そして、ステップS79では、ゲーム終了かどうかを判断する。ここでは、CPU40は、プレイヤの操作によって、ゲーム終了が指示されたかどうかを判断する。ステップS79で“NO”であれば、つまりゲーム終了でなければ、図22に示したステップS7に戻る。ただし、ゲームオーバになった場合には、仮想ゲームが最初から開始される。一方、ステップS79で“YES”であれば、つまりゲーム終了であれば、そのまま全体処理を終了する。
In the next step S77, a game image is displayed. That is, the
なお、図示は省略するが、着地成功フラグ404sおよび着地失敗フラグ404tは、ステップS75よりも後であり、ステップS79で“NO”となり、ステップS7に戻るまでの間に、オフされる。
Although illustration is omitted, the landing
図26−図28は、図22に示したステップS11の動作判別処理のフロー図である。図26に示すように、CPU40は、動作判別処理を開始すると、ステップS91で、現在の体重率WRを算出および記憶する。つまり、現荷重値データ404gが示す荷重値を、基準値データ404fが示す基準値(体重値)で割ることにより、現在の体重率WRを算出し、その体重率データを体重率データバッファ404aに記憶する。
26 to 28 are flowcharts of the operation determination process in step S11 shown in FIG. As shown in FIG. 26, when starting the motion determination process, the
次のステップS93では、現在の体重率WRが第1閾値(この実施例では、0.985)未満であるかどうかを判断する。つまり、CPU40は、プイレヤオブジェクト202に推進力Accを与えるかどうかを判断しているのである。ステップS93で“YES”であれば、つまり現在の体重率WRが第1閾値未満であれば、ステップS95で、推進力Accに1−体重率WRを設定して、ステップS99に進む。つまり、体重率WRに応じた推進力Accが算出(設定)される。一方、ステップS93で“NO”であれば、つまり現在の体重率WRが第1閾値以上であれば、ステップS97で、推進力Accに0を設定して、ステップS99に進む。
In the next step S93, it is determined whether or not the current weight ratio WR is less than the first threshold value (0.985 in this embodiment). That is, the
ステップS99では、直前の羽ばたき動作(羽ばたき区間)における体重率WRの最大値が第2閾値(この実施例では、1.3)を超えるかどうかを判断する。つまり、CPU40は、プレイヤの操作入力が屈伸運動によるものかどうかを判断しているのである。ただし、直前の羽ばたき区間は、上述したように、前々回の振り下ろし動作の開始が判定されてから前回(直前)の振り下ろし動作の開始が判定されるまでの区間を意味する。
In step S99, it is determined whether or not the maximum value of the body weight ratio WR in the previous flapping action (flapping section) exceeds the second threshold value (1.3 in this embodiment). That is, the
ステップS99で“NO”であれば、つまり直前の羽ばたき動作における体重率WRの最大値が第2閾値以下であれば、プレイヤの操作入力が屈伸運動によるものではないと判断して、ステップS101で、最大速度VelMaxをプレイヤオブジェクト202の最高速度(この実施例では、4)に設定し、ステップS103で、推進力Accを1.3倍(Acc=Acc×1.3)して、ステップS109に進む。一方、ステップS99で“YES”であれば、つまり直前の羽ばたき動作における体重率WRの最大値が第2閾値を超えていれば、プレイヤの操作入力が屈伸運動によるものであると判断して、ステップS105で、最大速度VelMaxをプレイヤオブジェクト202の最高速度の半分(この実施例では、2)に設定し、ステップS107で、推進力Accを0.8倍(Acc=Acc×0.8)して、ステップS109に進む。
If “NO” in the step S99, that is, if the maximum value of the weight ratio WR in the immediately preceding flapping motion is equal to or smaller than the second threshold value, it is determined that the player's operation input is not due to the bending / extending exercise, and in a step S101. The maximum speed VelMax is set to the maximum speed (4 in this embodiment) of the
このように、ステップS99−S107では、この仮想ゲームの開発者等が意図する操作入力である場合には、プレイヤオブジェクト202が前進し易くし、逆に、開発者等が意図しない操作入力である場合には、プレイヤオブジェクト202が前進し難くしてある。したがって、最大速度VelMaxに設定する数値や推進力Accに掛ける係数は、実施例の値に限定される必要はない。
As described above, in steps S99 to S107, when the operation input is intended by the developer or the like of the virtual game, the
ステップS109では、現在(現フレーム)の体重率WRと前回(前フレーム)の体重率WRとの差が第3閾値(この実施例では、0.001)未満であるかどうかを判断する。ステップS109で“YES”であれば、つまり現在の体重率WRと前回の体重率WRとの差が第3閾値未満であれば、図27に示すステップS111で、現在の体重率WRが第4閾値(この実施例では、0.99)以上第5閾値(この実施例では、1.01)以下であるかどうかを判断する。 In step S109, it is determined whether or not the difference between the current (current frame) weight ratio WR and the previous (previous frame) weight ratio WR is less than a third threshold value (0.001 in this embodiment). If “YES” in the step S109, that is, if the difference between the current weight ratio WR and the previous weight ratio WR is less than the third threshold value, the current weight ratio WR is set to the fourth weight in a step S111 shown in FIG. It is determined whether or not the threshold value (in this embodiment, 0.99) or more and the fifth threshold value (in this embodiment, 1.01) or less.
ステップS111で“YES”であれば、つまり現在の体重率WRが第4閾値以上第5閾値以下である場合には、体重率WRの上昇でも下降でもないと判断して、図28に示すように、そのまま動作判別処理を終了する。一方、ステップS111で“NO”であれば、つまり現在の体重率WRが第4閾値未満であるまたは第5閾値を超えている場合には、そのまま図28に示すステップS137に進む。図示は省略するが、かかる場合には、体重率WRの上昇または下降についての前回の判定結果が維持されることになる。 If “YES” in the step S111, that is, if the current weight ratio WR is not less than the fourth threshold value and not more than the fifth threshold value, it is determined that the weight ratio WR is neither rising nor falling, as shown in FIG. Then, the operation determination process is finished as it is. On the other hand, if “NO” in the step S111, that is, if the current weight ratio WR is less than the fourth threshold value or exceeds the fifth threshold value, the process proceeds to a step S137 shown in FIG. Although illustration is omitted, in such a case, the previous determination result about the increase or decrease of the weight ratio WR is maintained.
図26に戻って、ステップS109で“NO”であれば、つまり現在の体重率WRと前回の体重率WRとの差が第3閾値以上であれば、図27に示すステップS113で、現在の体重率WRが前回の体重率WRよりも小さいかどうかを判断する。つまり、CPU40は、体重率WRが下降しているか上昇しているかを判断しているのである。ステップS113で“NO”であれば、つまり現在の体重率WRが前回の体重率WRよりも大きければ、体重率WRが上昇していると判断して、ステップS115で、体重率下降フラグ404jがオンであるかどうかを判断する。つまり、CPU40は、体重率WRが下降した後に、上昇したかどうかを判断する。
Returning to FIG. 26, if “NO” in the step S109, that is, if the difference between the current weight ratio WR and the previous weight ratio WR is equal to or larger than the third threshold value, in the step S113 shown in FIG. It is determined whether the weight ratio WR is smaller than the previous weight ratio WR. That is, the
ステップS115で“NO”であれば、つまり体重率下降フラグ404jがオフであれば、体重率WRは上昇中であると判断して、そのままステップS137に進む。一方、ステップS115で“YES”であれば、つまり体重率下降フラグ404jがオンであれば、体重率WRが下降した後に上昇したと判断して、ステップS117で、体重率下降フラグ404jをオフし、ステップS119で、現在の体重率WRが第6閾値(この実施例では、0.98)以上であるかどうかを判断する。つまり、開発者等が意図する振り上げ動作が行われたかどうかを判断する。
If “NO” in the step S115, that is, if the weight
ステップS119で“NO”であれば、つまり現在の体重率WRが第6閾値未満であれば、振り上げ動作でないと判断して、そのままステップS137に進む。一方、ステップS119で“YES”であれば、つまり現在の体重率WRが第6閾値以上であれば、振り上げ動作であると判断して、ステップS121で、振り上げ判定フラグ404kをオンし、ステップS123で、振り上げ加速フラグ404nをオンし、さらに、ステップS125で、振り下ろし判定フラグ404mをオフして、ステップS137に進む。
If “NO” in the step S119, that is, if the current weight ratio WR is less than the sixth threshold value, it is determined that the swing-up operation is not performed, and the process directly proceeds to a step S137. On the other hand, if “YES” in the step S119, that is, if the current weight ratio WR is equal to or larger than the sixth threshold value, it is determined that the swing-up operation is performed, and the swing-up determination flag 404k is turned on in a step S121. In step S125, the swing-up
また、ステップS113で“YES”であれば、つまり現在の体重率WRが前回の体重率WRよりも小さければ、体重率WRが下降していると判断して、ステップS127で体重率下降フラグ404jをオンし、ステップS129で、現在の体重率WRが第7閾値(この実施例では、0.985)未満であるかどうかを判断する。つまり、CPU40は、振り下ろし動作であるかどうかを判断する。ステップS129で“NO”であれば、つまり現在の体重率WRが第7閾値以上であれば、振り下ろし動作ではないと判断して、そのままステップS137に進む。一方、ステップS129で“YES”であれば、つまり現在の体重率WRが第7閾値未満であれば、振り下ろし動作であると判断して、ステップS131で、振り下ろし判定フラグ404mをオンし、ステップS133で、振り下ろし加速フラグ404pをオンし、さらに、ステップS135で、振り上げ判定フラグ404kをオフして、ステップS137に進む。
If “YES” in the step S113, that is, if the current weight ratio WR is smaller than the previous weight ratio WR, it is determined that the weight ratio WR is decreasing, and the weight
図28に示すように、ステップS137では、周波数のインデックス番号n=2で振幅Aが最大であり、かつインデックス番号n=3の振幅Aが第8閾値(ここでは、0.0001)以上である、または、周波数のインデックス番号n=3以上で振幅Aが最大であるかどうかを判断する。ステップS137で“YES”であれば、つまり、周波数のインデックス番号n=2で振幅Aが最大であり、かつインデックス番号n=3の振幅Aが第8閾値以上である場合、または、インデックス番号n=3以上で振幅Aが最大である場合には、小羽ばたき動作であると判定して、ステップS139で、小羽ばたきフラグ404rをオンし、ステップS141で、大羽ばたきフラグ404qをオフして、全体処理にリターンする。
As shown in FIG. 28, in step S137, the amplitude A is the maximum at the frequency index number n = 2, and the amplitude A at the index number n = 3 is equal to or greater than the eighth threshold (here, 0.0001). Alternatively, it is determined whether or not the amplitude A is the maximum at the frequency index number n = 3 or more. If “YES” in the step S137, that is, if the frequency index number n = 2 and the amplitude A is the maximum and the amplitude A of the index number n = 3 is equal to or larger than the eighth threshold value, or the index number n If the amplitude A is equal to or greater than 3 and the amplitude A is the maximum, it is determined that the fluttering operation is performed, the fluttering flag 404r is turned on in step S139, and the large flapping
一方、ステップS137で“NO”であれば、つまり周波数のインデックス番号n=2で振幅Aが最大でない場合、または、インデックス番号n=3の振幅Aが第8閾値未満である場合、或いは、周波数のインデックス番号n=3以上で振幅Aが最大でない場合には、ステップS143で、周波数のインデックス番号n=1−15の振幅Aがすべて第8閾値未満かどうかを判断する。 On the other hand, if “NO” in the step S137, that is, if the frequency index number n = 2 and the amplitude A is not the maximum, or if the amplitude A of the index number n = 3 is less than the eighth threshold, or the frequency If the index number n = 3 or more and the amplitude A is not the maximum, it is determined in step S143 whether or not all the amplitudes A of the frequency index numbers n = 1-15 are less than the eighth threshold value.
ステップS143で“NO”であれば、つまり周波数のインデックス番号n=1−15の振幅Aのうち、第8閾値以上のものが有れば、大羽ばたき動作であると判断して、ステップS145で、大羽ばたきフラグ404qをオンし、ステップS147で、小羽ばたきフラグ404rをオフして、全体処理にリターンする。
If “NO” in the step S143, that is, if there is an amplitude A of the frequency index number n = 1-15 that is equal to or greater than the eighth threshold value, it is determined that the flapping operation is performed, and in a step S145 The large flapping
一方、ステップS143で“YES”であれば、つまり周波数のインデックス番号n=1−15のすべての振幅Aが第8閾値未満であれば、羽ばたき動作を行っていないと判断して、ステップS149で、大羽ばたきフラグ404qおよび小羽ばたきフラグ404rをオフして、全体処理にリターンする。
On the other hand, if “YES” in the step S143, that is, if all the amplitudes A of the frequency index numbers n = 1-15 are less than the eighth threshold value, it is determined that the flapping operation is not performed, and in a step S149. The large flapping
図29−図31は、図24のステップS57に示した同期処理のフロー図である。図29に示すように、CPU40は、同期処理を開始すると、ステップS161で、振り下ろし判定フラグ404mがオンであるかどうかを判断する。詳細な説明は省略するが、同期処理では、プレイヤオブジェクト202は下降中ではなく、プレイヤによって羽ばたき動作が行われているため、振り上げ判定フラグ404kまたは振り下ろし判定フラグ404mは必ずオンである。
29 to 31 are flowcharts of the synchronization process shown in step S57 of FIG. As shown in FIG. 29, when starting the synchronization process, the
ステップS161で“NO”であれば、つまり振り下り判定フラグ404mがオフであり、振り上げ判定フラグ404kがオンであれば、図30に示すステップS181に進む。一方、ステップS161で“YES”であれば、つまり振り下ろし判定フラグ404mがオンであり、振り上げ判定フラグ404kがオフであれば、ステップS163で、振り下ろし加速フラグ404pがオンであるかどうかを判断する。つまり、CPU40は、プレイヤの振り下ろし動作の開始に応じてアニメーションフレームを加速させたかどうかを判断する。
If “NO” in the step S161, that is, if the swing-down
ステップS163で“NO”であれば、つまり振り下ろし加速フラグ404pがオフであれば、現在の羽ばたき区間において、振り下ろし動作の開始に応じて既にアニメーションフレームを加速したと判断して、ステップS165で、フレーム加速度FrameAccに0を設定して、図31に示すステップS193に進む。一方、ステップS163で“YES”であれば、つまり振り下ろし加速フラグ404pがオンであれば、現在の羽ばたき区間において、振り下ろし動作の開始に応じて未だアニメーションフレームを加速していないと判断して、ステップS167で、現在のアニメーションフレームが15以上30未満であるかどうかを判断する。つまり、CPU40は、アニメーションフレームが振り下ろし加速度発生可能区間内であるかどうかを判断する。
If “NO” in the step S163, that is, if the swing-down
ステップS167で“YES”であれば、つまり現在のアニメーションフレームが15以上30未満であれば、アニメーションフレームが振り下ろし加速度発生可能区間内であると判断して、ステップS169で、フレーム加速度FrameAccに、アニメーションフレームの最大フレーム数AnimFrameMaxを振り下ろし判定間隔CycleSwingで割った値を設定する。つまり、後でフレーム速度FrameVel_newを算出する際に、アニメーションフレームが加速される。次のステップS171では、振り下ろし加速フラグ404pをオフして、ステップS193に進む。
If “YES” in the step S 167, that is, if the current animation frame is 15 or more and less than 30, it is determined that the animation frame is within the swing-down acceleration generation possible section, and in the
一方、ステップS167で“NO”であれば、つまり現在のアニメーションフレームが15以上30未満でなければ、アニメーションフレームが振り下ろし加速度発生可能区間内でないと判断して、ステップS173で、フレーム加速度FrameAccに0を設定し、ステップS175で、数12に従って、現在のフレーム速度FrameVel_oldに、アニメーションフレームの最大フレーム数AnimFrameMaxを1.7倍して振り下ろし判定間隔CycleSwingで割った値を設定する。つまり、CPU40は、アニメーションフレームを、フレーム加速度発生可能区間に早く近づけるのである。
On the other hand, if “NO” in the step S 167, that is, if the current animation frame is not 15 or more and less than 30, it is determined that the animation frame is not within the swingable acceleration generating section, and the frame acceleration FrameAcc is set in the
続いて、ステップS177では、現在のフレーム速度FrameVel_oldが6よりも大きいかどうかを判断する。ステップS177で“NO”であれば、つまり現在のフレーム速度FrameVel_oldが6以下であれば、そのままステップS193に進む。一方、ステップS177で“YES”であれば、つまり現フレーム速度FrameVel_oldが6よりも大きければ、ステップS179で、現在のフレーム速度FrameVel_oldに6を設定して、ステップS181に進む。つまり、現在のフレーム速度FrameVel_oldが制限される。 Subsequently, in step S177, it is determined whether or not the current frame rate FrameVel_old is greater than 6. If “NO” in the step S177, that is, if the current frame speed FrameVel_old is 6 or less, the process proceeds to a step S193 as it is. On the other hand, if “YES” in the step S177, that is, if the current frame rate FrameVel_old is larger than 6, the current frame rate FrameVel_old is set to 6 in a step S179, and the process proceeds to the step S181. That is, the current frame rate FrameVel_old is limited.
図30に示すように、ステップS181では、振り上げ加速フラグ404nがオンであるかどうかを判断する。ステップS181で“NO”であれば、つまり振り上げ加速フラグ404nがオフであれば、現在の羽ばたき区間において、振り上げ動作の開始に応じて既にアニメーションフレームを加速したと判断して、ステップS191で、フレーム加速度FrameAccに0を設定して、ステップS193に進む。一方、ステップS181で“YES”であれば、つまり振り上げ加速フラグ404nがオンであれば、現在の羽ばたき区間において、振り上げ動作の開始に応じて未だアニメーションフレームを加速していないと判断して、ステップS183で、現在のアニメーションフレームが30以上60未満であるかどうかを判断する。つまり、CPU40は、アニメーションフレームが振り上げ加速度発生可能区間内であるかどうかを判断するのである。
As shown in FIG. 30, in step S181, it is determined whether or not the
ステップS183で“NO”であれば、つまり現在のアニメーションフレームが30以上60未満でなければ、アニメーションフレームが振り上げ加速度発生可能区間内でないと判断して、ステップS191に進む。一方、ステップS183で“YES”であれば、つまり現在のアニメーションフレームが30以上60未満であれば、アニメーションフレームが振り上げ加速度発生可能区間内であると判断して、ステップS185で、現在のフレーム速度FrameVel_oldが2未満であるかどうかを判断する。
If “NO” in the
ステップS185で“NO”であれば、つまり現在のフレーム速度FrameVel_oldが2以上であれば、ステップS191に進む。一方、ステップS187で“YES”であれば、つまり現在のフレーム速度FrameVel_oldが2未満であれば、ステップS187で、フレーム加速度FrameAccに2を設定し、ステップS189で、振り上げ加速フラグ404nをオフして、ステップS193に進む。
If “NO” in the step S185, that is, if the current frame speed FrameVel_old is 2 or more, the process proceeds to a step S191. On the other hand, if “YES” in the step S187, that is, if the current frame speed FrameVel_old is less than 2, the frame acceleration FrameAcc is set to 2 in a step S187, and the
図31に示すステップS193では、フレーム加速度FrameAccが0でないかどうかを判断する。ステップS193で“NO”であれば、つまりフレーム加速度FrameAccが0であれば、そのままステップS197に進む。一方、ステップS193で“YES”であれば、つまりフレーム加速度FrameAccが0でなければ、ステップS195で、現在のフレーム速度FrameVel_oldに0を設定して、ステップS197に進む。 In step S193 shown in FIG. 31, it is determined whether or not the frame acceleration FrameAcc is not zero. If “NO” in the step S193, that is, if the frame acceleration FrameAcc is 0, the process proceeds to a step S197 as it is. On the other hand, if “YES” in the step S193, that is, if the frame acceleration FrameAcc is not 0, the current frame speed FrameVel_old is set to 0 in a step S195, and the process proceeds to a step S197.
ステップS197では、積分シミュレーションにより、次のフレーム速度FrameVel_newを算出する。続いて、ステップS199では、次のアニメーションフレームFrame_newを決定する。つまり、CPU40は、数10に従って次のフレーム速度FrameVel_newを算出し、数11に従って、次のアニメーションフレームFrame_newを算出する。そして、ステップS201で、決定されたアニメーションフレームFrame_newのアニメーションを設定して、図22−図25に示した全体処理にリターンする。
In step S197, the next frame speed FrameVel_new is calculated by integration simulation. Subsequently, in step S199, the next animation frame Frame_new is determined. That is, the
この実施例によれば、プレイヤの羽ばたき動作を体重率の変動の周期に基づいて判定し、これをプレイヤオブジェクトのアニメーションに反映させるとともに、体重率の大きさに基づいてプレイヤオブジェクトの移動量を制御するので、単なる荷重の変化に応じてゲーム処理を実行する場合に比べて多彩な処理を実行することができる。 According to this embodiment, the flapping motion of the player is determined based on the fluctuation rate of the weight ratio, and this is reflected in the animation of the player object, and the movement amount of the player object is controlled based on the size of the weight ratio. Therefore, various processes can be executed as compared with the case where the game process is executed according to a simple load change.
また、この実施例によれば、振り下ろし動作および振り上げ動作に応じて、アニメーションフレームの更新速度を変化させるので、アニメーションフレームの遅延を解消して、プレイヤの羽ばたき動作とアニメーションとを円滑に同期させることができる。このため、プレイヤは仮想ゲームへの没入感を得ることができ、ゲームプレイを楽しむことができる。 Further, according to this embodiment, the update speed of the animation frame is changed according to the swing-down motion and the swing-up motion, so that the delay of the animation frame is eliminated and the flapping motion of the player and the animation are smoothly synchronized. be able to. For this reason, the player can obtain an immersive feeling in the virtual game and can enjoy the game play.
さらに、この実施例によれば、プレイヤの荷重値に基づく体重率が所定の閾値以上の場合に、当該体重率が局所的に軽減(減少)して増加したことを検出すると、大羽ばたき動作における振り上げ動作が開始されたと判定し、振り上げ動作に応じてプレイヤオブジェクトの移動速度を変化させたり、振り下ろし動作のみならず振り上げ動作に応じてアニメーションフレームの更新速度を変化させたりするので、開発者等の意図する動作をさせたり、そのような動作を検出したことにより処理を実行したりすることができる。つまり、複雑な動作を検出して、多彩な処理を実行することができる。 Furthermore, according to this embodiment, when the weight ratio based on the player's load value is equal to or greater than a predetermined threshold, if it is detected that the weight ratio is locally reduced (decreased) and increased, Since it is determined that the swing-up motion has started, the moving speed of the player object is changed according to the swing-up motion, and the animation frame update speed is changed according to the swing-up motion as well as the swing-down motion. It is possible to perform a process by performing an operation intended by the user or by detecting such an operation. That is, it is possible to detect various operations and execute various processes.
なお、この実施例では、現在の荷重値を体重値(基準値)で割った体重率を用いるようにしたが、荷重値をそのまま用いるようにしてもよい。かかる場合には、体重差によるゲームの有利不利を無くすために、体重別(体重のランク別)の閾値を設けるようにすればよい。 In this embodiment, the weight ratio obtained by dividing the current load value by the weight value (reference value) is used, but the load value may be used as it is. In such a case, in order to eliminate the advantage and disadvantage of the game due to the weight difference, a threshold for each weight (by weight rank) may be provided.
また、この実施例では、体重率の時間変化を離散フーリエ変換して得られた周波数スペクトルに基づいて、プレイヤによる羽ばたき動作の有無および羽ばたき動作の種類を判別するようにしたが、高速フーリエ変換するようにしてもよい。 In this embodiment, the presence / absence of the flapping motion by the player and the type of the flapping motion are determined based on the frequency spectrum obtained by performing discrete Fourier transform on the time change of the body weight ratio. You may do it.
さらに、この実施例では、羽ばたき動作のような反復動作において、図13に示したような体重率の時間変化に基づいて、プレイヤの振り上げ動作を判定するようにしたが、これに限定される必要はない。たとえば、図13に示した波形を体重率の基準値で上下反転させた波形が得られるときには、その上下反転させた波形に基づいて所定の動作を判定することもできる。かかる場合には、体重率の値が一定値(たとえば、1.02)以下であり、体重率が増加した後に減少すると、所定の動作の開始であると判定する。 Furthermore, in this embodiment, in the repetitive motion such as the flapping motion, the player's swing-up motion is determined based on the time change of the weight ratio as shown in FIG. 13, but it is necessary to be limited to this. There is no. For example, when a waveform obtained by vertically inverting the waveform shown in FIG. 13 with the weight ratio reference value is obtained, a predetermined operation can be determined based on the vertically inverted waveform. In such a case, it is determined that the predetermined operation is started when the weight ratio value is equal to or less than a certain value (for example, 1.02) and decreases after the weight ratio increases.
10 …ゲームシステム
12 …ゲーム装置
18 …光ディスク
22 …コントローラ
24 …受信ユニット
34 …モニタ
34a …スピーカ
36 …荷重コントローラ
36b …荷重センサ(ロードセル)
40 …CPU
42 …システムLSI
42a …入出力プロセッサ
42b …GPU
42c …DSP
42d …VRAM
42e …内部メインメモリ
44 …フラッシュメモリ
46 …外部メインメモリ
48 …ROM/RTC
50 …無線通信モジュール
52 …無線コントローラモジュール
54 …ディスクドライブ
56 …AV IC
58 …AVコネクタ
60 …拡張コネクタ
62 …メモリカード用コネクタ
70 …プロセッサ
74 …加速度センサ
80 …画像情報演算部
80c …撮像素子
80d …画像処理回路
100 …マイコン
102 …ADコンバータ
104 …DC−DCコンバータ
106 …無線モジュール
108 …増幅器
DESCRIPTION OF
40 ... CPU
42 ... System LSI
42a: I / O processor 42b: GPU
42c: DSP
42d ... VRAM
42e ... Internal
50 ...
58 ...
Claims (16)
荷重検出装置からの信号に基づいて前記ユーザの荷重を示す荷重値を取得する荷重値取得ステップ、
前記荷重値取得ステップによって取得された荷重値に基づいて、前記ユーザの前記反復動作における第1動作の開始を検出する第1動作開始検出ステップ、および
前記第1動作開始検出ステップによって検出された第1動作の開始時が、表示装置に表示されるオブジェクトのアニメーションフレームについて当該第1動作に対応して設定される第1所定区間外であるとき、当該アニメーションフレームの更新速度が所定の速度となるように速くする更新速度制御ステップを、前記コンピュータに実行させる、情報処理プログラム。 An information processing program to be executed by a computer that performs predetermined information processing based on a load value indicating a load of a user who performs a predetermined repetitive operation,
A load value acquisition step of acquiring a load value indicating the load of the user based on a signal from the load detection device;
Based on the load value acquired by the load value acquisition step, a first operation start detection step for detecting the start of the first operation in the repetitive operation of the user, and a first operation detected by the first operation start detection step. When the start time of one motion is outside the first predetermined interval set corresponding to the first motion for the animation frame of the object displayed on the display device, the update speed of the animation frame becomes a predetermined speed. An information processing program for causing the computer to execute an update speed control step for increasing the speed.
前記更新速度制御ステップは、前記第2動作開始検出ステップによって第2動作の開始が検出されたときに、前記アニメーションフレームの更新速度を速くする、請求項6または7記載の情報処理プログラム。 Based on the load value acquired by the load value acquisition step, the computer further executes a second operation start detection step of detecting the start of the second operation in the repetitive operation of the user,
The information processing program according to claim 6 or 7, wherein the update speed control step increases the update speed of the animation frame when the start of the second motion is detected by the second motion start detection step.
前記荷重値の変化の周期に基づいて、前記ユーザの動作が前記大反復動作であるか前記小反復動作であるかを判別する動作判別ステップ、および
前記荷重値の変化に基づいて、前記第1動作および前記第2動作を検出する動作検出ステップをさらに実行させ、
前記更新速度制御ステップは、前記動作判別ステップによって前記ユーザの動作が前記大反復動作であることが判別されたとき、前記動作検出ステップによって検出された前記第1動作および前記第2動作に応じて前記アニメーションフレームの更新速度を変化させる、請求項6ないし11のいずれかに記載の情報処理プログラム。 The repetitive motion is a large repetitive motion with a large change in the load value or a small repetitive motion with a small change in the load value than the large repetitive motion,
An operation determination step for determining whether the user's operation is the large repetitive operation or the small repetitive operation based on the change period of the load value, and the first based on the change of the load value An operation detecting step of detecting an operation and the second operation is further performed;
In the update speed control step, when it is determined in the operation determination step that the user's operation is the large repetitive operation, the update speed control step corresponds to the first operation and the second operation detected in the operation detection step. The information processing program according to claim 6, wherein the update speed of the animation frame is changed.
前記第2所定区間の最初のアニメーションフレームは、前記第2動作開始検出ステップによって検出された第2動作の開始以前におけるユーザの姿勢に対応する、請求項9記載の情報処理プログラム。 The first animation frame of the first predetermined section corresponds to the user's posture at the start of the first motion detected by the first motion start detection step,
The information processing program according to claim 9, wherein the first animation frame in the second predetermined section corresponds to the posture of the user before the start of the second motion detected by the second motion start detection step.
荷重検出装置からの信号に基づいて前記ユーザの荷重を示す荷重値を取得する荷重値取得手段、
前記荷重値取得手段によって取得された荷重値に基づいて、前記ユーザの前記反復動作における所定の動作の開始を検出する動作開始検出手段、および
前記動作開始検出手段によって検出された所定の動作の開始時が、表示装置に表示されるオブジェクトについての当該所定の動作に対応して設定されるアニメーションフレームの所定区間外であるとき、当該アニメーションフレームの更新速度が所定の速度となるように速くする更新速度制御手段を備える、情報処理装置。 An information processing apparatus that performs predetermined information processing based on a load value indicating a load of a user who performs a predetermined repetitive motion,
Load value acquisition means for acquiring a load value indicating the load of the user based on a signal from a load detection device;
Based on the load value acquired by the load value acquisition means, operation start detection means for detecting the start of a predetermined action in the repetitive action of the user, and start of the predetermined action detected by the action start detection means Update when the time is outside a predetermined section of the animation frame set in correspondence with the predetermined action on the object displayed on the display device so that the update speed of the animation frame becomes a predetermined speed An information processing apparatus comprising speed control means.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009216874A JP5478172B2 (en) | 2009-09-18 | 2009-09-18 | Information processing program and information processing apparatus |
US12/631,245 US8482519B2 (en) | 2009-09-18 | 2009-12-04 | Storage medium storing information processing program, information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009216874A JP5478172B2 (en) | 2009-09-18 | 2009-09-18 | Information processing program and information processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011062405A JP2011062405A (en) | 2011-03-31 |
JP5478172B2 true JP5478172B2 (en) | 2014-04-23 |
Family
ID=43756203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009216874A Active JP5478172B2 (en) | 2009-09-18 | 2009-09-18 | Information processing program and information processing apparatus |
Country Status (2)
Country | Link |
---|---|
US (1) | US8482519B2 (en) |
JP (1) | JP5478172B2 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104333786A (en) * | 2014-10-15 | 2015-02-04 | 深圳市丰通系统科技有限公司 | System of online control of multiple wireless input ends at the same time through same receiving end and method thereof |
USD766841S1 (en) * | 2015-03-04 | 2016-09-20 | A-Dec, Inc. | Foot control |
WO2020111118A1 (en) * | 2018-11-29 | 2020-06-04 | テイ・エス テック株式会社 | Seat system and seat experience device |
JP6688425B1 (en) * | 2019-08-30 | 2020-04-28 | 任天堂株式会社 | Information processing system, information processing program, information processing apparatus, and information processing method |
JP6688424B1 (en) | 2019-08-30 | 2020-04-28 | 任天堂株式会社 | Information processing system, information processing program, information processing apparatus, and information processing method |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09108391A (en) | 1995-10-20 | 1997-04-28 | Shimadzu Corp | Simulation equipment |
US6225977B1 (en) | 1997-03-25 | 2001-05-01 | John Li | Human balance driven joystick |
GB9825514D0 (en) | 1998-11-21 | 1999-01-13 | Linear Motion Technology Llc | Improvement in pressure pad devices |
JP5204381B2 (en) * | 2006-05-01 | 2013-06-05 | 任天堂株式会社 | GAME PROGRAM, GAME DEVICE, GAME SYSTEM, AND GAME PROCESSING METHOD |
US8808087B2 (en) * | 2007-02-22 | 2014-08-19 | Sony Corporation | Game device, game control method, and game control program |
JP5427343B2 (en) | 2007-04-20 | 2014-02-26 | 任天堂株式会社 | Game controller |
JP5133022B2 (en) | 2007-10-04 | 2013-01-30 | 任天堂株式会社 | Program, information processing apparatus, information processing system, and information processing method |
-
2009
- 2009-09-18 JP JP2009216874A patent/JP5478172B2/en active Active
- 2009-12-04 US US12/631,245 patent/US8482519B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20110069003A1 (en) | 2011-03-24 |
US8482519B2 (en) | 2013-07-09 |
JP2011062405A (en) | 2011-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5819580B2 (en) | GAME PROGRAM, GAME DEVICE, GAME SYSTEM, AND GAME CONTROL METHOD | |
JP2011067239A (en) | Program and device for information processing | |
US8740705B2 (en) | Game controller, storage medium storing game program, and game apparatus | |
JP5080196B2 (en) | Program, information processing apparatus, information processing system, and information processing method | |
JP5133022B2 (en) | Program, information processing apparatus, information processing system, and information processing method | |
KR101154636B1 (en) | Display device, game system, and game method | |
JP5361349B2 (en) | Information processing apparatus, computer program, information processing system, and information processing method | |
JP5520457B2 (en) | GAME DEVICE AND GAME PROGRAM | |
JP6029255B2 (en) | Information processing program, information processing apparatus, information processing system, and information processing method | |
TWI434717B (en) | Display device, game system, and game process method | |
US9022862B2 (en) | Computer-readable storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method | |
EP2497542A2 (en) | Information processing system, information processing program, and information processing method | |
JP5496591B2 (en) | Information processing program and information processing apparatus | |
JP5756299B2 (en) | GAME SYSTEM, GAME DEVICE, GAME PROGRAM, AND GAME PROCESSING METHOD | |
JP4798809B1 (en) | Display device, game system, and game processing method | |
JP5745247B2 (en) | GAME PROGRAM, GAME DEVICE, GAME SYSTEM, AND GAME CONTROL METHOD | |
JP5478172B2 (en) | Information processing program and information processing apparatus | |
JP2009092452A (en) | Load detection program and load detection device | |
US8430751B2 (en) | Computer-readable storage medium having game program stored therein and game apparatus | |
JP5202432B2 (en) | Information processing program and information processing apparatus | |
US9101839B2 (en) | Computer-readable storage medium having stored therein game program, game apparatus, game system, and game processing method | |
JP5656160B2 (en) | GAME PROGRAM, GAME DEVICE, GAME SYSTEM, AND GAME PROCESSING METHOD | |
JP2012096005A (en) | Display device, game system and game processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120829 |
|
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: 20140128 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140210 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5478172 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |