Methods for game/application control using foot gestures
11635825 · 2023-04-25
Assignee
Inventors
Cpc classification
A63F13/212
HUMAN NECESSITIES
A63F13/428
HUMAN NECESSITIES
G06F3/017
PHYSICS
A63F13/211
HUMAN NECESSITIES
International classification
Abstract
Foot-gesture-based movement control method for a game character includes a four-way movement start control process, including: determining the game character being in a non-moving state; obtaining foot tilt angles and tilt states of left and right feet of a user; determining a tilt state change of each foot of the user; and generating movement start controls in first, second, third, and fourth directions for the game character, respectively when the right foot is detected changing from a leveled state to a positively tilted state and changing from a leveled state to a negatively tilted state, the left foot is detected changing from a leveled state to a positively tilted state and changing from a leveled state to a negatively tilted state.
Claims
1. A method for controlling a game character using foot gestures of a user, applied to a game device, comprising: performing a four-way movement start control process to control a start direction for moving the game character, including: determining whether the game character is in a non-moving state; in response to the game character being in the non-moving state, obtaining a first foot tilt angle of left foot and a second foot tilt angle of right foot of the user; determining a first tilt state of the left foot and a second tilt state of the right foot of the user, based on the first foot tilt angle and the second foot tilt angle; and determining a tilt state change of each of the right foot and the left foot of the user, when the right foot of the user is detected changing from a leveled state to a positively tilted state, generating a movement start control used to control the game character to start moving in a first direction, when the right foot of the user is detected changing from a leveled state to a negatively tilted state, generating a movement start control used to control the game character to start moving in a second direction, when the left foot of the user is detected changing from a leveled state to a positively tilted state, generating a movement start control used to control the game character to start moving in a third direction, and when the left foot of the user is detected changing from a leveled state to a negatively tilted state, generating a movement start control used to control the game character to start moving in a fourth direction.
2. The method according to claim 1, in the four-way movement start control process, further comprising: determining one or both of the right and left feet press on ground, before generating the movement start control in one or more of first, second, third, and fourth directions.
3. The method according to claim 1, in the four-way movement start control process, further comprising: determining a changing rate of a foot pointing direction of each of the left foot and the right foot, before generating the movement start control in one or more of first, second, third, and fourth directions, wherein the changing rate of the foot pointing direction of each of the left foot and the right foot is required to be approximately zero for generating the movement start control in each direction of the first, second, third, and fourth directions.
4. The method according to claim 1, further comprising: performing a movement type control process, including: determining the game character being in a moving state, during an on-going movement of the game character, detecting user's walk and run actions to provide a detection result, and controlling a type and/or speed of the on-going movement of the game character according to the detection result.
5. The method according to claim 1, further comprising: performing a movement direction control process, including: obtaining a foot pointing direction of each of one or both feet of the user, and according to the foot pointing directions of one or both feet of the user, determining and updating the first, second, third and/or fourth directions in a game space.
6. The method according to claim 1, further comprising: performing a movement stop process, including: determining the game character being in a moving state, obtaining a foot tilt angle of the left foot and/or a foot tilt angle the right foot of the user, and determining a tilt state of at least one of the left and right feet of the user, determining a tilt state change of the at least one of the left and right feet of the user that is changed from a leveled state to a tilted state, and generating a control to stop an on-going movement of the game character based on the determined tilt state change.
7. The method according to claim 6, in the movement stop process, further comprising: determining one or both of the right and left feet press on ground, before generating the control to stop the on-going movement in one or more of first, second, third, and fourth directions.
8. A game device, comprising: a memory, configured to store program instructions for performing a method for controlling a game character using foot gestures of a user; and a processor, coupled with the memory and, when executing the program instructions, configured to: perform a four-way movement start control process to control a start direction for moving the game character, including: determining whether the game character is in a non-moving state; in response to the game character being in the non-moving state, obtaining a first foot tilt angle of left foot and a second foot tilt angle of right foot of the user; determining a first tilt state of the left foot and a second tilt state of the right foot of the user, based on the first foot tilt angle and the second foot tilt angle; and determining a tilt state change of each of the right foot and the left foot of the user, when the right foot of the user is detected changing from a leveled state to a positively tilted state, generating a movement start control used to control the game character to start moving in a first direction, when the right foot of the user is detected changing from a leveled state to a negatively tilted state, generating a movement start control used to control the game character to start moving in a second direction, when the left foot of the user is detected changing from a leveled state to a positively tilted state, generating a movement start control used to control the game character to start moving in a third direction, and when the left foot of the user is detected changing from a leveled state to a negatively tilted state, generating a movement start control used to control the game character to start moving in a fourth direction.
9. The device according to claim 8, wherein in the four-way movement start control process, the processor is further configured to: determine one or both of the right and left feet press on ground, before generating the movement start control in one or more of first, second, third, and fourth directions.
10. The device according to claim 8, wherein, in the four-way movement start control process, the processor is further configured to: determine a changing rate of a foot pointing direction of each of the left foot and the right foot, before generating the movement start control in one or more of first, second, third, and fourth directions, wherein the changing rate of the foot pointing direction of each of the left foot and the right foot is required to be approximately zero for generating the movement start control in each direction of the first, second, third, and fourth directions.
11. The device according to claim 8, wherein the processor is further configured to: perform a movement type control process, including: determining the game character being in a moving state, during an on-going movement of the game character, detecting user's walk and run actions to provide a detection result, and controlling a type and/or speed of the on-going movement of the game character according to the detection result.
12. The device according to claim 8, wherein the processor is further configured to: perform a movement direction control process, including: obtaining a foot pointing direction of each of one or both feet of the user, and according to the foot pointing directions of one or both feet of the user, determining and updating the first, second, third and/or fourth directions in a game space.
13. The device according to claim 8, wherein the processor is further configured to: perform a movement stop process, including: determining the game character being in a moving state, obtaining a foot tilt angle of the left foot and/or a foot tilt angle the right foot of the user, and determining a tilt state of at least one of the left and right feet of the user, determining a tilt state change of the at least one of the left and right feet of the user that is changed from a leveled state to a tilted state, and generating a control to stop an on-going movement of the game character based on the determined tilt state change.
14. The device according to claim 13, wherein, in the movement stop process, the processor is further configured to: determine if one or both of the left foot and the right foot is pressing ground, before generating the control to stop the on-going movement in one or more of first, second, third, and fourth directions.
15. A non-transitory computer-readable storage medium, containing program instructions for, when executed by a processor, performing a method for controlling a game character using foot gestures of a user, the method comprising: performing a four-way movement start control process to control a start direction for moving the game character, including: determining whether the game character is in a non-moving state; in response to the game character being in the non-moving state, obtaining a first foot tilt angle of left foot and a second foot tilt angle of right foot of the user; determining a first tilt state of the left foot and a second tilt state of the right foot of the user, based on the first foot tilt angle and the second foot tilt angle; and determining a tilt state change of each of the right foot and the left foot of the user, when the right foot of the user is detected changing from a leveled state to a positively tilted state, generating a movement start control used to control the game character to start moving in a first direction, when the right foot of the user is detected changing from a leveled state to a negatively tilted state, generating a movement start control used to control the game character to start moving in a second direction, when the left foot of the user is detected changing from a leveled state to a positively tilted state, generating a movement start control used to control the game character to start moving in a third direction, and when the left foot of the user is detected changing from a leveled state to a negatively tilted state, generating a movement start control used to control the game character to start moving in a fourth direction.
16. The storage medium according to claim 15, in the four-way movement start control process, the method further comprising: determining one or both of the right and left feet press on ground, before generating the movement start control in one or more of first, second, third, and fourth directions.
17. The storage medium according to claim 15, in the four-way movement start control process, the method further comprising: determining a changing rate of a foot pointing direction of each of the left foot and the right foot, before generating the movement start control in one or more of first, second, third, and fourth directions, wherein the changing rate of the foot pointing direction of each of the left foot and the right foot is required to be approximately zero for generating the movement start control in each direction of the first, second, third, and fourth directions.
18. The storage medium according to claim 15, the method further comprising: performing a movement type control process, including: determining the game character being in a moving state, during an on-going movement of the game character, detecting user's walk and run actions to provide a detection result, and controlling a type and/or speed of the on-going movement of the game character according to the detection result.
19. The storage medium according to claim 15, the method further comprising: performing a movement direction control process, including: obtaining a foot pointing direction of each of one or both feet of the user, and according to the foot pointing directions of one or both feet of the user, determining and updating the first, second, third and/or fourth directions in a game space.
20. The storage medium according to claim 15, the method further comprising: performing a movement stop process, including: determining the game character being in a moving state, obtaining a foot tilt angle of the left foot and/or a foot tilt angle the right foot of the user, and determining a tilt state of at least one of the left and right feet of the user, determining a tilt state change of the at least one of the left and right feet of the user that is changed from a leveled state to a tilted state, and generating a control to stop an on-going movement of the game character based on the determined tilt state change, after determining one or both of the right and left feet press on ground.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
DETAILED DESCRIPTION
(19) This disclosure presents foot-gesture-based control methods for various applications/games to achieve natural and responsive control experiences. Foot gesture feature information including foot touch states, (2D) foot pointing directions, and foot tilt angles may be used for the detection of user foot gestures (actions) for various control purposes.
(20)
(21)
(22)
(23)
(24) For cases when only foot touch states of one foot are used, a subscript L or R is added to the bracket to indicate it is a left or right foot only touch state, e.g., { }.sub.L indicates a left foot only touch state with user's left foot in the air (i.e., not pressing the ground), {A}.sub.L is a left foot only touch state with the fore (ball) area/part of a user's left foot sole pressing the ground.
(25) Foot touch states of a user, derived from sensor measurements, allow the detection/determination of whether the user's left/right foot is pressing/on the ground (supporting platform) in all foot tilt states (as illustrated in
(26) Using foot gesture feature information including foot touch states, foot pointing direction angles, and foot tilt angles various user foot gestures/actions, including walk, run, jump, step, foot swipe, foot tap etc., can be detected and used for control of games or applications in general.
(27) For example, the game device may include a memory, configured to store program instructions for performing the disclosed foot-gesture-based control methods for a character in a game. The game device may further include a processor, coupled with the memory and configured to perform the disclosed methods. In embodiments, the memory may include volatile memory such as random-access memory (RAM), and non-volatile memory such as flash memory, hard disk drive (HDD), or solid-state drive (SSD). The memory may also include combinations of various above-described memories. The processor may include a central processing unit (CPU), an embedded processor, a microcontroller, and a programmable device such as an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), and a programmable logic array (PLD), etc.
(28) Foot-gesture-based control methods for game/application controls are presented, which may be implemented as the game control process 504 to control behaviors/actions of the game/application 503 in various embodiments of the present disclosure. The foot gesture feature information acquisition device 501 is not limited to the sensor embedded footwear as illustrated in
(29) An important application of foot-gesture-based controls is the control of character movement in games/applications. For example, foot-gesture-based movement controls allow a user to control the game character's movement in VR games with the user's foot actions, which may deliver much more natural and immersive control experiences compared to movement control with hand operated controllers. This disclosure presents methods for responsive, and accurate movement controls based on the detection of user foot gestures.
(30) Character movement controls in games and applications include movement start control, movement direction control, movement speed/type control and movement stop control of a game character. In this disclosure movement direction control is first addressed. Using foot pointing direction(s) of the user's right and/or left foot, character movement direction control in a 2D (two-dimension) plane of the game space may be naturally achieved. The first method of using user foot pointing direction(s) to control movement direction of a character in a 2D plane of a game/application's space is to use a direct mapping from the measured left or right foot pointing direction angle (or a combination of the left foot pointing direction and the right foot pointing direction) to a direction in the application/game's plane. As illustrated in
(31) Step 1: the game/application 503 instructs the user 500 to point his/her left/right foot to a direction (picked by the user), which corresponds to a known 2D direction (angle) in game/application space. The known 2D direction in game/application space may be a current moving direction of the character, or an easy to recognize direction in the game/application, etc. For example, in soccer game, the known direction can be one of the length directions of the soccer field.
(32) Step 2: user 500 notifies the game/application 503 that the left/right foot pointing direction has been picked/decided. This can be done in various ways, e.g., by clicking a function button on a hand-operated controller.
(33) Step 3: Upon getting the user notification from Step 2, the game/application 503 obtains the current of left/right foot pointing direction (angle) and uses it as the reference left/right foot pointing direction (angle), e.g., ω.sub.Lref/ω.sub.Rref.
(34) After the calibration process, the reference foot pointing direction (angle), e.g., ω.sub.Lref/ω.sub.Rref is set, which corresponds to the known (2D) direction (angle) in the game/application space. The direction in the game/application's 2D space that corresponds to a left/right foot pointing direction (angle) (e.g., ω.sub.L or ω.sub.R) may be obtained using the angle difference (ω.sub.L−ω.sub.Lref) or (ω.sub.R−ω.sub.Rref) and the known 2D direction (angle) in the game/application space.
(35) In various embodiments of the disclosure, for the step 2 of the calibration process, a foot gesture (performed by the user 500 and detected by the game/application 503, e.g., with a game/application control process 504) may be used to inform application/game to set the reference foot pointing direction(s). A recommended foot-gesture-based method for setting the reference foot pointing direction(s) is described as follows. Check, e.g., by 504, if a user's left/right foot is in a titled state (as illustrated in
(36) Note that the first way for character movement direction control involves the mapping of user foot pointing direction(s) with a 360 degree range directly to a 2D direction in application/game's space. This control method requires the user to be able to turn around freely. In some applications, the requirement can be naturally met, for example, when a user wears a VR headset playing a VR game. As the user turns around in real world, the mapped 2D direction in game/application space will be updated accordingly. However, there are also many application scenarios, where it is inconvenient for a user/player to turn around. For example, when a fixed screen is used for display, the user will not turn away from the screen during the game play. As a result, user left/right foot pointing direction has a much limited range for game control.
(37) In such cases, a reference left/right foot pointing direction (angle), denoted as ω.sub.Lref/ω.sub.Rref, may be set by the user. The same calibration process may be used for setting the reference left/right foot pointing direction. In some embodiments of the disclosure, the reference left/right foot pointing direction angle ω.sub.Lref/ω.sub.Rref may be set as the foot pointing direction angle ω.sub.L/ω.sub.R when the user's left/right foot is pointing to the display screen. In other embodiments of the disclosure, the reference left/right foot pointing direction angle ω.sub.Lref/ω.sub.Rref, can be set as the left/right foot pointing direction angle ω.sub.l/ω.sub.R when a character movement in game/application is started. The difference between measured left/right foot pointing direction and the reference foot pointing direction, e.g., ω.sub.L−ω.sub.Lref or ω.sub.R−ω.sub.Rref may be used for movement direction controls.
(38) In such cases the range of ω.sub.L−ω.sub.Lref or ω.sub.R−ω.sub.Rref is generally much smaller than [−90 90] degree. For character movement direction control, the foot pointing direction (angle) difference ω.sub.L−ω.sub.Lref or ω.sub.R−ω.sub.Rref may be used to control the turn rate of the movement direction in a (2D) plane of the game/application space. For example, when ω.sub.L−ω.sub.Lref or ω.sub.R−ω.sub.Rref falls in an interval of [−20 20] degree, turn rate of the movement direction in game/application space is zero, i.e., there is no change in moving direction. When ω.sub.L−ω.sub.Lref or ω.sub.R−ω.sub.Rref falls in a second range, e.g., [−−50-20] degree, the turn rate of moving direction in a 2D game/application space is −5 degree/second. When ω.sub.L−ω.sub.Lref or ω.sub.R−ω.sub.Rref falls in a third range, e.g., [20 50] degree, the turn rate of moving direction in a 2D game/application space is 5 degrees/second. In such a way, user is able to effectively change the movement direction and make turns in a (2D) plane of the game/application space.
(39) In other embodiments of the current disclosure, movement direction controls in games/applications are given as Forward, Backward, Left, or Right direction. The angle difference ω.sub.L—ω.sub.Lref or ω.sub.R−ω.sub.Rref and the corresponding foot tilt angle γ.sub.L or γ.sub.R may be used to generate movement control in four directions. For example, when ω.sub.R−ω.sub.Rref falls in a first range, e.g, [−15 15] degree, Forward or Backward movement can be started depending on the right foot tilt angle γ.sub.R; when ω.sub.R−ω.sub.Rref falls in a second range, e.g., [−50 −20] degree, Right or Left movement may be started depending on the right foot tilt angle γ.sub.R.
(40) Note that the character movement direction control methods presented above allows the control of the character's movement in a (2D) plane of the game/application space using one foot of the user. In such cases, foot gesture of the other foot of the user may be used to control character movement in Up and Down directions. Jointly, character movement control in 3D game/application space may be achieved. In various embodiments of the disclosure, a game/application character's movement in Up and Down directions of the game/application space may be naturally controlled using left or right foot tilt angle γ.sub.L or γ.sub.R of the user with a mapping from the foot tilt angle to the speed (or acceleration) of the Up and Down movement.
(41) Besides movement direction control, movement control in games/applications also include movement start control, movement stop control and the control of movement parameters including type, speed, etc. In various embodiments of the disclosure, user's foot gestures/actions including Walk, Run and Jump can be accurately detected and distinguished (e.g., by a game control process 504) using foot touch state information from a foot gesture feature information acquisition device 501.
(42) Foot gesture state {A|B C|D} denotes set of foot touch states when both left foot and right foot of the user are pressing the ground with left foot touch state being {A|B}.sub.L and right foot touch state being {C|D}.sub.R. ({A|B}.sub.L indicates A and/or B area(s) of the left foot sole are pressing the ground. {C|D}.sub.R denotes C and/or D area(s) of the right foot sole are pressing the ground); Foot gesture state {A|B} denotes a set of (possible/allowed) foot touch states when right foot is in the air, i.e., with right foot touch state being { }.sub.R, and left foot touches/presses the ground (with A and/or B area(s) pressing the ground and left foot touch state as {A|B}.sub.L); foot gesture state {C|D} denotes the set of foot touch states when user's right foot is pressing the ground and user's left foot is in the air. Foot gesture state { } corresponds to touch state { } with both of user's feet in the air (not pressing the ground). Accordingly, WALK, as foot gesture, has the following sequence of foot gesture states
(43) . . . {A|B C|D}.fwdarw.{A|B}.fwdarw.{A|B C|D}.fwdarw.{C|D}.fwdarw.{A|B C|D}.fwdarw.{A|B}.fwdarw.{A|B C|D}.fwdarw.{C|D} . . .
(44) Note that the sequence of foot gesture states shows the changes/transitions of foot gesture states, which is the changes/transitions of foot gesture states over time. Here, each foot gesture state corresponds to a set of allowed foot touch states of the WALK foot gesture. Mark “.fwdarw.” is used to connect consecutive foot gesture states.
(45) RUN as a foot gesture has the following sequence of foot gesture states:
(46) . . . { }.fwdarw.{A|B}.fwdarw.{ }.fwdarw.{C|D}.fwdarw.{ }.fwdarw.{A|B}.fwdarw.{ }.fwdarw.{C|D} . . .
(47) It can be seen that WALK and RUN foot gestures, share foot gesture states {A|B} and {C|D}. However, they have different foot gesture state sequences. Walk can be detected (confirmed) by the detection of a (minimum length) foot gesture state sequence:
(48) {A|B}.fwdarw.{A|B C|D}.fwdarw.{C|D} or {C|D}.fwdarw.{A|B C|D}.fwdarw.{A|B}
(49) The above sequence of foot gesture states are segments from the foot gesture state sequence of foot gesture WALK, which are feature foot gesture state patterns of the foot gesture. When one of the feature foot gesture state pattern of WALK is detected, e.g., by 504, based on measurements of user foot touch states, foot gesture WALK may be detected and used to start/trigger movement of the (video game) character corresponding to WALK. A longer feature foot gesture state pattern of WALK, e.g., {A|B C|D}.fwdarw.{A|B}.fwdarw.{A|B C|D}.fwdarw.{C|D} may also be used to detect WALK, but it will further reduce the detection speed and make the control less responsive.
(50) For the detection of user's Run foot gesture, the following feature foot gesture state patterns of RUN can be used.
(51) { }.fwdarw.{A|B}.fwdarw.{ }, { }.fwdarw.{C|D}.fwdarw.{ }, {A|B}.fwdarw.{C|D}, {C|D}.fwdarw.{ }.fwdarw.{A|B}
(52) When one of the above feature foot gesture state patterns of RUN is detected based on measurements of the user's foot touch state measurements, RUN foot gesture can be detected, e.g., by 504, and used to start (trigger) the character's movement corresponding to RUN in the game. A longer feature foot gesture state pattern of RUN, e.g., {A|B}.fwdarw.{ }.fwdarw.{C|D}.fwdarw.{ }, and {C|D}.fwdarw.{}.fwdarw.{A|B}.fwdarw.{ } may be used to detect RUN foot gesture. However this may further reduces the detection speed, but has the advantage of being able to distinguish RUN from single-foot hoop foot gesture.
(53) Note that single-foot hop has foot gesture state patterns: . . . { }.fwdarw.{A|B}.fwdarw.{ }-{A|B}.fwdarw.{ } . . . for left-foot hop and . . . { }.fwdarw.{C|D}.fwdarw.{ }-{C|D}.fwdarw.{ } . . . for right-foot hop. If it is desirable to avoid the detection of single-foot hop foot gesture as RUN, { }.fwdarw.{A|B}.fwdarw.{ }, { }.fwdarw.{C|D}.fwdarw.{ } should not be used for RUN foot gesture detection.
(54) To summarize, in various embodiments of the disclosure, user actions, including run and walk, can be detected as foot gestures by checking if the obtained foot gesture state sequence matches a feature foot gesture state pattern of the corresponding foot gesture. The process involves obtaining measurements of user foot touch states of both left and right foot. Based on a current foot touch state measurement determine a current foot gesture state. Check if the obtained foot gesture state sequence, which is formed by the current and past foot gesture states, matches a feature foot gesture pattern of the foot gesture to be detected. The feature foot gesture state pattern of the foot gesture is a pre-determined segment of the foot gesture state sequence of the foot gesture, e.g. WALK or RUN. When a match with a feature foot gesture state pattern of the foot gesture is detected, the corresponding user foot gesture is detected. The selection of the feature foot gesture state pattern for WALK or RUN detection involves tradeoff between detection speed and detection accuracy. In various embodiments of the disclosure, the detection of a foot gesture such as WALK or RUN can be used to start a corresponding character movement in games and applications.
(55) In various embodiments of the disclosure, the detection of the termination/stop of WALK or RUN foot gesture may be used to stop character movement in games and applications. One way to determine the stop of WALK/RUN is to detect a break of foot gesture state sequence corresponding to WALK/RUN. However, this may lead to large delays. For example, when a user stops walking, the corresponding foot gesture state sequence stops at {A|B C|D} with both feet on ground. In this case, although the user has stopped walking, the WALK foot gesture state sequence is not broken.
(56) A solution to the problem is to use a timeout threshold for foot gesture states. If a detected foot gesture state is not changed for a time period that is over a timeout threshold, denoted as Tau.sub.E, the foot gesture, e.g., WALK/RUN may be determined to be ended. However, if the timeout threshold Tau.sub.E is selected too large, significant delays will be introduced for the detection of stop of WALK/RUN foot gesture, which may lead to a large delay in movement stop control. If the timeout threshold is selected too small, false detections of WALK/RRUN termination may happen, which may lead to unwanted movement interruption.
(57) To resolve the problem above, in various embodiments of the disclosure, foot gesture state {A|B C|D} (which include all possible foot touch states when user's both feet are pressing the ground) and a short timeout threshold Tau.sub.E, e.g., Tau.sub.E=0.2 s, are used for RUN/WALK stop/termination detection. If the user's both feet is detected to press the ground (with foot gesture state {A|B C|D}) for a time period that is more than the timeout threshold Tau.sub.E, WALK/RUN foot gesture is determined to be stopped, and a stop control for an ongoing movement of a game/application character may be generated. The disclosed method for stop detection of WALK foot gesture is based on the fact that, in WALK foot gesture, foot gesture state {A|B C|D} has very short time duration, because when a person walks, the time duration when both the person's left and right feet are pressing the ground (corresponding to foot gesture state {A|B C|D}) is very short. In contrast, the other two foot gesture states of WALK, i.e., {A|B} and {C|D}, have much longer time durations. For movement stop control, the use of a short timeout threshold Tau.sub.E, e.g., 0.2 s, on foot gesture state {A|B C|D} will not lead to false Walk stop detections.
(58) For RUN foot gesture, the same stop detection method as for WALK can be used. Note that {A|B C|D} is not a foot gesture state of RUN. The detection of foot gesture state {A|B C|D} is a break of foot gesture state sequence of RUN foot gesture, which indicates the termination of the RUN. In addition, user's walk/run action normally and naturally stops at foot gesture state {A|B C|D}, the disclosed method for WALK/RUN stop detection provides natural and responsive detection and control performance.
(59) The methods disclosed above for movement start and stop control by detecting the start and stop of WALK/RUN foot gesture allow a user to naturally control character movement with his/her walk/run actions. However, the methods have a few drawbacks. First, the detection of Walk/Run action can only start movement in one direction, e.g., a “Forward” direction. It may not be used to start backward or sideway movements. Second, the detection of Walk/Run action may involve significant delays with the detection methods in this disclosure or other Walk/Run detection methods. Regardless of the detection method, user's walk or run actions can only be detected (confirmed) after the user start walking/running for one or two steps. The delay in the detection of Walk/Run action can be around 1 second, which is not suitable for character movement controls with high requirements on time accuracy and responsiveness.
(60) To address the first drawback, the detection of the following left/right-foot step action (foot gesture) can be used to start sideway movements. For example, Left-foot step has the following foot gesture state sequence. . . . {A|B C|D}.fwdarw.{C|D}.fwdarw.{A|B C|D}.fwdarw.{C|D}.fwdarw.{A|B C|D}.fwdarw.{C|D}.fwdarw.{A|B C|D} . . .
(61) To confirm the detection of the left-foot step foot gesture and distinguish the foot gesture from WALK the following feature foot gesture state pattern of the left-foot step can be used to detect left-foot step, {A|B C|D}.fwdarw.{C|D}.fwdarw.{A|B C|D}.fwdarw.{C|D}
(62) In various embodiments of the disclosure, the detection of the feature foot gesture state pattern above using user foot touch state measurements may be used to confirm the detection of the left-foot step foot gesture and to naturally start/trigger sideway move toward a direction, e.g., left. A longer feature foot gesture state pattern can be used to detect left-foot step, e.g., {A|B C|D}.fwdarw.{C|D}.fwdarw.{A|B C|D}.fwdarw.{C|D}.fwdarw.{A|B C|D}, however, it may reduce detection speed and make the control less responsive.
(63) However, the detection of WALK, RUN and left/right-foot step of a user for movement start control all involve significant delays. To resolve the problem, in various embodiments of the disclosure, foot-tilt-angle-based methods may be used for accurate and responsive movement start control in games and applications.
(64) User's left/right foot tilt angle theoretically has a range between [−90 90] degree. In practice the range of foot tilt angel is much smaller.
(65) As shown in
(66) When the (measured) user left/right foot tilt angle γ.sub.L/γ.sub.R falls in sub-range 174/184, the user's left/right foot heel is up and fore part of left/right foot sole is down (which corresponds to a negatively tilted state as in
(67) When the (measured) user left/right foot tilt angle γ.sub.L/γ.sub.R falls in Sub-range 173/183, the user's left/right foot heel is down and the fore part of left/right foot sole is up (which corresponds to a positively tilted state as in
(68) The predefined sub-ranges 172/182, 173/183, 174/184 allow the conversion of the left/right foot tilt angle (measurement) to one of three states, and can be naturally used for control of movement along a movement direction, against a movement direction and movement stop. As illustrated in
(69) In other embodiments of the disclosure, left/right foot tilt angle can be used to control the acceleration of the movement. For example, when left/right foot tilt angle is in range 172/182, there is zero acceleration; when left/right foot tilt angle is in range 174/184 a positive acceleration may be applied to the movement to increase movement speed in a movement direction; and when left/right foot tilt angle is in range 173/183 a negative acceleration may be applied to the movement to reduce movement speed in a movement direction.
(70) The foot-tilt-angle-based methods disclosed above for movement start, stop and type control may offer responsive control performance, since foot tilt angle changes can be detected with little delays. However, the movement control methods may require the user to keep a foot in a tilted state during the movement and they may not allow the user/player to perform walk, run, stepping, and turn actions during the character's movement.
(71) This disclosure presents foot-gesture-based control methods which combine the advantages of the foot-tilt-angle-based movement control and movement control with the detection of foot gestures including WALK and RUN, to achieve natural and responsive movement controls of a character in games/applications with foot actions of a user 500.
(72)
(73) In some embodiments of the disclosure, as illustrated in
(74) The disclosed four-way movement start control processes (which may be implemented in the game control process 504) allow the use of user foot actions to effectively start movement of a game/application character in four possible directions, e.g., Forward, Backward, Left and Right directions, which is a commonly needed movement control function in many games and applications. The user foot gestures to be detected by the four-way movement start control processes are easy to perform and can be detected with little time delay, which leads to responsive movement start control performance. In comparison, as discussed earlier, the detection of foot gestures such as WALK or RUN will take much longer time and may cause unwanted delays for movement start controls. The disclosed four-way movement start control methods also do not need user foot pointing direction information, which allows the use of user foot pointing direction information for other control purposes such as determining a (2D) reference-Forward-movement direction in the game/application space that determines the directions of the four movement directions in the game/application space.
(75) In embodiments of the four-way movement start control processes, the thresholds for determining the user's foot being in a positively or negatively titled state may be selected to achieve a desired tradeoff between control sensitivity and the chance of false/unintended triggering of movement start control. The chance of unintended triggering of movement start control may be further reduced by adding additional requirements on foot touch states, and change rate of foot pointing direction(s), for the generation of the character movement start controls. For example, it may also be required that one or both of the user's feet need to be detected/determined as pressing the ground for generating a movement start control, which may be determined using foot touch state measurements of the user; it may also be required that the change rates of one or both of the user's the foot pointing directions to be close to zero for generating a movement start control, which reduces the chance of generating unintended character movement start controls when a user turns around to face a different direction.
(76) In various embodiments of the disclosure, the four-way movement start control processes presented above may be used to start character movement when the game/application character is determined to be in a non-moving state. When the game/application character is determined to be in a moving state, the detections of other foot gestures such as WALK, RUN, etc., can be used (e.g., by 504) to control other aspects of the on-going movement such as movement type and/or speed. As presented earlier in this disclosure, user foot gestures including WALK and RUN may be detected (e.g., by 504) using measurements of user foot touch states.
(77) In many games and applications, the directions of movement in a game/application's 2D plane corresponding the four movement directions, e.g., Forward, Backward, Left and Right, may be changed. In many cases, the four directions of movement in the (2D) plane of the game/application's space may be determined in reference to a reference-Forward-movement-direction in the plane of the game/application's space, which corresponds to the Forward direction. When the reference-Forward-movement-direction is changed, the direction of the Forward, Backward, Left, or Right movement in the game/application's space changes accordingly.
(78) In some games and applications, the reference-Forward-movement-direction is controlled by a hand operated device. For example, in many first-person video games, the reference-Forward-movement-direction is determined by the direction of the game character's viewing direction in the game/application space, which may be controlled by a mouse. In many VR applications, the reference-Forward-movement-direction in the game space is controlled by the orientation of the VR headset. In various embodiments of the disclosure, when user foot pointing direction information is available, the reference-Forward-movement-direction may be determined (e.g., by 504) using the left/right foot pointing direction angle of the user 500 (e.g., ω.sub.L/ω.sub.R) or the combination of the user's left foot pointing direction and right foot pointing direction angles. This allows the decoupling of the controls of the movement direction and viewing direction of the character in games/applications. As a result, a user/player 500 can change the direction that a game/application character is looking at in game/application space without affecting the direction of an ongoing movement of the character, which matches real-life movement control experiences. Note that, in various embodiments of the disclosure, the methods presented earlier for using the foot pointing direction(s) of a user to control character movement direction in games/applications may be used to determine the reference-Forward-movement-direction.
(79) In various embodiments of the disclosure, when a game/application character is determined to be in a moving state (e.g., by 504), the ongoing movement may be stopped using a foot-tilt-angle-based foot gesture. A control to stop the on-going movement may be generated (e.g., by 504) when the left or right foot is detected (e.g., by 504) to change from a leveled sate (as illustrated in
(80) In this disclosure an advanced step-up foot gesture is presented which allows the use of natural step-up foot actions of a user (500) for various game/application control purposes.
(81)
(82) Accordingly, the left/right foot advanced step-up foot gesture may be detected as follows in various embodiments of the current disclosure. Detect (or determine) if the left/right foot of the user presses the ground, e.g., using touch state of the user's foot. When the left/right foot is determined to start pressing the ground, obtain ω.sub.L0/ω.sub.R0 and/or γ.sub.L0/γ.sub.R0 as needed if they are parameters of the advanced-step foot gesture. When the user's left/right foot is detected (or determined) as pressing the ground, depending on if one or multiple of the left/right foot pointing direction angle(s), i.e., ω.sub.L1/ω.sub.R1, ω.sub.L2/ω.sub.R2, . . . , ω.sub.LK/ω.sub.RK, are needed as parameter(s) of the advanced step-up foot gesture, evaluate the foot tilt state of the user's left/right foot using obtained foot tilt angle of the user's foot; and detect (or determine) the change of the left/right foot from a leveled state to a tilted state for the required number(s) of times, and obtain one or multiple left/right foot pointing direction angle parameter(s) required by the advanced step-up foot gesture, e.g., ω.sub.L1/ω.sub.R1, ω.sub.LK/ω.sub.RK, etc. When the user's left/right foot is detected (or determined) as pressing the ground, detect (or determine) when the user's left/right foot stops pressing the ground, e.g., using touch state measurements of the user's foot. After it is determined that the user's left/right foot stops pressing the ground, obtain ω.sub.Le/ω.sub.Re and/or γ.sub.Le/γ.sub.Re if they are needed as parameters of the left/right foot advanced step-up foot gesture; and generate a control with the parameters obtained from the advanced step-up foot gesture. In various embodiments of the present disclosure, parameters of the left/right foot advanced step-up foot gesture include a foot tilt angle γ.sub.Le/γ.sub.Re, a first foot-pointing-direction-angle ω.sub.Le/ω.sub.Re, and a second foot-pointing-direction-angle, which is one of the foot pointing direction angles in ω.sub.L0/ω.sub.R0, ω.sub.L1/ω.sub.2, . . . , and ω.sub.LK/ω.sub.RK.
(83) In various embodiments of the disclosure, the (left/right foot) advanced step-up foot gesture for game/application control presented above may be used for various control purposes. For example, ball kick controls are common in games such as football, soccer, etc. Ball kick control in games include kick direction control, kick strength control, and ball spin control (from the kick), which can be naturally achieved with the advanced step-up foot gesture disclosed above.
(84) According to various embodiments of the present disclosure,
(85) Note that in the middle of the advanced step-up foot gesture, i.e., when the user's left/right foot is still pressing the ground, a game/application control process 504 may evaluate i) a to-be-determined 2D direction of the ball kick (i.e., Direction 1 in XY plane) in the game/application 503, corresponding to the current (latest) foot pointing direction angle (i.e., ω.sub.L or ω.sub.R and/or ii) a to-be-determined elevation of the ball kick corresponding to the current/latest foot tilt angle (i.e., γ.sub.L/γ.sub.R). The to-be-determined 2D direction of the ball kick and the to-be-determined elevation of the ball kick may be visualized in the game/application 503 to the user 500, such that the user 500 knows the result of the advanced step-up foot gesture and can adjust the control accordingly. In addition strength of the ball kick may be controlled by a hand operated trigger, or determined by speed of the user's foot movement obtained after the advanced step-up foot gesture.
(86) In various embodiments of the disclosure, the advanced step-up foot gesture can be used in climbing games to allow user's foot actions effectively involved in the game play.
(87) In general, a target step point is determined from a set of reachable step points that is determined based on the currently selected grab and/or step point(s) of the virtual hands and/or virtual feet.
(88) Additional requirements on foot tilt angle parameters, e.g., γ.sub.Le for left foot and γ.sub.Re for right foot may be added to determine if a step action to the target step point should be performance in game. For example, it can be required that the user's foot need to be in a tilted state with the absolute value of γ.sub.Le or γ.sub.Re being larger than a threshold for the virtual foot to move to the target step point after an advanced step-up foot gesture. Otherwise, no step action will be executed in the game.
(89) Foot tilt angle parameter of the advanced step-up foot gesture, e.g., γ.sub.Le/γ.sub.Re, may also be used for the selection of the target step point.
(90) Note that, in various embodiments of the disclosure, before the advanced step-up foot gesture is completed, i.e., when the user's left/right foot is still pressing the ground, a to-be-selected target step point corresponding to the current/latest user left/right foot pointing direction angle ω.sub.L/ω.sub.R and foot tilt angle γ.sub.L/γ.sub.R., may be identified and visualized in the game/application, such that the user/player knows the result of the advanced step-up control action, and can adjust the control accordingly to select a desired target step point. The to-be-selected target step point may be found as the target step point determined by using the current/latest foot pointing direction angle ω.sub.L/ω.sub.R and foot tilt angle γ.sub.L/γ.sub.R as the parameters of the advanced step-up foot gesture ω.sub.Le/ω.sub.Re and γ.sub.Le/γ.sub.Re.
(91) In various embodiments of the disclosure, the advanced step-up foot gesture many be used for the change of a selected item in various games and applications. The items may be objects in various games and applications. In climb games, the items are step points; in GUI applications, the items may be GUI items including menu items and application icons.
(92) The advanced step-up foot gesture may provide multiple parameters including a first foot-pointing-direction-angle (e.g., ω.sub.Le/ω.sub.Re), a second foot-pointing-direction-angle (e.g., ω.sub.L1/ω.sub.R1) and a foot-tilt-angle (e.g., γ.sub.Le/γ.sub.Re). In general, based on a currently selected item, a set of “reachable” items may be determined. Then a mapping from the first foot-pointing-direction-angle parameter, e.g., ω.sub.Le or ω.sub.Re or the difference between the first foot-pointing-direction-angle parameter and the second foot-pointing-direction-angle parameter, e.g., ω.sub.Le−ω.sub.L0 or ω.sub.Re−ω.sub.R0, and the foot-tilt-angle parameter, e.g., γ.sub.Le or γ.sub.Re to the set of “reachable” items may be determined, which allows the determination of one or none of the “reachable” items as a target item using parameters from the (left/right foot) advanced step-up foot gesture. When an advanced step-up foot gesture is completed/detected (when the user's foot is detected to leave the ground), the first foot-pointing-direction-angle parameter, e.g., ω.sub.Le or ω.sub.Re, or the difference between the first foot-pointing-direction-angle parameter and the second foot-pointing-direction-angle parameter, e.g., ω.sub.Le−ω.sub.L0 or ω.sub.Re−ω.sub.R0 or ω.sub.Re −ω.sub.R1, and the foot-tilt-angle parameter, e.g., γ.sub.Le or γ.sub.Re may be obtained/determined. Based on parameters from the advanced step-up foot gesture and the mapping to the “reachable” items, a target item may be determined from the reachable “items”, and a control of selecting the target item may be generated.
(93) Note that before the advanced step-up foot gesture is completed, i.e., when the user's left/right foot is still pressing the ground, a to-be-selected target item corresponding to the current/latest foot pointing direction ω.sub.L/ω.sub.R and foot tilt angle γ.sub.L/γ.sub.R may be determined and visualized in the game/application, such that the user/player knows the result of the advanced step-up control action, and can adjust the control accordingly to select a desired target item. The to-be-selected target item may be found as the target item determined by using the current/latest foot pointing direction angle ω.sub.L/ω.sub.R and foot tilt angle γ.sub.L/γ.sub.R as the parameters of the advanced step-up foot gesture ω.sub.Le/ω.sub.Re and γ.sub.Le/γ.sub.Re. Note that the second foot-pointing-direction-angle of the advanced step-up foot gesture is determined and available when the user's left/right foot is still pressing the ground, which can be used for the evaluation of the to-be-selected target item.
(94) In sport games such as ski, snow board, skating, movement of the game character is controlled by the relationship between the (2D) pointing direction(s) of a virtual foot/feet that correspond to the pointing direction(s) of snow board, ski board, skating blade in a 2D plane of the game space, and a current movement direction in the 2D plane of the game space.
(95)
(96) In various embodiments of the current disclosure, foot gesture based movement control methods in games such as ski, skating, include i) determining the pointing direction(s) of the virtual foot/feet in 2D game space using measured user left and/or right foot pointing direction(s), ii) determining movement controls including moving straight, turns, brakes, etc., based on the difference(s) between the 2D virtual foot pointing direction(s) and the current movement direction of the game character in a 2D plane of the game space. Foot touch states of a user's left foot and right foot may be used to determine if the corresponding left/right virtual foot (and the corresponding left/right ski board, snow board, skate blade) is pressing/touching the ground in the game, which can be used to determine if left and/or right virtual foot pointing direction(s) should be used for movement control of the game character.
(97) In various embodiments of the disclosure, the character's movement direction 2000 may correspond to a reference foot pointing direction of the user/player. For example, the reference foot pointing direction, ω.sub.Lref or ω.sub.Rref, may be set as the left/right foot pointing direction angle of the user when the current character movement is started; or the reference foot pointing direction angle(s) may be pre-determined user foot pointing direction angle(s) with a calibration process as disclosed in this invention. In such cases, the angle difference between a 2D virtual foot pointing direction, i.e., 2001 or 2002, and the current movement direction of the game character 2000 may be derived from the angle difference of the obtained user foot pointing direction angle and the reference foot pointing direction angle, e.g., ω.sub.L−ω.sub.Lref, or ω.sub.R−ω.sub.Rref.
(98) The present disclosure also provides a computer-readable storage medium storing program instructions. The program instructions may be loaded to a computer or a processor of a programmable data processing device, such that the program instructions are executed by the computer or the processor of the programmable data processing device to implement the disclosed methods.
(99) While some embodiments of the present disclosure have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the disclosure. It should be understood that various alternatives to the embodiments of the disclosure described herein may be employed in practicing the disclosure. Numerous different combinations of embodiments described herein are possible, and such combinations are considered part of the present disclosure. In addition, all features discussed in connection with any one embodiment herein can be readily adapted for use in other embodiments herein. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby.