Method, user device, and non-transitory computer readable storage medium
The virtual controller system dynamically adjusts the directional pad origin based on user input, enhancing responsiveness and intuitiveness by relocating the origin and providing feedback, addressing the limitations of touch-enabled control schemes in games.
Patent Information
- Application Number
- JP2025067979
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2021-03-10
- Filing Date
- 2025-04-17
- Publication Date
- 2025-07-10
AI Technical Summary
Existing touch-enabled operation schemes in computer games and video games lack the responsiveness and flexibility provided by physical controllers, failing to utilize the potential of virtualization for intuitive control.
A virtual controller system that dynamically adjusts the origin of a directional pad based on user swipe or drag touch inputs, allowing for continuous direction control and responsive changes in orientation by relocating the origin to a threshold distance from the user's thumb position, and providing tactile and audible feedback for confirmation.
Enhances user control intuitiveness and responsiveness by minimizing the distance required for quick direction changes, offering a more intuitive and responsive virtual control experience compared to fixed-position directional pads.
Smart Images

Figure 2025105663000001_ABST
Abstract
Description
Background Art
[0001]
[0001] For example, the latest computer controller systems used in computer games, video games, and general-purpose operating systems employ various techniques for instructing the movement of objects displayed on the screen. Known techniques include using an external operation device such as a mouse, a direction pad, a touch pad, a pen, a game controller, or a joystick to create a direction vector, specify a position for moving an object on the screen such as a pointer or a reticle, or cause a movement of the user's viewpoint.
[0002]
[0002] Some techniques may employ an additional layer of sophistication by measuring the speed of movement of an external device in order to improve the movement of an object on the screen by changing the behavior of the object on the screen according to input parameters (e.g., the acceleration of a pointer based on the speed at which the external device is moved). Touch-enabled devices may also be configured to accept input so as to simulate the behavior of an external operation device. However, the operation schemes of touch-enabled devices tend not to reach the feel and responsiveness achieved by physical controllers, and further development in this field is needed. For example, some touch-enabled operation schemes are shown in existing games, but the existing operation schemes cannot utilize the flexibility provided by virtualization.
Summary of the Invention
[0003]
[0003] This specification discloses a technique for providing a virtual controller with a more intuitive control interface. Specifically, in a virtual controller used to control an object (such as a character or an avatar) within a software application (such as a video game), a technique may be implemented to enhance the user's ability to control the movement of the object using, for example, a direction pad.
[0004]
[0004] In contrast to a physical controller, a virtual controller may be any suitable electronic device in which at least a portion of the control input mechanism is virtually instantiated. For example, a virtual controller may comprise a touch screen display configured to present buttons or other input mechanisms. A user's touch on the touch screen display may be detected during use of the virtual controller. The button may activate when the position of the detected user touch coincides with the position of the presented button.
[0005]
[0005] Disclosed is a method, performed by a user device, including receiving, on a touch screen display, an indication of a first touch input received from a user at a first position, determining that a continuous direction input has been initiated, at least in part based on a distance between the first position and a second position associated with an origin of an input mechanism being less than a distance threshold, maintaining the continuous direction input as long as touch inputs are continuously detected, monitoring, while the continuous direction input is maintained, a touch input vector associated with the continuous direction input, determining that a reverse input has occurred when an angular change of the touch input vector greater than a change threshold is detected, and causing an avatar to perform a reverse action corresponding to the reverse input.
[0006]
[0006] One embodiment is a computing system comprising a touch screen display, a processor, and a memory, where the memory, when executed using the processor, causes the computing device to at least receive, on the touch screen display, an indication of a first touch input received from a user at a first position, the first pos Determining that a continuous direction input has been initiated, at least in part based on the distance between a position and a second position associated with the origin of the input mechanism being less than a distance threshold; maintaining the continuous direction input as long as touch inputs are continuously detected; monitoring a touch input vector associated with the continuous direction input while the continuous direction input is being maintained; determining that a reverse input has been made when an angular change of the touch input vector greater than a change threshold is detected; and causing an avatar to perform a reverse action corresponding to the reverse input. The computing system is caused to perform the above operations.
[0007]
[0007] In one embodiment, receiving an indication of a first touch input received from a user at a first position on a touch screen display; determining that a continuous direction input has been initiated, at least in part based on the distance between the first position and a second position associated with the origin of the input mechanism being less than a distance threshold; maintaining the continuous direction input as long as touch inputs are continuously detected; monitoring a touch input vector associated with the continuous direction input while the continuous direction input is being maintained; determining that a reverse input has been made when an angular change of the touch input vector greater than a change threshold is detected; and causing an avatar to perform a reverse action corresponding to the reverse input. The non-transitory computer-readable medium stores computer-executable instructions that, when executed, cause one or more computing devices to perform the above operations collectively.
[0008]
[0008] The above will become more apparent by reference to the following specification, claims, and accompanying drawings, along with other features and embodiments. The embodiments of the invention covered by this patent are defined by the following claims, rather than by this summary. This summary is a high-level overview of various aspects of the invention and introduces some of the concepts that are further described in the section on the following detailed description. This summary is not intended to identify key or essential features of the subject matter defined by the claims, nor is it intended to be used alone to determine the scope of the subject matter defined by the claims. The subject matter should be understood by reference to the entire specification of this patent, any or all of the drawings, and the appropriate portions of each claim.
Brief Description of the Drawings
[0009]
[0009] The detailed description is presented with reference to the accompanying drawings. In the figures, the leftmost digit of a reference number identifies the figure in which the reference number first appears. The use of the same reference number in different figures indicates similar or identical items or features.
[0010]
Figure 1
[0010] A simplified system diagram showing a service environment in which a virtual controller can be used, according to various embodiments of the present disclosure.
Figure 2
[0011] An exemplary example of an environment including a virtual controller in which control means for performing infinite drag and swipe according to an embodiment can be implemented is shown.
Figure 3
[0012] A block diagram showing various components of a computing system architecture that supports the implementation of a virtualized physical controller according to an embodiment.
Figure 4
[0013] A graphic diagram of a process for implementing dynamic positioning of the origin of a direction pad according to an embodiment is shown.
Figure 5
[0014] Shows a graphic diagram of a process for executing a charging operation on a virtual controller according to an embodiment.
Figure 6
[0015] Shows an exemplary process flow for executing an action based on dynamic direction control means according to an embodiment.
Figure 7
[0016] Shows a flowchart showing a first exemplary process flow for generating and implementing dynamic direction control means on a virtualized physical controller according to an embodiment.
Figure 8
[0017] Shows a flowchart showing a second exemplary process flow 800 for generating and implementing dynamic direction control means on a virtualized physical controller according to an embodiment.
Modes for Carrying Out the Invention
[0011]
[0018] In the following description, various embodiments will be described. For the purpose of explanation, specific configurations and details are shown to provide a complete understanding of the embodiments. However, it will also be apparent to those skilled in the art that the embodiments can be practiced without specific details. Further, well-known features may be omitted or simplified so as not to obscure the described embodiments.
[0012]
[0019] Embodiments herein are directed to techniques for implementing a virtual controller having a more intuitive control interface. Specifically, these techniques include dynamically adjusting the position of the origin of an input mechanism, such as a directional pad, based on the movement by the user of the virtual controller. In such techniques, the movement by the user of the virtual controller may be a user's swipe or drag touch input where the user drags their finger on a touch screen display. In an embodiment, the position of the origin may be updated such that the origin is located on the path of the user's swipe or drag touch input, but is located a threshold distance away from the user's most recent touch position. When the user's touch input moves outside of the threshold distance, the origin is updated to be a threshold distance away from the position of the user's touch input.
[0013]
[0020] Embodiments of the present disclosure provide several advantages over conventional systems. In some control systems implemented on touch screen devices, the orientation and movement speed of an avatar can be controlled by a "directional pad" implemented at a predetermined position on the screen (e.g., on the left side). For example, when the user's left thumb is initially placed on the directional pad, the controller recognizes that initial placement as the "origin" (similar to the center of an analog clock) for orientation and movement. When the user slides their thumb away from the origin, a vector is calculated from the position of the origin and the user's thumb. The orientation of the avatar (direction from the center) is updated based on the direction of the vector and the speed at which the avatar moves (the length of the vector, or how far the thumb was slid during the touch input).
[0014]
[0021] Consider a scenario where the player wants to move the character straight (extending the thumb towards the 12 o'clock position) and quickly change the direction (moving the thumb towards the 6 o'clock position). There will be examples of several inputs over several milliseconds where the player still appears to be moving in the same direction (still pointing at the 12 o'clock position), but only the speed decreases (i.e., the length of the vector becomes smaller). Finally, after several milliseconds have passed, the player's thumb will be pointing at the 6 o'clock position, and the game can update the avatar's orientation.
[0015]
[0022] The problems with conventional controllers can be threefold. First, the virtual controller may need to detect when the user wants to "change the orientation" of their avatar early (e.g., after receiving few input samples). Second, when the user wants to change the orientation of their avatar, the virtual controller will want to minimize the distance the user's thumb has to move to move the user in the opposite direction. Third, the virtual controller should solve both of the above with a "floating" virtual controller that is not fixed at a determined position so that the user can more comfortably change the position of the thumb while playing.
[0016]
[0023] In the embodiments described herein, the system looks not only at the state of the virtual controller input (e.g., "the user has the thumb on the controller pointed towards the 12 o'clock position"), but also at the change from the user's last thumb position to the user's current thumb position to construct a "swipe vector" (giving both the direction and length of the swipe), and the system can estimate the player's intent (in this case, detect that the user wants to quickly change the orientation) from the "swipe vector".
[0017]
[0024] In an embodiment, when the system detects a change in the direction of a user's touch input (e.g., a "u-turn swipe"), the origin of the directional pad is relocated to a predetermined distance from the current position of the user's thumb (e.g., the center of the controller is now the previous center + the swipe direction), or below the current position of the user's thumb, to immediately provide future touch inputs received from the user that are compared to the new origin. Such a technique provides an important innovation that results in a "floating" directional pad that is more responsive than a fixed-position (or fixed) directional pad when the user's thumb does not have to move as far to execute a quick direction change.
[0018]
[0025] In some embodiments, when it is detected that a player wants to quickly change the orientation of their character, the direction control means implemented on the virtual controller enables the operation of another button state (e.g., pressing another button indicating a character action such as the character wanting to dash or attack) to change the character's behavior. For example, when a character is dashing, that character can be animated into a "screeching stop slide" before turning around 180 degrees, or simply snap-rotate 180 degrees when walking and not pressing the dash button.
[0019]
[0026] In some embodiments, a direction change (e.g., a "U-turn swipe") can be emphasized by triggering non-visual feedback to the user, such as tactile feedback and / or audible feedback, when the input succeeds in a process indicating the direction change. For example, a successful "U-turn swipe" can result in tactile feedback that matches, follows, or precedes a visible change in the movement of the user's avatar on the screen, or audible feedback (such as a chime) that matches, follows, or precedes the same visible change in the movement of the user's avatar on the screen. The audible and / or tactile feedback can occur in any suitable order, can occur simultaneously, or one form of feedback can be used.
[0020]
[0027] FIG. 1 is a simplified system diagram showing a service environment 100 in which a virtual controller can be used, according to various embodiments of the present disclosure. The service environment 100 includes at least one server 101, which includes at least one processor 103 and a non-transitory memory 105 that stores instructions as software to facilitate the operation of the service environment. The server 101 is generally connected via a network 121 (e.g., the Internet or a local network) to any suitable number of user-owned client devices 133, 143 that operate in corresponding local user networks 131, 141 (e.g., a consumer or commercial local area network, a WIFI network, etc.).
[0021]
[0028] Server 101 can also be connected to any suitable number of control services 111 that monitor the network between server 101 and client devices 133, 143, such as a network-connected computing system with its own processor 113 and memory 115. In some embodiments, server 101 may be one or more servers operating on a commercial scale, such as in a data center or server farm. Client devices 133, 143 may include consumer personal computers, video game consoles, sink client devices operable to stream video content from server 101 for presentation on a local screen, or mobile devices such as smartphones, tablets, etc. Client devices 133, 143 can be connected to any suitable number of controllers, such as controllers 135, 137, 145, 147.
[0022]
[0029] Each controller (e.g., controller 135) may be a hardware device (e.g., a console-specific controller, a mutually compatible controller, or a virtual controller) with connection hardware and protocols for communicating with its corresponding client device 133. According to some embodiments, controller 135 may be a virtualized controller operating on a sink client device or a touch screen device, such as a controller simulated on a touch screen smartphone, tablet, or a console-like controller with a touch-responsive panel. According to some further embodiments, for example, when client device 133 is a sink client device or a mobile device, controller 135 may be a touch screen with virtualized control means incorporated into the client device. Alternatively, even when client device 133 is a sink client device, controller 135 may be a hardware controller configured to physically or wirelessly connect to the client device. According to some embodiments, client device 133 and server 101 may operate on the same hardware, for example, the client device may be executed as a virtual instance on the server.
[0023]
[0030] The methods described herein may be implemented on client devices associated with a service environment such as service environment 100 described in FIG. 1. The method may further function in relation to an arbitrary arrangement of virtual controllers that control both the orientation and movement of the avatar on the screen.
[0024]
[0031] For clarity, a certain number of components are shown in FIG. 1. However, it is understood that embodiments of the present disclosure may include two or more of each component. Also, some embodiments of the present disclosure may include fewer or more components than all of the components shown in FIG. 1. Further, the components in FIG. 1 may communicate using any suitable communication protocol via any suitable communication medium (including the Internet).
[0025]
[0032] FIG. 2 shows an exemplary example of an environment 200 that may include a virtual controller in which control means for performing infinite drag and swipe according to an embodiment may be implemented.
[0026]
[0033] FIGS. 2A through 2D show an example of a "U-turn" process of swipe control in a control scheme 200 that employs a virtual controller 235 in communication with a video game system 233 according to various embodiments. The virtual controller 235 includes a touch screen 251 that may receive player input 257. The player input 257 is generally received in the form of a touch originating from within a zone 255 that generally corresponds to movement control means, although the size and position of the zone may vary or the zone may be the entire screen. The virtual controller 235 may be a dedicated touch screen device configured to virtualize a set of controller schemes in software via the touch screen 251, or may be a mobile device such as a smartphone that can present a virtual touch screen. In some embodiments, the virtual controller 235 may include ergonomic features such as a handle 253 or may also include hardware control means (buttons, joysticks, etc.) in addition to touch screen control means.
[0027]
[0034] Figure 2A shows the initial state of a virtual controller according to at least one embodiment of the present disclosure. In Figure 2A, player input 257 starts from a touch on touch screen 251 that sets the origin position. In-game objects such as avatar 259, which may be displayed on the same touch screen 251 or on a different screen, are in a stationary state when no movement has yet been detected.
[0028]
[0035] Figure 2B shows a second state of the virtual controller of Figure 1A where the user has moved the input position in a first direction relative to the first origin. In Figure 2B, player input 257 moves along touch screen 251 and a first movement vector is assigned. At this point, the movement of avatar 259 can be caused by the video game system. The player input 257, i.e., the direction and magnitude of the "swipe", can be registered in memory and used to generate a first movement vector having directionality and magnitude.
[0029]
[0036] Figure 2C shows a third state of the virtual controller of Figure 1A where the user has reversed the movement of the input position relative to the first direction. The first player input may be interrupted, for example, by a change in direction or by the interruption of the contact between the player and the touch screen. For example, as shown in Figure 2C, there may be a "lift" where the player temporarily stops touching touch screen 251 and resumes from a different position, and a new player input 257 is assigned as the new origin position.
[0030]
[0037] Figure 2D shows a fourth state of the virtual controller of FIG. 1A in which the input position is repositioned without the user creating a movement vector. FIG. 2D shows a player input 257 that moves in a direction opposite to the original movement direction, and the player input 257 generates a second movement vector that is approximately opposite in direction but not necessarily the same in magnitude as the first movement vector. In response to the second movement vector being an inversion of the first movement vector, the system can infer the player's intention to perform a "u-turn" that enables a specific "u-turn" animation 261 and a predetermined "u-turn" behavior different from the behavior associated with normal movement, which can be done in a different way than simply inverting the movement direction. For example, making a "u-turn" can disable certain types of game behavior such as falling off a ledge, enable certain types of game behavior such as making a predetermined move or attack that is inaccessible during normal movement, or reverse the direction using an acceleration profile different from that applied during normal movement.
[0031]
[0038] Figure 3 is a block diagram showing various components of a computing system architecture that supports the implementation of a virtualized physical controller according to an embodiment. The system architecture may include at least one controller 302. In some embodiments, controller 302 may be in communication with one or more servers 304, which may be an example of server 101 described with respect to FIG. 1. In some embodiments, one or more servers 101 may provide backend support to controller 302. For example, at least a portion of the processing that is assumed to be performed by controller 302 may, in some cases, be performed by server 101 instead. In some embodiments, controller 302 may be in communication with client device 306. Client device 306 may be an example of client device 133 or 143 described above in connection with FIG. 1. In some embodiments, client device 306 may further be in communication with display device 308. Each of the components described herein may be in communication via connections through network 310.
[0032]
[0039] Controller 302 may include any suitable computing device configured to perform at least a portion of the operations described herein and configured to allow a user to interact with a software application. In some embodiments, the controller may be a mobile device (e.g., a smartphone or tablet) having a touch screen function. Controller 302 may include a communication interface 312, one or more processors 314, a memory 316, and hardware 318. Communication interface 312 may include wireless and / or wired communication components that enable the sending and receiving of data between controller 302 and other network devices. Hardware 318 may include additional user interfaces, data communication, or data storage hardware. For example, the user interface may include at least one output device 320 (e.g., a visual display, an audio speaker, and / or a tactile feedback device), and one or more data input devices 322. Data input device 322 may include one or more combinations of a keypad, a keyboard, a mouse device, a touch screen that accepts gestures, a microphone, a speech or voice recognition device, and any other suitable device.
[0033]
[0040] Memory 316 may be implemented using a computer-readable medium such as a computer storage medium. Computer-readable media include at least two types of computer-readable media, namely computer storage media and communication media. Computer storage media includes any suitable volatile and non-volatile, removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions, data structures, program modules, or other data. Computer storage media includes RAM, DRAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disk (DVD) or other optical storage devices, magnetic cassettes, magnetic tapes, magnetic disk storage devices or other magnetic storage devices, or any other non-transmission media that can be used to store information accessed by a computing device. In contrast, communication media may embody computer-readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave or other transmission mechanism.
[0034]
[0041] One or more processors 314 and memory 316 of the controller may implement functions including one or more software modules and data stores. Such software modules may include routines, program instructions, objects, and / or data structures that are executed by processor 314 to perform a particular task or implement a particular data type. More specifically, memory 316 may include a module (e.g., dynamic control module 324) configured to implement a dynamic control pad on a virtual controller, and a module (e.g., configuration management module 326) configured to hold and implement configuration information for an input mechanism of the virtualized controller.
[0035]
[0042] Also, the memory 316 may include various data stores. For example, the memory 316 may hold data related to a contextually virtualized controller configuration (e.g., configuration data 328). In some embodiments, such configuration data may include a display of one or more features of the input mechanism to be implemented. For example, the configuration data may include a display of the size, position, shape, appearance (e.g., color, shading, and / or text) of each input mechanism.
[0036]
[0043] The dynamic control module 324 may be configured to cooperate with the processor 314 to monitor user touch inputs received via the touch screen display. In some embodiments, the touch input may be used by the dynamic control module to update the position associated with the origin of the direction pad. For example, when a user touch input (e.g., a user drag or swipe operation) is received and processed via the touch screen display in relation to the direction pad, the speed and / or direction of that touch input may be used to generate a movement command for an object (e.g., a character) controlled via the virtual controller. In this example, the trajectory or path of the user's touch input may be retained. When a user touch input is received, the current position associated with that touch input is compared with the current position of the origin of the direction pad to determine whether the distance between the two positions is greater than a distance threshold. When it is determined that the distance is greater than the distance threshold, the current position of the origin of the direction pad may be updated to a position at a threshold distance from the current position of the user touch along the path associated with the user touch input. In some embodiments, the threshold distance may be updated to adjust the sensitivity of the direction control means of the virtual controller.
[0037]
[0044] When the origin of the direction pad is updated, the user's touch input may be processed in relation to the new origin position. For example, when the user's touch input continues to be received, a vector may be determined based on the relative position and velocity of the user's touch input with respect to the new origin position. And an object controlled via the direction pad may move according to that vector. In some embodiments, when the touch input from the user is no longer detected (e.g., the user stops touching the touch screen display), the origin of the direction pad may be reset to its initial position. In some embodiments, this may occur after a predetermined time has elapsed since the user's touch input was last detected.
[0038]
[0045] The configuration management module 326 may be configured to generate and manage configuration information regarding the arrangement of one or more input mechanisms within the user interface presented to the controller 302 in cooperation with the processor 314. In some embodiments, the configuration management module facilitates the customization of the input mechanism layout according to some embodiments. It should be noted that such customization is described in the related Patent Cooperation Treaty (PCT) application number US2022 / 019240 entitled "Virtualized Physical Controller" by Gregory Peng, which is hereby incorporated by reference in its entirety.
[0039]
[0046] Server 304 may comprise any computing device configured to execute at least a portion of the operations that result therefrom. Server 304 may be composed of one or more general-purpose computers, specialized server computers (including, for example, PC (Personal Computer) servers, UNIX (registered trademark) servers, midrange servers, mainframe computers, rack-mounted servers, etc.), server farms, server clusters, or any other suitable configuration and / or combination. Server 304 may include virtualization such as one or more virtual machines operating a virtual operating system, or one or more flexible pools of logical storage devices that can be virtualized to maintain virtual storage devices of a computer. For example, Server 304 may comprise a virtual computing device in the form of a virtual machine or software container hosted in the cloud.
[0040]
[0047] Client device 306 may include any suitable computing device configured to receive input from controller 302 and perform an action based on that input. In some embodiments, the client device may be a gaming system such as a gaming console that can receive input from a plurality of controllers, each of which can be used to control an avatar or character within a software application (such as a computer game).
[0041]
[0048] FIG. 4 shows a graphic diagram of a process for implementing dynamic positioning of the origin of a direction pad according to an embodiment. Process 400 may be executed on a user device on which a virtual physical controller such as controller 302 described above with respect to FIG. 3 is implemented.
[0042]
[0049] In process 400, an input mechanism such as a direction pad may be associated with an origin 402. In an initial state, the origin may be located at a predetermined position. For example, the origin of a particular input mechanism may be placed at a certain position on a touch screen display initially shown in the configuration data of a virtual controller and / or a software application to be executed. In addition to the origin 402, the input mechanism may be associated with a region or area 404 that defines the input mechanism on the touch screen display. In some embodiments, the area 404 may include a predetermined area based on the information included in the configuration data. In some embodiments, the area 404 may include a spatial area surrounded by a predetermined distance from the origin 402. In some embodiments, an outline or other indicator may be displayed on the touch screen display to identify the area 404.
[0043]
[0050] In process 400, a touch input from a user may be detected. When it is determined that the touch input starts from a position 406 within the area 404 associated with the direction pad, the touch input may be determined to be associated with an action related to that direction pad. In some examples, the user may then create a continuous touch input (e.g., a drag or swipe operation) by dragging their finger on the touch screen display. In some embodiments, even if the touch input exits the area 404, the resulting drag operation may continue to be associated with the direction pad until the touch input stops (e.g., the user stops touching the touch screen display). As long as a drag operation is detected, movement commands for an object controlled by the direction pad are generated based on the relationship between the drag operation and the origin of the direction pad.
[0044]
[0051] While a drag or swipe touch input is detected, the received touch input may be monitored to record the path 408 that the user traces during the drag operation. In some embodiments, the touch input may be associated with the drag operation as long as the user maintains touch contact with the touch screen display. In some examples, the drag operation may be determined to end when it is detected that the user is no longer touching the touch screen display. In some examples, the drag operation may be determined to stop when it is detected that the user has not touched the touch screen display for a predetermined time. In some embodiments, when it is determined that the drag operation has stopped, the position of the origin may be reset to its initial position 402.
[0045]
[0052] In some examples, the current position of the touch input may be compared to the current position of the origin of the direction pad when a new touch input is received. If it is determined that the distance between the two positions is greater than a threshold distance 410, the position of the origin may be updated to a distance equal to the threshold distance from the current position. In some embodiments, the origin may be updated at a position that hits the path 408 of the drag operation. Thus, the position of the origin may be continuously updated based on the received user touch input. In some embodiments, the origin may be updated at a position that hits just behind the current touch input instead of necessarily being on the path 408. In other words, the position of the origin may be set at a point that is at a threshold distance in the opposite direction of the current direction in which the user touch input is determined to be moving.
[0046]
[0053] As an example, when the user drags their finger along the path 408 to position 412, the position of the origin may be updated to position 414, such that the distance between position 412 and position 414 is equal to the threshold distance. It should be noted that the quantity associated with the threshold distance may be adjusted to increase or decrease the sensitivity of the input mechanism of the virtual controller.
[0047] When the position of the origin is updated, a new touch input may be received in association with a drag operation. When such a touch input is received, it may be processed in association with the current position of the touch input. For example, if the user changes the direction or speed of the drag operation, such a change may be translated into the movement of an object controlled based on the relationship between the new direction or speed and the updated origin position.
[0048]
[0055] As an example, continuing from the above example, when the position of the origin is updated to position 414, the user may continue a drag operation along the second portion 418 of the path to a second position 416. At that time, the input received along the second portion 418 may be used to generate a movement command for an object controlled in relation to the updated origin. In some examples, the position of the origin may not be updated while the second portion 418 of the path is within a threshold distance from position 414.
[0049]
[0056] FIG. 5 shows a graphical diagram of a process for performing a charging operation on a virtual controller according to an embodiment. Process 500 is shown in a series of images of user devices 502 (A - C) on which the virtual controller may be implemented. As shown, the virtual controller may be implemented via a graphical user interface (GUI) 504 presented on a touch screen display.
[0050]
[0057] As shown in 502(A), the user may perform a touch input on the touch screen of the user device. A determination that the detected touch input corresponds to a particular input mechanism may be made based on the position of the touch input being within the area assigned to the input mechanism. In some embodiments, the detected touch input is determined to correspond to the input mechanism if it starts from the area assigned to the input mechanism. In some embodiments, the detected touch input is determined to correspond to the input mechanism if it passes at least through the area assigned to the input mechanism.
[0051]
[0058] When determining that a touch input corresponds to an input mechanism such as the direction pad 506, the user device may initiate an action corresponding to that input mechanism. In some examples, one or more characteristics of the action may depend on the type and / or position of the detected touch input. For example, when the input mechanism is a direction pad that controls the movement of an object in a game, the movement of the object may depend on the position of the touch input relative to the origin (e.g., center) of the direction pad, the distance from the origin of the touch input, and / or the speed and direction of the movement of the touch input. In some embodiments, information may continue to be generated to move the control object as long as the touch input is received.
[0052]
[0059] As shown in 502(B), the user may continue to make a touch input and may perform a drag or swipe operation 508 by dragging their finger on the touch screen display. In some examples, the drag operation 508 may end at or at least pass through a position outside the area associated with the input mechanism. In these embodiments, when a new touch input is received, the current position of the touch input may be compared to the current position of the origin of the input mechanism. If the distance between the current position of the touch and the current position of the origin is greater than a predetermined distance threshold, the current position of the origin is updated to a position 510 that is a threshold distance away from the current position of the touch input. This will be described in more detail with respect to FIG. 4 above.
[0053]
[0060] As shown in 502(C), after the current position of the origin is updated, the user may continue to perform a drag operation by dragging their finger to a different position on the touch screen display. When a continuous drag operation 512 is detected, the touch input detected in relation to that continuous drag operation is processed in association with the direction pad as if it were at position 510. In this way, the virtual controller can implement a control means that is more intuitive for the user than that implemented in a conventional controller. Also, such an implementation may provide high responsiveness (e.g., short response times) to the user of the virtual controller by shortening the distance that the user has to drag or swipe in order to perform an action.
[0054]
[0061] FIG. 6 shows an exemplary process flow 600 for performing an action based on the dynamic direction control means according to an embodiment. Specifically, the process for performing a "u-turn swipe" is illustrated diagrammatically in FIG. 6. Process 600 may be executed in any suitable service environment such as the service environment 100 shown in FIG. 1.
[0055]
[0062] According to various embodiments, process 600 includes sensing a first touch input via a touch sensor of a gaming system at 601. The system can assign a first origin position based on the first touch input at 602, and then can sense a first movement of the first touch input at 603 based on a change in the input received by the touch sensor. At 604, a first movement vector can be assigned to the first touch input based on parameters of the sensed first movement relative to the first origin position. When further input is received, the system can sense a second movement of the first touch input at 605. At 606, a second movement vector can be assigned to the first touch input based on parameters of the sensed second movement. When the first and second movements are detected within a limited time, even if interrupted by a lift and replace action by the user, the system compares the first movement vector with the second movement vector at 607 and can determine at 608 that a first u-turn input has been received by detecting that the second movement vector has at least partially reversed the first movement vector. In response to determining that the first u-turn input has been received, the system can generate at 609 an instruction to cause a player avatar to exhibit a u-turn turning behavior different from a non-u-turn turning behavior.
[0056]
[0063] FIG. 7 shows a flowchart illustrating a first exemplary process flow 700 for generating and implementing dynamic direction control means on a virtualized physical controller according to an embodiment. Process 700 may be executed by a computing device configured to generate activation data based on user input. For example, process 700 may be executed by a controller, such as controller 302 described above in connection with FIG. 3, that can facilitate interaction between a user and a software application. In some embodiments, such a software application is a video game played by a user.
[0057]
[0064] At 702, process 700 includes receiving a first touch input from a user on a touch screen display. In some embodiments, the first touch input is determined to be associated with a particular input mechanism if the first position is within an area associated with that input mechanism. In some embodiments, the input mechanism includes a direction pad used to control the movement of an object.
[0058]
[0065] At 704, process 700 includes determining a first action to be performed in relation to an object. In some examples, the object may be an avatar controlled by a user within a video game. In embodiments where the input mechanism is a direction pad, the first action includes moving the object based on the difference (e.g., distance and / or relative position) between a first position and a second position. In such examples, at least one of the direction or degree of movement of the object may depend on at least one of the difference between the first position and the second position or the speed associated with the first touch input. For example, the speed resulting from the movement of the object may be determined based on the speed at which the user makes the touch input.
[0059]
[0066] At 706, process 700 includes determining that the distance between the position associated with the first touch input and the position associated with the input mechanism (e.g., origin) is greater than a distance threshold. When the distance between the position associated with the first touch input and the position associated with the input mechanism is less than or equal to the distance threshold, the input mechanism may not be updated.
[0060]
[0067] At 708, process 700 includes updating the position associated with the input mechanism to be within a range of a distance threshold from the position associated with the first touch input. In some embodiments, the distance threshold is determined based on information provided by a software application. For example, information provided by a software application (such as a video game) controlled via a virtual controller may be used to determine a distance threshold appropriate for that video game. In some embodiments, the distance threshold is determined based on one or more characteristics of an object. For example, the distance threshold may be associated with the speed at which the object is currently moving, such that the distance threshold may increase when the object is moving faster. In some embodiments, the distance threshold is determined based on user preference. For example, the user may indicate a degree or level of sensitivity or responsiveness to be associated with the virtual controller. In this example, a smaller distance threshold may result in a higher level of sensitivity and / or responsiveness. In some embodiments, the distance threshold is determined based on the speed associated with the first touch input. For example, the threshold distance may be varied based on the speed associated with the user's touch input. In this example, a larger distance threshold may be used when the user performs a drag operation at a high speed, and when the user performs a drag operation at a low speed.
[0061]
[0068] At 710, process 700 includes receiving a second touch input from the user on the touch screen display. In some embodiments, the first touch input and the second touch input are part of a single drag operation performed by the user on the touch screen display. In some examples, the third position is located on a path associated with the drag operation. In other examples, the third position may not necessarily be located along the path. For example, in some examples, the third position may be a position directly behind the face of the object.
[0062]
[0069] At 712, process 700 includes determining a second action to be performed in relation to an object. In an embodiment where the input mechanism is a directional pad, the second action includes moving the object based on the difference between a fourth position and a third position. In such an example, at least one of the direction or degree of moving the object may depend on at least one of the difference between the fourth position and the third position or the speed associated with the second touch input. For example, the speed resulting from the movement of the object may be determined based on the speed at which the user performs the touch input. If the object is already moving, the second action performed in relation to the object may be a u-turn action.
[0063]
[0070] FIG. 8 shows a flowchart illustrating a second exemplary process flow 800 for generating and implementing dynamic direction control means on a virtualized physical controller according to an embodiment. Process 800 may be executed by a computing device configured to generate activation data based on user input. For example, process 800 may be executed by a controller, such as controller 302 described above in relation to FIG. 3, that can facilitate interaction between the user and a software application. In some embodiments, such a software application is a video game played by the user.
[0064]
[0071] At 802, process 800 includes receiving an indication of a first touch input received from the user at a first position (e.g., on a touch screen display). In some embodiments, the touch input is received in relation to the control of an avatar within a video game. In such embodiments, the avatar is a character object controlled by the user via a user device.
[0065]
[0072] At 804, process 800 includes determining that a continuous direction input has been initiated. In some embodiments, such a determination may be made based at least in part on the distance between a first position and a second position associated with the origin of the input mechanism being less than a distance threshold. In some embodiments, the input mechanism includes a direction pad used to control the movement of an avatar. In some examples, the distance threshold is determined based on information provided by a software application. In some examples, the distance threshold is determined based on information stored in configuration data regarding the direction pad input mechanism. In some examples, the distance threshold is determined based on user preferences. In some examples, the distance threshold is determined based on the speed associated with a first touch input.
[0066]
[0073] At 806, process 800 includes maintaining a continuous direction input as long as touch inputs are continuously detected. The following processes may be executed while the continuous direction input is maintained.
[0067]
[0074] At 808, process 800 includes monitoring a touch input vector associated with the continuous direction input. In some embodiments, the touch input vector associated with the continuous direction input includes the current direction in which the touch input is moving. In some embodiments, the touch input vector associated with the continuous direction input is generated based on touch inputs received over a previous period of time.
[0068]
[0075] At 810, process 800 includes determining that an inversion input has occurred when an angular change of the touch input vector greater than a change threshold is detected. In some embodiments, the angular change of the touch input vector includes the degree of rotational change over a predetermined period of time. For example, the degree of rotation over a predetermined period of time may be a rotation of 150 degrees or more within a predetermined period (e.g., the last 1 second).
[0069]
[0076] At 812, process 800 includes causing the avatar to perform a reverse action corresponding to the reverse input. In some embodiments, a combination of a continuous direction input and a reverse input causes the avatar to perform a conventional movement action in combination with a reverse action. In at least some of these embodiments, at least one of the direction or degree of moving the avatar in the conventional movement action combined with the reverse action depends on the touch input vector. In some embodiments, the reverse action includes a u-turn action performed in relation to the avatar.
[0070]
[0077] The methods described herein are directed to virtual controllers, i.e., controllers that use a touch screen or a function like a touch screen to provide an easily customizable controller button layout. According to some embodiments, the touch screen is at least a part of a physical portable controller that interfaces with a gaming device such as a gaming console, personal computer, tablet, smartphone, client device (e.g., a USB or HDMI (registered trademark) device plugged into the screen). According to some embodiments, the touch screen is a major feature of a controller that interfaces with a gaming device such as a gaming console, personal computer, tablet, smartphone, client device (e.g., a USB or HDMI (registered trademark) device plugged into the screen). According to some embodiments, the controller is composed of a mobile device or tablet that cooperates with executable software that connects the mobile device or tablet to a gaming device such as a gaming console, personal computer, client device (e.g., a USB or HDMI (registered trademark) device plugged into the screen). According to some further embodiments, the touch screen is a touch-responsive screen of a gaming device such as a gaming console, personal computer, tablet, or smartphone.
[0071]
[0078] The specification and drawings are to be regarded in an illustrative rather than a limiting sense. However, it will be apparent that various modifications and changes may be made to this specification without departing from the broader spirit and scope of the disclosure as set forth in the appended claims.
[0072]
[0079] Other variations are within the scope of the disclosure. Accordingly, while the disclosed techniques are susceptible to various modifications and alternative configurations, some of the illustrated embodiments of the disclosed techniques are shown in the drawings and have been described in detail above. However, the intention is not to limit the invention to the particular forms disclosed, but on the contrary, the intention is to cover all modifications, alternative configurations, and equivalents falling within the spirit and scope of the invention as defined by the appended claims.
[0073]
[0080] In the context of describing the disclosed embodiments (especially in the context of the following claims), the use of the terms "a", "an", and "the", and similar referents should be construed to cover both the singular and the plural forms, unless otherwise indicated herein or clearly contradicted by the context. The terms "comprising", "having", "including", and "containing" should be construed as open-ended terms (i.e., meaning "including but not limited to") unless otherwise described. The term "connected" should be construed as something that is partially or wholly contained within, attached to, or joined together with, even if there is something intervening. The recitation of a range of values herein is intended to serve merely as a shorthand method of referring individually to each separate value that falls within the range, and each separate value is incorporated herein as if it were individually recited herein. All methods described herein can be performed in any suitable order unless otherwise indicated herein or clearly contradicted by the context otherwise. The use of any and all examples, or exemplary language (e.g., "such as") provided herein is merely intended to better illuminate the embodiments of the invention and does not limit the scope of the invention unless otherwise claimed. No language in this specification should be construed as indicating any non-claimed element as essential to the practice of the invention.
[0074]
[0081] Preferred embodiments of the present disclosure are described herein, including the best mode known to the inventors for carrying out the present invention. Variations of these preferred embodiments may become apparent to those skilled in the art upon reading the foregoing description. The inventors expect those skilled in the art to appropriately employ such variations, and the inventors intend for the invention to be practiced in ways other than those specifically described herein. Accordingly, the invention includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Further, any combination of the above elements in all possible variations thereof is included by the invention unless otherwise indicated herein or otherwise clearly contradicted by context.
[0075]
[0082] Example A. A method comprising receiving, on a touch screen display, an indication of a first touch input received from a user at a first position; determining that a continuous direction input has been initiated based at least in part on a distance between the first position and a second position associated with an origin of an input mechanism being less than a distance threshold; maintaining the continuous direction input as long as touch inputs are continuously detected; monitoring a touch input vector associated with the continuous direction input while the continuous direction input is maintained; determining that an inversion input has been made when an angular change of the touch input vector greater than a change threshold is detected; and causing an avatar to perform an inversion action corresponding to the inversion input.
[0076]
[0083] Example B. A method according to any of Example A or any preceding or subsequent example, wherein a combination of a continuous direction input and an inversion input causes an avatar to perform a conventional movement action in combination with an inversion action.
[0077]
[0084] Example C. A method according to any of Example A or any preceding or subsequent example, wherein at least one of a direction or an extent of moving an avatar in a conventional movement action combined with an inversion action depends on a touch input vector.
[0078]
[0085] Example D. A method according to any of Example A or any preceding or subsequent example, wherein the input mechanism includes a direction pad used to control the movement of the avatar.
[0079]
[0086] Example E. A method according to any of Example A or any preceding or subsequent example, wherein the angular change of the touch input vector includes the degree of rotational change over a predetermined period.
[0080]
[0087] Example F. A method according to any of Example E or any preceding or subsequent example, wherein the degree of rotation over a predetermined period includes a rotation of 150 degrees or more within the predetermined period.
[0081]
[0088] Example G. A method according to any of Example A or any preceding or subsequent example, wherein the touch input vector associated with the continuous direction input includes the current direction in which the touch input is moving.
[0082]
[0089] Example H. A method according to any of Example G or any preceding or subsequent example, wherein the touch input vector associated with the continuous direction input is generated based on the touch input received over a previous period.
[0083]
[0090] Example I. A method according to any of Example A or any preceding or subsequent example, wherein the reverse action includes a U-turn action performed in relation to the avatar.
[0084]
[0091] Example J. A user device comprising a touch screen display, a processor, and a memory, wherein when the memory is executed using the processor, the user device is caused to at least receive on the touch screen display an instruction of a first touch input received from a user at a first position, determine that a continuous direction input has been started based at least in part on the distance between the first position and a second position associated with the origin of the input mechanism being less than a distance threshold, maintain the continuous direction input as long as touch inputs are continuously detected, monitor a touch input vector associated with the continuous direction input while the continuous direction input is maintained, determine that an inversion input has been made when an angular change of the touch input vector greater than a change threshold is detected, and cause an avatar to perform an inversion action corresponding to the inversion input.
[0085]
[0092] Example K. The user device of Example J or any of the preceding or subsequent examples, wherein the instruction includes a virtual controller capable of facilitating interaction between the user and a software application.
[0086]
[0093] Example L. The user device of Example K or any of the preceding or subsequent examples, wherein the software application includes a video game played by the user.
[0087]
[0094] Example M. The user device of Example L or any of the preceding or subsequent examples, wherein the avatar includes a character object controlled by the user via the user device.
[0088]
[0095] Example N. The user device of Example J or any of the preceding or subsequent examples, wherein the distance threshold is determined based on information provided by a software application.
[0089]
[0096] Example O. The user device of Example J or any of the preceding or subsequent examples, wherein the distance threshold is determined based on information stored in configuration data regarding a direction pad input mechanism.
[0090]
[0097] Example P. A user device of any of Example J or a preceding or subsequent example, where a distance threshold is determined based on a user's preference.
[0091]
[0098] Example Q. A user device of any of Example J or a preceding or subsequent example, where a distance threshold is determined based on a speed associated with a first touch input.
[0092]
[0099] Example R. Receiving an instruction of a first touch input received from a user at a first position on a touch screen display, determining that a continuous direction input has been started based at least in part on a distance between the first position and a second position associated with an origin of an input mechanism being less than a distance threshold, maintaining the continuous direction input as long as touch inputs are continuously detected, monitoring a touch input vector associated with the continuous direction input while the continuous direction input is maintained, determining that an inversion input has been made when an angular change of the touch input vector greater than a change threshold is detected, and causing an avatar to perform an inversion action corresponding to the inversion input. A non-transitory computer-readable medium storing computer-executable instructions that collectively cause one or more computing devices to perform the collectively described acts at runtime.
[0093]
[0100] Example S. A computer-readable medium of any of Example R or a preceding or subsequent example, where an angular change of a touch input vector includes a degree of rotational change over a predetermined period.
[0094]
[0101] Example T. A computer-readable medium of any of Example S or a preceding or subsequent example, where the continuous direction input is maintained even when it is determined that a distance between a first position and a current position of a touch input is greater than a distance threshold.
[0095] Conclusion
[0102] The subject matter has been described in language specific to features and methodological acts, but it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts are disclosed as exemplary forms of carrying out the claims.
Claims
1. Receiving a first indication of a touch input detected at a first position within a touch screen display and moving across the touch screen display; Initializing an origin of the touch input to the first position; Receiving a second indication that the touch input has moved to a second position within the touch screen display; Moving the origin closer to the second position than the first position based on a difference between the second position and the origin being greater than a distance threshold; Using the origin as a reference for determining a movement vector for controlling an avatar or object displayed on the touch screen display after the origin has been moved. A method characterized by comprising the steps of.
2. The method according to claim 1, further comprising preventing the origin from being reset to a stationary position during continuous detection of the touch input.
3. The method according to claim 1, wherein the origin is updated in real time based on the second position of the touch input.
4. The method according to claim 1, wherein the movement vector is used to control movement of the avatar or object in at least two dimensions.
5. The method according to claim 1, further comprising detecting that the touch input has stopped being detected and resetting the origin to a default position on the touch screen display.
6. The method according to claim 1, further comprising calculating a movement speed of the avatar or object based on a speed of the touch input.
7. The method according to claim 1, further comprising adjusting a sensitivity parameter for adjustment based on user settings or system settings.
8. The method according to claim 1, wherein the origin follows a touch input along a continuous path without skipping or sudden changes in position.
9. The method according to claim 1, further comprising generating haptic feedback in response to movement of the avatar or object controlled by the origin.
10. A touch screen display for detecting input from a user; A processor; A memory including instructions executable by the processor, A user device comprising: The instructions cause the processor to Detect a first touch input at a first position within the touch screen display and receive a first indication of the touch input moving across the touch screen display, Initialize the origin of the touch input to the first position, Receive a second indication that the touch input has moved to a second position within the touch screen display, Based on that the difference between the second position and the origin is greater than a distance threshold, move the origin closer to the second position than the first position, After the origin is moved, use the origin as a reference for determining a movement vector for controlling an avatar or object displayed on the touch screen display. A user device characterized by that.
11. The user device according to claim 10, further comprising a memory for storing user settings regarding dynamic origin adjustment sensitivity.
12. The user device according to claim 10, wherein the processor is programmed to reset the origin to a default position when the touch input is no longer detected.
13. The user device according to claim 10, further comprising a haptic feedback module for generating haptic feedback based on a movement vector derived from the origin.
14. The touch screen display includes a multi-touch function, The user device according to claim 10, wherein the processor is further programmed to simultaneously track a plurality of dynamically adjusted origins for a plurality of touch inputs.
15. The user device according to claim 10, wherein the processor is further programmed to calculate a velocity vector of the touch input and adjust the movement speed of the avatar or object according to the velocity vector.
16. Detecting a first touch input at a first position within the touch screen display and receiving a first indication of the touch input moving across the touch screen display; Initializing the origin of the touch input to the first position; Receiving a second instruction indicating that the touch input has moved to a second position within the touch screen display; Based on the difference between the second position and the origin being greater than a distance threshold, moving the origin closer to the second position than the first position; After the origin has been moved, using the origin as a reference for determining a movement vector for controlling an avatar or object displayed on the touch screen display. A non-transitory computer-readable storage medium storing instructions for causing a computer to execute a method comprising the steps above. **Claim 17** The non-transitory computer-readable storage medium according to claim 16, wherein the instructions further comprise preventing the origin from being reset to a stationary position during continuous detection of the touch input. **Claim 18** The non-transitory computer-readable storage medium according to claim 16, wherein the instructions further comprise adjusting a sensitivity parameter for adjustment based on user settings. **Claim 19** The non-transitory computer-readable storage medium according to claim 16, wherein the instructions further comprise displaying visual feedback indicating the current position of the origin on the touch screen display. **Claim 20** The instructions The non-transitory computer-readable storage medium according to claim 16, wherein the instructions further comprise generating auditory or tactile feedback in response to movement of the avatar or object controlled by the origin.
Citation Information
Patent Citations
Program for improving operability of user input, electronic device, and method
JP2016201028A
Game control device, game system and program
JP2018086275A
Game system, game control device, and program
JP2018161446A
Program and information processing device
JP2019212119A
Program, information processing device and information processing method
JP2020192239A
Cited By
Image forming apparatus having toner supply unit to supply toner to developing unit
US12468240B2