Selecting a property using a handheld controller

By defining the color attributes associated with the operation area on the input device of the handheld controller, users can select and adjust the color attributes of the virtual object through simple operations, solving the problems of complex operation and poor user experience in the prior art, and achieving more intuitive and finer color attribute control.

JP7661244B2Active Publication Date: 2025-04-14VALVE CORPORATION
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2021571605
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-06-03
Filing Date
2020-06-03
Publication Date
2025-04-14
Estimated Expiration
2040-06-03

Smart Images

  • Figure 0007661244000001
    Figure 0007661244000001
  • Figure 0007661244000002
    Figure 0007661244000002
  • Figure 0007661244000003
    Figure 0007661244000003
Patent Text Reader

Abstract

In particular, techniques are described herein that allow a user to navigate a color picker or other graphical user interface (GUI) tool using a handheld controller input device. For example, a user can operate a color picker presented on a display by pressing a joystick upward to activate hue selection, downward and left to activate saturation selection, and downward and right to activate lightness or value selection.
Need to check novelty before this filing date? Find Prior Art

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application claims priority to U.S. Patent Application No. 16 / 430,255, filed June 3, 2020, the entire contents of which are incorporated herein by reference. [Background technology]

[0002] Handheld controllers are used in an array of architectures, for example, to provide input to remote computing devices. For example, handheld controllers are utilized in the gaming industry to allow players to interact with personal computing devices running game applications, game consoles, game servers, etc. While current handheld controllers offer a range of functionality, further technological improvements can enhance the user experience that these controllers provide. [Brief description of the drawings]

[0003] The detailed description will now be described with reference to the accompanying drawings, in which: In each figure, the leftmost digit(s) of a reference number identifies the figure in which the reference number first appears. Use of the same reference number in different figures indicates similar or identical components or features. [Figure 1] 1 illustrates an example architecture in which a user may use a handheld controller to interact with virtual objects presented on a display. The handheld controller, local system, and / or remote system may include functionality for modifying properties such as the hue, saturation, and brightness of the virtual object. As illustrated, in some instances, a joystick or other input device on the handheld controller may be used to interact with a color picker for selecting the hue, saturation, and / or brightness, etc., of the displayed virtual object. [Figure 2A]1 illustrates an example flow of operations in which a user moves a joystick of a handheld controller from a center position into a first defined outer region to enable selection of a first property, such as a hue, of a virtual object. After the joystick is moved into this region, the user can use the joystick to select a hue or other property using a color picker presented on the display. [Figure 2B] 13 illustrates an example flow of operations in which a user moves the joystick from a central position into a second defined outer region, enabling selection of a second property, such as saturation, of a virtual object. After the joystick is moved into this region, the user can use the joystick to select saturation or other properties using a presented color picker. [Figure 2C] 13 illustrates an example flow of operations in which a user moves the joystick from a central position into a third defined outer region, allowing selection of a third property, such as brightness or "value," of a virtual object. After the joystick is moved into this region, the user can use the joystick to select brightness or other properties using a presented color picker. [Figure 3A] 1 illustrates an example flow of operations in which a user provides input to an input device of a handheld controller (in this example, a trackpad) in a first defined outer region to enable selection of a first property, such as a hue, of a virtual object. After this input is received, the user can use the trackpad or other input device to select a hue or other property using a presented color picker. [Figure 3B] 13 illustrates an example flow of operations in which a user provides input to a trackpad in a second defined outer region to enable selection of a second property, such as saturation, of a virtual object. After this input is received, the user can use the trackpad or other input device to select the saturation or other property using a presented color picker. [Figure 3C]13 illustrates an example flow of operations in which a user provides input to a trackpad in a third defined outer region to enable selection of a third property, such as brightness, of a virtual object. After this input is received, the user can use the trackpad or other input device to select the brightness or other property using a presented color picker. [Figure 4] 1 illustrates exemplary components of a system for performing the operations described herein. In some instances, these components may reside on a handheld controller, a local system, a remote system, and / or a combination thereof. [Figure 5A] 1 collectively illustrate a flow diagram of an exemplary process for manipulating a color picker using a joystick on a handheld controller to modify the presentation of a virtual object on a display. [Figure 5B] 1 collectively illustrate a flow diagram of an exemplary process for manipulating a color picker using a joystick on a handheld controller to modify the presentation of a virtual object on a display. [Figure 5C] 1 collectively illustrate a flow diagram of an exemplary process for manipulating a color picker using a joystick on a handheld controller to modify the presentation of a virtual object on a display. [Figure 6] 1 illustrates a flow diagram of an exemplary process for modifying properties of one or more virtual objects presented on a display using an input device on a handheld controller. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0004] As discussed above, handheld controllers are used in a variety of environments and include a variety of functions. For example, handheld controllers may be used to operate video games, navigate video content, or interact with any other application. In some instances, the handheld controller may be used to select values ​​for different properties of virtual objects or other types of content represented on a display. For example, the handheld controller may be used to select the font of text presented on a display, the spacing between lines of text, the color of a virtual object, etc.

[0005] Described herein are techniques for enabling a user to manipulate a handheld controller to select values ​​for different properties of content presented on a display. For example, these techniques may enable a user to manipulate a color picker to select the hue, saturation, and / or brightness of a virtual object presented on a display. In some instances, a user may manipulate an input device, such as a joystick, trackpad, directional pad, etc., to select a property that the user wants to adjust and to select a value for the desired property.

[0006] In some examples, the input device of the handheld controller may be operable to provide input at different locations on the input device. For example, a user may manipulate a joystick to provide input that starts at a center position and moves toward the outer edge of the joystick's range. In addition, a user may manipulate a trackpad by providing input (e.g., using a finger, a stylus, etc.) that is detectable by a touch sensor and indicates movement of the input across the trackpad.

[0007] In some instances, different regions of an input device may be associated with different properties that can be selected and adjusted. For example, assume that a user wishes to operate a color picker, a type of graphical user interface (GUI) tool, to select respective values ​​for three different properties of a color, such as hue, saturation, and brightness / value. Although three exemplary properties are described, it should be understood that any other number and / or type of properties may be adjusted. In any case, a first region of a joystick or trackpad may be associated with a first property, a second region having a second property, and a third region having a third property. For example, in an example where the shape of the joystick's range of motion or trackpad is circular or elliptical, a first outer position range of the joystick or trackpad may be associated with a first property, a second outer position range may be associated with a second property, and a third outer position range may be associated with a third property.

[0008] In this example, a user may manipulate a joystick or trackpad to select one of three properties to modify, and may then use the joystick or trackpad to select a value for the property. For example, an upper arc of the joystick may be associated with a first property, such as hue, such that a user may push the joystick generally upward to select the hue. In response to receiving this selection generally via an upward push of the joystick, a color picker shown on the display may indicate that the user has selected to modify the hue of the color, rather than saturation, brightness, value, etc. After the color picker is highlighted, or otherwise indicates that the user has selected to modify the hue, the user may move the joystick around the arc, or around an even larger arc, to change the value of the hue. For example, an illustrated color picker may indicate that a user may move the joystick generally left or right along the outer extent of the joystick to select orange, yellow, green, blue, red, etc. After finding a desired hue, the user may move the joystick from its current position back to the center position. For example, upon selecting a desired hue, the user may simply release the joystick, and the joystick may be biased back to its center position.

[0009] After the user selects a hue, the display may present a virtual object in the selected hue. In addition, the user may then move the joystick generally downward and to the left to activate the selection of a second property of the color, such as saturation. As the user moves the joystick from the center position to the range of the second outer position, a color picker presented on the display may be updated to indicate that the user may select a value of saturation (or other second property). The user may then move the joystick around an arc (or a different arc) associated with the second property to select a desired saturation value. Upon identifying the desired value, the user may return the joystick to the center position, upon which the display may be updated to present a virtual object according to the selected saturation. For example, the user may release the joystick, which may be biased to its center position.

[0010] In addition, the user may then move the joystick from the center position to an outer position within a range of a third outer position associated with a third property, such as brightness or "value." Upon identifying that the user has moved the joystick in this manner, the display may be updated to indicate that the user may now select a brightness value (or any other third property). The user may then move the joystick around an arc (or a different arc) associated with brightness to select a desired brightness value. Upon identifying a desired brightness value, the user may return the joystick to the center position, upon which the display may be updated to present a virtual object according to the selected brightness. For example, the user may release the joystick, which may be biased to its center position.

[0011] In some instances, a user may manipulate the trackpad to select respective values ​​of different properties, such as hue, saturation, and brightness. For example, a first outer position range of the trackpad may be associated with hue or another first property, a second outer position range of the trackpad may be associated with saturation or another second property, and a third outer position range may be associated with brightness or another third property. Thus, a user may use his or her finger, stylus, or another instrument to provide input (e.g., touch input) from a center position of the trackpad to the first outer position. In response to determining that the first outer position is associated with selecting a hue or other first property, the display may update the presented color picker to indicate that the user may now change the value of the hue. The user may move his or her finger or instrument along the outer positions (e.g., generally clockwise or counterclockwise) to select a desired hue. Upon identifying a desired hue, the user may return his or her finger or instrument to the center position or simply remove the finger or instrument from the trackpad. In response, the display may be updated to show the virtual object depicted in the selected color hue.

[0012] In addition, the user may use his / her finger, stylus, or other instrument to provide input to a second outer location in a second range from the central location to the second location. In response to determining that the second outer location is associated with a selection of saturation or other second property, the display may update the presented color picker to indicate that the user may now change the saturation of the color. The user may move his / her finger or instrument along the outer locations (e.g., generally clockwise or counterclockwise) to select a desired saturation. Upon identifying a desired hue, the user may return his / her finger or instrument to the central location or simply remove the finger or instrument from the trackpad. In response, the display may be updated to show a virtual object illustrated with the selected saturation.

[0013] In addition, the user may use his / her finger, stylus, or other instrument to provide input to a third outer location in the range from the center location to the third outer location. In response to determining that the third outer location is associated with a selection of saturation or other first property, the display may update the presented color picker to indicate that the user may now change the color's brightness or value. The user may, for example, move his / her finger or instrument along the outer locations (e.g., generally clockwise or counterclockwise) to select a desired brightness. Upon identifying a desired hue, the user may return his / her finger or instrument to the center location or simply remove the finger or instrument from the trackpad. In response, the display may be updated to show the virtual object illustrated with the selected brightness.

[0014] While the above examples describe using a joystick or trackpad to manipulate a color picker having multiple properties, it should be understood that the techniques described may be equally applied to any other type of input device, such as a roller ball, directional pad, etc. Additionally, while the examples described herein are described with reference to changing the color of a virtual object, it should be understood that these techniques may be equally applied to selecting any other type of property, such as selecting a text font, line spacing, an avatar, etc.

[0015] FIG. 1 illustrates an example architecture in which a user may use a handheld controller 100 to interact with virtual objects presented on a display. While FIG. 1 illustrates an example configuration of a handheld controller 100 that may implement or function with the described techniques, it should be understood that the described techniques apply equally to any other type of handheld controller having any other type of form factor. In each example, the respective handheld controller 100, local system, and / or remote system may include functionality for modifying properties such as the hue, saturation, and brightness of a virtual object. As illustrated, in some instances, a joystick or other input device of the handheld controller may be used to interact with a color picker for selecting the hue, saturation, and / or brightness, etc., of a displayed virtual object.

[0016] As shown, the exemplary handheld controller 100 includes a housing 102 potentially having a front surface 104(1) and a top surface 104(2), along with a back surface opposite the front surface 104(1) and a bottom surface opposite the top surface 104(2). The front surface 104(1) may, in some instances, include one or more front controls that are controllable by one or more thumbs of a user operating the handheld controller 100. These front controls may include one or more trackpads, trackballs, joysticks, buttons, and the like, as described in more detail below. In this example, the front surface 104(1) includes a left trackpad 106(1) controllable by the thumb of a user's left hand and a right trackpad 106(2) controllable by the thumb of a user's right hand. In addition, the exemplary controller 100 includes a joystick 108. The controller may further include a depressible button 112 (e.g., controllable by the thumb of a user's right hand) and additional input devices and controls. In this example, the handheld controller 100 also includes a left handle 114(1) and a right handle 114(2) by which a user can hold the controller 100 via the user's right and left hands, respectively.

[0017] Meanwhile, the top surface 104(2) may include one or more top surface controls. In the illustrated example, the controller 100 includes a left top surface control 116(1) and a right top surface control 116(2). The left top surface control 116(1) may be operable by a user's left finger (e.g., middle finger or index finger), while the right top surface control may be operable by a user's right finger (e.g., middle finger or index finger). The top surface controls 116(1) and 116(2) may, in some instances, be referred to as "triggers" or "bumpers." Additionally, in some instances, one or more of the top surface controls 116(1) and 116(2) may include one or more touch sensors for detecting the presence, location, and / or gesture of one or more fingers of a user on the respective top surface control.

[0018] 1 further illustrates that different regions of the joystick 108 may be associated with selection of different properties, such as hue, saturation, and brightness, of a virtual object 120 presented on the display 122. For example, FIG. 1 illustrates that the joystick 108 may be associated with a first region 118(1) that generally corresponds to an upper arc of the joystick, a second region 108(2) that generally corresponds to a lower left arc of the joystick 108, and a third region 108(3) that generally corresponds to a lower right arc of the joystick 108. Additionally, each of these regions may be associated with a particular portion of a color pick 124 presented on the display 122.

[0019] For example, region 118(1) may be associated with a first portion 124(1) of color picker 124, region 118(2) may be associated with a second portion 124(2) of color picker 124, and region 118(3) may be associated with a third portion 124(3) of color picker 124. In the illustrated example, first portion 124(1) of color picker 124 may be selectable to modify a hue value of virtual object 120, second portion 124(2) of color picker 124 may be selectable to modify a saturation value of virtual object 120, and third portion 124(3) of color picker 124 may be selectable to modify a lightness value of virtual object 120.

[0020] Thus, to change the indicated color of the virtual object 120 presented on the display 120, the user of the handheld controller 100 may, for example, move the joystick 108 upward to an outer position within the first region 118(1). In response, the color picker 124 may enable selection of a hue of the virtual object. In some examples, the presentation of the color picker 124 may be updated to indicate that the user can now select a hue value. For example, the first portion 124(1) may be emphasized (e.g., enlarged, highlighted, etc.) and / or the prominence of the remaining two portions 124(2) and 124(3) may be reduced (e.g., removed, reduced, grayed out, etc.). Additionally, after the user activates the first portion 124(1) of the color picker 124, the user may move the joystick left or right to select a desired hue value. In some instances, as the user moves joystick 108 within region 118(1) (i.e., moving the joystick left or right while pressing away from the center position), virtual object 120 may be updated to present a current selection of hues. Upon identifying a desired hue, the user can release the joystick and move the joystick from its last outer position back to the center position. Thus, virtual object 120 may change hue from its previous hue to the selected hue (in which case the hue does not change until joystick 108 is returned to the center position) or may remain within the selected hue (in which case display 122 is updated as the user moves within region 118(1)).

[0021] In addition, a user of the handheld controller 100 may, for example, move the joystick 108 generally downward and leftward and to an outer position within the second region 118(2). In response, the color picker 124 may enable selection of a saturation of the virtual object. In some examples, the presentation of the color picker 124 may be updated to indicate that the user can now select a saturation value. For example, the second portion 124(2) may be emphasized (e.g., enlarged, highlighted, etc.) and / or the prominence of the remaining two portions 124(1) and 124(3) may be reduced (e.g., removed, reduced, grayed out, etc.). Further, after the user activates the second portion 124(2) of the color picker 124, the user may move the joystick within the outer region 118(2) to select a desired saturation value. In some instances, when the user moves the joystick 108 within the region 118(2), the virtual object 120 may be updated to present a current saturation selection. Upon identifying the desired saturation, the user can release the joystick, which can be moved from its last outer position back to the center position. Thus, virtual object 120 may change saturation from its previous saturation to the selected saturation (if the saturation does not change until joystick 108 is returned to the center position) or may remain within the selected saturation (if display 122 is updated as the user moves within region 118(2)).

[0022] Further, a user of the handheld controller 100 may, for example, move the joystick 108 generally downward and to the right and to an outer position within the third region 118(3). In response, the color picker 124 may enable selection of a brightness or value of the virtual object. In some examples, the presentation of the color picker 124 may be updated to indicate that the user can now select a brightness value. For example, the third portion 124(3) may be emphasized (e.g., enlarged, highlighted, etc.) and / or the prominence of the remaining two portions 124(1) and 124(2) may be reduced (e.g., removed, reduced, grayed out, etc.). Further, after the user activates the third portion 124(3) of the color picker 124, the user may move the joystick within the outer region 118(3) to select a desired brightness value. In some instances, when the user moves the joystick 108 within the region 118(3), the virtual object 120 may be updated to present a current brightness selection. Upon identifying the desired brightness, the user can release the joystick and move the joystick from its last outer position back to the center position. Thus, virtual object 120 may change brightness from its previous brightness to the selected brightness (if the brightness does not change until joystick 108 is returned to the center position) or may remain within the selected brightness (if display 122 is updated as the user moves within region 118(1)).

[0023] While FIG. 1 illustrates an exemplary configuration for using an input device to change properties of content on display 122, it should be understood that other configurations are possible. For example, the number, orientation, and other characteristics of regions 118(1)-(3) may be the same as or different from those shown. Additionally, the hue, saturation, and brightness properties are merely exemplary, and other properties may be changed using the described techniques. Additionally, input devices other than joysticks may be used with the described techniques, such as track pad 106(1), shown and described below with reference to FIGS. 3A-C.

[0024] 1 illustrates that the handheld controller 100 may communicate with a local system 126 and / or a remote system 128 via one or more wired and / or wireless networks 110. The local and / or remote systems may, in some cases, provide content for presentation on a display, such as the illustrated virtual object 120. Furthermore, functionality for activating the color picker 124 and modifying corresponding properties may be performed on the handheld controller 100, the local system 126, the remote system 128, or a combination thereof. That is, the controller and / or one or more of the local or remote systems may perform the operations described below.

[0025] 2A illustrates an example flow of operations 200 in which a user moves a joystick of a handheld controller from a center position 202(1) into a first defined outer region to enable selection of a first property, such as a hue, of a virtual object. After the joystick has been moved to this region, the user can use the joystick to select a hue or other property using a color picker presented on the display.

[0026] As shown in 200(1), the display 122 may present a virtual object 120 and a color picker 124 to allow a user to modify the color of the object 120. The user may use a handheld controller or issue a request to activate the color picker 124 in any other manner. As shown in diagram 200(1), the joystick may initially be in a center position 202(1).

[0027] At 200(2), a user may bias the joystick generally upward toward outer position 202(2) that is within a region of outer positions associated with changing the hue of a virtual object. In response to the joystick being moved into this region, color picker 124 may indicate that a first portion 124(1) of color picker 124 for selecting a hue has been activated. Additionally, the hue of virtual object 120 may be updated to indicate a current hue that corresponds to the location of the joystick.

[0028] At 200(3), the user moves the joystick to another outer position 202(3) to the left, thereby changing the hue value. As shown, first portion 124(1) of color picker 124 may be updated to reflect the new selection. Additionally, or alternatively, the hue of virtual object 120 may be updated to reflect the selected hue. Upon identifying the desired hue, the user may release the joystick, which may be biased to return the joystick to center position 202(1). At this point, first portion 124(1) of color picker 124 may no longer be activated to select a hue for virtual object 120.

[0029] 2B continues the flow of operation 200 in which the user moves the joystick from the center position 202(1) into a second defined outer region, allowing selection of a second property, such as saturation, of the virtual object. After the joystick is moved to this region, the user can use the joystick to select saturation or other properties using a presented color picker.

[0030] As shown in diagram 200(4), display 122 may present virtual object 120 according to the hue selected in Figure 2A and may display color picker 124. In 200(4), the joystick may be in a center position 202(1).

[0031] At 200(5), a user may bias the joystick generally downward and leftward toward outer position 202(4) that is within a region of outer positions associated with changing the saturation of a virtual object. In response to the joystick being moved into this region, color picker 124 may indicate that a second portion 124(2) of color picker 124 for selecting a saturation has been activated. Additionally, the saturation of virtual object 120 may be updated to indicate a current saturation corresponding to the location of the joystick.

[0032] At 200(6), the user moves the joystick down and to the right, another outer position 202(5), thereby changing the saturation value. As shown, the second portion 124(2) of the color picker 124 may be updated to reflect the new selection. Additionally, or alternatively, the saturation of the virtual object 120 may be updated to reflect the selected saturation. Upon identifying the desired saturation, the user may release the joystick, which may be biased to return the joystick to the center position 202(1). At this point, the second portion 124(2) of the color picker 124 may no longer be activated to select the saturation of the virtual object 120.

[0033] 2C continues the flow of operation 200 in which the user moves the joystick from the central position into a third defined outer region, allowing selection of a third property, such as brightness or "value," of the virtual object. After the joystick is moved into this region, the user can use the joystick to select brightness or other properties using a presented color picker.

[0034] As shown in diagram 200(7), display 122 may present virtual object 120 according to the hue and saturation selected in Figures 2A and 2B, respectively, and may display color picker 124. In 200(7), the joystick may be in a center position 202(1).

[0035] At 200(8), the user may bias the joystick generally downward and to the right toward outer position 202(6) that is within a region of outer positions associated with changing the brightness of the virtual object. In response to the joystick being moved into this region, color picker 124 may indicate that a third portion 124(3) of color picker 124 for selecting a brightness has been activated. Additionally, the brightness of virtual object 120 may be updated to indicate a current brightness corresponding to the location of the joystick.

[0036] At 200(9), the user moves the joystick up and to another outer position 202(7) to the right, thereby changing the lightness value. As shown, the third portion 124(3) of the color picker 124 may be updated to reflect the new selection. Additionally, or alternatively, the lightness of the virtual object 120 may be updated to reflect the selected lightness. Upon identifying the desired lightness, the user may release the joystick, which may be biased to return the joystick to the center position 202(1). At this point, the third portion 124(3) of the color picker 124 may no longer be activated to select the lightness of the virtual object 120.

[0037] FIG. 3A illustrates an example flow of operations in which a user provides input to an input device of a handheld controller (in this example, a trackpad) in a first defined outer region to enable selection of a first property, such as a hue, of a virtual object. After this input is received, the user can use the trackpad or other input device to select a hue or other property using a presented color picker. While this example describes an input that starts at a center location and moves toward the first defined outer region, it should be understood that in some instances the input may simply be received in the first outer region or may start at any other portion of the trackpad before moving to the first outer region to enable selection of the first property.

[0038] As shown in 300(1), display 122 may again present virtual object 120 and color picker 124 to allow a user to modify the color of object 120. The user may use a handheld controller or issue a request to activate color picker 124 in any other manner. As shown in 300(1), an instrument (e.g., a finger, a stylus, etc.) may initially be within or otherwise correspond to (e.g., hover over) central location 302(1).

[0039] At 300(2), a user may provide touch input (e.g., via a finger, stylus, etc.) upward from the central location and into outer location 302(2) that is within a region of outer locations associated with the changing hue of the virtual object. In response to this input into this region, color picker 124 may indicate that a first portion 124(1) of color picker 124 for selecting a hue has been activated. Additionally, the hue of virtual object 120 may be updated to indicate a current hue that corresponds to the current location of the touch input.

[0040] At 300(3), the user provides input to another outer location 302(3) to the left, thereby changing the hue value. As shown, first portion 124(1) of color picker 124 may be updated to reflect the new selection. Additionally, or alternatively, the hue of virtual object 120 may be updated to reflect the selected hue. Upon identifying the desired hue, the user may provide input toward center location 302(1) or may simply remove the touch input (e.g., lift their finger from the trackpad). At this point, first portion 124(1) of color picker 124 may no longer be activated to select a hue for virtual object 120.

[0041] 3B continues the flow of operations 300 in which a user provides input to the trackpad in the second defined outer region to enable selection of a second property, such as saturation, of the virtual object. After this input is received, the user can use the trackpad or other input device to select saturation or other properties using a presented color picker. Again, while this example describes an input that starts at a center location and moves toward the second defined outer region, it should be understood that in some instances the input may simply be received in the second outer region or may start at any other portion of the trackpad before moving to the second outer region to enable selection of the first property.

[0042] As shown in diagram 300(4), display 122 may present virtual object 120 according to the hue selected in FIG. 3A and may display color picker 124. In 300(4), an instrument (e.g., a finger, a stylus, etc.) may be at or otherwise correspond to (e.g., hover over) central location 302(1).

[0043] At 300(5), a user may provide touch input generally downward and to the left toward outer location 302(4) that is within a region of outer locations associated with changing the saturation of a virtual object. In response to the touch input in this region, color picker 124 may indicate that a second portion 124(2) of color picker 124 for selecting a saturation has been activated. Additionally, the saturation of virtual object 120 may be updated to indicate a current saturation that corresponds to the current location of the touch input.

[0044] At 300(6), the user provides touch input downward and to another outer location 302(5) to the right, thereby changing the saturation value. As shown, the second portion 124(2) of the color picker 124 may be updated to reflect the new selection. Additionally, or alternatively, the saturation of the virtual object 120 may be updated to reflect the selected saturation. Upon identifying the desired saturation, the user may provide touch input toward the center location 302(1) or remove the instrument from the trackpad. At this point, the second portion 124(2) of the color picker 124 may no longer be activated to select the saturation of the virtual object 120.

[0045] 3C continues the flow of operations 300 in which a user provides input to the trackpad in the third defined outer region to enable selection of a third property, such as brightness, of the virtual object. After this input is received, the user can use the trackpad or other input device to select brightness or other properties using a presented color picker. Again, while this example describes an input that starts at a center location and moves toward the third defined outer region, it should be understood that in some instances the input may simply be received in the third outer region or may start at any other portion of the trackpad before moving to the third outer region to enable selection of the first property.

[0046] As shown in diagram 300(7), display 122 may present virtual object 120 according to the hue and saturation selected in FIGS. 3A and 3B, respectively, and may display color picker 124. In 300(7), the instrument may be at or otherwise correspond to (e.g., hover) central position 302(1).

[0047] At 300(8), a user may provide touch input generally downward and to the right toward outer location 302(6) that is within a region of outer locations associated with changing the brightness of a virtual object. In response to input into this region, color picker 124 may indicate that a third portion 124(3) of color picker 124 for selecting a brightness has been activated. Additionally, the brightness of virtual object 120 may be updated to indicate a current brightness corresponding to the location of the input.

[0048] At 300(9), the user moves the joystick up and to another outer position 302(7) to the right, thereby changing the brightness value. As shown, the third portion 124(3) of the color picker 124 may be updated to reflect the new selection. Additionally, or alternatively, the brightness of the virtual object 120 may be updated to reflect the selected brightness. Upon identifying the desired brightness, the user may provide touch input toward the center position 302(1) or remove the instrument from the trackpad. At this point, the third portion 124(3) of the color picker 124 may no longer be activated to select the brightness of the virtual object 120.

[0049] 4 illustrates example components of a system 400 for performing the operations described herein. In some instances, these components may reside in a handheld controller, a local system, a remote system, and / or a combination thereof.

[0050] As shown, one or more of the described systems (e.g., controllers, local systems, remote systems, etc.) may include one or more input / output (I / O) devices 402, such as the controls described above (e.g., joysticks, trackpads, triggers, removable controls, fixed controls, etc.), and potentially any other type of input or output device. For example, the I / O devices 402 may include one or more microphones for receiving audio input, such as user voice input. In some embodiments, additional input devices may be provided in the form of a keyboard, keypad, mouse, touch screen, joystick, control buttons, etc. The input devices may further include control mechanisms such as basic volume control buttons for increasing / decreasing the volume, as well as power and reset buttons.

[0051] Output devices, on the other hand, may include displays, light elements (e.g., LEDs), vibrators to create tactile sensations, speakers (e.g., headphones), etc. There may also be simple light elements (e.g., LEDs) to indicate a state, such as when the power is on. While some examples have been provided, system 400 may additionally or alternatively include any other type of output device.

[0052] Additionally, system 400 may include one or more communications interfaces 404 to facilitate wireless connection to a network and / or one or more remote systems (e.g., a host computing device running an application, a game console, etc.). Communications interface 404 may implement one or more of a variety of wireless technologies, such as Wi-Fi, Bluetooth, radio frequency (RF), etc. It should be appreciated that system 400 may further include physical ports to facilitate wired connections to a network, connected peripheral devices, or plug-in network devices that communicate with other wireless networks.

[0053] In the illustrated implementation, the system 400 further includes one or more processors 406 and a computer-readable medium 408. In some implementations, the processor 406 may include a central processing unit (CPU), a graphics processing unit (GPU), both a CPU and a GPU, a microprocessor, a digital signal processor, or other processing units or components known in the art. Alternatively, or in addition, the functions described herein may be implemented, at least in part, by one or more hardware logic components. For example, without limitation, exemplary types of hardware logic components that may be used include field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SOCs), complex programmable logic devices (CPLDs), and the like. In addition, each of the processors 406 may have its own local memory, which may also store program modules, program data, and / or one or more operating systems.

[0054] The computer readable medium 408 may include removable and non-removable media implemented in any method or technology for storing information, such as volatile and non-volatile memory, computer readable instructions, data structures, program modules, or other data. Such memory may include, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, RAID storage systems, or any other medium that may be used to store the desired information and that may be accessed by a computing device. The computer readable medium 408 may be implemented as a computer readable storage medium ("CRSM"), which may be any available physical medium accessible by the processor 406 to execute instructions stored on the computer readable medium 408. In one basic implementation, the CRSM may include random access memory ("RAM") and flash memory. In other implementations, the CRSM may include, but is not limited to, read-only memory ("ROM"), electrically erasable programmable read-only memory ("EEPROM"), or any other tangible medium that may be used to store desired information and that may be accessed by the processor 406.

[0055] Some modules of instructions, data storage, etc., can be stored in computer readable medium 408 and configured to execute on processor 406. Some exemplary functional modules are illustrated as being stored in computer readable medium 408 and executed on processor 406, although the same functions can alternatively be implemented in hardware, firmware, or as a system on a chip (SOC).

[0056] The operating system module 410 may be configured to manage hardware within and coupled to the system 400 for the benefit of the other modules. Additionally, the computer-readable medium 408 may store a network communications module 412 that enables the system 400 to communicate with one or more other devices, such as personal computing devices running applications (e.g., gaming applications), game consoles, remote servers, etc., via the communications interface 404. The computer-readable medium 408 may further include a game session database 414 for storing data associated with games (or other applications) executing on the system 400 or on a computing device to which the system 400 couples. The computer-readable medium 408 may also include a device records database 416 that stores data associated with devices to which the system 400 couples, such as personal computing devices, game consoles, remote servers, etc. The computer-readable medium 408 may further store game control instructions 418 for configuring the system 400 to function as a game controller, and general purpose control instructions 420 for configuring the system 400 to function as a controller for other non-gaming devices (if the system 400 includes a controller).

[0057] In addition, the computer-readable medium 408 may store a color selection component 422 and a region-to-property mapping 424 that may function to enable the property selection techniques described above. For example, the color selection component 422 may function to launch the color picker 124 described above upon receiving an instruction to do so. In addition, the color selection component 422 may receive input from the handheld controller to determine which property is to be modified at a given time and to determine the value to which the property is to be modified. For example, when the color picker is in operation and receives an indication that an input corresponding to a particular outer position of the input device has been received (e.g., via an input device of the handheld controller), the color selection component 422 may access the region-to-property mapping 424 to determine which property is to be modified. In addition, the color selection component 422 may access the mapping 424 upon receiving the input to determine the value of the property to be modified. It should be understood that the color selection component 422 and / or the region-to-property mapping may be present on the local system 126 (e.g., a computing device directly coupled to the display 122), the remote system 128 (e.g., a server computing device coupled to the display 122 and / or the local system 126 via a network), the handheld controller 100 (e.g., coupled to local and / or remote systems), and / or combinations thereof.

[0058] 5A-5C collectively depict a flow diagram of an exemplary process 500 for manipulating a color picker using a joystick on a handheld controller to modify the presentation of a virtual object on a display. Process 500, and other processes described herein, are described as a collection of blocks in a logical flow graph, which represent a sequence of operations that may be implemented in hardware, software, or a combination thereof. In the context of software, the blocks represent computer-executable instructions that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc. that perform particular functions or implement particular abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any some of the described blocks may be combined in any order and / or in parallel to implement a process. Additionally, operations may be performed by handheld controller 100, local system 126, remote system 128, and / or any other system or combination of systems.

[0059] Operation 502 represents storing an association between a first region (e.g., a first range of outer positions) and a first property (e.g., hue) for which a value may be selected. For example, this operation may represent storing in the property-to-region mapping 424 an indication of which XY positions of the joystick correspond to the first property, such as hue. Similarly, operation 504 represents storing an association between a second region (e.g., a second range of outer positions) and a second property (e.g., saturation) for which a value may be selected. For example, this operation may represent storing in the property-to-region mapping 424 an indication of which XY positions of the joystick correspond to the second property, such as saturation. Operation 506 represents storing an association between a third region (e.g., a third range of outer positions) and a third property (e.g., lightness) for which a value may be selected. For example, this operation may represent storing in property-to-region mapping 424 an indication of which XY positions of the joystick correspond to a third property, such as brightness.

[0060] Meanwhile, operation 508 represents receiving first data indicating that a joystick of the handheld controller has been moved from a center position to a first outer position. The first outer position may be represented by XY coordinates or in other ways. Operation 510 represents determining that the first outer position is associated with a first property. For example, color selection component 424 may compare the XY coordinates of the first outer position to a region referenced in region-to-property mapping 424 to determine that the first outer position corresponds to the first property.

[0061] Operation 512 represents receiving second data indicative of a first position of the joystick before returning to the center position, and operation 514 represents selecting a value of the first property based at least in part on the first position. That is, color selection component 422 may receive an indication of a final location of the joystick before releasing the joystick to return to the center position. Color selection component 422 may access mapping 424 and determine a selected value of the first property, such as a hue value, from the value of the final position. It should be appreciated that color selection component 422 may select (e.g., change) a value of the property as the joystick moves after moving from the outer position and before returning to the center position.

[0062] 5B continues the illustration of process 500, including, at operation 516, presenting an object on the display according to a selected value of the first property. For example, color selection component 422 may cause the display of the object according to the selected hue. In an example where the value of the property is selected upon joystick movement (after moving from an outer position and before returning to the center position), process 500 may present an object having the selected value as the joystick moves. For example, as the user moves the joystick from a red value to a green value, process 500 may present the object in an array of different colors corresponding to the current location of the joystick. Meanwhile, the final selected value may correspond to the final position of the joystick before returning to the center position.

[0063] Operation 518 represents receiving third data indicating that a joystick of the handheld controller has been moved from a center position to a second outer position. The second outer position may be represented by XY coordinates or in other manners. Operation 520 represents determining that the second outer position is associated with a second property. For example, color selection component 424 may compare the XY coordinates of the second outer position to a region referenced in region-to-property mapping 424 to determine that the second outer position corresponds to the second property.

[0064] Operation 522 represents receiving fourth data indicative of a second position of the joystick before returning to the center position, and operation 524 represents selecting a value of the second property based at least in part on the second position. That is, color selection component 422 may receive an indication of a final location of the joystick before releasing the joystick to return to the center position. Color selection component 422 may access mapping 424 and determine a selected value of the second property, such as a saturation value, from the value of the final position. It should be appreciated that color selection component 422 may select (e.g., change) a value of the property as the joystick moves after moving from the outer position and before returning to the center position. Operation 526 represents presenting an object on the display according to the selected value of the second property. For example, color selection component 422 may cause the display of an object according to the selected saturation. In an example where a value of the property is selected upon joystick movement (after moving from the outer position and before returning to the center position), process 500 may present an object having the selected value as the joystick moves. For example, as a user moves a joystick from a first saturation value to a second saturation value, process 500 may present an object according to an array of different saturation values ​​that correspond to the current location of the joystick, while a final selected value may correspond to the final position of the joystick before it is returned to the center position.

[0065] 5C concludes the illustration of process 500, including receiving, at operation 528, fifth data indicating that a joystick of the handheld controller has been moved from a center position to a third outer position. The third outer position may be represented by XY coordinates or in other manners. Operation 530 represents determining that the third outer position is associated with a third property. For example, color selection component 424 may compare the XY coordinates of the third outer position to a region referenced in region-to-property mapping 424 to determine that the third outer position corresponds to the third property.

[0066] Operation 532 represents receiving sixth data indicative of a third position of the joystick before returning to the center position, and operation 534 represents selecting a value of a third property based at least in part on the third position. That is, color selection component 422 may receive an indication of a final location of the joystick before releasing the joystick to return to the center position. Color selection component 422 may access mapping 424 and determine a selected value of a third property, such as a brightness value, from the value of the final position. Operation 536 represents presenting an object on the display according to the selected value of the second property. For example, color selection component 422 may cause the display of an object according to a selected brightness. Again, it should be appreciated that color selection component 422 may select (e.g., change) a value of the property as the joystick moves after moving from the outer position and before returning to the center position. Additionally, in an example in which a value of the property is selected upon joystick movement (after moving from the outer position and before returning to the center position), process 500 may present an object having the selected value as the joystick moves. For example, as a user moves the joystick from a first brightness value to a second brightness value, process 500 may present objects according to an array of different brightness values ​​that correspond to the current location of the joystick, while a final selected value may correspond to the final position of the joystick before it returns to the center position.

[0067] 6 illustrates a flow diagram of an example process 600 for modifying properties of one or more virtual objects presented on a display using an input device on a handheld controller. The input device may include a joystick, a trackpad, a rollerball, or any other type of input device.

[0068] Operation 602 represents storing a respective association between each of a plurality of regions and a respective property. For example, a first region of location on an input device may be associated with a first property, etc. Operation 604 represents receiving first data indicating that an input device of a handheld controller has received a first input, such as an input at a first outer location, an input from a center location to the first outer location, etc. This input may include a touch input on a trackpad, a joystick movement, etc.

[0069] Operation 606 represents determining that the first outer location is associated with the first property, and operation 608 represents receiving second data indicating that the input device has received a second input, such as an input at the first location, an input from the first location to a center location, etc. Again, this may include a touch input from the first location to the center location, a joystick moving from the first location to the center location, an input on a trackpad at the first location followed by removal of the input device (e.g., finger, stylus, etc.) from the trackpad, etc.

[0070] Operation 610 represents selecting a value for a first property based at least in part on the first location. The value may include a color-related value (e.g., hue, lightness, luminance, value, saturation, shade, etc.), a text-related value (e.g., font size, font type, line spacing, etc.), or a value of any other type of property. Operation 612 represents updating a display based at least in part on the selected value. For example, an object may be presented according to the color-related value and text may be presented according to the text-related value. Finally, operation 614 represents determining whether additional input has been received. If so, process 600 may return to operation 604 to again update the value of the property based on the received input and continue to loop to update the display based on the updated value of the property.

[0071] Although the subject matter has been described in language specific to structural features, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the particular features described. Rather, the specific features are disclosed as exemplary forms of implementing the claims. The invention as originally claimed in the present application is set forth below. [1] 1. A system comprising: one or more processors; and one or more computer-readable media storing computer-executable instructions that, when executed, cause the one or more processors to: receiving first data indicating that a joystick of the handheld controller has been moved from a center position to a first outer position; determining that the first outside location is associated with a first property; receiving second data indicative of a first position of the joystick prior to returning to the center position; selecting a value for the first property based at least in part on the first location; receiving third data indicating that the joystick has been moved from the center position to a second outer position; determining that the second exterior location is associated with a second property; receiving fourth data indicative of a second position of the joystick prior to returning to the center position; selecting a value for the second property based at least in part on the second location. [2] the first property includes at least one of a hue, a saturation, or a lightness of a color; The system of [1], wherein the second property includes at least one other of the hue, saturation, or lightness of the color. [3] The operation is receiving fifth data indicating that the joystick has been moved from the center position to a third outer position; determining that the third exterior location is associated with a third property; receiving sixth data indicative of a third position of the joystick prior to returning to the center position; and selecting a value for the third property based at least in part on the third location. [4] the first property includes a hue of a color; the second property includes a saturation of the color; The system of [3], wherein the third property includes a lightness of the color. [5] The system of [4], wherein the operation further includes presenting an object on a display according to the selected value of the hue, the selected value of the saturation, and the selected value of the lightness. [6] The operation is storing an association between a first outer location range and the hue; storing an association between a range of second outer positions and the saturation; storing an association between a third outer position range and the brightness; The system of [4], wherein the first outer location is within the range of the first outer location, the second outer location is within the range of the second outer location, and the third outer location is within the range of the third outer location. [7] The system of [6], wherein the range of the first outer position is approximately equal to the range of the second outer position, and the range of the second outer position is approximately equal to the range of the third outer position. [8] 1. A method comprising: receiving first data indicating that an input device of the handheld controller has received a first input from a central location to a first outer location; determining that the first outside location is associated with a first property; receiving second data indicating that the input device received a second input from a first position to the center position; selecting a value for the first property based at least in part on the first location; receiving third data indicating that the input device received a third input from the central location to a second outer location; determining that the second exterior location is associated with a second property; receiving fourth data indicating that the input device has received a fourth input from a second position to the center position; and selecting a value for the second property based at least in part on the second location. [9] The method of claim 8, wherein the input device comprises a joystick or a trackpad.

[10] the first property includes at least one of a hue, a saturation, or a lightness of a color; The method of claim 8, wherein the second property includes at least one other of the hue, saturation, or lightness of the color.

[11] receiving fifth data indicating that the input device received a fifth input from the central location to a third outer location; determining that the third exterior location is associated with a third property; receiving sixth data indicating that the input device has received a sixth input from a third position to the center position; [8]. The method of claim 8, further comprising: selecting a value of the third property based at least in part on the third position.

[12] the first property includes a hue of a color; the second property includes a saturation of the color;

[11] The method according to

[11] , wherein the third property includes a lightness of the color.

[13] The method of any one of claims 12 to 16, further comprising presenting an object on a display according to the selected value of hue, the selected value of saturation, and the selected value of lightness.

[14] storing an association between a first outer location range and the hue; storing an association between a range of second outer positions and the saturation; storing an association between a third outer position range and the brightness; The method of claim 12, wherein the first outer location is within the range of the first outer location, the second outer location is within the range of the second outer location, and the third outer location is within the range of the third outer location.

[15] The method of claim 14, wherein the range of the first outer positions is approximately equal to the range of the second outer positions, and the range of the second outer positions is approximately equal to the range of the third outer positions.

[16] 1. A system comprising: one or more processors; and one or more computer-readable media storing computer-executable instructions that, when executed, cause the one or more processors to: receiving first data indicating that an input device of the handheld controller has received a first input from a central location to a first outer location; determining that the first outside location is associated with a first property; receiving second data indicating that the input device received a second input from a first position to the center position; selecting a value for the first property based at least in part on the first location.

[17] The system of

[16] , wherein the first property includes at least one of a hue, a saturation, or a lightness of a color.

[18] The operation is receiving third data indicating that the input device received a third input from the central location to a second outer location; determining that the second exterior location is associated with a second property; receiving fourth data indicating that the input device has received a fourth input from a second position to the center position; and selecting a value for the second property based at least in part on the second location.

[19] The operation is storing an association between a first outer location range and the first property; storing an association between a second outer location range and the second property; The system of

[18] , wherein the first outer location is within a range of the first outer location and the second outer location is within a range of the second outer location.

[20] The system of

[19] , wherein the range of the first outer position is approximately equal to the range of the second outer position.

Claims

1. 1. A system comprising: one or more processors; and one or more computer-readable media storing computer-executable instructions that, when executed, cause the one or more processors to: receiving first data indicating that a joystick of a handheld controller has been moved from a center position to a first outer position; determining that the first outside location is within a range of a first outside location associated with a first property; receiving second data indicative of a first position of the joystick within the first outer position range; receiving third data indicating that the joystick has been moved from the first position to the center position; selecting one value of a plurality of values ​​for the first property based at least in part on the first location; receiving fourth data indicating that the joystick has been moved from the center position to a second outer position; determining that the second exterior location is within a range of a second exterior location associated with a second property; receiving fifth data indicative of a second position of the joystick within the second outer position range; receiving sixth data indicating that the joystick has been moved from the second position to the center position; selecting one value among a plurality of values ​​for the second property based at least in part on the second location.

2. the first property includes at least one of a hue, a saturation, or a lightness of a color; The system of claim 1 , wherein the second property includes at least one other of the hue, saturation, or lightness of the color.

3. The operation is receiving seventh data indicating that the joystick has been moved from the center position to a third outer position; determining that the third outer location is within a range of a third outer location associated with a third property; receiving eighth data indicative of a third position of the joystick within the third outer position; and receiving ninth data indicating that the joystick has been moved from the third position to the center position; The system of claim 1 , further comprising: selecting one of a plurality of values ​​for the third property based at least in part on the third location.

4. the first property includes a hue of a color; the second property includes a saturation of the color; The system of claim 3 , wherein the third property comprises a lightness of the color.

5. The system of claim 4 , wherein the manipulation further comprises presenting an object on a display according to the selected value of the hue, the selected value of the saturation, and the selected value of the lightness.

6. The operation is storing an association between the first outer position range and the hue; storing an association between the second outer position range and the saturation; The system of claim 4 , further comprising: storing an association between the third outer position range and the brightness.

7. The system of claim 6 , wherein a length of the first outer position range is equal to a length of the second outer position range, and a length of the second outer position range is equal to a length of the third outer position range.

8. 1. A method comprising: receiving first data indicating that an input device of the handheld controller has received a first input from a center location to a first outer location; determining that the first outside location is within a range of a first outside location associated with a first property; receiving second data indicating that the input device received a second input from a first location within the first outer location to the central location; after returning to the central location, selecting one of a plurality of values ​​of the first property based at least in part on the first location; receiving third data indicating that the input device received a third input from the center position to a second outer position; determining that the second exterior location is within a range of a second exterior location associated with a second property; receiving fourth data indicating that the input device has received a fourth input to the center position from a second position within the second outer position; after returning to the central location, selecting one of a plurality of values ​​of the second property based at least in part on the second location.

9. The method of claim 8 , wherein the input device comprises a joystick or a trackpad.

10. the first property includes at least one of a hue, a saturation, or a lightness of a color; The method of claim 8 , wherein the second property includes at least one other of the hue, saturation, or lightness of the color.

11. receiving fifth data indicating that the input device has received a fifth input from the center position to a third outer position; determining that the third outer location is within a range of a third outer location associated with a third property; receiving sixth data indicating that the input device has received a sixth input to the central position from a third position within the third outer position; The method of claim 8 , further comprising: after returning to the central location, selecting one of a plurality of values ​​for the third property based at least in part on the third location.

12. the first property includes a hue of a color; the second property includes a saturation of the color; The method of claim 11 , wherein the third property comprises a lightness of the color.

13. The method of claim 12 , further comprising presenting an object on a display according to the selected value of the hue, the selected value of the saturation, and the selected value of the lightness.

14. storing an association between the first outer position range and the hue; storing an association between the second outer position range and the saturation; The method of claim 12 , further comprising: storing an association between the third outer position range and the brightness.

15. 15. The method of claim 14, wherein a length of the first outer position range is equal to a length of the second outer position range, and a length of the second outer position range is equal to a length of the third outer position range.

16. 1. A system comprising: one or more processors; and one or more computer-readable media storing computer-executable instructions that, when executed, cause the one or more processors to: receiving first data indicating that an input device of the handheld controller has received a first input to a first outer location within a range of the first outer location from a central location; determining that the first outside location is associated with a first property; receiving second data indicating that the input device received a second input from a first location within the first outer location to the central location; selecting one value of a plurality of values ​​for the first property based at least in part on the first location; receiving third data indicating that the input device received a third input from the center position to a second outer position; determining that the second outside location is associated with a second property; receiving fourth data indicating that the input device has received a fourth input from a second position to the center position; selecting one value among a plurality of values ​​for the second property based at least in part on the second location.

17. The system of claim 16 , wherein the first property includes at least one of a hue, a saturation, or a lightness of a color.

18. The operation is storing an association between the first outer location range and the first property; storing an association between a second outside location range and the second property; 17. The system of claim 16, wherein the first outer location is within a range of the first outer location and the second outer location is within a range of the second outer location.

19. The system of claim 18 , wherein a length of the range of the first outer position is equal to a length of the range of the second outer position.

Citation Information

Patent Citations

  • Radial control menu, graphical user interface, method of controlling variable using radial control menu, and computer readable medium for performing the method

    JP2009266203A

  • Color selection input device and method

    JP2011510469A

  • Operation reception device, operation discrimination method and program

    JP2012008877A