JP5478172B2 - Information processing program and information processing apparatus - Google Patents

Information processing program and information processing apparatus Download PDF

Info

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
Application number
JP2009216874A
Other languages
Japanese (ja)
Other versions
JP2011062405A (en
Inventor
慶典 小西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nintendo Co Ltd
Original Assignee
Nintendo Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nintendo Co Ltd filed Critical Nintendo Co Ltd
Priority to JP2009216874A priority Critical patent/JP5478172B2/en
Priority to US12/631,245 priority patent/US8482519B2/en
Publication of JP2011062405A publication Critical patent/JP2011062405A/en
Application granted granted Critical
Publication of JP5478172B2 publication Critical patent/JP5478172B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/218Input 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/42Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle
    • A63F13/428Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment by mapping the input signals into game commands, e.g. mapping the displacement of a stylus on a touch screen to the steering angle of a virtual vehicle involving motion or position input signals, e.g. signals representing the rotation of an input controller or a player's arm motions sensed by accelerometers or gyroscopes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0334Foot operated pointing devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/211Input arrangements for video game devices characterised by their sensors, purposes or types using inertial sensors, e.g. accelerometers or gyroscopes
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • A63F13/44Processing 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/80Special adaptations for executing a specific game genre or game mode
    • A63F13/803Driving vehicles or craft, e.g. cars, airplanes, ships, robots or tanks
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/10Features 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/1068Features 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/60Methods for processing data by generating or executing the game program
    • A63F2300/6045Methods for processing data by generating or executing the game program for mapping control signals received from the input arrangement into game commands
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features 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/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/04Changes in size, position or resolution of an image
    • G09G2340/0407Resolution change, inclusive of the use of different resolutions for different screen areas
    • G09G2340/0435Change 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 Patent Document 1. In the game device of Patent Document 1, a player puts his / her foot on a support plate of a game controller including four load sensors, and load values detected by the four load sensors are input as operation data. Therefore, in the game device, the game process is executed based on the load value input as the operation data. For example, in a hula hoop game process, a player rides on a game controller, and among four load sensors provided at four corners of the game controller, according to the position at which the load sensor with the maximum detected load value is arranged. Thus, the position of the player character's waist is determined.

特開2008−264195号[A63F 13/04,A63F 13/00]JP 2008-264195 [A63F 13/04, A63F 13/00]

しかし、特許文献1のゲーム装置では、検出される荷重値が最大となる荷重センサが配置される位置に応じて、プレイヤキャラクタの腰の位置が決定されるだけなので、プレイヤの動作に対してプレイヤキャラクタのアニメーションフレームが遅延してしまうことがある。また、荷重値に基づいてアニメーションフレームを補正したとしても、単に荷重値が最大となる荷重センサが配置される位置にプレイヤキャラクタの腰の位置が来るように移動されるだけなので、ゲーム画面を見たプレイヤは違和感を覚えてしまう。つまり、フラフープを行うようなプレイヤの反復動作とプレイヤキャラクタのアニメーションとを同期されることについては改善の余地があった。   However, in the game device of Patent Document 1, since the position of the player character's waist is only determined according to the position at which the load sensor with the maximum detected load value is arranged, Character animation frames may be delayed. Even if the animation frame is corrected based on the load value, it is simply moved so that the position of the player character's waist comes to the position where the load sensor with the maximum load value is arranged. Players feel uncomfortable. In other words, there is room for improvement in synchronizing the player's repetitive motion such as a hula hoop and the animation of the player character.

それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。   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はこの発明のゲームシステムの一実施例を示す図解図である。FIG. 1 is an illustrative view showing one embodiment of a game system of the present invention. 図2は図1に示すゲームシステムの電気的な構成を示すブロック図である。FIG. 2 is a block diagram showing an electrical configuration of the game system shown in FIG. 図3は図1に示すコントローラの外観を説明するための図解図である。FIG. 3 is an illustrative view for explaining the appearance of the controller shown in FIG. 図4は図3に示すコントローラの電気的な構成を示すブロック図である。FIG. 4 is a block diagram showing an electrical configuration of the controller shown in FIG. 図5は図1に示す荷重コントローラの外観を説明するための図解図である。FIG. 5 is an illustrative view for explaining the appearance of the load controller shown in FIG. 図6は図5に示す荷重コントローラの断面図である。6 is a cross-sectional view of the load controller shown in FIG. 図7は図5に示す荷重コントローラの電気的な構成を示すブロック図である。FIG. 7 is a block diagram showing an electrical configuration of the load controller shown in FIG. 図8は図1に示すコントローラおよび荷重コントローラを用いて仮想ゲームをプレイするときの状態を概説するための図解図である。FIG. 8 is an illustrative view for outlining a state when a virtual game is played using the controller and load controller shown in FIG. 図9は図1に示すマーカおよびコントローラの視野角を説明するための図解図である。FIG. 9 is an illustrative view for explaining the viewing angles of the marker and the controller shown in FIG. 図10は対象画像を含む撮像画像の一例を示す図解図である。FIG. 10 is an illustrative view showing one example of a captured image including a target image. 図11は図1に示すモニタに表示されるゲーム画面の例を示す図解図である。FIG. 11 is an illustrative view showing an example of a game screen displayed on the monitor shown in FIG. 図12はこの実施例の仮想ゲームをプレイするときのプレイヤの動作の例を示す図解図である。FIG. 12 is an illustrative view showing an example of the action of the player when playing the virtual game of this embodiment. 図13は図12(A)に示すようにプレイヤが大羽ばたき動作を行った際に検出される体重率の時間変化およびその周波数スペクトルを示すグラフである。FIG. 13 is a graph showing the time change of the body weight ratio and its frequency spectrum detected when the player performs a flapping motion as shown in FIG. 図14は図12(B)に示すようにプレイヤが小羽ばたき動作を行った際に検出される体重率の時間変化およびその周波数スペクトルを示すグラフである。FIG. 14 is a graph showing the time change of the body weight ratio detected when the player performs a flapping motion as shown in FIG. 12B and the frequency spectrum thereof. 図15はプレイヤが屈伸運動を行った際に検出される体重率の時間変化およびその周波数スペクトルを示すグラフである。FIG. 15 is a graph showing the change over time in the body weight ratio detected when the player performs bending and stretching exercises and the frequency spectrum thereof. 図16は荷重コントローラで検出されるプレイヤの重心位置およびそれに対応するプレイヤオブジェクトの向きを示すための図解図である。FIG. 16 is an illustrative view showing the position of the center of gravity of the player detected by the load controller and the orientation of the player object corresponding to the position. 図17は荷重コントローラで検出されるプレイヤの重心位置に対応する下降時以外におけるプレイヤオブジェクトの向きを示すための図解図である。FIG. 17 is an illustrative view for showing the orientation of the player object at the time other than the descent corresponding to the position of the center of gravity of the player detected by the load controller. 図18は荷重コントローラで検出されるプレイヤの重心位置に対応する下降時におけるプレイヤオブジェクトの向きを示すための図解図である。FIG. 18 is an illustrative view for showing the orientation of the player object when descending corresponding to the position of the center of gravity of the player detected by the load controller. 図19はプレイヤオブジェクトについての一部のアニメーションフレームを示す図解図である。FIG. 19 is an illustrative view showing a part of animation frames for the player object. 図20は図2に示すメインメモリのメモリマップの例を示す図解図である。FIG. 20 is an illustrative view showing an example of a memory map of the main memory shown in FIG. 図21は図20に示すデータ記憶領域の具体的な内容を示す図解図である。FIG. 21 is an illustrative view showing specific contents of the data storage area shown in FIG. 図22は図2に示すCPUのゲーム全体処理の一部を示すフロー図である。FIG. 22 is a flowchart showing a part of the entire game process of the CPU shown in FIG. 図23は図2に示すCPUのゲーム全体処理の他の一部であって、図22に後続するフロー図である。FIG. 23 is another part of the entire game process of the CPU shown in FIG. 2, and is a flowchart subsequent to FIG. 図24は図2に示すCPUのゲーム全体処理のその他の一部であって、図23に後続するフロー図である。FIG. 24 is another part of the entire game process of the CPU shown in FIG. 2, and is a flowchart subsequent to FIG. 図25は図2に示すCPUのゲーム全体処理のさらに他の一部であって、図24に後続するフロー図である。FIG. 25 is still another part of the entire game process of the CPU shown in FIG. 2, and is a flowchart subsequent to FIG. 図26は図2に示すCPUの動作判別処理の一部を示すフロー図である。FIG. 26 is a flowchart showing a part of the operation determination process of the CPU shown in FIG. 図27は図2に示すCPUの動作判別処理の他の一部であって、図26に後続するフロー図である。FIG. 27 is another part of the CPU operation determination process shown in FIG. 2, and is a flowchart subsequent to FIG. 図28は図2に示すCPUの動作判別処理のその他の一部であって、図27に後続するフロー図である。FIG. 28 is another part of the CPU operation determination process shown in FIG. 2, and is a flowchart subsequent to FIG. 図29は図2に示すCPUの同期処理の一部を示すフロー図である。FIG. 29 is a flowchart showing a part of the synchronization processing of the CPU shown in FIG. 図30は図2に示すCPUの同期処理の他の一部を示すフロー図である。FIG. 30 is a flowchart showing another part of the synchronization processing of the CPU shown in FIG. 図31は図2に示すCPUの同期処理のその他の一部であって、図29および図30に後続するフロー図である。FIG. 31 is another part of the synchronization processing of the CPU shown in FIG. 2, and is a flowchart following FIG. 29 and FIG.

図1を参照して、この発明の一実施例であるゲームシステム10は、ビデオゲーム装置(以下、単に「ゲーム装置」という)12、コントローラ22および荷重コントローラ36を含む。なお、図示は省略するが、この実施例のゲーム装置12は、最大4つのコントローラ(22,36)と通信可能に設計されている。また、ゲーム装置12と各コントローラ(22,36)とは、無線によって接続される。たとえば、無線通信は、Bluetooth(登録商標)規格に従って実行されるが、赤外線や無線LANなど他の規格に従って実行されてもよい。   Referring to FIG. 1, a game system 10 according to an embodiment of the present invention includes a video game device (hereinafter simply referred to as “game device”) 12, a controller 22, and a load controller 36. Although not shown, the game apparatus 12 of this embodiment is designed to be able to communicate with a maximum of four controllers (22, 36). The game apparatus 12 and the controllers (22, 36) are connected by radio. For example, the wireless communication is performed according to the Bluetooth (registered trademark) standard, but may be performed according to another standard such as infrared or wireless LAN.

ゲーム装置12は、略直方体のハウジング14を含み、ハウジング14の前面にはディスクスロット16が設けられる。ディスクスロット16から、情報処理プログラムの一例としてのゲームプログラム等を記憶した情報記憶媒体の一例である光ディスク18が挿入されて、ハウジング14内のディスクドライブ54(図2参照)に装着される。ディスクスロット16の周囲には、LEDと導光板が配置され、さまざまな処理に応答させて点灯させることが可能である。   The game apparatus 12 includes a substantially rectangular parallelepiped housing 14, and a disk slot 16 is provided on the front surface of the housing 14. An optical disk 18, which is an example of an information storage medium storing a game program as an example of an information processing program, is inserted from the disk slot 16 and is mounted on a disk drive 54 (see FIG. 2) in the housing 14. An LED and a light guide plate are arranged around the disk slot 16 and can be turned on in response to various processes.

また、ゲーム装置12のハウジング14の前面であり、その上部には、電源ボタン20aおよびリセットボタン20bが設けられ、その下部には、イジェクトボタン20cが設けられる。さらに、リセットボタン20bとイジェクトボタン20cとの間であり、ディスクスロット16の近傍には、外部メモリカード用コネクタカバー28が設けられる。この外部メモリカード用コネクタカバー28の内側には、外部メモリカード用コネクタ62(図2参照)が設けられ、図示しない外部メモリカード(以下、単に「メモリカード」という)が挿入される。メモリカードは、光ディスク18から読み出したゲームプログラム等をローディングして一時的に記憶したり、このゲームシステム10を利用してプレイしたゲームのゲームデータ(ゲームの結果データまたは途中データ)を保存(セーブ)しておいたりするために利用される。ただし、上記のゲームデータの保存は、メモリカードに対して行うことに代えて、たとえばゲーム装置12の内部に設けられるフラッシュメモリ44(図2参照)のような内部メモリに対して行うようにしてもよい。また、メモリカードは、内部メモリのバックアップメモリとして用いるようにしてもよい。   Further, on the front surface of the housing 14 of the game apparatus 12, a power button 20a and a reset button 20b are provided at the upper part thereof, and an eject button 20c is provided at the lower part thereof. Further, an external memory card connector cover 28 is provided between the reset button 20 b and the eject button 20 c and in the vicinity of the disk slot 16. An external memory card connector 62 (see FIG. 2) is provided inside the external memory card connector cover 28, and an external memory card (not shown) (hereinafter simply referred to as “memory card”) is inserted. The memory card loads and temporarily stores a game program read from the optical disc 18, and stores (saves) game data (game result data or intermediate data) of a game played using the game system 10. ) Used to keep up. However, the above game data is stored in an internal memory such as the flash memory 44 (see FIG. 2) provided in the game device 12 instead of being stored in the memory card. Also good. The memory card may be used as a backup memory for the internal memory.

なお、メモリカードとしては、汎用の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 housing 14 of the game apparatus 12, and the monitor 34 and the speaker 34a are connected to the game apparatus 12 through the AV cable 32a using the AV connector 58. The monitor 34 and the speaker 34a are typically color television receivers, and the AV cable 32a inputs a video signal from the game apparatus 12 to the video input terminal of the color television and inputs an audio signal to the audio input terminal. To do. Therefore, for example, a game image of a three-dimensional (3D) video game is displayed on the screen of the color television (monitor) 34, and stereo game sounds such as game music and sound effects are output from the left and right speakers 34a. In addition, a marker unit 34b including two infrared LEDs (markers) 340m and 340n is provided around the monitor 34 (in this embodiment, on the upper side of the monitor 34). The marker portion 34b is connected to the game apparatus 12 through the power cable 32b. Therefore, power is supplied from the game apparatus 12 to the marker unit 34b. Thus, the markers 340m and 340n emit light and output infrared light toward the front of the monitor 34, respectively.

なお、ゲーム装置12の電源は、一般的なACアダプタ(図示せず)によって与えられる。ACアダプタは家庭用の標準的な壁ソケットに差し込まれ、ゲーム装置12は、家庭用電源(商用電源)を、駆動に適した低いDC電圧信号に変換する。他の実施例では、電源としてバッテリが用いられてもよい。   The game apparatus 12 is powered by a general AC adapter (not shown). The AC adapter is inserted into a standard wall socket for home use, and the game apparatus 12 converts the home power supply (commercial power supply) into a low DC voltage signal suitable for driving. In other embodiments, a battery may be used as the power source.

このゲームシステム10において、ユーザまたはプレイヤがゲーム(またはゲームに限らず、他のアプリケーション)をプレイするために、ユーザはまずゲーム装置12の電源をオンし、次いで、ユーザはビデオゲーム(もしくはプレイしたいと思う他のアプリケーション)のプログラムを記録している適宜の光ディスク18を選択し、その光ディスク18をゲーム装置12のディスクドライブ54にローディングする。応じて、ゲーム装置12がその光ディスク18に記録されているプログラムに基づいてビデオゲームもしくは他のアプリケーションを実行し始めるようにする。ユーザはゲーム装置12に入力を与えるためにコントローラ22を操作する。たとえば、入力手段26のどれかを操作することによってゲームもしくは他のアプリケーションをスタートさせる。また、入力手段26に対する操作以外にも、コントローラ22自体を動かすことによって、動画オブジェクト(プレイヤオブジェクト)を異なる方向に移動させ、または3Dのゲーム世界におけるユーザの視点(カメラ位置)を変化させることができる。   In this game system 10, in order for a user or a player to play a game (or other application, not limited to a game), the user first turns on the game device 12, and then the user wants to play a video game (or play) A suitable optical disc 18 in which a program of another application) is recorded is selected, and the optical disc 18 is loaded into the disc drive 54 of the game apparatus 12. In response, the game apparatus 12 starts to execute the video game or other application based on the program recorded on the optical disc 18. The user operates the controller 22 to give input to the game apparatus 12. For example, a game or other application is started by operating any of the input means 26. In addition to operations on the input means 26, the moving object (player object) can be moved in a different direction by moving the controller 22 itself, or the user's viewpoint (camera position) in the 3D game world can be changed. it can.

図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 video game system 10 of FIG. 1 embodiment. Although not shown, each component in the housing 14 is mounted on a printed circuit board. As shown in FIG. 2, the game apparatus 12 is provided with a CPU 40. The CPU 40 functions as a game processor. A system LSI 42 is connected to the CPU 40. An external main memory 46, ROM / RTC 48, disk drive 54 and AV IC 56 are connected to the system LSI 42.

外部メインメモリ46は、ゲームプログラム等のプログラムを記憶したり、各種データを記憶したりし、CPU40のワーク領域やバッファ領域として用いられる。ROM/RTC48は、いわゆるブートROMであり、ゲーム装置12の起動用のプログラムが組み込まれるとともに、時間をカウントする時計回路が設けられる。ディスクドライブ54は、光ディスク18からプログラムデータやテクスチャデータ等を読み出し、CPU40の制御の下で、後述する内部メインメモリ42eまたは外部メインメモリ46に書き込む。   The external main memory 46 stores programs such as game programs and various data, and is used as a work area and a buffer area of the CPU 40. The ROM / RTC 48 is a so-called boot ROM, in which a program for starting up the game apparatus 12 is incorporated, and a clock circuit for counting time is provided. The disk drive 54 reads program data, texture data, and the like from the optical disk 18 and writes them in an internal main memory 42e or an external main memory 46 described later under the control of the CPU 40.

システムLSI42には、入出力プロセッサ42a、GPU(Graphics Processor Unit)42b,DSP(Digital Signal Processor)42c,VRAM42dおよび内部メインメモリ42eが設けられ、図示は省略するが、これらは内部バスによって互いに接続される。   The system LSI 42 is provided with an input / output processor 42a, a GPU (Graphics Processor Unit) 42b, a DSP (Digital Signal Processor) 42c, a VRAM 42d, and an internal main memory 42e, which are not shown, but are connected to each other by an internal bus. 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 CPU 40, and generates game image data according to the command. However, the CPU 40 gives an image generation program necessary for generating game image data to the GPU 42b in addition to the graphics command.

図示は省略するが、上述したように、GPU42bにはVRAM42dが接続される。GPU42bが作画コマンドを実行するにあたって必要なデータ(画像データ:ポリゴンデータやテクスチャデータなどのデータ)は、GPU42bがVRAM42dにアクセスして取得する。なお、CPU40は、描画に必要な画像データを、GPU42bを介してVRAM42dに書き込む。GPU42bは、VRAM42dにアクセスして描画のためのゲーム画像データを作成する。   Although illustration is omitted, as described above, the VRAM 42d is connected to the GPU 42b. Data (image data: data such as polygon data and texture data) necessary for the GPU 42b to execute the drawing command is acquired by the GPU 42b accessing the VRAM 42d. The CPU 40 writes image data necessary for drawing into the VRAM 42d via the GPU 42b. The GPU 42b accesses the VRAM 42d and creates game image data for drawing.

なお、この実施例では、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 DSP 42c functions as an audio processor and corresponds to sound, voice or music output from the speaker 34a using sound data and sound waveform (tone) data stored in the internal main memory 42e and the external main memory 46. Generate audio data.

上述のように生成されたゲーム画像データおよびオーディオデータは、AV IC56によって読み出され、AVコネクタ58を介してモニタ34およびスピーカ34aに出力される。したがって、ゲーム画面がモニタ34に表示され、ゲームに必要な音(音楽)がスピーカ34aから出力される。   The game image data and audio data generated as described above are read by the AV IC 56 and output to the monitor 34 and the speaker 34a via the AV connector 58. Therefore, the game screen is displayed on the monitor 34, and the sound (music) necessary for the game is output from the speaker 34a.

また、入出力プロセッサ42aには、フラッシュメモリ44、無線通信モジュール50および無線コントローラモジュール52が接続されるとともに、拡張コネクタ60およびメモリカード用コネクタ62が接続される。また、無線通信モジュール50にはアンテナ50aが接続され、無線コントローラモジュール52にはアンテナ52aが接続される。   The input / output processor 42a is connected to the flash memory 44, the wireless communication module 50, and the wireless controller module 52, and to the expansion connector 60 and the memory card connector 62. An antenna 50 a is connected to the wireless communication module 50, and an antenna 52 a is connected to the wireless controller module 52.

入出力プロセッサ42aは、無線通信モジュール50を介して、ネットワークに接続される他のゲーム装置や各種サーバと通信することができる。ただし、ネットワークを介さずに、直接的に他のゲーム装置と通信することもできる。入出力プロセッサ42aは、定期的にフラッシュメモリ44にアクセスし、ネットワークへ送信する必要があるデータ(送信データとする)の有無を検出し、当該送信データが有る場合には、無線通信モジュール50およびアンテナ50aを介してネットワークに送信する。また、入出力プロセッサ42aは、他のゲーム装置から送信されるデータ(受信データとする)を、ネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、受信データをフラッシュメモリ44に記憶する。ただし、一定の場合には、受信データをそのまま破棄する。さらに、入出力プロセッサ42aは、ダウンロードサーバからダウンロードしたデータ(ダウンロードデータとする)をネットワーク、アンテナ50aおよび無線通信モジュール50を介して受信し、ダウンロードデータをフラッシュメモリ44に記憶する。   The input / output processor 42a can communicate with other game devices and various servers connected to the network via the wireless communication module 50. However, it is also possible to communicate directly with other game devices without going through a network. The input / output processor 42a periodically accesses the flash memory 44, detects the presence / absence of data that needs to be transmitted to the network (referred to as transmission data), and if there is such transmission data, the input / output processor 42a It transmits to the network via the antenna 50a. Further, the input / output processor 42 a receives data (received data) transmitted from another game device via the network, the antenna 50 a and the wireless communication module 50, and stores the received data in the flash memory 44. However, in certain cases, the received data is discarded as it is. Further, the input / output processor 42a receives data downloaded from the download server (referred to as download data) via the network, the antenna 50a and the wireless communication module 50, and stores the download data in the flash memory 44.

また、入出力プロセッサ42aは、コントローラ22や荷重コントローラ36から送信される入力データをアンテナ52aおよび無線コントローラモジュール52を介して受信し、内部メインメモリ42eまたは外部メインメモリ46のバッファ領域に記憶(一時記憶)する。入力データは、CPU40のゲーム処理によって利用された後、バッファ領域から消去される。   The input / output processor 42a receives input data transmitted from the controller 22 and the load controller 36 via the antenna 52a and the wireless controller module 52, and stores (temporarily) in the buffer area of the internal main memory 42e or the external main memory 46. Remember. The input data is deleted from the buffer area after being used by the game process of the CPU 40.

なお、この実施例では、上述したように、無線コントローラモジュール52は、Bluetooth規格にしたがってコントローラ22や荷重コントローラ36との間で通信を行う。   In this embodiment, as described above, the wireless controller module 52 communicates with the controller 22 and the load controller 36 in accordance with the Bluetooth standard.

また、図面の都合上、図2では、コントローラ22と荷重コントローラ36とをまとめて記載してある。   For convenience of drawing, FIG. 2 shows the controller 22 and the load controller 36 together.

さらに、入出力プロセッサ42aには、拡張コネクタ60およびメモリカード用コネクタ62が接続される。拡張コネクタ60は、USBやSCSIのようなインターフェイスのためのコネクタであり、外部記憶媒体のようなメディアを接続したり、他のコントローラのような周辺機器を接続したりすることができる。また、拡張コネクタ60に有線LANアダプタを接続し、無線通信モジュール50に代えて当該有線LANを利用することもできる。メモリカード用コネクタ62には、メモリカードのような外部記憶媒体を接続することができる。したがって、たとえば、入出力プロセッサ42aは、拡張コネクタ60やメモリカード用コネクタ62を介して、外部記憶媒体にアクセスし、データを保存したり、データを読み出したりすることができる。   Further, an expansion connector 60 and a memory card connector 62 are connected to the input / output processor 42a. The expansion connector 60 is a connector for an interface such as USB or SCSI, and can connect a medium such as an external storage medium or a peripheral device such as another controller. Also, a wired LAN adapter can be connected to the expansion connector 60 and the wired LAN can be used instead of the wireless communication module 50. An external storage medium such as a memory card can be connected to the memory card connector 62. Therefore, for example, the input / output processor 42a can access an external storage medium via the expansion connector 60 or the memory card connector 62, and can store or read data.

詳細な説明は省略するが、図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 power button 20a, a reset button 20b, and an eject button 20c. The power button 20a is connected to the system LSI 42. When the power button 20a is turned on, the system LSI 42 sets a mode (hereinafter referred to as “normal mode”) in which power is supplied to each component of the game apparatus 12 via an AC adapter (not shown) and a normal energization state is set. To do. On the other hand, when the power button 20a is turned off, the system LSI 42 sets a mode (hereinafter referred to as "standby mode") in which power is supplied to only some components of the game apparatus 12 and power consumption is minimized. To do. In this embodiment, when the standby mode is set, the system LSI 42 is a component other than the input / output processor 42a, the flash memory 44, the external main memory 46, the ROM / RTC 48, the wireless communication module 50, and the wireless controller module 52. Instruct the power supply to be stopped. Therefore, this standby mode is a mode in which the CPU 40 does not execute an application.

なお、システムLSI42には、スタンバイモードにおいても電源が供給されるが、GPU42b、DSP42cおよびVRAM42dへのクロックの供給を停止することにより、これらを駆動させないようにして、消費電力を低減するようにしてある。   Although power is supplied to the system LSI 42 even in the standby mode, the supply of clocks to the GPU 42b, DSP 42c, and VRAM 42d is stopped so that they are not driven to reduce power consumption. is there.

また、図示は省略するが、ゲーム装置12のハウジング14内部には、CPU40やシステムLSI42などのICの熱を外部に排出するためのファンが設けられる。スタンバイモードでは、このファンも停止される。   Although not shown, a fan for discharging the heat of the IC such as the CPU 40 and the system LSI 42 to the outside is provided inside the housing 14 of the game apparatus 12. In the standby mode, this fan is also stopped.

ただし、スタンバイモードを利用したくない場合には、スタンバイモードを利用しない設定にしておくことにより、電源ボタン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 power button 20a is turned off by setting the standby mode not to be used.

また、通常モードとスタンバイモードの切り替えは、コントローラ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 power switch 26h of the controller 22. When the remote operation is not performed, the power supply to the wireless controller module 52a may be set not to be performed in the standby mode.

リセットボタン20bもまた、システムLSI42に接続される。リセットボタン20bが押されると、システムLSI42は、ゲーム装置12の起動プログラムを再起動する。イジェクトボタン20cは、ディスクドライブ54に接続される。イジェクトボタン20cが押されると、ディスクドライブ54から光ディスク18が排出される。   The reset button 20b is also connected to the system LSI 42. When the reset button 20b is pressed, the system LSI 42 restarts the boot program for the game apparatus 12. The eject button 20 c is connected to the disk drive 54. When the eject button 20c is pressed, the optical disk 18 is ejected from the disk drive 54.

図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 controller 22. 3A shows the front end surface of the controller 22, FIG. 3B shows the top surface of the controller 22, FIG. 3C shows the right side surface of the controller 22, and FIG. The lower surface is shown, and FIG. 3E shows the rear end surface of the controller 22.

図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 controller 22 has a housing 22a formed by plastic molding, for example. The housing 22a has a substantially rectangular parallelepiped shape and is a size that can be held by a user with one hand. The housing 22a (controller 22) is provided with input means (a plurality of buttons or switches) 26. Specifically, as shown in FIG. 3B, on the upper surface of the housing 22a, the cross key 26a, the 1 button 26b, the 2 button 26c, the A button 26d, the − button 26e, the HOME button 26f, the + button 26g, and A power switch 26h is provided. As shown in FIGS. 3C and 3D, an inclined surface is formed on the lower surface of the housing 22a, and a B trigger switch 26i is provided on the inclined surface.

十字キー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 button 26b and the 2 button 26c is a push button switch. For example, it is used for game operations such as adjusting the viewpoint position and direction when displaying a three-dimensional game image, that is, adjusting the position and angle of view of a virtual camera. Alternatively, the 1 button 26b and the 2 button 26c may be used when the same operation as the A button 26d and the B trigger switch 26i or an auxiliary operation is performed.

Aボタンスイッチ26dは、押しボタンスイッチであり、プレイヤキャラクタまたはプレイヤオブジェクトに、方向指示以外の動作、すなわち、打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせるために使用される。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かすなどを指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。   The A button switch 26d is a push button switch, and causes the player character or the player object to perform an action other than a direction instruction, that is, an arbitrary action such as hitting (punching), throwing, grabbing (acquiring), riding, jumping, and the like. Used for. For example, in an action game, it is possible to instruct jumping, punching, moving a weapon, and the like. In the role playing game (RPG) and the simulation RPG, it is possible to instruct acquisition of items, selection and determination of weapons and commands, and the like.

−ボタン26e、HOMEボタン26f、+ボタン26gおよび電源スイッチ26hもまた、押しボタンスイッチである。−ボタン26eは、ゲームモードを選択するために使用される。HOMEボタン26fは、ゲームメニュー(メニュー画面)を表示するために使用される。+ボタン26gは、ゲームを開始(再開)したり、一時停止したりするなどのために使用される。電源スイッチ26hは、ゲーム装置12の電源を遠隔操作によってオン/オフするために使用される。   The − button 26e, the HOME button 26f, the + button 26g, and the power switch 26h are also push button switches. The-button 26e is used for selecting a game mode. The HOME button 26f is used to display a game menu (menu screen). The + button 26g is used for starting (restarting) or pausing the game. The power switch 26h is used to turn on / off the power of the game apparatus 12 by remote control.

なお、この実施例では、コントローラ22自体をオン/オフするための電源スイッチは設けておらず、コントローラ22の入力手段26のいずれかを操作することによってコントローラ22はオンとなり、一定時間(たとえば、30秒)以上操作しなければ自動的にオフとなるようにしてある。   In this embodiment, a power switch for turning on / off the controller 22 itself is not provided, and the controller 22 is turned on by operating any one of the input means 26 of the controller 22 for a certain time (for example, If it is not operated for 30 seconds) or more, it is automatically turned off.

Bトリガースイッチ26iもまた、押しボタンスイッチであり、主として、弾を撃つなどのトリガを模した入力を行ったり、コントローラ22で選択した位置を指定したりするために使用される。また、Bトリガースイッチ26iを押し続けると、プレイヤオブジェクトの動作やパラメータを一定の状態に維持することもできる。また、一定の場合には、Bトリガースイッチ26iは、通常のBボタンと同様に機能し、Aボタン26dによって決定したアクションを取り消すなどのために使用される。   The B-trigger switch 26i is also a push button switch, and is mainly used for performing an input imitating a trigger such as shooting a bullet or designating a position selected by the controller 22. In addition, if the B trigger switch 26i is continuously pressed, the motion and parameters of the player object can be maintained in a certain state. In a fixed case, the B trigger switch 26i functions in the same way as a normal B button, and is used for canceling the action determined by the A button 26d.

また、図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 external expansion connector 22b is provided on the rear end surface of the housing 22a, and as shown in FIG. 3 (B), it is the upper surface of the housing 22a and on the rear end surface side. An indicator 22c is provided. The external expansion connector 22b is used for connecting another expansion controller (not shown). The indicator 22c is composed of, for example, four LEDs, and indicates the identification information (controller number) of the controller 22 corresponding to the lighting LED by lighting any one of the four LEDs, or the number of LEDs to be lit. Can indicate the remaining power of the controller 22.

さらに、コントローラ22は、撮像情報演算部80(図4参照)を有しており、図3(A)に示すように、ハウジング22aの先端面には撮像情報演算部80の光入射口22dが設けられる。また、コントローラ22は、スピーカ86(図4参照)を有しており、このスピーカ86は、図3(B)に示すように、ハウジング22aの上面であり、1ボタン26bとHOMEボタン26fとの間に設けられる音抜き孔22eに対応して、ハウジング22a内部に設けられる。   Furthermore, the controller 22 has an imaging information calculation unit 80 (see FIG. 4). As shown in FIG. 3A, the light incident port 22d of the imaging information calculation unit 80 is provided at the distal end surface of the housing 22a. Provided. Further, the controller 22 has a speaker 86 (see FIG. 4). As shown in FIG. 3B, the speaker 86 is an upper surface of the housing 22a, and includes a 1 button 26b and a HOME button 26f. Corresponding to the sound release hole 22e provided between them, it is provided inside the housing 22a.

なお、図3(A)ないし図3(E)に示したコントローラ22の形状や、各入力手段26の形状、数および設置位置等は単なる一例に過ぎず、それらが適宜改変された場合であっても、本発明を実現できることは言うまでもない。   It should be noted that the shape of the controller 22 shown in FIGS. 3A to 3E, the shape, the number, the installation position, etc. of each input means 26 are merely examples, and they may be modified as appropriate. However, it goes without saying that the present invention can be realized.

図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 controller 22. Referring to FIG. 4, the controller 22 includes a processor 70. The processor 70 is connected to an external expansion connector 22b, an input means 26, a memory 72, an acceleration sensor 74, and a wireless module 76 by an internal bus (not shown). The imaging information calculation unit 80, the LED 82 (indicator 22c), the vibrator 84, the speaker 86, and the power supply circuit 88 are connected. An antenna 78 is connected to the wireless module 76.

プロセッサ70は、コントローラ22の全体制御を司り、入力手段26、加速度センサ74および撮像情報演算部80によって入力された情報(入力情報)を、入力データとして無線モジュール76およびアンテナ78を介してゲーム装置12に送信(入力)する。このとき、プロセッサ70は、メモリ72を作業領域ないしバッファ領域として用いる。   The processor 70 performs overall control of the controller 22, and information (input information) input by the input unit 26, the acceleration sensor 74, and the imaging information calculation unit 80 is input as input data to the game device via the wireless module 76 and the antenna 78. 12 (input). At this time, the processor 70 uses the memory 72 as a work area or a buffer area.

上述した入力手段26(26a−26i)からの操作信号(操作データ)は、プロセッサ70に入力され、プロセッサ70は操作データを一旦メモリ72に記憶する。   The operation signal (operation data) from the input means 26 (26a-26i) described above is input to the processor 70, and the processor 70 temporarily stores the operation data in the memory 72.

また、加速度センサ74は、コントローラ22の縦方向(y軸方向)、横方向(x軸方向)および前後方向(z軸方向)の3軸で各々の加速度を検出する。この加速度センサ74は、典型的には、静電容量式の加速度センサであるが、他の方式のものを用いるようにしてもよい。   Further, the acceleration sensor 74 detects the respective accelerations of the three axes of the controller 22 in the vertical direction (y-axis direction), the horizontal direction (x-axis direction), and the front-rear direction (z-axis direction). The acceleration sensor 74 is typically a capacitance type acceleration sensor, but other types may be used.

たとえば、加速度センサ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 processor 70. To enter. For example, the acceleration sensor 74 detects the acceleration in each axial direction in a range of −2.0 g to 2.0 g (g is a gravitational acceleration. The same applies hereinafter). The processor 70 detects the acceleration data given from the acceleration sensor 74 every second predetermined time and temporarily stores it in the memory 72. The processor 70 creates input data including at least one of operation data, acceleration data, and marker coordinate data described later, and transmits the created input data to the game apparatus 12 every third predetermined time (for example, 5 msec). .

なお、図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 housing 22a.

無線モジュール76は、たとえばBluetoothの技術を用いて、所定周波数の搬送波を入力データで変調し、その微弱電波信号をアンテナ78から放射する。つまり、入力データは、無線モジュール76によって微弱電波信号に変調されてアンテナ78(コントローラ22)から送信される。この微弱電波信号が上述したゲーム装置12に設けられた無線コントローラモジュール52によって受信される。受信された微弱電波は、復調および復号の処理を施され、したがって、ゲーム装置12(CPU40)は、コントローラ22からの入力データを取得することができる。そして、CPU40は、取得した入力データとプログラム(ゲームプログラム)とに従ってゲーム処理を行う。   The wireless module 76 modulates a carrier wave of a predetermined frequency with input data using, for example, Bluetooth technology, and radiates the weak radio signal from the antenna 78. That is, the input data is modulated by the wireless module 76 into a weak radio signal and transmitted from the antenna 78 (controller 22). This weak radio signal is received by the wireless controller module 52 provided in the game apparatus 12 described above. The received weak radio wave is subjected to demodulation and decoding processing, and thus the game apparatus 12 (CPU 40) can acquire input data from the controller 22. And CPU40 performs a game process according to the acquired input data and a program (game program).

さらに、上述したように、コントローラ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 information calculation unit 80 is provided in the controller 22. The imaging information calculation unit 80 includes an infrared filter 80a, a lens 80b, an imaging element 80c, and an image processing circuit 80d. The infrared filter 80 a allows only infrared light to pass through from light incident from the front of the controller 22. As described above, the markers 340 m and 340 n arranged in the vicinity (periphery) of the display screen of the monitor 34 are infrared LEDs that output infrared light toward the front of the monitor 34. Therefore, by providing the infrared filter 80a, the images of the markers 340m and 340n can be taken more accurately. The lens 84 condenses the infrared light transmitted through the infrared filter 82 and emits it to the image sensor 80c. The image sensor 80c is a solid-state image sensor such as a CMOS sensor or a CCD, for example, and images infrared rays collected by the lens 80b. Accordingly, the image sensor 80c captures only the infrared light that has passed through the infrared filter 80a and generates image data. Hereinafter, an image captured by the image sensor 80c is referred to as a captured image. The image data generated by the image sensor 80c is processed by the image processing circuit 80d. The image processing circuit 80d calculates the position of the imaging target (markers 340m and 340n) in the captured image, and outputs each coordinate value indicating the position to the processor 70 as imaging data every fourth predetermined time. The processing in the image processing circuit 80d will be described later.

図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 load controller 36 shown in FIG. As shown in FIG. 5, the load controller 36 includes a platform 36a on which the player rides (to put his / her feet), and at least four load sensors 36b for detecting a load applied to the platform 36a. Each load sensor 36b is included in the base 36a (see FIGS. 6 and 7), and the arrangement thereof is indicated by a dotted line in FIG.

台36aは、略直方体に形成されており、上面視で略長方形状である。たとえば長方形の短辺が30cm程度に設定され、その長辺が50cm程度に設定される。プレイヤが乗る台36aの上面は平坦にされる。台36aの4隅の側面は、部分的に円柱状に張り出すように形成されている。   The base 36a is formed in a substantially rectangular parallelepiped and has a substantially rectangular shape when viewed from above. For example, the short side of the rectangle is set to about 30 cm, and the long side is set to about 50 cm. The upper surface of the platform 36a on which the player rides is made flat. The side surfaces of the four corners of the base 36a are formed so as to partially protrude into a columnar shape.

この台36aにおいて、4つの荷重センサ36bは、所定の間隔を置いて配置される。この実施例では、4つの荷重センサ36bは、台36aの周縁部に、具体的には4隅にそれぞれ配置される。荷重センサ36bの間隔は、台36aに対するプレイヤの荷重のかけ方によるゲーム操作の意図をより精度良く検出できるように適宜な値に設定される。   In the table 36a, the four load sensors 36b are arranged at a predetermined interval. In this embodiment, the four load sensors 36b are arranged at the peripheral edge of the table 36a, specifically at the four corners. The interval between the load sensors 36b is set to an appropriate value so that the intention of the game operation due to the player's load applied to the platform 36a can be detected with higher accuracy.

図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 load controller 36 shown in FIG. 5, and an enlarged corner portion where the load sensor 36b is arranged. As can be seen from FIG. 6, the stand 36a includes a support plate 360 and legs 362 for the player to ride. The leg 362 is provided at a location where the load sensor 36b is disposed. In this embodiment, since the four load sensors 36b are arranged at the four corners, the four legs 362 are provided at the four corners. The leg 362 is formed in a substantially bottomed cylindrical shape by plastic molding, for example, and the load sensor 36b is disposed on a spherical component 362a provided on the bottom surface in the leg 362. The support plate 360 is supported by the legs 362 through the load sensor 36b.

支持板360は、上面と側面上部とを形成する上層板360a、下面と側面下部とを形成する下層板360b、および上層板360aと下層板360bとの間に設けられる中層板360cを含む。上層板360aと下層板360bとは、たとえばプラスチック成型により形成されており、接着等により一体化される。中層板360cは、たとえば1枚の金属板のプレス成型により形成されている。この中層板360cが、4つの荷重センサ36bの上に固定される。上層板360aは、その下面に格子状のリブ(図示しない)を有しており、当該リブを介して中層板360cに支持されている。   The support plate 360 includes an upper layer plate 360a that forms the upper surface and the upper side surface, a lower layer plate 360b that forms the lower surface and the lower side surface, and an intermediate layer plate 360c provided between the upper layer plate 360a and the lower layer plate 360b. The upper layer plate 360a and the lower layer plate 360b are formed by plastic molding, for example, and are integrated by bonding or the like. The middle layer plate 360c is formed by press molding of one metal plate, for example. The middle layer plate 360c is fixed on the four load sensors 36b. The upper layer plate 360a has lattice-like ribs (not shown) on the lower surface thereof, and is supported by the middle layer plate 360c via the ribs.

したがって、台36aにプレイヤが乗ったときには、その荷重は、支持板360、荷重センサ36bおよび脚362を伝達する。図6に矢印で示したように、入力される荷重によって生じた床からの反作用は、脚362から、球面部品362a、荷重センサ36b、中層板360cを介して、上層板360aに伝達する。   Therefore, when the player gets on the platform 36a, the load is transmitted to the support plate 360, the load sensor 36b, and the legs 362. As indicated by arrows in FIG. 6, the reaction from the floor caused by the input load is transmitted from the leg 362 to the upper layer plate 360a via the spherical component 362a, the load sensor 36b, and the middle layer plate 360c.

荷重センサ36bは、たとえば歪ゲージ(歪センサ)式ロードセルであり、入力された荷重を電気信号に変換する荷重変換器である。荷重センサ36bでは、荷重入力に応じて、起歪体370aが変形して歪が生じる。この歪が、起歪体に貼り付けられた歪センサ370bによって、電気抵抗の変化に変換され、さらに電圧変化に変換される。したがって、荷重センサ36bは、入力荷重を示す電圧信号を出力端子から出力する。   The load sensor 36b is, for example, a strain gauge (strain sensor) type load cell, and is a load converter that converts an input load into an electric signal. In the load sensor 36b, the strain generating body 370a is deformed in accordance with the load input, and distortion occurs. This strain is converted into a change in electrical resistance by a strain sensor 370b attached to the strain generating body, and further converted into a change in voltage. Therefore, the load sensor 36b outputs a voltage signal indicating the input load from the output terminal.

なお、荷重センサ36bは、音叉振動式、弦振動式、静電容量式、圧電式、磁歪式、またはジャイロ式のような他の方式の荷重センサであってもよい。   The load sensor 36b may be another type of load sensor such as a tuning fork vibration type, a string vibration type, a capacitance type, a piezoelectric type, a magnetostrictive type, or a gyro type.

図5に戻って、荷重コントローラ36には、さらに、電源ボタン36cが設けられる。この電源ボタン36cがオンされると、荷重コントローラ36の各回路コンポーネント(図7参照)に電源が供給される。ただし、荷重コントローラ36は、ゲーム装置12からの指示に従ってオンされる場合もある。また、荷重コントローラ36は、プレイヤが乗っていない状態が一定時間(たとえば、30秒)以上継続すると、電源がオフされる。ただし、荷重コントローラ36が起動されている状態で、電源ボタン36cをオンしたときに、電源がオフされてもよい。   Returning to FIG. 5, the load controller 36 is further provided with a power button 36 c. When the power button 36c is turned on, power is supplied to each circuit component (see FIG. 7) of the load controller 36. However, the load controller 36 may be turned on in accordance with an instruction from the game apparatus 12. In addition, the load controller 36 is turned off when the state in which the player is not on continues for a certain time (for example, 30 seconds) or longer. However, the power may be turned off when the power button 36c is turned on while the load controller 36 is activated.

図7のブロック図には、荷重コントローラ36の電気的な構成の一例が示される。なお、この図7では、信号および通信の流れは実線矢印で示される。破線矢印は、電源の供給を示している。   An example of the electrical configuration of the load controller 36 is shown in the block diagram of FIG. In FIG. 7, the flow of signals and communication is indicated by solid arrows. Dashed arrows indicate power supply.

荷重コントローラ36は、その動作を制御するためのマイクロコンピュータ(マイコン)100を含む。マイコン100は図示しないCPU、ROMおよびRAM等を含み、CPUはROMに記憶されたプログラムに従って荷重コントローラ36の動作を制御する。   The load controller 36 includes a microcomputer 100 for controlling the operation thereof. The microcomputer 100 includes a CPU, ROM, RAM, and the like (not shown), and the CPU controls the operation of the load controller 36 according to a program stored in the ROM.

マイコン100には、電源ボタン36c、ADコンバータ102、DC−DCコンバータ104および無線モジュール106が接続される。さらに、無線モジュール106には、アンテナ106aが接続される。また、4つの荷重センサ36bは、図3ではロードセル36bとして示される。4つの荷重センサ36bは、それぞれ、増幅器108を介してADコンバータ102に接続される。   The microcomputer 100 is connected to the power button 36c, the AD converter 102, the DC-DC converter 104, and the wireless module 106. Further, an antenna 106 a is connected to the wireless module 106. Also, the four load sensors 36b are shown as load cells 36b in FIG. Each of the four load sensors 36b is connected to the AD converter 102 via the amplifier 108.

また、荷重コントローラ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 load controller 36 houses a battery 100 for supplying power. In another embodiment, an AC adapter may be connected instead of a battery to supply commercial power. In such a case, it is necessary to provide a power supply circuit that converts alternating current into direct current and steps down and rectifies the direct current voltage instead of the DC-DC converter. In this embodiment, power is supplied to the microcomputer 100 and the wireless module 106 directly from the battery. That is, power is always supplied to some components (CPU) and the wireless module 106 in the microcomputer 100, and whether or not the power button 36c is turned on, whether the game apparatus 12 is turned on (load detection). Detects whether a command has been sent. On the other hand, power from the battery 110 is supplied to the load sensor 36b, the AD converter 102, and the amplifier 108 via the DC-DC converter 104. The DC-DC converter 104 converts the voltage value of the direct current from the battery 110 into a different voltage value, and supplies it to the load sensor 36b, the AD converter 102, and the amplifier 108.

これら荷重センサ36b、ADコンバータ102および増幅器108への電源供給は、マイコン100によるDC−DCコンバータ104の制御によって、必要に応じて行われるようにしてよい。つまり、マイコン100は、荷重センサ36bを動作させて荷重を検出する必要があると判断されるときに、DC−DCコンバータ104を制御して、各荷重センサ36b、ADコンバータ102および各増幅器108に電源を供給するようにしてよい。   The power supply to the load sensor 36b, the AD converter 102, and the amplifier 108 may be performed as needed under the control of the DC-DC converter 104 by the microcomputer 100. That is, the microcomputer 100 controls the DC-DC converter 104 to operate the load sensor 36b, the AD converter 102, and each amplifier 108 when it is determined that the load sensor 36b needs to be operated to detect the load. Power may be supplied.

電源が供給されると、各荷重センサ36bは、入力された荷重を示す信号を出力する。当該信号は各増幅器108で増幅され、ADコンバータ102でアナログ信号からディジタルデータに変換されて、マイコン100に入力される。各荷重センサ36bの検出値には各荷重センサ36bの識別情報が付与されて、いずれの荷重センサ36bの検出値であるかが識別可能にされる。このようにして、マイコン100は、同一時刻における4つの荷重センサ36bのそれぞれの荷重検出値を示すデータを取得することができる。   When power is supplied, each load sensor 36b outputs a signal indicating the input load. The signal is amplified by each amplifier 108, converted from an analog signal to digital data by the AD converter 102, and input to the microcomputer 100. The identification value of each load sensor 36b is given to the detection value of each load sensor 36b, and it is possible to identify which load sensor 36b is the detection value. In this way, the microcomputer 100 can acquire data indicating the load detection values of the four load sensors 36b at the same time.

一方、マイコン100は、荷重センサ36bを動作させる必要がないと判断されるとき、つまり、荷重検出タイミングでないとき、DC−DCコンバータ104を制御して、荷重センサ36b、ADコンバータ102および増幅器108への電源の供給を停止する。このように、荷重コントローラ36では、必要なときにだけ、荷重センサ36bを動作させて荷重の検出を行うことができるので、荷重検出のための電力消費を抑制することができる。   On the other hand, the microcomputer 100 controls the DC-DC converter 104 to the load sensor 36b, the AD converter 102, and the amplifier 108 when it is determined that it is not necessary to operate the load sensor 36b, that is, when the load detection timing is not reached. Stop supplying the power. As described above, the load controller 36 can operate the load sensor 36b to detect the load only when necessary, so that power consumption for load detection can be suppressed.

荷重検出の必要なときとは、典型的には、ゲーム装置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 game apparatus 12 needs load information, the game apparatus 12 transmits a load acquisition command to the load controller 36. When the microcomputer 100 receives a load acquisition command from the game apparatus 12, the microcomputer 100 controls the DC-DC converter 104, supplies power to the load sensor 36b, and detects the load. On the other hand, when the microcomputer 100 has not received a load acquisition command from the game apparatus 12, the microcomputer 100 controls the DC-DC converter 104 to stop the power supply. Alternatively, the microcomputer 100 may control the DC-DC converter 104 by determining that it is the load detection timing at regular time intervals. When performing such periodic load acquisition, for example, the period information may be first given from the game apparatus 12 to the microcomputer 100 or stored in the microcomputer 100 in advance.

荷重センサ36bからの検出値を示すデータは、荷重コントローラ36の操作データ(入力データ)として、マイコン100から無線モジュール106およびアンテナ106bを介してゲーム装置12(図1)に送信される。たとえば、ゲーム装置12からの命令を受けて荷重検出を行った場合、マイコン100は、ADコンバータ102から荷重センサ36bの検出値データを受信したときに、当該検出値データをゲーム装置12に送信する。あるいは、マイコン100は、一定時間ごとに検出値データをゲーム装置12に送信するようにしてもよい。   Data indicating the detection value from the load sensor 36b is transmitted as operation data (input data) of the load controller 36 from the microcomputer 100 to the game apparatus 12 (FIG. 1) via the wireless module 106 and the antenna 106b. For example, when the load is detected in response to a command from the game apparatus 12, the microcomputer 100 transmits the detection value data to the game apparatus 12 when receiving the detection value data of the load sensor 36 b from the AD converter 102. . Alternatively, the microcomputer 100 may transmit detection value data to the game apparatus 12 at regular time intervals.

なお、無線モジュール106は、ゲーム装置12の無線コントローラモジュール52と同じ無線規格(Bluetooth、無線LANなど)で通信可能にされる。したがって、ゲーム装置12のCPU40は、無線コントローラモジュール52等を介して荷重取得命令を荷重コントローラ36に送信することができる。荷重コントローラ36のマイコン100は、無線モジュール106およびアンテナ106aを介して、ゲーム装置12からの命令を受信し、また、各荷重センサ36bの荷重検出値(または荷重算出値)を含む入力データをゲーム装置12に送信することができる。   The wireless module 106 is communicable with the same wireless standard (Bluetooth, wireless LAN, etc.) as the wireless controller module 52 of the game apparatus 12. Therefore, the CPU 40 of the game apparatus 12 can transmit a load acquisition command to the load controller 36 via the wireless controller module 52 or the like. The microcomputer 100 of the load controller 36 receives a command from the game apparatus 12 via the wireless module 106 and the antenna 106a, and inputs input data including a load detection value (or load calculation value) of each load sensor 36b to the game. Can be transmitted to the device 12.

図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 controller 22 and the load controller 36. As shown in FIG. 8, when playing a virtual game using the controller 22 and the load controller 36 in the video game system 10, the player rides on the load controller 36 and holds the controller 22 with one hand. Strictly speaking, the player gets on the load controller 36 with the front end surface of the controller 22 (on the side of the light incident port 22d imaged by the imaging information calculation unit 80) facing the markers 340m and 340n, Hold it. However, as can be seen from FIG. 1, the markers 340 m and 340 n are arranged in parallel with the horizontal direction of the screen of the monitor 34. In this state, the player performs a game operation by changing the position on the screen instructed by the controller 22 or changing the distance between the controller 22 and each of the markers 340m and 340n.

なお、図8では、プレイヤがモニタ34の画面に対して横を向くように荷重コントローラ36を縦置きにしてあるが、ゲームによっては、プレイヤがモニタ34の画面に対して正面を向くように荷重コントローラ36を横置きにしてよい。   In FIG. 8, the load controller 36 is placed vertically so that the player faces the screen of the monitor 34. However, depending on the game, the load is applied so that the player faces the front of the screen of the monitor 34. The controller 36 may be placed horizontally.

図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 markers 340 m and 340 n and the controller 22. As shown in FIG. 9, the markers 340m and 340n each emit infrared light in the range of the viewing angle θ1. In addition, the image sensor 80c of the imaging information calculation unit 80 can receive light incident in the range of the viewing angle θ2 with the sight line direction of the controller 22 as the center. For example, the viewing angles θ1 of the markers 340m and 340n are both 34 ° (half-value angle), while the viewing angle θ2 of the image sensor 80c is 41 °. The player holds the controller 22 so that the imaging element 80c has a position and an orientation in which infrared light from the two markers 340m and 340n can be received. Specifically, at least one marker 340m and 340n exists in the viewing angle θ2 of the image sensor 80c, and the controller 22 exists in at least one viewing angle θ1 of the marker 340m or 340n. As described above, the player holds the controller 22. When in this state, the controller 22 can detect at least one of the markers 340m and 340n. The player can perform a game operation by changing the position and orientation of the controller 22 within a range that satisfies this state.

なお、コントローラ22の位置および向きがこの範囲外となった場合、コントローラ22の位置および向きに基づいたゲーム操作を行うことができなくなる。以下では、上記範囲を「操作可能範囲」と呼ぶ。   In addition, when the position and orientation of the controller 22 are out of this range, the game operation based on the position and orientation of the controller 22 cannot be performed. Hereinafter, the above range is referred to as an “operable range”.

操作可能範囲内でコントローラ22が把持される場合、撮像情報演算部80によって各マーカ340mおよび340nの画像が撮像される。すなわち、撮像素子80cによって得られる撮像画像には、撮像対象である各マーカ340mおよび340nの画像(対象画像)が含まれる。図10は、対象画像を含む撮像画像の一例を示す図である。対象画像を含む撮像画像の画像データを用いて、画像処理回路80dは、各マーカ340mおよび340nの撮像画像における位置を表す座標(マーカ座標)を算出する。   When the controller 22 is held within the operable range, the imaging information calculation unit 80 captures images of the markers 340m and 340n. That is, the captured image obtained by the imaging element 80c includes images (target images) of the markers 340m and 340n that are imaging targets. FIG. 10 is a diagram illustrating an example of a captured image including a target image. Using the image data of the captured image including the target image, the image processing circuit 80d calculates coordinates (marker coordinates) representing the positions of the markers 340m and 340n in the captured image.

撮像画像の画像データにおいて対象画像は高輝度部分として現れるため、画像処理回路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 image processing circuit 80d first detects this high luminance part as a candidate for the target image. Next, the image processing circuit 80d determines whether or not the high luminance part is the target image based on the detected size of the high luminance part. The captured image includes not only the images 340m ′ and 340n ′ of the two markers 340m and 340n, which are target images, but also images other than the target image due to sunlight from a window or light from a fluorescent lamp in a room. There is. In the determination process of whether or not the high-intensity portion is the target image, the images 340m ′ and 340n ′ of the markers 340m and 340n that are the target images are distinguished from other images, and the target image is accurately detected. To be executed. Specifically, in the determination process, it is determined whether or not the detected high-intensity portion has a size within a predetermined range. If the high-luminance portion has a size within a predetermined range, it is determined that the high-luminance portion represents the target image. On the other hand, when the high-luminance portion is not within the predetermined range, it is determined that the high-luminance portion represents an image other than the target image.

さらに、上記の判定処理の結果、対象画像を表すと判定された高輝度部分について、画像処理回路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 image processing circuit 80d calculates the position of the high luminance portion. Specifically, the barycentric position of the high luminance part is calculated. Here, the coordinates of the center of gravity are referred to as marker coordinates. Further, the position of the center of gravity can be calculated on a scale that is more detailed than the resolution of the image sensor 80c. Here, it is assumed that the resolution of the captured image captured by the image sensor 80c is 126 × 96, and the barycentric position is calculated on a scale of 1024 × 768. That is, the marker coordinates are represented by integer values from (0, 0) to (1024, 768).

なお、撮像画像における位置は、撮像画像の左上を原点とし、下向きを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 image processing circuit 80d outputs data indicating the calculated two marker coordinates. The output marker coordinate data (marker coordinate data) is included in the input data by the processor 70 and transmitted to the game apparatus 12 as described above.

ゲーム装置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 controller 22 on the screen of the monitor 34 and the marker 340m from the controller 22 based on the marker coordinate data. And each distance up to 340n can be calculated. Specifically, the position that the controller 22 faces, that is, the indicated position is calculated from the position of the midpoint between the two marker coordinates. In addition, since the distance between the target images in the captured image changes according to the distance between the controller 22 and the markers 340m and 340n, the game apparatus 12 and the controller 22 are calculated by calculating the distance between the two marker coordinates. The distance between the markers 340m and 340n can be grasped.

上述したように、コントローラ22および荷重コントローラ36を用いて仮想ゲームをプレイする場合、荷重コントローラ36で検出される荷重値に基づいてゲーム処理を実行することができる。この実施例では、仮想ゲームが開始されると、本編の開始に先立って、プレイヤが静止した状態において荷重コントローラ36によって4つの荷重センサ36bの荷重値が検出され、検出された4つの荷重値からプレイヤの体重値が算出(測定)され、測定された体重値が基準値として設定(メインメモリ42eまたは46に記憶)され、たとえば、設定された基準値と仮想ゲームの実行中に検出される荷重値(この実施例では、4つの荷重センサ36bで検出される荷重値の合計値)とに基づいてゲーム処理が実行される。つまり、プレイヤの体重値はゲーム処理を実行する場合の基準値となる。ただし、この実施例の仮想ゲームでは、プレイヤの体重の大小による有利不利を無くすため、現在の荷重値を基準値で割った値(以下、「体重率」という)に基づいてゲーム処理を実行するようにしてある。   As described above, when a virtual game is played using the controller 22 and the load controller 36, the game process can be executed based on the load value detected by the load controller 36. In this embodiment, when the virtual game is started, the load values of the four load sensors 36b are detected by the load controller 36 in a state where the player is stationary prior to the start of the main part, and from the detected four load values. The weight value of the player is calculated (measured), and the measured weight value is set as a reference value (stored in the main memory 42e or 46). For example, the set reference value and a load detected during execution of the virtual game The game process is executed based on the value (in this embodiment, the total value of the load values detected by the four load sensors 36b). That is, the weight value of the player is a reference value for executing the game process. However, in the virtual game of this embodiment, the game process is executed based on a value obtained by dividing the current load value by the reference value (hereinafter referred to as “weight ratio”) in order to eliminate the advantage and disadvantage caused by the size of the player. It is like that.

図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 game screen 200 displayed on the monitor 34 when playing the virtual game of this embodiment. For example, FIG. 11A shows a game screen 200 when the player object 202 is flapping and flying in the sky (during normal flight). FIG. 11B shows the game screen 200 when the player object 202 is descending in a substantially upright state with its wings widened to land on the non-player object 204 (descent). As shown in FIGS. 11A and 11B, the game screen 200 displays a player object 202 and a plurality of non-player objects 204. The player object (game character) 202 is an object (moving image object) imitating a bird. The non-player object 204 is an object that is a target for the player object 202 to land on.

この仮想ゲームでは、プレイヤオブジェクト202はプレイヤの操作に従って移動(飛行)し、複数のノンプレイヤオブジェクト204に着地しながら最終的な目標位置(ゴール)を目指す。たとえば、プレイヤオブジェクト202が、着地すべきすべてのノンプレイヤオブジェクト204を経由して、制限時間内にゴールに到達すると、ゲームクリアとなる。一方、プレイヤオブジェクト202がゴールに到達する前に制限時間を超えてしまったり、プレイヤオブジェクト202がノンプレイヤオブジェクト204を囲む海に落ちている時間が一定時間(たとえば、10秒)を超えてしまったり、プレイヤオブジェクト202が一定回数(たとえば、3回)海に落ちてしまったりすると、ゲームオーバとなる。   In this virtual game, the player object 202 moves (flies) according to the player's operation, and aims at the final target position (goal) while landing on the plurality of non-player objects 204. For example, when the player object 202 reaches the goal within the time limit through all the non-player objects 204 to be landed, the game is cleared. On the other hand, the time limit is exceeded before the player object 202 reaches the goal, or the time that the player object 202 has fallen into the sea surrounding the non-player object 204 exceeds a certain time (for example, 10 seconds). If the player object 202 falls into the sea a certain number of times (for example, three times), the game is over.

ゲーム中では、プレイヤは、荷重コントローラ36に乗り、鳥が羽ばたくように両手を上下に動かす(羽ばたき動作を行う)。すると、荷重コントローラ36で検出される荷重値が変化する。したがって、体重率WRも変化する。この体重率WRの変化に基づいて、プレイヤオブジェクト202の移動が制御される。この実施例では、プレイヤが羽ばたき動作を行うときの手(腕)の振りの強さ(体重率WRの変化量)に応じてプレイヤオブジェクト202の移動量(移動速度)が制御され、荷重コントローラ36上におけるプレイヤの重心位置に応じてプレイヤオブジェクト202の移動方向が制御される。   During the game, the player rides on the load controller 36 and moves his / her hands up and down (performs a flapping operation) so that a bird flutters. Then, the load value detected by the load controller 36 changes. Accordingly, the weight ratio WR also changes. The movement of the player object 202 is controlled based on the change in the weight ratio WR. In this embodiment, the moving amount (moving speed) of the player object 202 is controlled according to the strength of swinging of the hand (arm) when the player performs the flapping motion (change amount of the weight ratio WR), and the load controller 36 is controlled. The moving direction of the player object 202 is controlled according to the position of the center of gravity of the player above.

具体的には、図12(A)に示すように、プレイヤは、荷重コントローラ36上で、両手を大きく広げて、肩を中心に両手を大きく上下に振るように動作(大きく羽ばたく動作)を行ったり、図12(B)に示すように、プレイヤが、荷重コントローラ36上で、両手を小さく広げて、肘を中心に前腕を上下に振るように動作(小さく羽ばたく動作)を行ったりする。   Specifically, as shown in FIG. 12A, on the load controller 36, the player performs an action (a movement that greatly flutters) such that both hands are greatly spread and both hands are shaken up and down around the shoulder. Or, as shown in FIG. 12 (B), the player performs an operation (a small flapping operation) on the load controller 36 such that both hands are spread small and the forearm is swung up and down around the elbow.

図示は省略するが、プレイヤが大きく羽ばたく動作(大羽ばたき動作)を行うと、プレイヤオブジェクト202も大羽ばたき動作のアニメーションでモニタ34に表示され、プレイヤが小さく羽ばたく動作(小羽ばたき動作)を行うと、プレイヤオブジェクト202も小羽ばたき動作のアニメーションでモニタ34に表示される。同様に図示は省略するが、大羽ばたき動作のアニメーションは、小羽ばたき動作のアニメーションに比べて、羽の可動範囲(上下方向への移動範囲)が広く(大きく)される。   Although illustration is omitted, when the player performs a large flapping motion (large flapping motion), the player object 202 is also displayed on the monitor 34 with a large flapping motion animation, and when the player performs a small flapping motion (small flapping motion), The player object 202 is also displayed on the monitor 34 with an animation of flapping motion. Similarly, although the illustration is omitted, the animation of the large flapping motion has a wider (larger) movable range (the range of movement in the vertical direction) of the wings than the animation of the small flapping motion.

ここで、プレイヤが行う、大羽ばたき動作と、小羽ばたき動作との判別方法について説明する。図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 load controller 36 is weighted on the upper side of the graph. The lower side of the graph is the side where the player's load detected by the load controller 36 is reduced.

図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 expression 1, it is determined that the flapping operation is performed. If not satisfied, it is determined as a large flapping action. However, the maximum value of noise (spectrum noise) during the flapping operation is assumed to be Pn (0.0001).

[数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 Equation 1 is not satisfied and the frequency index number n = 1-15 and all the amplitudes A are less than Pn, it is considered that no periodic motion is performed. Is determined not to flapping.

このように、プレイヤの羽ばたき動作の有無および羽ばたき動作の種類(大羽ばたき動作または小羽ばたき動作)が判別されると、羽ばたきの種類に応じてアニメーションが選択され、選択されたアニメーションが再生される。したがって、上述したように、プレイヤの羽ばたき動作に応じて、プレイヤオブジェクト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 player object 202 is displayed on the monitor 34 in accordance with the flapping motion of the player.

ただし、プレイヤが羽ばたき動作を行っておらず、プレイヤオブジェクト202が3次元仮想空間内を下降している場合には、プレイヤオブジェクト202が下降中のアニメーション(下降時アニメーション)が再生される。   However, when the player is not flapping, and the player object 202 is descending in the three-dimensional virtual space, an animation in which the player object 202 is descending (animation during descending) is reproduced.

ここで、上述したように、この実施例では、荷重コントローラ36に乗っているプレイヤが羽ばたき動作を行うことにより、その荷重コントローラ36で検出される荷重値が変動し、体重率WRも変動する。したがって、たとえば、荷重コントローラ36に乗っているプレイヤが屈伸運動を行った場合にも、プレイヤが羽ばたき動作を行った場合と同様に、その荷重コントローラ36で検出される荷重値が周期的に変動する。かかる場合の体重率WRの時間変化のグラフの一例が図15に示される。図13ないし図15を比較して分かるように、屈伸運動を行った場合には、羽ばたき動作を行った場合よりも、体重率WRの変動がかなり大きくなる。   Here, as described above, in this embodiment, when a player riding on the load controller 36 performs a flapping motion, the load value detected by the load controller 36 varies, and the weight ratio WR also varies. Therefore, for example, even when a player riding on the load controller 36 performs a bending / extending motion, the load value detected by the load controller 36 periodically varies in the same manner as when the player performs a flapping motion. . An example of a graph of the change over time in the weight ratio WR in such a case is shown in FIG. As can be seen by comparing FIGS. 13 to 15, when the bending / extending exercise is performed, the fluctuation of the body weight ratio WR is considerably larger than when the flapping operation is performed.

後で具体的に示すが、この実施例では、体重率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 player object 202, whereby the player object 202 is moved in the three-dimensional virtual space. Moving. For this reason, when the player performs a bending / extending exercise, a larger propulsive force can be applied to the player object 202 than when the player performs a flapping motion, and the player object 202 can be moved greatly. However, such bending and stretching movements are not an operation method intended by developers and the like.

したがって、この実施例では、プレイヤの直前の羽ばたき動作(羽ばたき区間)において、一定の閾値(たとえば、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 player object 202 is made difficult to progress.

この実施例では、前々回の振り下ろし動作の開始から前回(直前)の振り下ろし動作の開始までの区間を、直前の羽ばたき動作(羽ばたき区間)として認識するようにしてある。ただし、図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 player object 202 during the game. In this embodiment, the propulsive force Acc is calculated according to Equation 2. However, the weight ratio WR is less than a predetermined threshold value (0.985 in this embodiment). As described above, when the weight ratio WR is smaller than 1.0, the driving force Acc is given to the player in the same manner as when the player gains the driving force when the bird swings down its wings. This is because the driving force is obtained when the operation is performed. Therefore, of the flapping motion performed by the player, the motion of swinging up both hands or arms upward (swing-up motion) can be said to be a preparatory motion of the swing-down motion for obtaining the propulsion amount. The reason why the threshold is less than the predetermined threshold is to eliminate the influence of noise.

[数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 Equation 2, the propulsive force Acc increases as the weight ratio WR decreases. That is, the propulsive force Acc increases when the load value varies greatly. Further, the propulsive force Acc is given when the weight ratio WR is less than a predetermined threshold value, and since this propulsive force Acc is reflected in the movement of the player object 202 every game frame, it is less than the predetermined threshold value. The longer the time is, that is, the longer the period of the flapping motion, such as the large flapping motion, the greater the number of times the propulsive force Acc is obtained. As a result, a large propulsive force Acc is applied to the player object 202, and therefore the moving distance or moving speed of the player object 202 increases (see Equations 3 and 4).

数2で算出される推進力Accはスカラ量であるが、3次元仮想空間においては、プレイヤオブジェクト202が直立した状態で頭頂部から真上に延びる単位ベクトル(Yベクトル)AccDirに、そのスカラ量を積分シミュレーションで用いる値(AccSim)に変換して乗算される。ただし、単位ベクトルAccDirは、後述するように、プレイヤの重心位置に応じてプレイヤオブジェクト202がローカル座標のX軸周りおよびY軸周りに回転されることにより、決定される。   The propulsive force Acc calculated by Equation 2 is a scalar quantity. In the three-dimensional virtual space, the scalar quantity is converted into a unit vector (Y vector) AccDir that extends right above the top of the player object 202 in an upright state. Is converted into a value (AccSim) used in the integration simulation and multiplied. However, the unit vector AccDir is determined by rotating the player object 202 around the X axis and the Y axis of local coordinates according to the position of the center of gravity of the player, as will be described later.

積分シミュレーションでは、推進力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 player object 202 after the movement is calculated according to Equations 3 and 4 based on the propulsive force Acc. However, the player object 202 is moved in the current game frame (current frame) in the direction in which the top of the head is directed, that is, in the direction of the unit vector AccDir. In Equations 3 and 4, the velocity of the next game frame (next frame) of the player object 202 is Vel_new, the velocity before movement, that is, the velocity of the current frame is Vel_old, and the gravitational acceleration vector in the three-dimensional virtual space is Gravity. The three-dimensional position of the current frame is Pos_old, and the three-dimensional position of the next frame is Pos_new. Also, in Equation 3, the acceleration vector (AccBoard × FallTransDir) when the player object 202 moves in the front-rear direction when descending is reflected in the velocity Vel_new of the next frame. However, AccBoard is a translational acceleration (acceleration in the horizontal direction), and FallTransDir is a direction vector (a vector in the front direction or the back direction of the player object 202).

[数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 distance 10 in the three-dimensional virtual space, but when the gravity acceleration Gravity is set according to the ratio, the player object 202 is caused to fly by the flapping motion of the player. For this reason, it is difficult to obtain a sufficient driving force. Therefore, the value is set to a relatively small value obtained experimentally by experiments or the like. 0.994 is air resistance. Therefore, it need not be a constant, and may be variably set according to the progress of the virtual game.

数3から分かるように、加速度ベクトル((AccSim×AccDir)または(AccBoard×FallTransDir))と重力加速度ベクトルGravityとを現フレームの速度Vel_oldに足して、空気抵抗の値を掛けることにより、次フレームの速度Vel_newを得る。また、数4から分かるように、次フレームの速度Vel_newを現フレームの座標Pos_oldに足して、次フレームの座標Pos_newを得る。これは、シミュレーションに使用する推進力AccSimを積分(2回積分)した結果である。   As can be seen from Equation 3, the acceleration vector ((AccSim × AccDir) or (AccBoard × FallTransDir)) and the gravitational acceleration vector Gravity are added to the velocity Vel_old of the current frame, and the value of the air resistance is multiplied. Get the velocity Vel_new. Further, as can be seen from Equation 4, the next frame velocity Pos_new is obtained by adding the velocity Vel_new of the next frame to the coordinate Pos_old of the current frame. This is the result of integrating (integrating twice) the driving force AccSim used for the simulation.

なお、プレイヤによる羽ばたき動作が無い場合には、体重率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 Equation 3 is As shown.

[数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, Equation 3 describes the translational motion of an object when a propulsive force is generated in the gravitational field of the three-dimensional virtual space.

また、プレイヤによる羽ばたき動作が有り、プレイヤオブジェクト202が下降していない場合には、数3において、プレイヤオブジェクト202の下降時における前後方向の加速度ベクトル(AccBoard×FallTransDir)は0となる。   Further, when there is a flapping motion by the player and the player object 202 is not descending, the acceleration vector in the front-rear direction (AccBoard × FallTransDir) when the player object 202 descends is 0 in Equation 3.

このようにして、プレイヤオブジェクトの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 player object 202 is arranged in the three-dimensional virtual space according to the determinant A shown in Equation 6. However, each element of the determinant A shown in Equation 6 has the following meaning. An element (Xx, Xy, Xz) is a direction in which the X axis of the local coordinates of the player object 202 is applied, and an element (Yx, Yy, Yz) is a direction in which the Y axis of the local coordinates of the player object 202 is applied. Zx, Zy, Zz) is a direction in which the Z axis of the local coordinates of the player object 202 is applied, and elements (Px, Py, Pz) are world coordinates (three-dimensional coordinates) where the center (center of gravity) of the local coordinates of the player object 202 is placed. ).

[数6]

Figure 0005478172
[Equation 6]

Figure 0005478172

また、ゲーム中では、荷重コントローラ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 player object 202 is determined (controlled) in accordance with the position of the center of gravity of the player's load on the load controller 36. In FIG. 16A, the upper surface of the load controller 36 (the surface of the upper layer plate 360a of the support plate 360), that is, the center of the detection range of the center of gravity is set to the origin O (0, 0). The direction (movement direction) of the head of the player object 202 is determined based on the shift amount of the center of gravity position. Here, the horizontal direction of the support plate 360 of the load controller 36 is the X-axis direction of the detection range, and the vertical direction thereof is the Y-axis direction of the detection range. However, the face direction (front direction) of the player who correctly rides on the load controller 36 is above the paper surface of FIG. As shown in FIG. 16A, the right direction of the detection range is the positive direction of the X axis, and the upward direction of the detection range is the positive direction of the Y axis.

ここで、図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 left load sensor 36b is R1, the load detection value of the lower left load sensor 36b is R2, the load detection value of the upper right load sensor 36b is R3, When the load detection value of the lower load sensor 36b is R4, the X coordinate (XG) of the center of gravity in the detection range coordinate system is calculated based on the difference between the right load value and the left load value, and the Y coordinate of the center of gravity is calculated. (YG) is calculated based on the difference between the upper load value and the lower load value. The X coordinate (XG) of the center of gravity is calculated by Equation 7, and the Y coordinate (YG) of the center of gravity is calculated by Equation 8.
[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 load controller 36 is set to the origin O. However, since the standing position differs depending on the player, the player rides on the load controller 36 and measures the weight value. The center-of-gravity position may be set at the origin O.

この実施例では、プレイヤオブジェクト202が飛行している場合において、下降している場合と下降していない場合とで、プレイヤオブジェクト202の移動方向の制御方法が異なる。以下、それぞれの場合について説明することにする。   In this embodiment, when the player object 202 is flying, the method of controlling the moving direction of the player object 202 differs depending on whether the player object 202 is descending or not. Hereinafter, each case will be described.

プレイヤオブジェクト202が下降していない場合には、プレイヤオブジェクト202は、荷重コントローラ36で検出される荷重の重心位置のX座標に応じて左右方向に回転され、重心位置のY座標に応じて前後方向に回転される。   When the player object 202 is not lowered, the player object 202 is rotated in the left-right direction according to the X coordinate of the center of gravity position of the load detected by the load controller 36, and the front-rear direction is determined according to the Y coordinate of the center of gravity position. To be rotated.

重心位置が検出範囲内の領域(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 player object 202 rotates counterclockwise (leftward) about the Y axis of the local coordinates. Around). When the center of gravity position is included in the region (II) or region (IV) within the detection range and the X coordinate of the center of gravity is positive, the player object 202 rotates clockwise around the Y axis of the local coordinates. It is rotated (clockwise).

具体的には、図16(B)に示すように、プレイヤオブジェクト202を真上から見た場合に、重心位置のX座標の負の値に応じて、プレイヤオブジェクト202のローカル座標のY軸の反時計回りの回転量が決定され、重心位置のX座標の正の値に応じて、プレイヤオブジェクト202のローカル座標のY軸の時計周りの回転量が決定される。回転量は、重心位置のX座標の大きさに比例する。また、重心位置のX座標が正の値であれば、プレイヤオブジェクト202は、そのローカル座標のY軸の時計回りに回転し続ける。   Specifically, as shown in FIG. 16B, when the player object 202 is viewed from directly above, the Y coordinate of the local coordinate of the player object 202 is changed according to the negative value of the X coordinate of the center of gravity position. The counterclockwise rotation amount is determined, and the clockwise rotation amount of the Y axis of the local coordinates of the player object 202 is determined according to the positive value of the X coordinate of the gravity center position. The amount of rotation is proportional to the size of the X coordinate of the center of gravity position. If the X coordinate of the gravity center position is a positive value, the player object 202 continues to rotate clockwise on the Y axis of the local coordinate.

ただし、この実施例では、ローカル座標は、プレイヤオブジェクト202が直立した状態において、横(水平)方向がX軸方向であり、縦(垂直)方向がY軸方向であり、前後(奥行き)方向がZ軸方向である。また、各軸は、プレイヤオブジェクト202の中心ないし重心を通る。さらに、プレイヤオブジェクト202が直立した状態で、その左手(左の羽)の方向がローカル座標のX軸のプラス方向であり、その上方向がローカル座標のY軸のプラス方向であり、その前方向(腹の方向)がローカル座標のZ軸のプラス方向である。   However, in this embodiment, in the state where the player object 202 is upright, the local coordinates are the X-axis direction in the horizontal (horizontal) direction, the Y-axis direction in the vertical (vertical) direction, and the front-rear (depth) direction. It is the Z-axis direction. Each axis passes through the center or the center of gravity of the player object 202. Further, with the player object 202 standing upright, the direction of its left hand (left wing) is the positive direction of the local coordinate X-axis, the upward direction is the positive direction of the local coordinate Y-axis, and its forward direction (Antinode direction) is the positive direction of the local coordinate Z-axis.

また、重心位置が検出範囲内の領域(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 player object 202 rotates around the X axis of local coordinates so as to tilt. The amount of inclination (rotation amount) in the front direction is proportional to the size of the Y coordinate of the center of gravity, but the maximum amount of inclination is 55 degrees from the state where the player object 202 is upright.

図示は省略するが、重心位置が検出範囲内の領域(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 player object 202 is rotated around the X axis of the local coordinates. Yes, it is rotated in the back direction. However, the maximum inclination amount of the player object 202 in the back direction is set to 35 degrees. This is to avoid an undesired state in which the player object 202 is flying with its stomach up.

一方、プレイヤオブジェクト202が下降している場合には、プレイヤオブジェクト202は、荷重コントローラ36で検出される荷重の重心位置のX座標に応じて左右方向に回転され、重心位置のY座標に応じて前後方向に並進される。   On the other hand, when the player object 202 is descending, the player object 202 is rotated in the left-right direction according to the X coordinate of the center of gravity position of the load detected by the load controller 36, and according to the Y coordinate of the center of gravity position. Translated back and forth.

プレイヤオブジェクト202が下降している場合においても、重心位置のX座標に応じて、プレイヤオブジェクト202はローカル座標のY軸周りに回転される。これは、図16(B)を用いて説明したのと同じであるため、重複した説明は省略する。   Even when the player object 202 is descending, the player object 202 is rotated around the Y axis of the local coordinates in accordance with the X coordinate of the gravity center position. Since this is the same as that described with reference to FIG. 16B, a duplicate description is omitted.

また、プレイヤオブジェクト202が下降している場合には、図18に示すように、重心位置のY座標に応じて、プレイヤオブジェクト202は、前後方向に移動(並進)される。つまり、かかる場合には、プレイヤオブジェクト202の頭部は傾斜されない。また、並進する場合の移動量(変位量)は、重心位置のY座標の大きさによって決定される。このように、下降時に、重心位置のY座標に応じて並進されるのは、プレイヤオブジェクト202をノンプレイヤオブジェクト204に着地させ易くするためである。重心位置のY座標が正の場合には、プレイヤオブジェクト202は、正面方向に移動(並進)する。このとき、Y座標が大きくなると、移動量も大きくされる。一方、重心位置のY座標が負の場合には、プレイヤオブジェクト202は、正面方向とは逆向き(背面方向)に並進する。このとき、Y座標が小さくなると、つまり負の方向に大きくなると、移動量が大きくされる。ただし、プレイヤオブジェクト202が1ゲームフレームで移動する移動量の最大値は予め設定されている。   Further, when the player object 202 is descending, as shown in FIG. 18, the player object 202 is moved (translated) in the front-rear direction according to the Y coordinate of the center of gravity position. That is, in such a case, the head of the player object 202 is not tilted. Further, the amount of movement (the amount of displacement) for translation is determined by the size of the Y coordinate of the center of gravity position. Thus, the reason why the translation is performed according to the Y coordinate of the gravity center position when descending is to make it easier for the player object 202 to land on the non-player object 204. When the Y coordinate of the gravity center position is positive, the player object 202 moves (translates) in the front direction. At this time, as the Y coordinate increases, the amount of movement also increases. On the other hand, when the Y coordinate of the barycentric position is negative, the player object 202 translates in the direction opposite to the front direction (backward direction). At this time, when the Y coordinate becomes small, that is, when the Y coordinate becomes large in the negative direction, the movement amount is increased. However, the maximum value of the movement amount that the player object 202 moves in one game frame is set in advance.

また、図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 player object 202.

以下、振り下ろし判定の方法および振り上げ判定の方法、およびプレイヤの羽ばたき動作とプレイヤオブジェクト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 player object 202 will be described in order.

この実施例では、現フレームの体重率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 player object 202 will be described. First, the animation of the player object 202 is composed of 60 frames (60 frames) regardless of the type of flapping (large or small). As described above, the only difference between the types of flapping is the size of the movable range of the wings. In the following, in the case of a large flapping motion, the synchronization between the flapping motion of the player and the animation of the flapping motion of the player object 202 will be described, but the same applies to the small flapping motion.

図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 player object 202 are shown. In FIG. 19, the front direction of the player object 202 is a direction perpendicular to the paper surface. Further, in FIG. 19, animation frames 0 to 30 are shown in the upper row, and animation frames 30 to 60 (0) are shown in the lower row.

図19に示すように、アニメーションフレームが0のときには、プレイヤオブジェクト202は、たとえば、水平方向に羽を広げた状態であり、3次元仮想空間の水平面に対して羽がなす角度は0度である。この実施例では、アニメーションフレームが再生されると、プレイヤオブジェクト202は、水平方向に羽を広げた状態から上に羽を振り上げ、アニメーションフレームが15フレームで羽が最高位置に達し、その後、羽が振り下ろされる。そして、アニメーションフレームが45フレームで羽が最下位置に達し、その後、羽が振り上げられて、60フレーム(0フレーム)で初期の状態に戻る。   As shown in FIG. 19, when the animation frame is 0, the player object 202 has, for example, a state in which the wings are spread in the horizontal direction, and the angle formed by the wings with respect to the horizontal plane of the three-dimensional virtual space is 0 degrees. . In this embodiment, when the animation frame is reproduced, the player object 202 swings up the wing from the state in which the wings are spread in the horizontal direction, and the wing reaches the highest position with 15 animation frames. Shake down. Then, the animation frame is 45 frames and the wing reaches the lowest position, and then the wing is swung up to return to the initial state at 60 frames (0 frame).

したがって、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 player object 202, and the 45th frame to the 15th frame (45 → 52 → 60 ( The area before 0) → 7 → 15) corresponds to an animation frame for the swing-up motion of the player object 202.

また、図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 player object 202 or its animation frame (15-45 frames). Corresponding to the swing-up motion or the animation frame (45-15 frame), the swing-up acceleration generation possible section (30-60 frame) is set. In other words, the swing-down acceleration possible section is set between the start and the middle of the animation frame for the swing-down operation. Also, the swing-up acceleration generation possible section is set between the middle of the animation frame for the swing-down motion and the middle of the animation frame for the swing-up motion. Therefore, the swing-up acceleration generation possible section includes an animation frame (30-45) for a part of the swing-down operation (preliminary operation of the swing-up operation). As shown in FIG. 19, the reason why the swing-down acceleration generation possible section and the swing-up acceleration generation possible section are set will be described later, and is omitted here.

なお、アニメーションフレームは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 player object 202 in the animation frame with the frame number 0 (angle formed with the horizontal plane) is 0 degrees, and the arm angle of the player object 202 in the animation frame with the frame number 1 is 10 degrees. If 0.5 is designated as the frame number, a player object 202 having an arm angle of 5 degrees can be obtained. Therefore, in theory, the types of poses of the player object 202 exist infinitely.

この実施例では、プレイヤの羽ばたき動作と、プレイヤオブジェクト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 player object 202, the method of moving the animation frame A at the time of determining the start of the swing-down motion or after determining the start of the swing-down motion, and the swing-up There is a method of advancing an animation frame B at the time of determining the start of the motion or after determining the swing-up motion. However, when the player performs a flapping motion, the swing-up motion is not determined, and synchronization is achieved only by the animation frame advance method A. That is, as described with reference to FIG. 12A, when the player performs a large flapping motion as intended by a developer or the like, since the swing-down motion and the swing-up motion are determined, an animation frame is determined. Are used to synchronize the flapping motion of the player and the animation frame of the player object 202.

まず、アニメーションフレームの進め方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 acceleration flag 404p (see FIG. 21) described later is turned on. When the swing-down acceleration flag 404p is turned on, it is determined whether or not the current animation frame is within the swing-down acceleration generation possible section (frame number: 15 or more and less than 30) shown in FIG.

なお、後述するように、振り下ろし加速フラグ404pは、振り下ろし加速度発生可能区間において、アニメーションフレームの更新(進行)速度を加速させると、オフされる。   As will be described later, the swing-down acceleration flag 404p is turned off when the animation frame update (advance) speed is accelerated in the swing-down acceleration possible section.

振り下ろし動作の開始が判定されたときに、現在のアニメーションフレームが振り下ろし加速度発生可能区間内である場合には、振り下ろし加速度が発生される。つまり、アニメーションフレームの加速度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 Equation 9. However, AnimFrameMax is the maximum number of animation frames (60 in this embodiment). Cycle Swing is the time required for one flapping operation (flapping section), that is, the time interval at which the swing-down determination is performed, and is represented by the number of game frames. The same applies hereinafter. Therefore, the shorter the period during which the flapping operation is performed, the larger the frame acceleration FrameAcc of the animation frame is set to a larger value, and the animation frame update speed increases.

[数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 player object 202 swings down the wing is reproduced. Is done. For this reason, it appears that the flapping motion of the player and the flapping motion of the player object 202 are synchronized (linked). Thereafter, the animation frame proceeds with inertia until the next swing-down action or swing-up action is determined. That is, if there is no acceleration (FrameAcc = 0), the frame speed of the animation frame decreases due to air resistance, eventually becomes 0, and animation playback stops.

具体的には、ゲーム画面を表示(更新)する時のアニメーションフレームのフレーム数は、数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 Equation 10 and Equation 11. However, the update (advance) speed (frame speed) of the animation frame is indicated by FrameVel, the acceleration (frame acceleration) of the animation frame is indicated by FrameAcc, and the frame number (number) of the animation frame is indicated by Frame. Further, old is added to the value of the current frame (current time), and new is added to the value of the next frame (next time). Therefore, in Equation 10, the next frame speed considering the air resistance is calculated, and in Equation 11, the next frame number is calculated.

[数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 player object 202 are synchronized.

ここで、数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 Equation 9 and Equation 12, the frame speed obtained by Equation 12 is 1.7 times the acceleration FrameAcc obtained by Equation 9. For example, if the animation frame is 7 frames, and there is a determination to start the swing-down motion, the animation frame reaches 15 frames at the frame rate of 1.7 times obtained in Equation 12, and then several times. Up to 30 frames are reached at the frame rate calculated in 10. However, in this case, since the swing-down operation is performed outside the section where the swing-down acceleration can be generated, the acceleration FrameAcc between 15 and 30 frames is zero. Therefore, the frame speed of the animation frame is decelerated (attenuated) by air resistance (here, 0.99) between 15 and 30 frames. In other words, in such a case, the frame speed from the 7th frame to the 15th frame is larger than the frame speed from the 15th frame to the 30th frame (the section where the downward acceleration can be generated) and is constant.

したがって、この場合には、アニメーションフレームの更新速度を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 player object 202. Can't perform the action that flutters.

しかし、上述のように、振り下ろし動作の開始の判定が振り下ろし加速度発生可能区間外であった場合には、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 player object 202 performs one flapping motion (animation frames progress from 0 to 59 frames). In such a case, the frame speed is not accelerated in the section where the downward acceleration can be generated, but the animation frame is updated at a frame speed of 1.7 times in response to the player starting the downward motion. The That is, since the movement of the player object 202 is controlled according to the movement of the player, the player does not feel uncomfortable.

また、数12に従って算出されるフレーム速度は、振り下ろし動作の開始の判定の時間間隔である羽ばたき区間(羽ばたき周期)CycleSwingに反比例しているので、ゆっくり(遅く)羽ばたき動作を行うと、サイクルAがゆっくり(遅く)進行し、速く羽ばたき動作を行うと、サイクルAが速く進行する。   Further, the frame speed calculated according to Equation 12 is inversely proportional to the flapping section (flapping cycle) Cycle Swing, which is the time interval for determining the start of the swing-down operation. Cycle slowly (slowly), and if the flapping operation is performed quickly, cycle A proceeds fast.

このため、振り下ろし動作の開始を判定するだけでアニメーションフレームの進行を制御した場合であっても、プレイヤの羽ばたき動作とアニメーションとの同期を取ることができる。   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 equations 10 and 11, the animation frame is updated by inertia. However, this alone delays the animation frame with respect to the flapping motion including the next swing-down motion performed by the player.

この遅延を解消するため、この実施例では、プレイヤが大羽ばたき動作を行うことにより、振り上げ動作の開始を判定することができる場合には、アニメーションフレームの進め方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 Equation 12 is 1.7 times the acceleration FrameAcc obtained by Equation 9. This is a magnification set to increase the frame speed than the acceleration FrameAcc obtained by the flapping motion (downward motion) of the player, and is a numerical value obtained empirically through experiments or the like.

次に、アニメーションフレームの進め方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 acceleration flag 404n (see FIG. 21) described later is turned on. When the swing acceleration flag 404n is on, it is determined whether or not the current animation frame is within the swing acceleration generation possible section (frame number: 30 or more and less than 60) shown in FIG.

なお、後述するように、振り上げ加速フラグ404nは、振り上げ加速度発生可能区間において、アニメーションフレームの更新速度を加速させると、オフされる。   As will be described later, the swing-up acceleration flag 404n is turned off when the animation frame update speed is accelerated in a section where the swing-up acceleration can be generated.

振り上げ動作の開始が判定さたときに、現在のアニメーションフレームが振り上げ加速度発生可能区間内である場合には、振り上げ加速度が発生される。つまり、フレーム加速度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 player object 202 swings up the wing is reproduced. For this reason, it appears that the flapping motion of the player and the flapping motion of the player object 202 are synchronized. Therefore, if the player's flapping motion and the animation frame do not appear to be synchronized, the player indicates that his / her flapping motion, particularly the swing-up motion, is not performed correctly on the screen (such as the game screen 200). Can be understood through. As a result, it is considered that the player is encouraged to perform the (correct) flapping operation (training operation) intended by the developer or the like.

一方、振り上げ動作の開始が判定されたときに、現在のアニメーションフレームが振り上げ加速度発生可能区間内でない場合には、アニメーションフレームは、惰性で進行される。詳細な説明は省略するが、振り上げ動作の場合のフレーム数の算出も、上述した数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 Expression 10 and Expression 11.

ここで、振り下ろし加速度発生可能区間を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 player object 202 moves in sync with the swing-down motion of the player. This is because the player feels that the player is swinging down.

仮に、アニメーションフレームが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 player object 202 has swung down the wings and then immediately swung up the wings. End up. That is, the player feels that the swing-up motion has been recognized despite the swing-down motion.

また、振り上げ加速度発生可能区間を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 player object 202 is swinging up its wings in synchronization with the player's swinging motion.

さらに、振り上げ加速度発生可能区間に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 program storage area 402 and a data storage area 4040. A game program is stored in the program storage area 402. The game program includes a main processing program 402a, an image generation program 402b, an image display program 402c, a load acquisition program 402d, a weight ratio calculation program 402e, a center of gravity calculation program 402f, and an operation determination. The program 402g, a translational motion calculation program 402h, a rotational motion calculation program 402i, an animation synchronization program 402j, and the like.

メイン処理プログラム402aは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム402bは、後述する画像データ404bを用いて、ゲーム画像データを生成(更新)するためのプログラムである。画像表示プログラム402cは、画像生成プログラム402bに従って生成されたゲーム画像データをゲーム画面(200など)としてモニタ34に表示(出力)するためのプログラムである。   The main processing program 402a is a program for processing the main routine of the virtual game of this embodiment. The image generation program 402b is a program for generating (updating) game image data using image data 404b described later. The image display program 402c is a program for displaying (outputting) game image data generated according to the image generation program 402b on the monitor 34 as a game screen (200, etc.).

荷重取得プログラム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 load controller 36. Specifically, the load values detected by each of the four load sensors 36b are summed up. In this embodiment, prior to the start of the main part of the virtual game, the weight value of the player is detected while the player rides on the load controller 36 and is stationary. Numerical data corresponding to the weight value is acquired and stored in the data storage area 404 as reference value data 404f described later. Further, during the game, a load value is detected for each game frame, numerical data corresponding to the detected load value is acquired, and stored in the data storage area 404 as current load value data 404g described later.

体重率算出プログラム402eは、荷重取得プログラム402dに従って取得された現在(現フレーム)の荷重値を、同じく荷重取得プログラム402dに従って取得されたプレイヤの体重値(基準値)で割った体重率WRを1ゲームフレーム毎に算出するためのプログラムである。この体重率算出プログラム402eに従って算出された体重率WRの数値データが体重率データとして後述する体重率データバッファ404aに時系列に従って記憶される。   The weight ratio calculation program 402e is a weight ratio WR obtained by dividing the current (current frame) load value acquired according to the load acquisition program 402d by the player's weight value (reference value) acquired according to the load acquisition program 402d. This is a program for calculating for each game frame. Numerical data of the weight ratio WR calculated according to the weight ratio calculation program 402e is stored as weight ratio data in a weight ratio data buffer 404a described later in time series.

重心算出プログラム402fは、荷重取得プログラム402dに従って検出された各荷重センサ36bにおける荷重値を用いて、数7および数8に従って重心位置の座標(XG,YG)を算出し、算出した座標(XG,YG)に対応する座標データを後述する重心位置データ404hとしてデータ記憶領域404に記憶するためのプログラムである。   The center-of-gravity calculation program 402f uses the load value in each load sensor 36b detected according to the load acquisition program 402d to calculate the coordinates (XG, YG) of the center of gravity position according to Equations 7 and 8, and the calculated coordinates (XG, YG) is a program for storing coordinate data corresponding to YG) in the data storage area 404 as centroid position data 404h described later.

動作判別プログラム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 gravity calculation program 402f, the translational motion calculation program 402h is a position (one game frame) later than the player object 202 ( This is a program for calculating (three-dimensional coordinates).

回転運動算出プログラム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 gravity calculation program 402f, the rotation amount of the local coordinates of the player object 202 around the X axis and the rotation of the local coordinates around the Y axis. This is a program for calculating the quantity. The animation synchronization program 402j is a program for synchronizing the animation of the flapping motion of the player object 202 with the flapping motion of the player.

なお、図示は省略するが、ゲームプログラムには、音出力プログラムやバックアッププログラムなども含まれる。音出力プログラムは、プレイヤオブジェクトの音声(擬声音)、効果音、音楽(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 speaker 34a. The backup program is a program for saving game data (intermediate data, result data) stored in the main memory (42e, 46) to the flash memory 44 or the SD card.

図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 data storage area 404. As shown in FIG. 21, the data storage area 404 is provided with a weight ratio data buffer 404a. The data storage area 404 stores image data 404b, large flapping animation data 404c, small flapping animation data 404d, descent animation data 404e, reference value data 404f, current load value data 404g, and barycentric position data 404h. . Further, in the data storage area 404, a descent flag 404i, a weight ratio descent flag 404j, a swing-up determination flag 404k, a swing-down determination flag 404m, a swing-up acceleration flag 404n, a swing-down acceleration flag 404p, a large flapping flag 404q, a small flapping flag 404r, a landing success flag 404s, a landing failure flag 404t, a game clear flag 404u, and a game over flag 404v are provided.

体重率データバッファ404aは、体重率算出プログラム402eに従って1ゲームフレーム毎に算出される体重率データを、時系列に従って記憶するためのデータバッファである。   The weight ratio data buffer 404a is a data buffer for storing the weight ratio data calculated for each game frame in accordance with the weight ratio calculation program 402e in time series.

画像データ404bは、画像生成プログラム402bに従ってゲーム画像データを生成する際に使用されるポリゴンデータやテクスチャデータなどのデータである。大羽ばたきアニメーションデータ404cは、プレイヤオブジェクト202が大羽ばたき動作する場合のアニメーションのデータであって、60個(コマ)のアニメーションフレームで構成される。小羽ばたきアニメーションデータ404dは、プレイヤオブジェクト202が小羽ばたき動作する場合のアニメーションのデータであって、60個のアニメーションフレームで構成される。上述したように、大羽ばたきと小羽ばたきとでは、羽の可動範囲が異なるだけである。下降時アニメーションデータ404eは、プレイヤオブジェクト202が下降する場合のアニメーションのデータであって、45個のアニメーションフレームで構成される。   The image data 404b is data such as polygon data and texture data used when generating game image data according to the image generation program 402b. The large flapping animation data 404c is animation data when the player object 202 performs a large flapping motion, and is composed of 60 (frame) animation frames. The flapping animation data 404d is animation data when the player object 202 flutters, and is composed of 60 animation frames. As described above, only the range of movement of the wings is different between flapping large wings and flapping wings. The descent animation data 404e is animation data when the player object 202 descends, and is composed of 45 animation frames.

基準値データ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 load value data 404g is numerical data regarding the current (current frame) load value acquired according to the load acquisition program 402d. The center-of-gravity position data 404h is coordinate data regarding coordinates (XG, YG) of the current center-of-gravity position calculated according to the center-of-gravity calculation program 402f.

下降中フラグ404iは、プレイヤオブジェクト202が下降中であるかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。プレイヤオブジェクト202が下降中である場合には、下降中フラグ404iは成立(オン)され、レジスタにデータ値「1」が設定される。一方、プレイヤオブジェクト202が下降中でない場合には、下降中フラグ404iは不成立(オフ)され、レジスタにデータ値「0」が設定される。   The descending flag 404i is a flag for determining whether or not the player object 202 is descending, and includes a 1-bit register. When the player object 202 is descending, the descending flag 404i is established (turned on), and the data value “1” is set in the register. On the other hand, when the player object 202 is not descending, the descending flag 404i is not established (off), and the data value “0” is set in the register.

体重率下降フラグ404jは、体重率WRが下降(減少)しているかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。体重率WRが下降している場合には、体重率下降フラグ404jはオンされ、レジスタにデータ値「1」が設定される。一方、体重率WRが下降していない場合すなわち体重率WRが上昇したり変化しなかったりする場合には、体重率下降フラグ404jはオフされ、レジスタにデータ値「0」が設定される。   The weight rate decrease flag 404j is a flag for determining whether or not the weight rate WR is decreasing (decreasing), and includes a 1-bit register. When the weight ratio WR is decreasing, the weight ratio decreasing flag 404j is turned on, and the data value “1” is set in the register. On the other hand, when the weight ratio WR is not decreasing, that is, when the weight ratio WR increases or does not change, the weight ratio decrease flag 404j is turned off, and the data value “0” is set in the register.

振り上げ判定フラグ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 determination flag 404m is turned on.

振り下ろし判定フラグ404mは、振り下ろし動作の開始が判定されたかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。振り下ろし動作の開始が判定されると、振り下ろし判定フラグ404mはオンされ、レジスタにデータ値「1」が設定される。一方、振り上げ動作の開始が判定されると、振り下ろし判定フラグ404mはオフされ、レジスタにデータ値「0」が設定される。ただし、上述した振り上げ判定フラグ404kがオンされた場合にも、振り下ろし判定フラグ404mはオフされる。   The swing-down determination flag 404m is a flag for determining whether or not the start of the swing-down operation is determined, and includes a 1-bit register. When the start of the swing-down operation is determined, the swing-down determination flag 404m is turned on, and the data value “1” is set in the register. On the other hand, when the start of the swing-up operation is determined, the swing-down determination flag 404m is turned off, and the data value “0” is set in the register. However, the swing-down determination flag 404m is also turned off when the above-described swing-up determination flag 404k is turned on.

振り上げ加速フラグ404nは、振り上げ動作に応じてアニメーションフレームを加速させたか否かを判定するためのフラグであり、1ビットのレジスタで構成される。振り上げ動作の開始が判定されると、振り上げ加速フラグ404nはオンされ、レジスタにデータ値「1」が設定される。また、振り上げ動作の開始が判定され、アニメーションフレームが加速されると、振り上げ加速フラグ404nはオフされ、レジスタにデータ値「0」が設定される。   The swing-up acceleration flag 404n is a flag for determining whether or not the animation frame has been accelerated in accordance with the swing-up operation, and includes a 1-bit register. When the start of the swing-up operation is determined, the swing-up acceleration flag 404n is turned on and the data value “1” is set in the register. When the start of the swing-up operation is determined and the animation frame is accelerated, the swing-up acceleration flag 404n is turned off and the data value “0” is set in the register.

振り下ろし加速フラグ404pは、振り下ろし動作に応じてアニメーションフレームを加速させたか否かを判定するためのフラグであり、1ビットのレジスタで構成される。振り下ろし動作の開始が判定されると、振り下ろし加速フラグ404pはオンされ、レジスタにデータ値「1」が設定される。また、振り下ろし動作の開始が判定され、アニメーションフレームが加速されると、振り下ろし加速フラグ404pはオフされ、レジスタにデータ値「0」が設定される。   The swing-down acceleration flag 404p is a flag for determining whether or not the animation frame has been accelerated according to the swing-down operation, and is composed of a 1-bit register. When the start of the swing-down operation is determined, the swing-down acceleration flag 404p is turned on, and the data value “1” is set in the register. When the start of the swing-down operation is determined and the animation frame is accelerated, the swing-down acceleration flag 404p is turned off and the data value “0” is set in the register.

大羽ばたきフラグ404qは、大羽ばたき動作が判別されたかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。大羽ばたき動作が判別されると、大羽ばたきフラグ404qはオンされ、レジスタにデータ値「1」が設定される。一方、大羽ばたき動作が判別されなければ、大羽ばたきフラグ404qはオフされ、レジスタにデータ値「0」が設定される。ただし、後述する小羽ばたきフラグ404rがオンされた場合やプレイヤが羽ばたき動作を行っていない場合にも、大羽ばたきフラグ404qはオフされる。   The large flapping flag 404q is a flag for determining whether or not a large flapping operation has been determined, and is configured by a 1-bit register. When the large flapping operation is determined, the large flapping flag 404q is turned on, and the data value “1” is set in the register. On the other hand, if the large flapping operation is not determined, the large flapping flag 404q is turned off, and the data value “0” is set in the register. However, the large flapping flag 404q is also turned off when the small flapping flag 404r described later is turned on or when the player is not performing the flapping motion.

小羽ばたきフラグ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 flapping flag 404q is turned on or when the player is not performing the flapping motion.

着地成功フラグ404sは、プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に成功したかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に成功すると、着地成功フラグ404sはオンされ、レジスタにデータ値「1」が設定される。一方、プレイヤオブジェクト202がノンプレイヤオブジェクト204に着地に成功していなければ、着地成功フラグ404sはオフされ、レジスタにデータ値「0」が設定される。   The landing success flag 404s is a flag for determining whether or not the player object 202 has successfully landed on the non-player object 204, and includes a 1-bit register. When the player object 202 has successfully landed on the non-player object 204, the landing success flag 404s is turned on, and a data value “1” is set in the register. On the other hand, if the player object 202 has not successfully landed on the non-player object 204, the landing success flag 404s is turned off, and the data value “0” is set in the register.

着地失敗フラグ404tは、プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に失敗したかどうかを判定するためのフラグであり、1ビットのレジスタで構成される。プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に失敗すると、着地失敗フラグ404tはオンされ、レジスタにデータ値「1」が設定される。一方、プレイヤオブジェクト202がノンプレイヤオブジェクト204への着地に失敗していなければ、着地失敗フラグ404tはオフされ、レジスタにデータ値「0」が設定される。   The landing failure flag 404t is a flag for determining whether or not the player object 202 has failed to land on the non-player object 204, and includes a 1-bit register. When the player object 202 fails to land on the non-player object 204, the landing failure flag 404t is turned on, and a data value “1” is set in the register. On the other hand, if the player object 202 has not failed to land on the non-player object 204, the landing failure flag 404t is turned off, and a data value “0” is set in the register.

ゲームクリアフラグ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 flag 404v is a flag for determining whether or not the virtual game has become a game over, and includes a 1-bit register. When the game is over, the game over flag 404v is turned on, and the data value “1” is set in the register. On the other hand, if the game is not over, the game over flag 404v is turned off, and the data value “0” is set in the register.

なお、図示は省略するが、データ記憶領域404には、音データのような他のデータが記憶され、ゲームプログラムの実行に必要なタイマ(カウンタ)や他のフラグが設けられる。   Although not shown, the data storage area 404 stores other data such as sound data, and is provided with a timer (counter) and other flags necessary for executing the game program.

具体的には、図2に示したCPU40が図22−図25に示すフロー図に従って全体処理を実行する。図示は省略するが、全体処理とは別のタスクにより、CPU40は、一定時間(30ゲームフレーム)毎に、体重率WRの時間変化を離散フーリエ変換する処理を実行する。   Specifically, the CPU 40 shown in FIG. 2 executes the entire process according to the flowcharts shown in FIGS. Although illustration is omitted, by a task different from the whole process, the CPU 40 executes a process of performing a discrete Fourier transform on the time change of the body weight ratio WR every predetermined time (30 game frames).

図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 CPU 40 clears the weight ratio data buffer 404a, the reference value data 404f, the current load value data 404g, and the gravity center position data 404h, the image data 404b, the large flapping animation data 404c, the small flapping animation data 404d, and The descent animation data 404e is loaded into the data storage area 404, and various flags 404i-404v are turned off.

次のステップ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 CPU 40 acquires the sum of the load values detected by the four load sensors 36b as the weight value, and stores the numerical data in the data storage area 404 as the reference value data 404f. To do. In step S5, the main part of the virtual game is started.

続いて、ステップ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 CPU 40 acquires the sum of the load values detected by the four load sensors 36b as the current load value, and stores the numerical data in the data storage area 404 as the current load value data 404g.

なお、ステップ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 load value data 404g is updated every game frame. The same applies to the next gravity center position data 404h.

次のステップ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 CPU 40 calculates the coordinates (XG, YG) of the center of gravity of the current frame according to Equations 2 and 3 using the load values acquired from the four load sensors 36b, and calculates the coordinates of the calculated center of gravity (XG , YG) is stored in the data storage area 404 as centroid position data 404h.

続いて、ステップ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 CPU 40 determines whether or not the large flapping flag 404q is on. If “YES” in the step S13, that is, if the large flapping flag 404q is turned on, it is determined that the flapping is large, and in a step S15, the weight ratio WR is used as the driving force AccSim used in the integration simulation. A value obtained by multiplying the calculated propulsive force Acc by 0.05 is set (AccSim = Acc × 0.05). In step S17, an animation of large flapping is selected, and the process proceeds to step S25 shown in FIG.

また、ステップ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 flag 404q is turned off, it is determined whether or not the flapping is a small flapping in a step S19. That is, the CPU 40 determines whether or not the flapping flag 404r is on. If “NO” in the step S19, that is, if not flapping, it is determined that the player is not flapping, and the process proceeds to a step S25 as it is. On the other hand, if “YES” in the step S19, that is, if flapping, in step S21, the propulsive force AccSim used in the integration simulation is set to 0.0425 in the propulsive force Acc calculated using the weight ratio WR. The multiplied value is set (AccSim = Acc × 0.0425), and a fluttering animation is selected in step S23, and the process proceeds to step S25.

図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 player object 202 is calculated according to Equation 3. Subsequently, in step S29, it is determined whether or not the speed Vel_new exceeds the maximum speed VelMax. If “NO” in the step S29, that is, if the speed Vel_new is equal to or less than the maximum speed VelMax, the process proceeds to a step S33 as it is. On the other hand, if “YES” in the step S29, that is, if the speed Vel_new exceeds the maximum speed VelMax, the maximum speed VelMax is set to the speed Vel_new in a step S31, and the process proceeds to a step S33. That is, in step S31, the speed Vel_new is limited by the maximum speed VelMax.

ステップ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 player object 202 is calculated according to Equation 4. In the next step S35, it is determined whether or not the player object 202 is descending. Here, the CPU 40 determines whether or not the Y component of the current speed Vel_old of the player object 202 is less than a certain value (in this example, −0.7). If “NO” in the step S35, that is, if the Y component of the current velocity Vel_old is equal to or larger than a certain value, it is determined that the player object 202 is not descending, and in step S39, the X coordinate (XG) and the gravity center position are determined. Based on the Y coordinate (YG), the rotation amount of the player object 202 is calculated, and the descending flag 404i is turned off in step S41, and the process proceeds to step 53 shown in FIG.

つまり、ステップ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 CPU 40 rotates the local coordinate about the X axis based on the Y coordinate (YG) of the center of gravity position and the local coordinate about the Y axis based on the X coordinate (XG) of the center of gravity position. Calculate the amount. Based on the amount of rotation about the X axis and the amount of rotation about the Y axis, first, the direction (Z vector (Xz, Yz, Zz)) for applying the Z axis of the local coordinates of the player object 202 is determined in the three-dimensional virtual space. To do. Next, a direction (X vector (Xx, Yx, Zx)) for applying the X axis of the local coordinates orthogonal to the Z vector and extending in the left hand direction of the player object 202 is determined. Further, the cross product of the Z vector and the X vector is obtained to determine the direction (Y vector (Xy, Yy, Zy)), that is, the unit vector AccDir, to which the Y axis of the local coordinates of the player object 202 is applied in the three-dimensional virtual space. . However, the X vector, the Y vector, and the Z vector are unit vectors having a size of “1”.

一方、ステップ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 player object 202 is descending, and the X coordinate of the gravity center position is determined in a step S36. Based on (XG), the amount of rotation of the player object 202 is calculated. In step S39, the descent animation is selected, and the process proceeds to step S43 shown in FIG.

つまり、ステップS36では、CPU40は、重心位置のX座標(XG)に基づいて、プレイヤオブジェクト202のローカル座標のY軸周りの回転量のみを算出し、3次元仮想空間において、プレイヤオブジェクト202のローカル座標のZ軸を当てはめる方向(Zベクトル)を決定する。その後、上述したように、3次元仮想空間において、プレイヤオブジェクト202のローカル座標のX軸を当てはめる方向(Xベクトル)を決定し、さらに、3次元仮想空間において、プレイヤオブジェクト202のローカル座標のY軸を当てはめる方向(Yベクトル)を決定する。   That is, in step S36, the CPU 40 calculates only the rotation amount around the Y axis of the local coordinates of the player object 202 based on the X coordinate (XG) of the center of gravity position, and the local of the player object 202 is calculated in the three-dimensional virtual space. The direction (Z vector) to which the Z axis of the coordinates is applied is determined. Thereafter, as described above, the direction (X vector) to which the X axis of the local coordinate of the player object 202 is applied is determined in the three-dimensional virtual space, and the Y axis of the local coordinate of the player object 202 is further determined in the three-dimensional virtual space. The direction (Y vector) to be applied is determined.

図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 CPU 40 determines whether or not the player object 202 has started to descend. If “YES” in the step S43, that is, if the descending flag 404i is off, it is determined that the player object 202 has started descending, the descending flag 404i is turned on in a step S45, and in a step S47, The initial value of the frame number (0 in this embodiment) is set in the animation frame Frame_new, the animation of the determined animation frame Frame_new is set in step S51, and the process proceeds to step S59 shown in FIG.

一方、ステップ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 player object 202 is already descending, and 1 is added to the animation frame Frame_new in a step S49. Proceed to S51. However, if the current value of the animation frame Frame_new is “44”, that is, if the animation frame is the last frame, when 1 is added to the animation frame Frame_new in step S49, the value is “0”. Set to That is, the frame number of the animation frame is returned to the initial value.

また、図23に示したように、プレイヤオブジェクト202が下降中でない場合には、ステップS37で“NO”となり、ステップS41で下降中フラグ404iをオフして後に、ステップS53で、ステップS17またはS23で選択された羽ばたきアニメーション(大羽ばたきアニメーション,小羽ばたきアニメーション)と現在の羽ばたきアニメーションとが異なるかどうかを判断する。ステップS53で“NO”であれば、つまり選択された羽ばたきアニメーションと現在の羽ばたきアニメーションとが一致している場合には、そのままステップS57に進む。一方、ステップS53で“YES”であれば、つまり選択された羽ばたきアニメーションと現在の羽ばたきアニメーションとが異なる場合には、ステップS55で、羽ばたきアニメーションを切り替えて、ステップS57に進む。   Also, as shown in FIG. 23, when the player object 202 is not descending, “NO” is determined in the step S37, the descending flag 404i is turned off in the step S41, and then the step S17 or S23 is performed in the step S53. It is determined whether or not the flapping animation (large flapping animation, small flapping animation) selected in step 1 is different from the current flapping animation. If “NO” in the step S53, that is, if the selected flapping animation matches the current flapping animation, the process proceeds to a step S57 as it is. On the other hand, if “YES” in the step S53, that is, if the selected flapping animation is different from the current flapping animation, the flapping animation is switched in a step S55, and the process proceeds to the step S57.

なお、ステップ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 game screen 200 will feel uncomfortable. For this reason, in this embodiment, those animations are blended. Briefly, for example, when switching from a large flapping animation to a small flapping animation, both animations are reproduced. For example, at the moment when the animation is switched, the playback ratio of large flapping is 1.0, and the playback ratio of small flapping is 0.0. However, the frame number of the animation frame is the same as that of the large flapping animation and the small flapping animation. The playback ratio is gradually changed (for example, linearly or stepwise) within a certain period of time (in this example, 30 game frames = 0.5 seconds), that is, the playback ratio of large flapping is reduced. At the same time, the playback ratio of flapping is increased, and when a certain time has elapsed from the start of animation switching (for example, at the 30th game frame), the playing ratio of flapping is 0.0, and the playing ratio of flapping is 1 .0. Therefore, the animation can be switched from the large flapping animation to the small flapping animation. Although the explanation is omitted, the same applies when switching from the flapping animation to the flapping animation.

図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 CPU 40 determines whether or not it has landed on the non-player object 204 to be landed. Although detailed description is omitted, the non-player object 204 to be landed is set in advance or variably set according to the progress of the virtual game. However, the CPU 40 determines the hit between the player object 202 and the non-player object 204 to be landed, and determines whether or not the player object 202 is on the non-player object 204, that is, whether it is landing.

ステップ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 success flag 404s is turned on in a step S61, and the process proceeds to a step S67. If “NO” in the step S59, that is, if the player object 202 is flying, falls to the sea, or has landed again on the non-player object 204 that has already landed, It is determined that the landing has not been successful, and it is determined in step S63 whether the landing has failed at a predetermined location. Here, the CPU 40 determines whether the player object 202 has landed on a non-player object 204 other than the non-player object 204 to be landed or has fallen into the sea surrounding the non-player object 204.

ステップS63で“NO”であれば、つまりプレイヤオブジェクト202が飛行中である場合には、所定の場所に着地失敗していないと判断して、そのままステップS67に進む。一方、ステップS63で“YES”であれば、つまりプレイヤオブジェクト202が着地すべきノンプレイヤオブジェクト204以外のノンプレイヤオブジェクト204に着地したり、プレイヤオブジェクト202がノンプレイヤオブジェクト204を囲む海に落ちてしまったりした場合には、所定の場所に着地失敗したと判断して、ステップS65で、着地失敗フラグ404tをオンして、そのままステップS71に進む。   If “NO” in the step S63, that is, if the player object 202 is flying, it is determined that the landing has not failed in the predetermined place, and the process proceeds to a step S67 as it is. On the other hand, if “YES” in the step S 63, that is, the player object 202 has landed on the non-player object 204 other than the non-player object 204 to be landed, or the player object 202 has fallen into the sea surrounding the non-player object 204. If there is a problem, it is determined that the landing has failed at a predetermined location, the landing failure flag 404t is turned on in step S65, and the process directly proceeds to step S71.

ステップS67では、ゲームクリアかどうかを判断する。つまり、CPU40は、プレイヤオブジェクト202が、所定の着地点をすべて経由して、ゴールに到着したかどうかを判断する。ステップS67で“YES”であれば、つまりゲームクリアであれば、ステップS69で、ゲームクリアフラグ404uをオンして、ステップS75に進む。   In step S67, it is determined whether or not the game is cleared. That is, the CPU 40 determines whether or not the player object 202 has arrived at the goal via all predetermined landing points. If “YES” in the step S67, that is, if the game is cleared, the game clear flag 404u is turned on in a step S69, and the process proceeds to the step S75.

一方、ステップ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 CPU 40 exceeds the time limit before the player object 202 reaches the goal, the player object 202 fails to land a predetermined number of times (for example, three times), or the player object 202 falls into the sea. It is determined whether the current time exceeds a predetermined time (for example, 10 seconds). If “NO” in the step S71, that is, if the game is not over, the process proceeds to a step S75 as it is. On the other hand, if “YES” in the step S71, that is, if the game is over, the game over flag 404v is turned on in a step S73, and the process proceeds to a step S75.

ステップ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 CPU 40 arranges the player object 202 in the three-dimensional virtual space according to the determinant A expressed by Equation 6, reads out the animation of the animation frame set in step S51 from the descent animation data 404e, The animation of the animation frame set by the synchronization process is drawn from the flapping animation data (404c, 404d) and drawn (updated). In addition, a background image including the non-player object 204 is drawn (updated). Furthermore, if the landing success flag 404s, the landing failure flag 404t, the game clear flag 404u, or the game over flag 404v is on, an image representing landing success, landing failure, game clear or game over is generated. For example, text indicating that landing is successful, landing failure, game clear or game over is overwritten on the game image. At this time, although illustration is omitted, sound effects or music corresponding to landing success, landing failure, game clear or game over is output.

次のステップ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 CPU 40 displays the game image generated (updated) in step S75 on the monitor 34 as a game screen (200 or the like). In step S79, it is determined whether the game is over. Here, the CPU 40 determines whether or not the game end is instructed by the operation of the player. If “NO” in the step S79, that is, if the game is not ended, the process returns to the step S7 shown in FIG. However, when the game is over, the virtual game is started from the beginning. On the other hand, if “YES” in the step S79, that is, if the game is ended, the entire process is ended as it is.

なお、図示は省略するが、着地成功フラグ404sおよび着地失敗フラグ404tは、ステップS75よりも後であり、ステップS79で“NO”となり、ステップS7に戻るまでの間に、オフされる。   Although illustration is omitted, the landing success flag 404s and the landing failure flag 404t are later than step S75, are “NO” in step S79, and are turned off before returning to step S7.

図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 CPU 40 calculates and stores the current weight ratio WR in step S91. That is, the current weight ratio WR is calculated by dividing the load value indicated by the current load value data 404g by the reference value (weight value) indicated by the reference value data 404f, and the weight ratio data is stored in the weight ratio data buffer 404a. Remember.

次のステップ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 CPU 40 determines whether or not to give the driving force Acc to the player object 202. If “YES” in the step S93, that is, if the current weight ratio WR is less than the first threshold value, the 1-weight ratio WR is set in the driving force Acc in a step S95, and the process proceeds to a step S99. That is, the propulsive force Acc corresponding to the weight ratio WR is calculated (set). On the other hand, if “NO” in the step S93, that is, if the current weight ratio WR is equal to or larger than the first threshold value, the thrust Acc is set to 0 in a step S97, and the process proceeds to the step S99.

ステップ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 CPU 40 determines whether or not the player's operation input is due to bending and stretching movements. However, as described above, the immediately preceding flapping section means a section from when the start of the last swing-down operation is determined until the start of the previous (immediately) swing-down operation is determined.

ステップ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 player object 202, and in step S103, the propulsive force Acc is multiplied by 1.3 (Acc = Acc × 1.3), and the process proceeds to step S109. move on. On the other hand, if “YES” in the step S99, that is, if the maximum value of the weight ratio WR in the previous flapping motion exceeds the second threshold value, it is determined that the player's operation input is due to the bending / extending exercise, In step S105, the maximum speed VelMax is set to half of the maximum speed of the player object 202 (in this embodiment, 2), and in step S107, the propulsive force Acc is multiplied by 0.8 (Acc = Acc × 0.8). Then, the process proceeds to step S109.

このように、ステップ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 player object 202 is easily advanced, and conversely, the operation input is not intended by the developer or the like. In this case, it is difficult for the player object 202 to move forward. Therefore, the numerical value set to the maximum speed VelMax and the coefficient to be multiplied by the propulsive force Acc need not be limited to the values in the embodiment.

ステップ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 CPU 40 determines whether the weight ratio WR is decreasing or increasing. If “NO” in the step S113, that is, if the current weight ratio WR is larger than the previous weight ratio WR, it is determined that the weight ratio WR has increased, and in step S115, the weight ratio decrease flag 404j is set. Determine if it is on. That is, the CPU 40 determines whether or not the weight ratio WR has increased after decreasing.

ステップ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 ratio decrease flag 404j is turned off, it is determined that the weight ratio WR is increasing, and the process proceeds to a step S137 as it is. On the other hand, if “YES” in the step S115, that is, if the weight rate decrease flag 404j is turned on, it is determined that the weight rate WR has increased after decreasing, and the weight rate decrease flag 404j is turned off in a step S117. In step S119, it is determined whether or not the current weight ratio WR is equal to or greater than a sixth threshold value (0.98 in this embodiment). That is, it is determined whether the swing-up operation intended by the developer or the like has been performed.

ステップ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 acceleration flag 404n is turned on. In step S125, the swing-down determination flag 404m is turned off, and the process proceeds to step S137.

また、ステップ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 ratio decreasing flag 404j is determined in a step S127. In step S129, it is determined whether or not the current weight ratio WR is less than the seventh threshold value (0.985 in this embodiment). That is, the CPU 40 determines whether or not it is a swing-down operation. If “NO” in the step S129, that is, if the current weight ratio WR is equal to or more than the seventh threshold value, it is determined that the swing-down operation is not performed, and the process directly proceeds to a step S137. On the other hand, if “YES” in the step S129, that is, if the current weight ratio WR is less than the seventh threshold value, it is determined that the swing-down operation is performed, and in the step S131, the swing-down determination flag 404m is turned on. In step S133, the swing-down acceleration flag 404p is turned on. In step S135, the swing-up determination flag 404k is turned off, and the process proceeds to step S137.

図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 flag 404q is turned off in step S141. Return to processing.

一方、ステップ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 flag 404q is turned on, and in step S147, the small flapping flag 404r is turned off, and the process returns to the entire processing.

一方、ステップ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 flag 404q and the small flapping flag 404r are turned off, and the process returns to the overall processing.

図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 CPU 40 determines whether or not the swing-down determination flag 404m is on in step S161. Although a detailed description is omitted, in the synchronization process, the player object 202 is not descending, and the flapping motion is performed by the player, so the swing-up determination flag 404k or the swing-down determination flag 404m is always on.

ステップ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 determination flag 404m is off and the swing-up determination flag 404k is on, the process proceeds to a step S181 shown in FIG. On the other hand, if “YES” in the step S161, that is, if the swing-down determination flag 404m is on and the swing-up determination flag 404k is off, it is determined whether or not the swing-down acceleration flag 404p is on in a step S163. To do. That is, the CPU 40 determines whether or not the animation frame has been accelerated in accordance with the start of the player's swing-down operation.

ステップ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 acceleration flag 404p is off, it is determined that the animation frame has already been accelerated in response to the start of the swing-down motion in the current flapping section, and in a step S165. Then, the frame acceleration FrameAcc is set to 0, and the process proceeds to step S193 shown in FIG. On the other hand, if “YES” in the step S163, that is, if the swing-down acceleration flag 404p is turned on, it is determined that the animation frame has not been accelerated in response to the start of the swing-down motion in the current flapping section. In step S167, it is determined whether the current animation frame is 15 or more and less than 30. That is, the CPU 40 determines whether or not the animation frame falls within a section where acceleration can be generated.

ステップ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 step S 169, the frame acceleration FrameAcc is set. A value obtained by swinging down the maximum number of animation frames AnimFrameMax and dividing by the determination interval Cycle Swing is set. That is, when the frame speed FrameVel_new is calculated later, the animation frame is accelerated. In the next step S171, the swing-down acceleration flag 404p is turned off, and the process proceeds to step S193.

一方、ステップ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 step S 173. In step S175, the value of the maximum frame number AnimFrameMax of the animation frame is multiplied by 1.7 and divided by the determination interval Cycle Swing according to Equation 12 in step S175. That is, the CPU 40 quickly brings the animation frame closer to the frame acceleration generation possible section.

続いて、ステップ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 swing acceleration flag 404n is on. If “NO” in the step S181, that is, if the swing-up acceleration flag 404n is turned off, it is determined that the animation frame has already been accelerated in response to the start of the swing-up operation in the current flapping section. The acceleration FrameAcc is set to 0, and the process proceeds to step S193. On the other hand, if “YES” in the step S181, that is, if the swing-up acceleration flag 404n is turned on, it is determined that the animation frame has not been accelerated in response to the start of the swing-up operation in the current flapping section. In S183, it is determined whether the current animation frame is 30 or more and less than 60. That is, the CPU 40 determines whether or not the animation frame is within a section where the swing-up acceleration can be generated.

ステップS183で“NO”であれば、つまり現在のアニメーションフレームが30以上60未満でなければ、アニメーションフレームが振り上げ加速度発生可能区間内でないと判断して、ステップS191に進む。一方、ステップS183で“YES”であれば、つまり現在のアニメーションフレームが30以上60未満であれば、アニメーションフレームが振り上げ加速度発生可能区間内であると判断して、ステップS185で、現在のフレーム速度FrameVel_oldが2未満であるかどうかを判断する。   If “NO” in the step S 183, that is, if the current animation frame is not 30 or more and less than 60, it is determined that the animation frame is not within the swing acceleration generation possible section, and the process proceeds to the step S 191. On the other hand, if “YES” in the step S183, that is, if the current animation frame is greater than or equal to 30 and less than 60, it is determined that the animation frame is within a swing acceleration generation possible section, and the current frame speed is determined in a step S185. Determine whether FrameVel_old is less than 2.

ステップ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 swing acceleration flag 404n is turned off in a step S189. The process proceeds to step S193.

図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 CPU 40 calculates the next frame speed FrameVel_new according to Equation 10 and calculates the next animation frame Frame_new according to Equation 11. In step S201, the animation of the determined animation frame Frame_new is set, and the process returns to the overall processing shown in FIGS.

この実施例によれば、プレイヤの羽ばたき動作を体重率の変動の周期に基づいて判定し、これをプレイヤオブジェクトのアニメーションに反映させるとともに、体重率の大きさに基づいてプレイヤオブジェクトの移動量を制御するので、単なる荷重の変化に応じてゲーム処理を実行する場合に比べて多彩な処理を実行することができる。   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 SYMBOLS 10 ... Game system 12 ... Game device 18 ... Optical disk 22 ... Controller 24 ... Receiver unit 34 ... Monitor 34a ... Speaker 36 ... Load controller 36b ... Load sensor (load cell)
40 ... CPU
42 ... System LSI
42a: I / O processor 42b: GPU
42c: DSP
42d ... VRAM
42e ... Internal main memory 44 ... Flash memory 46 ... External main memory 48 ... ROM / RTC
50 ... Wireless communication module 52 ... Wireless controller module 54 ... Disk drive 56 ... AV IC
58 ... AV connector 60 ... Expansion connector 62 ... Memory card connector 70 ... Processor 74 ... Acceleration sensor 80 ... Image information calculation unit 80c ... Imaging element 80d ... Image processing circuit 100 ... Microcomputer 102 ... AD converter 104 ... DC-DC converter 106 ... Radio module 108 ... Amplifier

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.
前記更新速度制御ステップは、前記第1動作開始検出ステップによって検出された第1動作の開始時が、前記第1所定区間内であるとき、前記アニメーションフレームの更新速度が前記所定の速度より小さい速度となるように速くする、請求項1記載の情報処理プログラム。   In the update speed control step, 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 of the animation frame is smaller than the predetermined speed. The information processing program according to claim 1, wherein the information processing program is accelerated so that 前記第1動作の開始時が前記第1所定区間外であるとき、前記更新速度制御ステップによって速くされた更新速度で、当該第1所定区間まで前記アニメーションフレームを更新するフレーム更新ステップを前記コンピュータにさらに実行させる、請求項1または2記載の情報処理プログラム。   When the start time of the first operation is outside the first predetermined interval, the computer is provided with a frame update step for updating the animation frame up to the first predetermined interval at the update speed increased by the update speed control step. The information processing program according to claim 1, further executed. 前記更新速度制御ステップは、前記第1所定区間では、前記アニメーションフレームの更新速度を減速する、請求項1ないし3のいずれかに記載の情報処理プログラム。   The information processing program according to any one of claims 1 to 3, wherein the update speed control step decelerates an update speed of the animation frame in the first predetermined section. 前記更新速度制御ステップは、前記第1所定区間では、当該第1所定区間の終期に向かうに従って前記アニメーションフレームの更新速度を減速する、請求項4記載の情報処理プログラム。   5. The information processing program according to claim 4, wherein, in the first predetermined section, the update speed control step decreases the update speed of the animation frame toward the end of the first predetermined section. 前記反復動作は、前記第1動作とは異なる第2動作を含む、請求項1ないし5のいずれかに記載の情報処理プログラム。   The information processing program according to claim 1, wherein the repetitive operation includes a second operation different from the first operation. 前記第1動作は、前記オブジェクトが推進力を得るための動作であり、前記第2動作は、当該推進力を得るための動作の準備動作である、請求項6記載の情報処理プログラム。   The information processing program according to claim 6, wherein the first operation is an operation for the object to obtain a driving force, and the second operation is a preparatory operation for an operation to obtain the driving force. 前記荷重値取得ステップによって取得された荷重値に基づいて、前記ユーザの前記反復動作における第2動作の開始を検出する第2動作開始検出ステップを前記コンピュータにさらに実行させ、
前記更新速度制御ステップは、前記第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.
前記更新速度制御ステップは、前記第2動作開始検出ステップによって検出された第2動作の開始時が、前記オブジェクトのアニメーションフレームについて当該第2動作に対応して設定される第2所定区間内であるとき、前記第2動作の開始時が当該第2所定区間外である場合よりも、前記アニメーションフレームの更新速度を速くする、請求項8記載の情報処理プログラム。   In the update speed control step, the start time of the second motion detected by the second motion start detection step is within a second predetermined section set corresponding to the second motion for the animation frame of the object. The information processing program according to claim 8, wherein the update speed of the animation frame is made faster than when the start time of the second operation is outside the second predetermined section. 前記第2所定区間は前記第1所定区間より長く設定される、請求項9記載の情報処理プログラム。   The information processing program according to claim 9, wherein the second predetermined section is set longer than the first predetermined section. 前記第2所定区間に対応する前記オブジェクトのアニメーションフレームは前記第2動作の予備動作に対応するアニメーションフレームを含む、請求項10記載の情報処理プログラム。   The information processing program according to claim 10, wherein an animation frame of the object corresponding to the second predetermined section includes an animation frame corresponding to a preliminary motion of the second motion. 前記反復動作は、前記荷重値の変化の大きい大反復動作または当該大反復動作よりも前記荷重値の変化の小さい小反復動作であり、
前記荷重値の変化の周期に基づいて、前記ユーザの動作が前記大反復動作であるか前記小反復動作であるかを判別する動作判別ステップ、および
前記荷重値の変化に基づいて、前記第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.
前記更新速度制御ステップは、前記動作判別ステップによって前記ユーザの動作が前記小反復動作であることが判別されたとき、前記動作検出ステップによって検出された前記第1動作のみに応じて前記アニメーションフレームの更新速度を変化させる、請求項12記載の情報処理プログラム。   In the update speed control step, when it is determined in the motion determination step that the user's motion is the small repetitive motion, only the first motion detected in the motion detection step is used. The information processing program according to claim 12, wherein the update speed is changed. 前記第1所定区間の最初のアニメーションフレームは、前記第1動作開始検出ステップによって検出された第1動作の開始時におけるユーザの姿勢に対応する、請求項1記載の情報処理プログラム。   The information processing program according to claim 1, wherein the first animation frame in 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. 前記第1所定区間の最初のアニメーションフレームは、前記第1動作開始検出ステップによって検出された第1動作の開始時におけるユーザの姿勢に対応し、
前記第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.
JP2009216874A 2009-09-18 2009-09-18 Information processing program and information processing apparatus Active JP5478172B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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