Creating and editing avatars
Efficient avatar creation and editing methods on electronic devices, utilizing placeholder avatars and intuitive interfaces, address inefficiencies in existing techniques, improving user experience and conserving energy.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- APPLE INC
- Filing Date
- 2025-12-25
- Publication Date
- 2026-04-28
AI Technical Summary
Existing techniques for creating and editing avatars on electronic devices are cumbersome and inefficient, consuming time and energy, particularly in battery-operated devices.
Electronic devices use methods and interfaces that display placeholder avatars, detect user movements, provide image capture based on position criteria, and offer real-time guidance for positioning, as well as intuitive editing interfaces via touch-sensitive surfaces and gestures, to enhance avatar creation and editing efficiency.
These methods reduce cognitive burden, improve user satisfaction, and conserve power by minimizing redundant user inputs, thereby extending battery life and enhancing productivity.
Smart Images

Figure 2026071225000001_ABST
Abstract
Description
Technical Field
[0001] (Cross - Reference to Related Applications) This application claims priority to U.S. Provisional Patent Application No. 62 / 399,294, filed on September 23, 2016, with the title "AVATAR CREATION AND EDITING", the entire content of which is incorporated herein by reference. (Technical Field)
[0002] The present disclosure generally relates to computer user interfaces, and more particularly, to techniques for avatar creation and editing.
Background Art
[0003] Avatars are used to represent users of electronic devices. An avatar can represent a user's appearance, or it can represent an idealized or completely fictional representation of the user. In that case, the avatar can be associated with the user such that the appearance of the avatar to other users triggers an association or link with the user.
Summary of the Invention
[0004] However, some techniques for creating and editing avatars using electronic devices are generally cumbersome and inefficient. For example, some existing techniques use complex and time - consuming user interfaces that may involve multiple key presses or keystrokes. Existing techniques take more time than necessary and waste the user's time and the device's energy. The latter problem is particularly significant in battery - operated devices.
[0005] Therefore, this technology provides electronic devices with faster and more efficient methods and interfaces for creating and editing avatars. Such methods and interfaces optionally complement or replace other methods for creating and editing avatars. Such methods and interfaces reduce the cognitive burden on the user and create a more efficient human-machine interface. In the case of battery-operated computing devices, such methods and interfaces conserve power and extend the time between battery charges.
[0006] According to one embodiment, an electronic device having a display and one or more camera displays displays a placeholder avatar on the display, and the display of the placeholder avatar is based on a first position of the user relative to the field of view of one or more cameras of the electronic device. While displaying the placeholder avatar, the electronic device detects the user's movement to a second position relative to the field of view of one or more cameras. In response to the detection of the user's movement to a second position relative to the field of view of one or more cameras, the electronic device captures first image data of the user with one or more cameras according to the determination that the user's second position relative to the field of view of one or more cameras satisfies a first set of image criteria, and, according to the determination that the user's second position relative to the field of view of one or more cameras does not satisfy the first set of image criteria, provides the user with first guidance to change their position relative to the electronic device to a first target position while continuing to display the placeholder avatar.
[0007] One embodiment of a temporary computer-readable storage medium stores one or more programs, which, when executed by one or more processors of an electronic device having a display and one or more cameras, includes instructions to cause the device to: display a placeholder avatar on the display, the display of the placeholder avatar being based on a first position of the user relative to the field of view of one or more cameras; detect the user's movement to a second position relative to the field of view of one or more cameras while displaying the placeholder avatar; and, in response to the detection of the user's movement to a second position relative to the field of view of one or more cameras: capture first image data of the user with one or more cameras according to the determination that the user's second position relative to the field of view of one or more cameras satisfies a first set of image criteria; and, according to the determination that the user's second position relative to the field of view of one or more cameras does not satisfy the first set of image criteria, provide the user with first guidance to change their position relative to the electronic device to a first target position while continuing to display the placeholder avatar.
[0008] According to one embodiment, an electronic device having a display and one or more input devices displays an avatar editing user interface, which simultaneously includes on the display an avatar having a plurality of editable features; a feature selection control area including a representation of a plurality of avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification; and a feature option control area including a representation of a plurality of options for selecting a first avatar feature, including a first option for the currently selected first avatar feature and a second option for the first avatar feature not currently selected; and while displaying the avatar editing user interface, it detects input in the avatar editing user interface, and in response to the detection of this input, According to the determination that this corresponds to the selection of a second avatar feature in the feature selection control region: update the feature selection control region to indicate that the second avatar feature is currently selected, update the feature option control region to include representations of multiple options for the second avatar feature to be selected, including the first option for the currently selected second avatar feature and the second option for the currently unselected second avatar feature, and according to the determination that this input corresponds to the selection of a second option for the first avatar feature in the feature option control region: update the feature option control region to indicate that the second option for the first avatar feature is currently selected, update the avatar to change the appearance of the first avatar feature according to the second option for the first avatar feature.
[0009] One embodiment of a temporary computer-readable storage medium stores one or more programs, and when these one or more programs are executed by one or more processors of an electronic device having a display and one or more input devices, the device displays an avatar editing user interface on the display, which includes simultaneously displaying on the display an avatar having multiple editable features, a feature selection control area including a representation of multiple avatar features including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, and a feature option control area including a representation of multiple options for selecting a first avatar feature, including a first option for the currently selected first avatar feature and a second option for the currently unselected first avatar feature, and while displaying the avatar editing user interface, the device displays the avatar editing user interface to The command includes detecting an input, and in response to the detection of this input: in accordance with the determination that this input corresponds to the selection of a second avatar feature in the feature selection control area: updating the feature selection control area to indicate that the second avatar feature is currently selected, updating the feature option control area to include representations of multiple options for the second avatar feature to be selected, including the first option of the currently selected second avatar feature and the second option of the currently unselected second avatar feature; and in accordance with the determination that this input corresponds to the selection of a second option of the first avatar feature in the feature option control area: updating the feature option control area to indicate that the second option of the first avatar feature is currently selected, and updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature.
[0010] According to one embodiment, an electronic device having a display and one or more input devices displays a messaging interface of a messaging application that transmits messages between a first user of the device and other users, the first user is represented in the messaging application by a user avatar that distinguishes the first user of the device from other users, and receives a first request to display a sticker user interface that displays the messaging user interface and selects stickers to send to a second user, and in response to the first request to display the sticker user interface, displays a sticker user interface on the display that includes a first plurality of avatar stickers generated based on the user's avatar, and this display includes the following simultaneous displays: a first avatar sticker generated based on a modification of the avatar representing the user, and a sticker representing the user Furthermore, a second avatar sticker is generated based on a modification of an avatar different from the first avatar sticker, and while displaying multiple affordances of an avatar selection interface on the display, one or more sequences of inputs are detected via one or more input devices that correspond to a request for the first user to send a corresponding avatar sticker to a second user via a messaging application, and in response to the detection of one or more sequences of inputs: in accordance with the determination that this one or more sequences of inputs corresponds to the selection of the first avatar sticker, the first avatar sticker is sent from the first user to the second user via the messaging application, and in accordance with the determination that this one or more sequences of inputs corresponds to the selection of the second avatar sticker, the second avatar sticker is sent from the first user to the second user via the messaging application.
[0011] One embodiment of a temporary computer-readable storage medium stores one or more programs, which, when executed by one or more processors of an electronic device having a display and one or more input devices, cause the device to display a messaging interface of a messaging application that sends messages between a first user of the device and other users, wherein the first user is represented in the messaging application by an avatar of the user that distinguishes the first user of the device from other users; an instruction to receive a first request to display a sticker user interface that displays the messaging user interface and selects a sticker to send to a second user; and in response to the first request to display the sticker user interface, the display shows a first avatar sticker generated based on a modification of an avatar representing the user, and a second avatar sticker representing the user and based on a modification of an avatar different from the first avatar sticker. The command includes displaying a sticker user interface that includes a first set of multiple avatar stickers generated based on a user's avatar, including simultaneously displaying a second avatar sticker that has been generated; and a command that displays a set of multiple affordances of an avatar selection interface on a display and detects a sequence of one or more inputs via one or more input devices that corresponds to a request to send a corresponding avatar sticker from a first user to a second user via a messaging application, and in response to the detection of this sequence of one or more inputs: according to the determination that this sequence of one or more inputs corresponds to the selection of a first avatar sticker, the first avatar sticker is sent from the first user to the second user via a messaging application, and according to the determination that this sequence of one or more inputs corresponds to the selection of a second avatar sticker, the second avatar sticker is sent from the first user to the second user via a messaging application.
[0012] According to one embodiment, an electronic device having a display and a touch-sensing surface displays an avatar editing interface on the display, which includes an avatar having a plurality of editable features, and while a corresponding feature among the plurality of editable features is the currently selected feature, it detects a first gesture on the touch-sensing surface, which includes the movement of one or more contacts with the touch-sensing surface, and in response to the detection of the first gesture, it updates the display of the avatar by modifying a first characteristic of the first feature, according to the determination that the first gesture is a first type of gesture and the corresponding feature is a first feature, the first characteristic of the first feature is associated with a first gesture type, and updates the display of the avatar by modifying a second characteristic of the first feature, which is different from the first characteristic of the first feature, according to the determination that the first gesture is a second type of gesture different from the first type of gesture and the corresponding feature is a first feature, the second characteristic of the first feature is associated with a second gesture type.
[0013] A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs are executed by one or more processors of an electronic device having a display and one or more input devices, the device displays an avatar editing interface on the display including an avatar having multiple editable features, and while a corresponding feature among the multiple editable features is the currently selected feature, a first gesture including the movement of one or more contacts with a touch-sensing surface is detected on the touch-sensing surface, and in response to the detection of the first gesture: the first gesture is a first type of gesture or The command includes instructions to update the avatar display by modifying the first characteristic of the first characteristic, in accordance with the determination that the corresponding characteristic is the first characteristic, and the first characteristic of the first characteristic is associated with the first gesture type; and to update the avatar display by modifying the second characteristic of the first characteristic, which is different from the first characteristic of the first characteristic, in accordance with the determination that the first gesture is a second type of gesture different from the first type of gesture and the corresponding characteristic is the first characteristic, and the second characteristic of the first characteristic is associated with the second gesture type.
[0014] The executable instructions that perform these functions are contained in a non-temporary computer-readable storage medium or other computer program product configured to be executed by one or more processors, at the discretion of the user.
[0015] Therefore, devices will be provided with faster and more efficient methods and interfaces for creating and editing avatars, thereby increasing the effectiveness, efficiency, and user satisfaction of such devices. Such methods and interfaces can complement or replace other methods for creating and editing avatars. [Brief explanation of the drawing]
[0016] To better understand the various embodiments described, the following "Modes for Carrying Out the Invention" should be referred to in conjunction with the following drawings, and like reference numerals refer to corresponding parts throughout the following figures.
[0017] [Figure 1A] FIG. 1 is a block diagram showing a portable multifunctional device having a touch-sensing display according to some embodiments.
[0018] [Figure 1B] FIG. 2 is a block diagram showing exemplary components for event processing according to some embodiments.
[0019] [Figure 2] Some embodiments of a portable multifunctional device having a touch screen are shown.
[0020] [Figure 3] FIG. 3 is a block diagram of an exemplary multifunctional device having a display and a touch-sensing surface according to some embodiments.
[0021] [Figure 4A] FIG. 4 shows an exemplary user interface of a menu of an application on a portable multifunctional device according to some embodiments.
[0022] [Figure 4B] FIG. 5 shows an exemplary user interface of a multifunctional device having a touch-sensing surface separate from the display according to some embodiments.
[0023] [Figure 5A] Some embodiments of a personal electronic device are shown.
[0024] [Figure 5B]A block diagram showing a personal electronic device according to some embodiments.
[0025] [Figure 6A] An exemplary user interface for creating a user avatar is shown. [Figure 6B] An exemplary user interface for creating a user avatar is shown. [Figure 6C] An exemplary user interface for creating a user avatar is shown. [Figure 6D] An exemplary user interface for creating a user avatar is shown. [Figure 6E] An exemplary user interface for creating a user avatar is shown. [Figure 6F] An exemplary user interface for creating a user avatar is shown. [Figure 6G] An exemplary user interface for creating a user avatar is shown. [Figure 6H] An exemplary user interface for creating a user avatar is shown. [Figure 6I] An exemplary user interface for creating a user avatar is shown. [Figure 6J] An exemplary user interface for creating a user avatar is shown. [Figure 6K] An exemplary user interface for creating a user avatar is shown. [Figure 6L] An exemplary user interface for creating a user avatar is shown. [Figure 6M] An exemplary user interface for creating a user avatar is shown.
[0026] [Figure 7A] A flowchart showing a method for creating a user avatar. [Figure 7B] A flowchart showing a method for creating a user avatar.
[0027] [Figure 8] An illustrative functional block diagram of an electronic device is shown.
[0028] [Figure 9A] This shows an example user interface for customizing a user's avatar. [Figure 9B] This shows an example user interface for customizing a user's avatar. [Figure 9C] This shows an example user interface for customizing a user's avatar. [Figure 9D] This shows an example user interface for customizing a user's avatar. [Figure 9E] This shows an example user interface for customizing a user's avatar. [Figure 9F] This shows an example user interface for customizing a user's avatar. [Figure 9G] This shows an example user interface for customizing a user's avatar. [Figure 9H] This shows an example user interface for customizing a user's avatar.
[0029] [Figure 10A] This is a flowchart showing how to customize a user's avatar. [Figure 10B] This is a flowchart showing how to customize a user's avatar.
[0030] [Figure 11] An illustrative functional block diagram of an electronic device is shown.
[0031] [Figure 12A] This shows an example user interface that uses avatar stickers in messages. [Figure 12B] This shows an example user interface that uses avatar stickers in messages. [Figure 12C]This shows an example user interface that uses avatar stickers in messages. [Figure 12D] This shows an example user interface that uses avatar stickers in messages. [Figure 12E] This shows an example user interface that uses avatar stickers in messages. [Figure 12F] This shows an example user interface that uses avatar stickers in messages. [Figure 12G] This shows an example user interface that uses avatar stickers in messages. [Figure 12H] This shows an example user interface that uses avatar stickers in messages. [Figure 12I] This shows an example user interface that uses avatar stickers in messages. [Figure 12J] This shows an example user interface that uses avatar stickers in messages.
[0032] [Figure 13A] This is a flowchart showing how to use avatar stickers in messages. [Figure 13B] This is a flowchart showing how to use avatar stickers in messages.
[0033] [Figure 14] An illustrative functional block diagram of an electronic device is shown.
[0034] [Figure 15A] This demonstrates an exemplary user interface for editing avatars using gestures. [Figure 15B] This demonstrates an exemplary user interface for editing avatars using gestures. [Figure 15C] This demonstrates an exemplary user interface for editing avatars using gestures. [Figure 15D] This demonstrates an exemplary user interface for editing avatars using gestures. [Figure 15E] This demonstrates an exemplary user interface for editing avatars using gestures. [Figure 15F] This demonstrates an exemplary user interface for editing avatars using gestures.
[0035] [Figure 16A] This is a flowchart showing how to edit an avatar using gestures. [Figure 16B] This is a flowchart showing how to edit an avatar using gestures.
[0036] [Figure 17] An illustrative functional block diagram of an electronic device is shown. [Modes for carrying out the invention]
[0037] The following description includes exemplary methods, parameters, etc. However, it should be noted that such descriptions are not intended to limit the scope of this disclosure, but rather are provided as descriptions of exemplary embodiments.
[0038] There is a need for electronic devices that provide efficient methods and interfaces for creating and editing avatars. For example, while programs for creating and editing avatars already exist, these programs are inefficient and difficult to use compared to the following technology, which allows users to create and edit avatars as they wish, either realistic or unrealistic. Such technology can reduce the cognitive burden on users creating and editing avatars, thereby improving productivity. Furthermore, such techniques can reduce the power consumption of the processor and battery that would normally be wasted on redundant user input.
[0039] Figures 1A-1B, 2, 3, 4A-4B, and 5A-5H below illustrate exemplary devices that perform techniques for creating and editing avatars.
[0040] Figures 6A to 6M show exemplary user interfaces for creating user avatars. Figures 7A to 7B are flowcharts illustrating methods for creating user avatars according to several embodiments. The user interfaces in Figures 6A to 6M are used to illustrate the processes described later, including the processes in Figures 7A to 7B.
[0041] Figures 9A to 9H show exemplary user interfaces for customizing user avatars. Figures 10A to 10B are flowcharts illustrating methods for accessing and customizing user avatars according to several embodiments. The user interfaces in Figures 8A to 8D are used to illustrate the processes described later, including the processes in Figures 10A to 10B.
[0042] Figures 12A to 12J show exemplary user interfaces for creating and using avatar stickers with messages. Figures 13A to 13B are flowcharts illustrating methods for accessing the creation and use of avatar stickers with messages, according to several embodiments. The user interfaces in Figures 12A to 12J are used to illustrate the processes described later, including the processes in Figures 13A to 13B.
[0043] Figures 15A to 15F show exemplary user interfaces for editing avatars using gestures. Figures 16A to 16B are flowcharts illustrating methods for accessing avatar editing using gestures in several embodiments. The user interfaces in Figures 15A to 15F are used to illustrate the processes described later, including the processes in Figures 16A to 16B.
[0044] In the following description, terms such as “first,” “second,” etc., are used to describe various elements, but these elements should not be limited by these terms. These terms are used solely to distinguish one element from another. For example, without departing from the scope of the various embodiments described, the first touch may be called the second touch, and similarly, the second touch may be called the first touch. Both the first touch and the second touch are touches, but they are not the same touch.
[0045] The terminology used in the descriptions of the various embodiments described herein is intended solely to describe specific embodiments and is not intended to be limiting. In the descriptions of the various embodiments and the accompanying claims, the singular forms “a,” “an,” and “the” are intended to include the plural forms as well, unless otherwise explicitly stated in the context. Furthermore, it should be understood that, as used herein, the term “and / or” refers to and includes any and all possible combinations of one or more of the enumerated items relating to the description. It will be further understood that, as used herein, the terms “includes,” “comprises,” and / or “comprising” specify the presence of the described features, integers, steps, actions, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, actions, elements, components, and / or groups thereof.
[0046] The term "if" can be interpreted, at will, depending on the context, as "when" or "upon," or "in response to determining" or "in response to detecting." Similarly, the phrases "if it is determined" or "if [a stated condition or event] is detected" can be interpreted, at will, depending on the context, as "upon determining" or "in response to determining," or "upon detecting [the stated condition or event]" or "in response to detecting [the stated condition or event]."
[0047] Embodiments of electronic devices, user interfaces for such devices, and associated processes for using such devices are described. In some embodiments, the device is a portable communication device, such as a mobile phone, which also includes other functions such as PDA functionality and / or music player functionality. Exemplary embodiments of portable multifunction devices include, but are not limited to, the iPhone®, iPod Touch®, and iPad® devices from Apple Inc., Cupertino, California. Optionally, other portable electronic devices such as laptop or tablet computers with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads) are also used. It should also be understood that in some embodiments, the device is not a portable communication device but a desktop computer with touch-sensitive surfaces (e.g., touchscreen displays and / or touchpads).
[0048] The following discussion describes electronic devices including displays and touch-sensitive surfaces. However, it should be understood that electronic devices optionally include one or more other physical user interface devices such as physical keyboards, mice, and / or joysticks.
[0049] The device typically supports a variety of applications, including drawing applications, presentation applications, word processing applications, website creation applications, disk authoring applications, spreadsheet applications, game applications, telephone applications, video conferencing applications, email applications, instant messaging applications, training support applications, photo management applications, digital camera applications, digital video camera applications, web browsing applications, digital music player applications, and / or digital video player applications.
[0050] Various applications running on this device optionally utilize at least one common physical user interface device, such as a touch-sensitive surface. One or more functions of the touch-sensitive surface, as well as the corresponding information displayed on the device, are optionally adjusted and / or modified on an application-by-application basis and / or within each application. In this way, the device's common physical architecture (such as the touch-sensitive surface) optionally supports a variety of applications with intuitive and transparent user interfaces for the user.
[0051] Here, we turn our attention to embodiments of portable devices equipped with touch-sensitive displays. Figure 1A is a block diagram of a portable multifunction device 100 having a touch-sensitive display system 112 according to several embodiments. The touch-sensitive display 112 may be conveniently referred to as a “touchscreen” and may be known or referred to as a “touch-sensitive display system”. Device 100 includes memory 102 (optionally including one or more computer-readable storage media), a memory controller 122, one or more processing units (CPUs) 120, a peripheral interface 118, an RF circuit 108, an audio circuit 110, a speaker 111, a microphone 113, an input / output (I / O) subsystem 106, other input control devices 116, and an external port 124. Device 100 optionally includes one or more optical sensors 164. Device 100 optionally includes one or more contact intensity sensors 165 (e.g., touch-sensitive surfaces such as the touch-sensitive display system 112 of Device 100) that detect the intensity of contact on Device 100. Device 100 optionally includes one or more tactile output generators 167 that generate tactile outputs on Device 100 (for example, on touch-sensitive surfaces such as the touch-sensitive display system 112 of Device 100 or the touchpad 355 of Device 300). These components optionally communicate via one or more communication buses or signal lines 103.
[0052] In this specification and in the claims, the term “strength” of contact on a touch-sensitive surface refers to the force or pressure (force per unit area) of contact (e.g., finger contact) on the touch-sensitive surface, or a proxy for the force or pressure of contact on the touch-sensitive surface. The strength of contact has a range of values, including at least four distinct values, and more typically, including several hundred (e.g., at least 256) distinct values. The strength of contact is optionally determined (or measured) using various methods and various sensors or combinations of sensors. For example, one or more force sensors below or adjacent to the touch-sensitive surface are optionally used to measure the force at various points on the touch-sensitive surface. In some implementations, force measurements from multiple force sensors are combined (e.g., weighted average) to determine the estimated force of contact. Similarly, the pressure-sensitive tip of a stylus is optionally used to determine the pressure of the stylus on the touch-sensitive surface. Alternatively, the size and / or change in the contact area detected on the touch-sensing surface, the capacitance and / or change in the touch-sensing surface adjacent to the contact, and / or the resistance and / or change in the touch-sensing surface adjacent to the contact may optionally be used as a substitute for the force or pressure of the contact on the touch-sensing surface. In some implementations, the substitute measurement for the force or pressure of the contact is used directly to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is described in units corresponding to the substitute measurement). In some implementations, the substitute measurement for the contact force or pressure is converted to an estimated force or pressure, and the estimated force or pressure is used to determine whether an intensity threshold is exceeded (e.g., the intensity threshold is a pressure threshold measured in units of pressure). By using the intensity of contact as an attribute of user input, it becomes possible to enable user access to additional device functions that would normally be inaccessible to the user on a reduced-size device where the area for displaying affordances (e.g., on a touch-sensitive display) and / or receiving user input (e.g., via a touch-sensitive display, touch-sensitive surface, or physical / mechanical control unit such as a knob or button) is limited.
[0053] As used herein and in the claims, the term “tactile output” refers to the physical displacement of a device relative to its previous position, the physical displacement of a component of a device (e.g., a touch-sensitive surface) relative to another component of the device (e.g., a housing), or the displacement of a component relative to the center of mass of a device, which will be detected by the user through the user’s sense of touch. For example, in a situation where a device or component of a device is in contact with a touch-sensitive user’s surface (e.g., the user’s fingers, palm, or other part of their hand), the tactile output generated by the physical displacement will be interpreted by the user as a tactile sensation corresponding to a perceived change in the physical properties of the device or component of the device. For example, the movement of a touch-sensitive surface (e.g., a touch-sensitive display or trackpad) may be optionally interpreted by the user as a “down-click” or “up-click” of a physical actuator button. In some cases, the user may feel a tactile sensation such as a “down-click” or “up-click” even when there is no movement of a physical actuator button associated with a touch-sensitive surface that has been physically pressed (e.g., displaced) by the user’s action. As another example, movement of a touch-sensitive surface may be interpreted or perceived by the user as "roughness" of that surface, even if there is no change in the smoothness of the touch-sensitive surface. Such user interpretations of touch depend on the user's personal sensory perception, but there are many touch sensory perceptions common to the majority of users. Therefore, when a tactile output is described as corresponding to a user's specific sensory perception (e.g., "up-click," "down-click," "roughness"), unless otherwise stated, the generated tactile output corresponds to the physical displacement of the device or its components that produce the described sensory perception of a typical (or average) user.
[0054] It should be understood that device 100 is merely an example of a portable multifunction device, and that device 100 may optionally have more or fewer components than those shown, may optionally be a combination of two or more components, or may optionally have different configurations or arrangements of those components. The various components shown in Figure 1A are implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application-specific integrated circuits.
[0055] Memory 102 optionally includes high-speed random-access memory and optionally includes non-volatile memory such as one or more magnetic disk storage devices, flash memory devices, or other non-volatile solid-state memory devices. Memory controller 122 optionally controls access to memory 102 by other components of device 100.
[0056] The peripheral interface 118 can be used to connect the device's input and output peripherals to the CPU 120 and memory 102. One or more processors 120 operate or execute various software programs and / or instruction sets stored in memory 102 to perform various functions for device 100 and process data. In some embodiments, the peripheral interface 118, CPU 120, and memory controller 122 are optionally implemented on a single chip, such as chip 104. In some other embodiments, they are optionally implemented on separate chips.
[0057] The RF (radio frequency) circuit 108 transmits and receives RF signals, also known as electromagnetic signals. The RF circuit 108 converts electrical signals to electromagnetic signals, or electromagnetic signals to electrical signals, and communicates with communication networks and other communication devices via electromagnetic signals. The RF circuit 108 optionally includes well-known circuits for performing these functions, which include, but are not limited to, antenna systems, RF transceivers, one or more amplifiers, tuners, one or more oscillators, digital signal processors, CODEC chipsets, subscriber identity module (SIM) cards, and memory. The RF circuit 108 optionally communicates wirelessly with networks such as the Internet, also known as the World Wide Web (WWW), intranets, and / or wireless networks such as cellular telephone networks, wireless local area networks (LANs), and / or metropolitan area networks (MANs), as well as with other devices. The RF circuit 108 optionally includes a well-known circuit for detecting a near-field communication (NFC) field, such as a short-range radio. Wireless communication is not limited to this, but optionally includes Global System for Mobile Communications (GSM), Enhanced Data GSM Environment (EDGE), high-speed downlink packet access (HSDPA), high-speed uplink packet access (HSUPA), Evolution, Data-Only (EV-DO), HSPA, HSPA+, Dual-Cell HSPA (DC-HSPADA), and long-term evolution.Bluetooth evolution (LTE), Near Field Communication (NFC), Wideband Code Division Multiple Access (W-CDMA), Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Bluetooth®, Bluetooth Low Energy (BTLE®), Wireless Fidelity (Wi-Fi®) (e.g., IEEE 802.11a, IEEE 802.11b, IEEE 802.11g, IEEE 802.11n, and / or IEEE 802.11ac), Voice over Internet Protocol (VoIP), Wi-MAX®, Email protocols (e.g., Internet Message Access Protocol (IMAP) and / or Post Office Protocol (POP)), Instant messaging (e.g., Extensible Messaging and Presence Protocol) Using any of several communication standards, protocols, and technologies, including the XMPP protocol, the Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions (SIMPLE), the Instant Messaging and Presence Service (IMPS), and / or the Short Message Service (SMS), or any other suitable communication protocol, including a communication protocol not yet developed as of the filing date of this specification.
[0058] The audio circuit 110, speaker 111, and microphone 113 provide an audio interface between the user and the device 100. The audio circuit 110 receives audio data from the peripheral interface 118, converts this audio data into an electrical signal, and transmits this electrical signal to the speaker 111. The speaker 111 converts the electrical signal into human audible sound waves. The audio circuit 110 also receives the electrical signal converted from the sound waves by the microphone 113. The audio circuit 110 converts the electrical signal into audio data and transmits this audio data to the peripheral interface 118 for processing. The audio data is optionally retrieved from and / or transmitted to the memory 102 and / or RF circuit 108 by the peripheral interface 118. In some embodiments, the audio circuit 110 also includes a headset jack (e.g., 212 in Figure 2). The headset jack provides an interface between the audio circuit 110 and detachable audio input / output peripherals such as output-only headphones or headsets that have both output (e.g., headphones for one or both ears) and input (e.g., a microphone).
[0059] The I / O subsystem 106 connects input / output peripherals on device 100, such as the touchscreen 112 and other input control devices 116, to the peripheral interface 118. The I / O subsystem 106 optionally includes a display controller 156, an optical sensor controller 158, an intensity sensor controller 159, a haptic feedback controller 161, and one or more input controllers 160 for other input or control devices. One or more input controllers 160 receive electrical signals from / transmit electrical signals to other input control devices 116. The other input control devices 116 optionally include physical buttons (e.g., push buttons, rocker buttons), dials, slider switches, joysticks, click wheels, etc. In some alternative embodiments, the input controllers 160 are optionally connected to (or not connected to) one of the following: a keyboard, an infrared port, a USB port, and a pointer device such as a mouse. One or more buttons (e.g., 208 in Figure 2) optionally include up and down buttons for volume control of speaker 111 and / or microphone 113. One or more buttons optionally include push buttons (e.g., 206 in Figure 2).
[0060] As described in U.S. Patent Application No. 11 / 322,549, “Unlocking a Device by Performing Gestures on an Unlock Image,” filed December 23, 2005, U.S. Patent No. 7,657,849, incorporated herein by reference in whole, a quick press of a push button optionally unlocks the touchscreen 112, or optionally initiates a process to unlock the device using gestures on the touchscreen. A longer press of a push button (e.g., 206) optionally turns power on or off the device 100. The functionality of one or more of the buttons is optionally customizable by the user. The touchscreen 112 is used to implement virtual or soft buttons and one or more soft keyboards.
[0061] The touch-sensitive display 112 provides input and output interfaces between the device and the user. The display controller 156 receives electrical signals from and / or transmits electrical signals to the touchscreen 112. The touchscreen 112 displays a visual output to the user. This visual output optionally includes graphics, text, icons, videos, and any combination thereof (collectively, “graphics”). In some embodiments, some or all of the visual output optionally corresponds to user interface objects.
[0062] The touchscreen 112 has a touch-sensing surface, sensor, or set of sensors that receive user input based on touch and / or tactile contact. The touchscreen 112 and the display controller 156 (along with any associated modules and / or instruction sets in memory 102) detect contact (and any movement or interruption of contact) on the touchscreen 112 and translate the detected contact into interaction with user interface objects displayed on the touchscreen 112 (e.g., one or more soft keys, icons, web pages, or images). In an exemplary embodiment, the contact points between the touchscreen 112 and the user correspond to the user's fingers.
[0063] The touchscreen 112 optionally uses LCD (liquid crystal display) technology, LPD (polymer light-emitting display) technology, or LED (light-emitting diode) technology, but other display technologies may also be used in other embodiments. The touchscreen 112 and the display controller 156 optionally, but not limited to, use any of several currently known or future-developed touch sensing technologies, including capacitive, resistive, infrared, and surface acoustic wave technologies, as well as other proximity sensor arrays or other elements that determine one or more points of contact with the touchscreen 112, to detect contact and any movement or interruption thereof. In exemplary embodiments, projected mutual capacitive sensing technology is used, such as that found in the iPhone® and iPod Touch® from Apple Inc. of Cupertino, California.
[0064] The touch-sensitive displays in some embodiments of the touchscreen 112 are, optionally, similar to the multi-touch-sensitive touchpads described in U.S. Patent No. 6,323,846 (Westerman et al.), No. 6,570,557 (Westerman et al.), and / or No. 6,677,932 (Westerman), and / or U.S. Patent Publication No. 2002 / 0015024A1, which are each incorporated herein by reference as a whole. However, the touchscreen 112 displays visual output from device 100, whereas the touch-sensitive touchpad does not provide visual output.
[0065] The touch-sensitive displays in several embodiments of the touchscreen 112 include: (1) U.S. Patent Application No. 11 / 381,313, filed May 2, 2006, "Multipoint Touch Surface Controller"; (2) U.S. Patent Application No. 10 / 840,862, filed May 6, 2004, "Multipoint Touchscreen"; (3) U.S. Patent Application No. 10 / 903,964, filed July 30, 2004, "Gestures For Touch Sensitive Input Devices"; (4) U.S. Patent Application No. 11 / 048,264, filed January 31, 2005, "Gestures For Touch Sensitive Input Devices"; and (5) U.S. Patent Application No. 11 / 038,590, filed January 18, 2005, "Mode-Based Graphical User Interfaces For Touch Sensitive Input These are described in the following applications: (6) U.S. Patent Application No. 11 / 228,758, filed September 16, 2005, "Virtual Input Device Placement On A Touch Screen User Interface"; (7) U.S. Patent Application No. 11 / 228,700, filed September 16, 2005, "Operation Of A Computer With A Touch Screen Interface"; (8) U.S. Patent Application No. 11 / 228,737, filed September 16, 2005, "Activating Virtual Keys Of A Touch-Screen Virtual Keyboard"; and (9) U.S. Patent Application No. 11 / 367,749, filed March 3, 2006, "Multi-Functional Hand-Held Device". All of these applications are incorporated herein by reference as a whole.
[0066] The touchscreen 112 optionally has a video resolution greater than 100 dpi. In some embodiments, the touchscreen has a video resolution of approximately 160 dpi. The user optionally touches the touchscreen 112 using any suitable object or attachment, such as a stylus or finger. In some embodiments, the user interface is designed to primarily handle finger-based touch and gestures, which may be less precise than stylus-based input due to the larger contact area of the finger on the touchscreen. In some embodiments, the device translates coarse finger-based input into a precise pointer / cursor position or command to perform an action desired by the user.
[0067] In some embodiments, in addition to the touchscreen, the device 100 optionally includes a touchpad (not shown) for activating or deactivating specific functions. In some embodiments, the touchpad is a touch-sensing area of the device that, unlike the touchscreen, does not display a visual output. The touchpad is optionally a touch-sensing surface separate from the touchscreen 112 or an extension of the touch-sensing surface formed by the touchscreen.
[0068] Device 100 also includes a power system 162 that supplies power to various components. The power system 162 optionally includes a power management system, one or more power sources (e.g., a battery, alternating current (AC)), a recharge system, a power failure detection circuit, a power converter or inverter, a power status indicator (e.g., a light-emitting diode (LED)), and any other components associated with generating, managing, and distributing power within the portable device.
[0069] The device 100 also optionally includes one or more optical sensors 164. Figure 1A shows optical sensors coupled to an optical sensor controller 158 in the I / O subsystem 106. The optical sensors 164 optionally include a charge-coupled device (CCD) or a complementary metal-oxide semiconductor (CMOS) phototransistor. The optical sensors 164 receive light from the environment projected through one or more lenses and convert that light into data representing an image. The optical sensors 164 work in conjunction with an imaging module 143 (also called a camera module) to optionally capture still images or video. In some embodiments, the optical sensors are located on the back of the device 100, opposite to the touchscreen display 112 on the front of the device, so that the touchscreen display can be effectively used as a viewfinder for acquiring still images and / or video images. In some embodiments, the light sensor is located on the front of the device, so that the user's image is optionally acquired for video conferencing, and the user views other video conferencing participants on the touchscreen display. In some embodiments, the position of the light sensor 164 can be changed by the user (for example, by rotating the lens and sensor within the device housing), so that a single light sensor 164 is used for both video conferencing and acquiring still and / or video images, together with the touchscreen display.
[0070] The device 100 also optionally includes one or more contact strength sensors 165. Figure 1A shows a contact strength sensor coupled to a strength sensor controller 159 in the I / O subsystem 106. The contact strength sensor 165 optionally includes one or more piezoresistive strain gauges, capacitive force sensors, electric force sensors, pressure-power sensors, optical force sensors, capacitive touch-sensing surfaces, or other strength sensors (e.g., sensors used to measure the force (or pressure) of contact on a touch-sensing surface). The contact strength sensor 165 receives contact strength information (e.g., pressure information or a proxy for pressure information) from the environment. In some embodiments, at least one contact strength sensor is positioned juxtaposed with or adjacent to a touch-sensing surface (e.g., a touch-sensing display system 112). In some embodiments, at least one contact strength sensor is located on the back of the device 100, opposite to the touchscreen display 112 located on the front of the device 100.
[0071] The device 100 also optionally includes one or more proximity sensors 166. Figure 1A shows a proximity sensor 166 coupled to a peripheral interface 118. Alternatively, the proximity sensor 166 is optionally coupled to an input controller 160 in the I / O subsystem 106. The proximity sensor 166 may optionally function as described in U.S. Patent Applications 11 / 241,839, “Proximity Detector In Handheld Device,” 11 / 240,788, “Proximity Detector In Handheld Device,” 11 / 620,702, “Using Ambient Light Sensor To Augment Proximity Sensor Output,” 11 / 586,862, “Automated Response To And Sensing Of User Activity In Portable Devices,” and 11 / 638,251, “Methods And Systems For Automatic Configuration Of Peripherals,” which are incorporated herein by reference as a whole. In some embodiments, the proximity sensor turns off and disables the touchscreen 112 when the multifunction device is positioned near the user's ear (for example, when the user is making a phone call).
[0072] Device 100 also optionally includes one or more tactile output generators 167. Figure 1A shows a tactile output generator coupled to a tactile feedback controller 161 in the I / O subsystem 106. The tactile output generator 167 optionally includes one or more electroacoustic devices such as a speaker or other audio component, and / or electromechanical devices that convert energy into linear motion, such as a motor, solenoid, electroactive polymer, piezoelectric actuator, electrostatic actuator, or other tactile output generating component (e.g., a component that converts an electrical signal into a tactile output on the device). The contact intensity sensor 165 receives a tactile feedback generation command from the tactile feedback module 133 and generates a tactile output on device 100 that can be sensed by the user of device 100. In some embodiments, at least one tactile output generator is located on or near a touch-sensitive surface (e.g., a touch-sensitive display system 112) and optionally generates a tactile output by moving the touch-sensitive surface vertically (e.g., inward / outward from the surface of device 100) or horizontally (e.g., forward / backward in the same plane as the surface of device 100). In some embodiments, at least one tactile output generator sensor is located on the back surface of device 100, opposite to the touchscreen display 112 located on the front surface of device 100.
[0073] The device 100 also optionally includes one or more accelerometers 168. Figure 1A shows an accelerometer 168 coupled to a peripheral interface 118. Alternatively, the accelerometer 168 is optionally coupled to an input controller 160 in the I / O subsystem 106. The accelerometer 168 optionally functions as described in U.S. Patent Publication No. 20050190059, “Acceleration-based Theft Detection System for Portable Electronic Devices,” and U.S. Patent Publication No. 20060017692, “Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer,” both of which are incorporated herein by reference as a whole. In some embodiments, information is displayed on a touchscreen display in portrait view or landscape view based on an analysis of data received from one or more accelerometers. Device 100 optionally includes, in addition to one or more accelerometers 168, a magnetometer (not shown) and a GPS (or GLONASS or other global navigation system) receiver (not shown) for acquiring information about the position and orientation of device 100 (e.g., portrait or landscape).
[0074] In some embodiments, the software components stored in memory 102 include an operating system 126, a communications module (or instruction set) 128, a contact / motion module (or instruction set) 130, a graphics module (or instruction set) 132, a text input module (or instruction set) 134, a Global Positioning System (GPS) module (or instruction set) 135, and an application (or instruction set) 136. Furthermore, in some embodiments, memory 102 (Figure 1A) or 370 (Figure 3) stores device / global internal state 157, as shown in Figures 1A and 3. The device / global internal state 157 includes one or more of the following: active application state, indicating which application is active if there is an application currently active; display state, indicating which applications, views, or other information occupy various areas of the touchscreen display 112; sensor state, including information obtained from various sensors and input control devices 116 of the device; and location information, relating to the location and / or orientation of the device.
[0075] An operating system 126 (for example, an embedded operating system such as Darwin®, RTXC®, LINUX®, UNIX®, OS X®, iOS®, WINDOWS®, or VxWorks®) includes various software components and / or drivers that control and manage normal system tasks (e.g., memory management, control of storage devices, power management, etc.) and facilitate communication between various hardware and software components.
[0076] The communication module 128 facilitates communication with other devices via one or more external ports 124 and also includes various software components for processing data received by the RF circuit 108 and / or the external ports 124. The external ports 124 (e.g., Universal Serial Bus (USB), FireWire®, etc.) are adapted to connect to other devices directly or indirectly via a network (e.g., the Internet, Wi-Fi, etc.). In some embodiments, the external ports are multi-pin (e.g., 30-pin) connectors that are the same as and / or similar to the 30-pin connector used on iPod® (a trademark of Apple Inc.) devices.
[0077] The contact / motion module 130 optionally detects contact with the touchscreen 112 (in conjunction with the display controller 156) and other touch-sensitive devices (e.g., a touchpad or physical click wheel). The contact / motion module 130 includes various software components that perform various operations related to contact detection, such as determining whether contact has occurred (e.g., detecting a finger being lowered), determining the intensity of contact (e.g., the force or pressure of contact, or a substitute for the force or pressure of contact), determining whether there is movement of contact and tracking movement across the touch-sensitive surface (e.g., detecting one or more events of a finger being dragged), and determining whether contact has stopped (e.g., detecting a finger being lifted or an interruption of contact). The contact / motion module 130 receives contact data from the touch-sensitive surface. Determining the movement of the contact point, represented by a series of contact data, optionally includes determining the speed (magnitude), velocity (magnitude and direction), and / or acceleration (change in magnitude and / or direction) of the contact point. These actions can be optionally applied to a single contact (e.g., a single finger contact) or multiple simultaneous contacts (e.g., "multi-touch" / multiple finger contacts). In some embodiments, the contact / motion module 130 and the display controller 156 detect contact on the touchpad.
[0078] In some embodiments, the contact / motion module 130 uses a set of one or more intensity thresholds to determine whether an operation has been performed by a user (e.g., whether a user has "clicked" on an icon). In some embodiments, at least one subset of the intensity thresholds is determined according to a software parameter (e.g., the intensity thresholds can be adjusted without changing the physical hardware of device 100, rather than being determined by the activation threshold of a particular physical actuator). For example, the mouse "click" threshold for a trackpad or touchscreen display can be set to one of a range of predetermined thresholds without changing the trackpad or touchscreen display hardware. In addition, in some implementations, the user of the device is provided with software settings to adjust one or more of a set of intensity thresholds (e.g., by adjusting individual intensity thresholds and / or multiple intensity thresholds at once using a system-level click "intensity" parameter).
[0079] The contact / motion module 130 optionally detects gesture input from the user. Different gestures on the touch-sensitive surface have different contact patterns (e.g., different motion, timing, and / or intensity of detected contacts). Therefore, gestures are optionally detected by detecting specific contact patterns. For example, detecting a finger tap gesture involves detecting a finger down event, followed by a finger up (lift-off) event at the same location (or substantially the same location) as the finger down event (e.g., the location of an icon). As another example, detecting a finger swipe gesture on the touch-sensitive surface involves detecting a finger down event, followed by one or more finger drag events, and then a finger up (lift-off) event.
[0080] The graphics module 132 includes various known software components for rendering and displaying graphics on the touchscreen 112 or other display, including components for altering the visual effects of the displayed graphics (e.g., brightness, transparency, saturation, contrast, or other visual properties). In this specification, the term “graphics” includes, but is not limited to, any object that can be displayed to the user, including characters, web pages, icons (such as user interface objects including soft keys), digital images, videos, animations, etc.
[0081] In some embodiments, the graphics module 132 stores data representing the graphics to be used. Each graphic is optionally assigned a corresponding code. The graphics module 132 receives one or more codes from an application or the like, as needed, along with coordinate data and other graphic characteristic data, specifying the graphics to be displayed, and then generates screen image data to output to the display controller 156.
[0082] The haptic feedback module 133 includes various software components for generating instructions used by a haptic output generator(s) 167 to generate haptic outputs at one or more locations on the device 100 in response to user interaction with the device 100.
[0083] The text input module 134 is optionally a component of the graphics module 132 and provides a soft keyboard for entering text in various applications (e.g., contacts 137, email 140, IM 141, browser 147, and any other applications that require text input).
[0084] The GPS module 135 determines the device's location and provides this information for use in various applications (for example, to the telephone 138 for location-based dialing, to the camera 143 as image / video metadata, and to applications that provide location-based services such as weather widgets, local yellow pages widgets, and map / navigation widgets).
[0085] Application 136 optionally includes the following modules (or instruction sets) or subsets or supersets thereof: ● Contact module 137 (sometimes called the address book or contact list), ●Telephone module 138, ●Video conferencing module 139, ● Email client module 140, ● Instant messaging (IM) module 141, ●Training support module 142, ● Camera module 143 for still images and / or video images, ●Image management module 144, ●Video player module, ● Music player module, ● Browser module 147, ● Calendar module 148, ● A widget module 149 that optionally includes one or more of the following: weather widget 149-1, stock price widget 149-2, calculator widget 149-3, alarm clock widget 149-4, dictionary widget 149-5, other widgets obtained by the user, and user-created widgets 149-6. ●Widget creator module 150 for creating user-created widget 149-6. ● Search module 151, ●Video and music player module 152, which integrates a video player module and a music player module. ●Memo Module 153, ●Map module 154, and / or, ● Online video module 155.
[0086] Examples of other applications 136 that may be optionally stored in memory 102 include other word processing applications, other image editing applications, drawing applications, presentation applications, Java®-enabled applications, encryption, digital rights management, speech recognition, and speech duplication.
[0087] In conjunction with the touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the contact module 137 is used to manage an address book or contact list (stored, for example, in the application internal state 192 of the contact module 137 in memory 102 or memory 370), including optionally adding names(s) to the address book, deleting names(s) from the address book, associating telephone numbers(s) or email addresses(s) or other information with names, associating images with names, categorizing and sorting names, and providing telephone numbers or email addresses to initiate and / or facilitate communication via telephone 138, video conferencing module 139, email 140, or IM 141.
[0088] In conjunction with the RF circuit 108, audio circuit 110, speaker 111, microphone 113, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the telephone module 138 is optionally used for inputting character sequences corresponding to telephone numbers, accessing one or more telephone numbers in the contact module 137, modifying entered telephone numbers, dialing each telephone number, conducting conversations, and ending or hanging up a call when a conversation is finished. As previously mentioned, wireless communication optionally uses one of several communication standards, protocols, and technologies.
[0089] In conjunction with the RF circuit 108, audio circuit 110, speaker 111, microphone 113, touchscreen 112, display controller 156, light sensor 164, light sensor controller 158, contact / motion module 130, graphics module 132, text input module 134, contact module 137, and telephone module 138, the video conferencing module 139 includes executable commands for starting, running, and ending video conferences between the user and one or more other participants in accordance with user commands.
[0090] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the email client module 140 includes executable commands for creating, sending, receiving, and managing emails in response to user commands. In conjunction with the image management module 144, the email client module 140 makes it very easy to create and send emails containing still or video images captured by the camera module 143.
[0091] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the instant messaging module 141 includes executable commands for inputting character sequences corresponding to instant messages, modifying previously entered characters, sending each instant message (e.g., using the Short Message Service (SMS) or Multimedia Message Service (MMS) protocol for telephone-based instant messaging, or XMPP, SIMPLE, or IMPS for internet-based instant messaging), receiving instant messages, and viewing received instant messages. In some embodiments, the transmitted and / or received instant messages optionally include graphics, photographs, audio files, video files, and / or other attachments supported by MMS and / or Enhanced Messaging Service (EMS). In this specification, “instant messaging” refers to both telephone-based messaging (e.g., messages sent using SMS or MMS) and internet-based messaging (e.g., messages sent using XMPP, SIMPLE, or IMPS).
[0092] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, map module 154, and music player module, the training support module 142 includes executable commands for creating training (e.g., having time, distance, and / or calorie burn targets), communicating with training sensors (sports devices), receiving training sensor data, calibrating sensors used to monitor training, selecting and playing music for training, and displaying, storing, and transmitting training data.
[0093] In conjunction with the touchscreen 112, display controller 156, light sensor 164, light sensor controller 158, contact / motion module 130, graphics module 132, and image management module 144, the camera module 143 includes executable commands for capturing still images or videos (including video streams) and storing them in memory 102, modifying the characteristics of still images or videos, or deleting still images or videos from memory 102.
[0094] In conjunction with the touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and camera module 143, the image management module 144 includes executable commands for arranging, modifying (e.g., editing), or otherwise manipulating, labeling, deleting, presenting (e.g., in a digital slideshow or album), and storing still and / or video images.
[0095] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the browser module 147 includes executable commands for browsing the Internet according to user commands, including searching, linking, receiving, and displaying web pages or portions thereof, as well as attachments and other files linked to web pages.
[0096] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, email client module 140, and browser module 147, the calendar module 148 includes executable commands for creating, displaying, modifying, and storing a calendar and data associated with the calendar (e.g., calendar entries, to-do lists, etc.) according to user commands.
[0097] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and browser module 147, the widget module 149 is a mini-application that can be optionally downloaded and used by the user (e.g., weather widget 149-1, stock price widget 149-2, calculator widget 149-3, alarm clock widget 149-4, and dictionary widget 149-5), or a mini-application created by the user (e.g., user-created widget 149-6). In some embodiments, the widget includes an HTML (Hypertext Markup Language) file, a CSS (Cascading Style Sheets) file, and a JavaScript® file. In some embodiments, the widget includes an XML (Extensible Markup Language) file and a JavaScript file (e.g., Yahoo! Widget).
[0098] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, and browser module 147, the widget creator module 150 is used by the user to optionally create widgets (for example, to turn a user-specified portion of a web page into a widget).
[0099] In conjunction with the touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the search module 151 includes executable instructions for searching for characters, music, sounds, images, videos, and / or other files in memory 102 that match one or more search criteria (e.g., one or more user-specified search terms) according to user instructions.
[0100] In conjunction with the touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuit 110, speaker 111, RF circuit 108, and browser module 147, the video and music player module 152 includes executable commands that enable the user to download and play recorded music and other sound files stored in one or more file formats such as MP3 or AAC files, as well as executable commands for displaying, presenting, or otherwise playing videos (for example, on the touchscreen 112 or on an external display connected via the external port 124). In some embodiments, device 100 optionally includes the functionality of an MP3 player such as an iPod (a trademark of Apple Inc.).
[0101] In conjunction with the touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, and text input module 134, the memo module 153 includes executable commands for creating and managing memos, to-do lists, etc., according to user commands.
[0102] In conjunction with the RF circuit 108, touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, text input module 134, GPS module 135, and browser module 147, the map module 154 is optionally used to receive, display, modify, and store maps and map-related data (e.g., driving directions, data on shops and other points of interest in or near a particular location, and other location-based data) in accordance with user commands.
[0103] In conjunction with the touchscreen 112, display controller 156, contact / motion module 130, graphics module 132, audio circuit 110, speaker 111, RF circuit 108, text input module 134, email client module 140, and browser module 147, the online video module 155 includes instructions that enable the user to access, browse, receive (e.g., by streaming and / or downloading), play (e.g., on the touchscreen or on an external display connected via external port 124), send emails with links to specific online videos, and perform other management of online videos in one or more file formats such as H.264. In some embodiments, an instant messaging module 141 is used instead of the email client module 140 to send links to specific online videos. Further descriptions of online video applications can be found in U.S. Provisional Patent Application No. 60 / 936,562, “Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos,” filed June 20, 2007, and U.S. Patent Application No. 11 / 968,067, “Portable Multifunction Device, Method, and Graphical User Interface for Playing Online Videos,” filed December 31, 2007, the contents of which are incorporated herein by reference in their entirety.
[0104] Each of the modules and applications identified above corresponds to a set of executable instructions that perform one or more of the functions described above and the methods described in this application (e.g., the computer-implemented methods and other information processing methods described herein). These modules (e.g., instruction sets) do not need to be implemented as separate software programs, procedures, or modules; therefore, in various embodiments, various subsets of these modules may be optionally combined or otherwise reconfigured. For example, a video player module may optionally be combined with a music player module to form a single module (e.g., the video and music player module 152 in Figure 1A). In some embodiments, memory 102 may optionally store a subset of the modules and data structures identified above. Furthermore, memory 102 may optionally store additional modules and data structures not described above.
[0105] In some embodiments, device 100 is a device in which the operation of a predetermined set of functions in the device is performed solely through a touchscreen and / or touchpad. By using a touchscreen and / or touchpad as the primary input control device for device 100 to operate, the number of physical input control devices (push buttons, dials, etc.) on device 100 is optionally reduced.
[0106] A predetermined set of functions performed only through a touchscreen and / or touchpad optionally includes navigation between user interfaces. In some embodiments, the touchpad, when touched by the user, navigates the device 100 from any user interface displayed on the device 100 to a main menu, home menu, or root menu. In such embodiments, a “menu button” is implemented using a touchpad. In some other embodiments, the menu button is a physical push button or other physical input control device, rather than a touchpad.
[0107] Figure 1B is a block diagram showing exemplary components for event processing according to several embodiments. In some embodiments, memory 102 (Figure 1A) or 370 (Figure 3) includes an event sorter 170 (e.g., within the operating system 126) and each application 136-1 (e.g., any of the aforementioned applications 137-151, 155, 380-390).
[0108] The event sorter 170 receives event information and determines the application 136-1 and the application view 191 of application 136-1 to which the event information is delivered. The event sorter 170 includes an event monitor 171 and an event dispatcher module 174. In some embodiments, application 136-1 includes an application internal state 192 that indicates the current application view displayed on the touch-sensitive display 112 when the application is active or running. In some embodiments, a device / global internal state 157 is used by the event sorter 170 to determine which application(s) are currently active, and the application internal state 192 is used by the event sorter 170 to determine the application view 191 to which the event information is delivered.
[0109] In some embodiments, the application internal state 192 includes additional information such as resume information used when the application 136-1 resumes execution, user interface state information indicating information displayed or ready to be displayed by the application 136-1, state queues that allow the user to return to a previous state or view of the application 136-1, and redo / undo queues of previous actions taken by the user.
[0110] The event monitor 171 receives event information from the peripheral interface 118. The event information includes information about sub-events (for example, user touch on the touch-sensitive display 112 as part of a multi-touch gesture). The peripheral interface 118 transmits information received from the I / O subsystem 106, or from sensors such as the proximity sensor 166, one or more accelerometers 168, and / or the microphone 113 (via the audio circuit 110). The information received by the peripheral interface 118 from the I / O subsystem 106 includes information from the touch-sensitive display 112 or the touch-sensitive surface.
[0111] In some embodiments, the event monitor 171 sends requests to the peripheral interface 118 at predetermined intervals. In response, the peripheral interface 118 transmits event information. In other embodiments, the peripheral interface 118 transmits event information only when there is a significant event (e.g., reception of input exceeding a predetermined noise threshold and / or exceeding a predetermined duration).
[0112] In some embodiments, the event sorter 170 also includes a hit view determination module 172 and / or an active event recognition determination module 173.
[0113] The hit view determination module 172 provides a software procedure for determining where in one or more views a sub-event occurred when the touch-sensitive display 112 displays two or more views. A view consists of control devices and other elements that the user can see on the display.
[0114] Another aspect of the user interface associated with an application is a set of views, sometimes referred to herein as application views or user interface windows, in which information is displayed and touch-based gestures occur. The application view (of each application) in which a touch is detected optionally corresponds to the program level within the application's program hierarchy or view hierarchy. For example, the lowest-level view in which a touch is detected optionally refers to the hit view, and the set of events recognized as appropriate input is optionally determined at least in part based on the hit view of the initial touch that initiates the touch gesture.
[0115] The hit view determination module 172 receives information related to sub-events of touch-based gestures. When an application has multiple views arranged in a hierarchy, the hit view determination module 172 identifies the hit view as the lowest-level view in the hierarchy from which the sub-events should be processed. In most situations, the hit view is the lowest-level view from which the initiating sub-event (e.g., the first sub-event in a sub-event sequence that forms an event or potential event) occurs. After the hit view is identified by the hit view determination module 172, this hit view typically receives all sub-events related to the same touch or input source that identified it as the hit view.
[0116] The active event recognition determination module 173 determines which view(s) in the view hierarchy should receive a particular sequence of sub-events. In some embodiments, the active event recognition determination module 173 determines that only the hit view should receive a particular sequence of sub-events. In other embodiments, the active event recognition determination module 173 determines that all views, including the physical location of the sub-event, are actively involved views, and therefore all actively involved views should receive a particular sequence of sub-events. In other embodiments, even if the touch sub-event is entirely confined to an area related to one particular view, higher-level views in the hierarchy still remain actively involved views.
[0117] The event dispatcher module 174 dispatches event information to an event recognition unit (e.g., an event recognition unit 180). In embodiments including an active event recognition unit determination module 173, the event dispatcher module 174 distributes the event information to the event recognition unit determined by the active event recognition unit determination module 173. In some embodiments, the event dispatcher module 174 stores the event information acquired by each event receiving unit 182 in an event queue.
[0118] In some embodiments, the operating system 126 includes an event sorter 170. Alternatively, application 136-1 includes an event sorter 170. In yet another embodiment, the event sorter 170 is a standalone module or part of another module stored in memory 102, such as a contact / motion module 130.
[0119] In some embodiments, application 136-1 includes a plurality of event handlers 190 and one or more application views 191, each containing instructions for handling touch events occurring within each view of the application's user interface. Each application view 191 of application 136-1 includes one or more event recognition units 180. Typically, each application view 191 includes a plurality of event recognition units 180. In other embodiments, one or more of the event recognition units 180 are part of a separate module, such as a user interface kit (not shown) or a higher-level object from which application 136-1 inherits methods and other characteristics. In some embodiments, the corresponding event handler 190 includes one or more of the following: data updater 176, object updater 177, GUI updater 178, and / or event data 179 received from event sorter 170. The event handler 190 optionally uses or calls the data updater 176, object updater 177, or GUI updater 178 to update the application's internal state 192. Alternatively, one or more application views 191 include one or more event handlers 190. Also, in some embodiments, one or more of the data updater 176, object updater 177, and GUI updater 178 are included in the corresponding application view 191.
[0120] Each event recognition unit 180 receives event information (e.g., event data 179) from the event sorter 170 and identifies an event from this event information. The event recognition unit 180 includes an event receiving unit 182 and an event comparison unit 184. In some embodiments, the event recognition unit 180 also includes metadata 183 and at least a subset of event distribution commands 188 (optionally including sub-event distribution commands).
[0121] The event receiving unit 182 receives event information from the event sorter 170. The event information includes information about sub-events, such as information about touches or the movement of touches. Depending on the sub-event, the event information also includes additional information such as the location of the sub-event. When the sub-event involves a touch movement, the event information also optionally includes the speed and direction of the sub-event. In some embodiments, an event includes a rotation of the device from one orientation to another (e.g., from portrait to landscape, or vice versa), and the event information includes corresponding information about the current orientation of the device (also called the device orientation).
[0122] The event comparison unit 184 compares event information with a predefined definition of an event or sub-event, and based on the comparison, determines the event or sub-event, or determines or updates the state of the event or sub-event. In some embodiments, the event comparison unit 184 includes an event definition 186. The event definition 186 includes definitions of events (e.g., a predetermined sequence of sub-events), such as event 1 (187-1) and event 2 (187-2). In some embodiments, sub-events within event (187) include, for example, a touch start, a touch end, a touch movement, a touch cancel, and multiple touches. In one example, the definition for event 1 (187-1) is a double tap on a displayed object. A double tap includes, for example, a first touch on the displayed object for a predetermined stage (touch start), a first lift-off for a predetermined stage (touch end), a second touch on the displayed object for a predetermined stage (touch start), and a second lift-off for a predetermined stage (touch end). In another example, the definition for event 2 (187-2) is a drag on a displayed object. A drag includes, for example, touching (or contacting) a display object to a predetermined stage, the movement of a touch on the touch-sensitive display 112, and the lift-off (end of touch) of the touch. In some embodiments, the event also includes information about one or more associated event handlers 190.
[0123] In some embodiments, the event definition 187 includes an event definition for each user interface object. In some embodiments, the event comparison unit 184 performs a hit test to determine which user interface object is associated with a sub-event. For example, in an application view where three user interface objects are displayed on a touch-sensitive display 112, when a touch is detected on the touch-sensitive display 112, the event comparison unit 184 performs a hit test to determine which of the three user interface objects is associated with that touch (sub-event). If each displayed object is associated with a corresponding event handler 190, the event comparison unit uses the results of the hit test to determine which event handler 190 should be activated. For example, the event comparison unit 184 selects the sub-event and the event handler associated with the object that triggers the hit test.
[0124] In some embodiments, the definition for each event (187) also includes a delay action that delays the transmission of event information until it is determined whether the sub-event sequence corresponds to the event type of the event recognition unit.
[0125] If each event recognition unit 180 determines that a series of sub-events does not match any of the events in the event definition 186, each event recognition unit 180 enters an event impossible, event failed, or event terminated state, and thereafter ignores subsequent sub-events of the touch gesture. In this situation, if there are other event recognition units that remain active for the hit view, those event recognition units continue to track and process the sub-events of the ongoing touch gesture.
[0126] In some embodiments, the corresponding event recognition unit 180 includes metadata 183 having configurable properties, flags, and / or lists that indicate to the actively involved event recognition unit how the event distribution system should perform sub-event distribution. In some embodiments, the metadata 183 includes configurable properties, flags, and / or lists that indicate how the event recognition units interact with each other or how they can interact with each other. In some embodiments, the metadata 183 includes configurable properties, flags, and / or lists that indicate how sub-events are distributed to various levels in the view hierarchy or program hierarchy.
[0127] In some embodiments, each event recognition unit 180 activates an event handler 190 associated with an event when one or more specific sub-events of an event are recognized. In some embodiments, each event recognition unit 180 delivers event information associated with the event to the event handler 190. Activating the event handler 190 is separate from sending (and delaying sending) the sub-events to the respective hit view. In some embodiments, the event recognition unit 180 sets a flag associated with the recognized event, and the event handler 190 associated with that flag captures the flag and executes a default process.
[0128] In some embodiments, the event distribution command 188 includes a sub-event distribution command that distributes event information about a sub-event without activating an event handler. Instead, the sub-event distribution command distributes event information to an event handler associated with a set of sub-events, or to a view that is actively involved. The event handler associated with the set of sub-events or the view that is actively involved receives the event information and performs predetermined processing.
[0129] In some embodiments, the data updater 176 creates and updates data used in application 136-1. For example, the data updater 176 updates telephone numbers used in contact module 137 or stores video files used in video player module. In some embodiments, the object updater 177 creates and updates objects used in application 136-1. For example, the object updater 177 creates new user interface objects or updates the position of user interface objects. The GUI updater 178 updates the GUI. For example, the GUI updater 178 prepares display information and sends it to graphics module 132 for display on touch-sensitive display.
[0130] In some embodiments, the event handler(s) 190 includes or has access to a data updater 176, an object updater 177, and a GUI updater 178. In some embodiments, the data updater 176, the object updater 177, and the GUI updater 178 are contained in a single module of their respective applications 136-1 or application view 191. In other embodiments, they are contained in two or more software modules.
[0131] The above discussion regarding the processing of user touch events on a touch-sensitive display also applies to other forms of user input for operating a multifunctional device 100 having input devices, and it will be understood that not all of these user inputs necessarily begin on a touchscreen. For example, mouse movement and mouse button presses, touch movements such as taps, drags, and scrolls on a touchpad, pen stylus input, device movement, verbal commands, detected eye movements, biometric input, and / or any combination thereof may be optionally used as inputs corresponding to sub-events that define the events to be recognized.
[0132] Figure 2 shows a portable multifunction device 100 having a touchscreen 112 according to several embodiments. The touchscreen optionally displays one or more graphics within a user interface (UI) 200. In this embodiment, and in other embodiments described below, the user can select one or more of the graphics by performing gestures on the graphics using, for example, one or more fingers 202 (not shown in the figure to an exact scale) or one or more styluses 203 (not shown in the figure to an exact scale). In some embodiments, the selection of one or more graphics is performed when the user interrupts contact with that one or more graphics. In some embodiments, the gesture optionally includes one or more taps, one or more swipes (left to right, right to left, up, and / or down), and / or rolls of the finger in contact with the device 100 (right to left, left to right, up, and / or down). In some implementations or situations, accidental contact with a graphic does not result in the selection of that graphic. For example, if the gesture corresponding to selection is a tap, a swipe gesture, which involves sweeping over an application icon, does not arbitrarily select the corresponding application.
[0133] Device 100 also optionally includes one or more physical buttons, such as a "Home" button or a menu button 204. As previously mentioned, the menu button 204 is optionally used to navigate to any application 136 within a set of applications running on device 100. Alternatively, in some embodiments, the menu button is implemented as a soft key in a GUI displayed on the touchscreen 112.
[0134] In some embodiments, device 100 includes a touchscreen 112, a menu button 204, a push button 206 for turning the device on / off and locking the device, volume control buttons 208, a subscriber identification module (SIM) card slot 210, a headset jack 212, and an external docking / charging port 124. The push button 206 is optionally used to turn the device on / off by pressing down and holding the button down for a predetermined period of time, to lock the device, and / or to unlock the device or initiate an unlocking process by pressing down and releasing the button before the predetermined period has elapsed. In alternative embodiments, device 100 also accepts verbal input via a microphone 113 to activate or deactivate certain functions. Device 100 also optionally includes one or more contact intensity sensors 165 for detecting the intensity of contact on the touchscreen 112, and / or one or more tactile output generators 167 for generating tactile output to the user of device 100.
[0135] Figure 3 is a block diagram of an exemplary multifunctional device having a display and a touch-sensitive surface according to several embodiments. Device 300 does not need to be portable. In some embodiments, device 300 is a laptop computer, desktop computer, tablet computer, multimedia playback device, navigation device, educational device (such as a children's learning toy), game system, or control device (e.g., a home or commercial controller). Device 300 typically includes one or more processing units (CPUs) 310, one or more network or other communication interfaces 360, memory 370, and one or more communication buses 320 that interconnect these components. The communication buses 320 optionally include circuitry (sometimes called a chipset) that interconnects and controls communication between system components. Device 300 includes an input / output (I / O) interface 330 with a display 340, the display 340 is typically a touchscreen display. The I / O interface 330 also optionally includes a keyboard and / or mouse (or other pointing device) 350, a touchpad 355, a tactile output generator 357 that generates tactile output on device 300 (for example, similar to the tactile output generator 167 described above with reference to Figure 1A), and a sensor 359 (for example, an optical, acceleration, proximity, touch-sensing, and / or contact intensity sensor similar to the contact intensity sensor 165 described above with reference to Figure 1A). The memory 370 includes high-speed random-access memory such as DRAM, SRAM, DDR RAM, or other random-access solid-state memory devices, and optionally includes non-volatile memory such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid-state storage devices. The memory 370 optionally includes one or more storage devices located remotely from the CPU 310. In some embodiments, the memory 370 stores programs, modules, and data structures, or subsets thereof, that are similar to the programs, modules, and data structures stored in the memory 102 of the portable multifunction device 100 (Figure 1A).Furthermore, memory 370 optionally stores additional programs, modules, and data structures that are not present in memory 102 of the portable multifunction device 100. For example, memory 370 of device 300 optionally stores the drawing module 380, presentation module 382, word processing module 384, website creation module 386, disk authoring module 388, and / or spreadsheet module 390, whereas memory 102 of the portable multifunction device 100 (Figure 1A) optionally does not store these modules.
[0136] Each of the elements identified above in Figure 3 is optionally stored in one or more of the memory devices described above. Each of the modules identified above corresponds to a set of instructions that perform the function described above. The modules or programs (e.g., instruction sets) identified above do not need to be implemented as separate software programs, procedures, or modules, and therefore, in various embodiments, various subsets of these modules are optionally combined or otherwise reconfigured. In some embodiments, memory 370 optionally stores subsets of the modules and data structures identified above. Furthermore, memory 370 optionally stores additional modules and data structures not described above.
[0137] Next, we turn our attention to an optional embodiment of a user interface that may be implemented, for example, on a portable multi-functional device 100.
[0138] Figure 4A shows an exemplary user interface of an application menu on a portable multifunction device 100 according to several embodiments. A similar user interface is optionally implemented on device 300. In some embodiments, the user interface 400 includes the following elements, or subsets or supersets thereof. ●Signal strength indicator (single or multiple) for wireless communication (single or multiple) such as cellular signals and Wi-Fi signals 402, ●Time 404, ●Bluetooth indicator 405, ●Battery status indicator 406, ●Tray 408 contains icons for frequently used applications, as shown below. ○Optionally including an indicator 414 for the number of missed calls or voicemail messages, an icon 416 of the telephone module 138 labeled "Telephone", ○Optionally including an indicator 410 for the number of unread emails, an icon 418 of the email client module 140 labeled "Mail", ○ Icon 420 of browser module 147, labeled "Browser", and ○ Icon 422 of the video and music player module 152, also known as the iPod (trademark of Apple Inc.) module 152, labeled as "iPod", and ● Icons of other applications, such as the following: ○ Icon 424 of IM module 141, labeled "Message", ○ Icon 426 of calendar module 148, labeled "Calendar", ○ Icon 428 of image management module 144, labeled "Photo" ○ Icon 430 of camera module 143, labeled "Camera" ○ Icon 432 of online video module 155, labeled "online video" ○ Icon 434 of stock widget 149-2, labeled "Stock Price" ○ Icon 436 for map module 154, labeled "Map" ○ Icon 438 of weather widget 149-1, labeled "Weather" ○ Icon 440 of the alarm clock widget 149-4, labeled "Clock" ○ Icon 442 of training support module 142, labeled "Training Support" ○ Icon 444 of memo module 153, labeled as "Memo", and ○ An icon 446 for a settings application or module labeled "Settings" that provides access to settings for device 100 and its various applications 136.
[0139] Please note that the icon labels shown in Figure 4A are for illustrative purposes only. For example, the icon 422 for the video and music player module 152 may display "Music" or "Music Player," and other labels may be optionally used for various application icons. In some embodiments, the label for each application icon includes the name of the application corresponding to that application icon. In some embodiments, the label for a particular application icon is different from the name of the application corresponding to that particular application icon.
[0140] Figure 4B shows an exemplary user interface on a device (e.g., device 300 in Figure 3) having a touch-sensitive surface 451 (e.g., tablet or touchpad 355 in Figure 3) separate from the display 450 (e.g., touchscreen display 112). Device 300 also optionally includes one or more contact intensity sensors (e.g., one or more of sensors 359) for detecting the intensity of contact on the touch-sensitive surface 451, and / or one or more tactile output generators 357 for generating tactile output to the user of device 300.
[0141] Some of the following examples are given by referring to input on a touchscreen display 112 (a combination of a touch-sensing surface and a display), but in some embodiments, the device detects input on a touch-sensing surface separate from the display shown in Figure 4B. In some embodiments, the touch-sensing surface (e.g., 451 in Figure 4B) has a primary axis (e.g., 452 in Figure 4B) corresponding to a primary axis (e.g., 453 in Figure 4B) on the display (e.g., 450). According to these embodiments, the device detects contact with the touch-sensing surface 451 (e.g., 460 and 462 in Figure 4B) at locations corresponding to each location on the display (e.g., 460 corresponds to 468 and 462 corresponds to 470 in Figure 4B). In this way, user input (e.g., touches 460 and 462, and their movements) detected by the device on a touch-sensitive surface (e.g., 451 in Figure 4B) is used by the device to operate the user interface on the display of the multifunction device (e.g., 450 in Figure 4B) when the touch-sensitive surface is separate from the display. It should be understood that a similar method may be optionally used for other user interfaces described herein.
[0142] In addition, while the following examples are given primarily with reference to finger input (e.g., finger touch, finger tap gesture, finger swipe gesture), it should be understood that in some embodiments, one or more of the finger inputs may be replaced by input from another input device (e.g., mouse-based input or stylus input). For example, a swipe gesture may be optionally replaced by a mouse click (e.g., instead of touch) followed by cursor movement along the swipe path (e.g., instead of touch movement). As another example, a tap gesture may be optionally replaced with a mouse click while the cursor is positioned over the tap gesture location (e.g., instead of detecting touch and then ceasing touch detection). Similarly, it should be understood that when multiple user inputs are detected simultaneously, multiple computer mice may be optionally used simultaneously, or mouse and finger touch may be optionally used simultaneously.
[0143] Figure 5A shows an exemplary personal electronic device 500. Device 500 includes a body 502. In some embodiments, device 500 may include some or all of the features described with respect to devices 100 and 300 (e.g., Figures 1A-4B). In some embodiments, device 500 has a touch-sensitive display screen 504, hereafter referred to as touchscreen 504. As an alternative to or addition to touchscreen 504, device 500 has a display and a touch-sensitive surface. Similar to devices 100 and 300, in some embodiments, touchscreen 504 (or touch-sensitive surface) optionally includes one or more intensity sensors that detect the intensity of the applied contact (e.g., touch). One or more intensity sensors on touchscreen 504 (or touch-sensitive surface) may provide output data representing the intensity of the touch. The user interface of device 500 may respond to touches based on the intensity of the touch, meaning that touches of different intensity may invoke different user interface behaviors on device 500.
[0144] Exemplary techniques for detecting and processing touch intensity can be found, for example, in related applications, International Patent Application No. PCT / US2013 / 040061, “Device, Method, and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application,” filed on 8 May 2013 and published as International Patent No. WO / 2013 / 169849, and International Patent Application No. PCT / US2013 / 069483, “Device, Method, and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships,” filed on 11 November 2013 and published as International Patent No. WO / 2014 / 105276.
[0145] In some embodiments, the device 500 has one or more input mechanisms 506 and 508. The input mechanisms 506 and 508, if included, can be physical mechanisms. Examples of physical input mechanisms include push buttons and rotatable mechanisms. In some embodiments, the device 500 has one or more attachment mechanisms. Such attachment mechanisms, if included, can allow the device 500 to be attached to, for example, a hat, eyewear, earrings, necklace, shirt, jacket, bracelet, watch band, chain, trousers, belt, shoes, wallet, backpack, etc. These attachment mechanisms allow the user to wear the device 500.
[0146] Figure 5B shows an exemplary personal electronic device 500. In some embodiments, the device 500 may include some or all of the components described with respect to Figures 1A, 1B, and 3. The device 500 has a bus 512 that operably connects an I / O section 514 to one or more computer processors 516 and memory 518. The I / O section 514 may be connected to a display 504, which may have a touch-sensing component 522 and optionally a strength sensor 524 (e.g., a contact strength sensor). In addition, the I / O section 514 may be connected to a communication unit 530 that receives application and operating system data using Wi-Fi, Bluetooth, near-field communication (NFC), cellular, and / or other wireless communication techniques. The device 500 may include input mechanisms 506 and / or 508. The input mechanism 506 may optionally be, for example, a rotatable input device or a pressable and rotatable input device. In some examples, the input mechanism 508 may optionally be a button.
[0147] In some examples, the input mechanism 508 is optionally a microphone. The personal electronic device 500 optionally includes a variety of sensors such as a GPS sensor 532, an accelerometer 534, a direction sensor 540 (e.g., a compass), a gyroscope 536, a motion sensor 538, and / or a combination thereof, all of which can be operably connected to the I / O section 514.
[0148] The memory 518 of the personal electronic device 500 may include one or more non-temporary computer-readable storage media for storing computer executable instructions, which, when executed by one or more computer processors 516, can cause the computer processors to execute the techniques described below, including, for example, process 700 (Figures 7A-7B), process 1000 (Figures 10A-10B), process 1300 (Figures 13A-13B), and process 1600 (Figures 16A-16B). The personal electronic device 500 is not limited to the components and configurations shown in Figure 5B, and may include other or additional components in multiple configurations.
[0149] As used herein, the term “affordance” optionally refers to user-interactive graphical user interface objects displayed on the display screens of devices 100, 300, and / or 500 (Figures 1, 3, and 5). For example, images (e.g., icons), buttons, and text (e.g., hyperlinks) each optionally constitute an affordance.
[0150] As used herein, the term “focus selector” refers to an input element that indicates the current part of the user interface that the user is interacting with. In some implementations, including a cursor or other location marker, the cursor acts as a “focus selector,” and therefore, when input (e.g., a press input) is detected on a touch-sensitive surface (e.g., touchpad 355 in Figure 3 or touch-sensitive surface 451 in Figure 4B) while the cursor is positioned over a particular user interface element (e.g., a button, window, slider, or other user interface element), the particular user interface element is adjusted according to the detected input. In some implementations, including a touchscreen display that enables direct interaction with user interface elements on the touchscreen display (e.g., touch-sensitive display system 112 in Figure 1A or touchscreen 112 in Figure 4A), detected contact on the touchscreen acts as a “focus selector,” and therefore, when input (e.g., a press input by touch) is detected at the location of a particular user interface element (e.g., a button, window, slider, or other user interface element) on the touchscreen display, the particular user interface element is adjusted according to the detected input. In some implementations, focus is moved from one area of the user interface to another without corresponding cursor movement or touch movement on the touchscreen display (e.g., by using the tab key or arrow keys to move focus from one button to another), and in these implementations, the focus selector moves in accordance with the movement of focus between different areas of the user interface. Regardless of the specific form the focus selector takes, the focus selector is generally a user interface element (or touch on the touchscreen display) that is controlled by the user to communicate the user's intended interaction through the user interface (e.g., by indicating to the device the user interface element in which the user intends to interact).For example, the position of a focus selector (e.g., cursor, touch, or selection box) over a corresponding button while pressure input is detected on a touch-sensitive surface (e.g., a touchpad or touchscreen) indicates that the user intends to activate that corresponding button (rather than other user interface elements displayed on the device's display).
[0151] As used herein and in the claims, the term “characteristic intensity” of a contact refers to the characteristics of that contact based on one or more intensities of the contact. In some embodiments, the characteristic intensity is based on multiple intensity samples. The characteristic intensity is optionally based on a set of intensity samples collected during a predetermined time period (e.g., 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10 seconds) associated with a predetermined event (e.g., after detection of contact, before detection of lift-off of contact, before or after detection of the start of movement of contact, before detection of the end of contact, before or after detection of an increase in contact intensity, and / or before or after detection of a decrease in contact intensity). The characteristic intensity of a contact is optionally based on one or more of the following: the maximum value of the contact intensity, the mean value of the contact intensity, the average value of the contact intensity, the top 10 percentile value of the contact intensity, the maximum half value of the contact intensity, the maximum 90 percent value of the contact intensity, and so on. In some embodiments, the duration of contact is used when determining characteristic intensity (for example, when characteristic intensity is the average intensity of contact over time). In some embodiments, characteristic intensity is compared to a set of one or more intensity thresholds to determine whether an operation has been performed by the user. For example, a set of one or more intensity thresholds optionally includes a first intensity threshold and a second intensity threshold. In this example, contact with a characteristic intensity not exceeding the first threshold results in a first action, contact with a characteristic intensity exceeding the first intensity threshold but not exceeding the second intensity threshold results in a second action, and contact with a characteristic intensity exceeding the second threshold results in a third action. In some embodiments, the comparison between characteristic intensity and one or more thresholds is not used to determine whether a first action should be performed or a second action should be performed, but rather to determine whether one or more actions should be performed at all (for example, whether each action should be performed or whether each action should be refrained from).
[0152] In some embodiments, a portion of the gesture is identified for the purpose of determining characteristic intensity. For example, a touch-sensitive surface optionally receives a series of swipe contacts transitioning from a start location to an end location, at which point the intensity of the contact increases. In this example, the characteristic intensity of the contact at the end location is optionally based only on a portion of the series of swipe contacts (e.g., only the portion of the swipe contact that reaches the end location), rather than the entire swipe contact. In some embodiments, optionally, a smoothing algorithm is applied to the intensity of the swipe contact before determining the characteristic intensity of the contact. For example, the smoothing algorithm optionally includes one or more of the following: an unweighted moving average smoothing algorithm, a triangular smoothing algorithm, a median filter smoothing algorithm, and / or an exponential smoothing algorithm. In some situations, these smoothing algorithms eliminate small increases or decreases in the intensity of the swipe contact for the purpose of determining characteristic intensity.
[0153] The intensity of contact on the touch-sensitive surface is optionally characterized with respect to one or more intensity thresholds, such as a contact detection intensity threshold, a light press intensity threshold, a deep press intensity threshold, and / or one or more other intensity thresholds. In some embodiments, the light press intensity threshold corresponds to the intensity at which the device performs an action typically associated with clicking a physical mouse button or trackpad. In some embodiments, the deep press intensity threshold corresponds to the intensity at which the device performs an action different from the action typically associated with clicking a physical mouse button or trackpad. In some embodiments, when a contact with a characteristic intensity below the light press intensity threshold (e.g., above the nominal contact detection intensity threshold below which contact is no longer detected) is detected, the device moves the focus selector according to the movement of the contact on the touch-sensitive surface without performing an action associated with the light press intensity threshold or the deep press intensity threshold. Generally, unless otherwise specified, these intensity thresholds are consistent across different sets of user interface diagrams.
[0154] An increase in the characteristic intensity of contact from an intensity below the light press intensity threshold to an intensity between the light press intensity threshold and the deep press intensity threshold is sometimes called a "light press" input. An increase in the characteristic intensity of contact from an intensity below the deep press intensity threshold to an intensity above the deep press intensity threshold is sometimes called a "deep press" input. An increase in the characteristic intensity of contact from an intensity below the contact detection intensity threshold to an intensity between the contact detection intensity threshold and the light press intensity threshold is sometimes called detection of contact on the touch surface. A decrease in the characteristic intensity of contact from an intensity above the contact detection intensity threshold to an intensity below the contact detection intensity threshold is sometimes called detection of contact lift-off from the touch surface. In some embodiments, the contact detection intensity threshold is zero. In some embodiments, the contact detection intensity threshold is greater than zero.
[0155] In some embodiments described herein, one or more actions are performed in response to the detection of a gesture including each press input, or in response to the detection of each press input performed by each (or more) contact, and each press input is detected at least in part on the detection of an increase in the intensity of the contact (or more) above a press input intensity threshold. In some embodiments, each action is performed in response to the detection of an increase in the intensity of each contact above a press input intensity threshold (e.g., a "downstroke" of each press input). In some embodiments, a press input includes an increase in the intensity of each contact above a press input intensity threshold, followed by a decrease in the intensity of the contact below the press input intensity threshold, and each action is performed in response to the detection of a decrease in the intensity of each contact below the press input threshold (e.g., an "upstroke" of each press input).
[0156] In some embodiments, the device employs intensity hysteresis to avoid accidental inputs, which may be referred to as “jitter,” and the device defines or selects a hysteresis intensity threshold that has a predetermined relationship with a press input intensity threshold (for example, the hysteresis intensity threshold is X intensity units lower than the press input intensity threshold, or the hysteresis intensity threshold is 75%, 90%, or some reasonable percentage of the press input intensity threshold). Thus, in some embodiments, a press input includes an increase in the intensity of each contact above the press input intensity threshold, followed by a decrease in the intensity of the contact below the hysteresis intensity threshold corresponding to the press input intensity threshold, and each action is performed in response to the detection of a subsequent decrease in the intensity of each contact below the hysteresis intensity threshold (for example, an “upstroke” of each press input). Similarly, in some embodiments, a press input is detected only when the device detects an increase in contact intensity from an intensity below a hysteresis intensity threshold to an intensity above a press input intensity threshold, and optionally a decrease in contact intensity to an intensity below the hysteresis intensity, and each action is performed in response to the detection of a press input (e.g., depending on the situation, an increase in contact intensity or a decrease in contact intensity).
[0157] For the sake of clarity, the description of an action performed in response to a press input associated with a press input intensity threshold, or a gesture including a press input, is optionally triggered in response to the detection of any of the following: an increase in contact intensity above the press input intensity threshold, an increase in contact intensity from below the hysteresis intensity threshold to above the press input intensity threshold, a decrease in contact intensity below the press input intensity threshold, and / or a decrease in contact intensity below the hysteresis intensity threshold corresponding to the press input intensity threshold. Furthermore, in examples where an action is described to be performed in response to the detection of a decrease in contact intensity below the press input intensity threshold, the action is optionally performed in response to the detection of a decrease in contact intensity below a hysteresis intensity threshold corresponding to and lower than the press input intensity threshold.
[0158] Next, we will focus on embodiments of user interfaces ("UI") and related processes implemented on electronic devices such as portable multifunction device 100, device 300, or device 500.
[0159] Figures 6A–6M show exemplary user interfaces for creating avatars (e.g., emojis or other graphic representations such as non-photorealistic graphic representations) according to several embodiments. The user interfaces in these figures are used to illustrate the processes described later, including the processes shown in Figures 7A–7B.
[0160] Figure 6A shows device 600, which in some examples is a specific form factor of device 100, device 300, or device 500 described above. Device 600 includes a display 601, which in some embodiments is a touch-sensitive display, and a camera 602. In addition, in some embodiments of device 600, additional sensors (e.g., depth sensors, IR sensors, etc.) and / or other components (e.g., flash or IR emitters) are present along with the camera 602.
[0161] In Figure 6A, the display 601 shows a login interface 603, which includes a username text field 606, a password text field 607, and an affordance 608 that allows access to an interface where a new account can be created or a username can be recovered. For example, by selecting one of the text fields via touch 609, the text input interface is displayed on the device 600, as shown in Figure 6B.
[0162] In Figure 6A, the back button 604 returns the user to the previous screen, which allows the user to, for example, select a language or specify other device settings. The next button 605 causes device 600 to attempt authentication of the username and password entered in the username text field 606 and password text field 607.
[0163] Figure 6B shows the login interface 603 with the keyboard 608 displayed. The keyboard 608 allows the user to enter text into text fields 606 and 607. The user requests device 600 to authenticate the entered username and password by, for example, touching the display 601 which displays the next button 605 and selecting the next button 605.
[0164] Following (or in response to) successful authentication of the entered username and password, the device initiates the profile image creation process, as shown in Figure 6C. The user initiates this process, for example, by selecting button 609 via touch 610 on display 601.
[0165] Figure 6D shows device 600 displaying the next steps in the profile image creation process. In Figure 6D, the user is given the option to create an avatar (via affordance 611), use a monogram (via affordance 612), or use a photograph (via affordance 613). Depending on whether the user has chosen to create an avatar, for example via touch 614, device 600 enters the avatar creation interface described with respect to Figures 6E-6M. If affordance 612 is selected, the user enters a monogram creation interface that allows the user to create a monogram by, for example, entering one, two, or three characters for the monogram and selecting one or more colors (for, for, the characters and / or background).
[0166] Figure 6E shows an avatar creation interface 615, which includes a viewfinder 616, a placeholder avatar 617, and affordances 618 for continuing the avatar creation process. The viewfinder 616 represents the field of view of a camera of a device 600, such as a camera 602, and is not required to be present in all embodiments.
[0167] The placeholder avatar 617 is a silhouette or mannequin that does not represent the user's specific characteristics, except for the user's gender in some examples. For example, the placeholder avatar 617 is optionally a general human outline and does not depend on the detected characteristics of the user (e.g., skin tone, face shape, or hairstyle) (e.g., as detected by captured image data). Depending on whether the user chooses to continue the avatar creation process, for example via the touch 619 of affordance 618, the device 600 determines the user's relative position to the camera's field of view. If the user is properly aligned with the field of view, the device 600 uses the camera 602 and / or other sensors to capture the user's image data. However, if the user is not properly aligned, the device 600 updates the avatar creation interface 615, for example as shown in Figure 6F.
[0168] In Figure 6F, device 600 determines that the image data currently being collected by device 600's camera 602 and / or other sensors does not meet a set of image criteria (e.g., alignment criteria, sizing criteria, illumination criteria, positioning criteria). Specifically, in this case, the user is offset from the center of the field of view. In response to this determination, device 600 updates the avatar creation interface 615 to provide feedback in the form of an instruction 620 on how the user should adjust their relative position to device 600 (e.g., by moving their head / body, device 600, or both). The avatar creation interface 615 also provides feedback on the misalignment by indicating that the avatar placeholder 617 is offset compared to the viewfinder 616.
[0169] Device 600 continues to evaluate the image data to determine whether the image criteria are met. If the criteria are not met, device 600 updates the avatar creation interface 615 to provide additional user feedback, as seen in Figures 6G and 6H.
[0170] Specifically, in Figure 6G, device 600 determines that the user is too far away from device 600 (for example, too far from camera 602). In response, device 600 updates the avatar creation interface 615 to indicate that the placeholder avatar 617 is smaller than the viewfinder 616. Command 621 is also provided to give the user feedback on how to change the relative position.
[0171] Similarly, in Figure 6H, device 600 determined that the user was too close to device 600 (for example, too close to camera 602). In response, device 600 updated the avatar creation interface 615 to indicate that the placeholder avatar 617 was larger than the viewfinder 616. In addition, command 622 was provided to give the user feedback on how to change the relative position.
[0172] In Figure 6I, device 600 determines that the image criterion is met, as indicated by the placeholder avatar 617 filling the viewfinder 616. Accordingly, device 600 uses camera 602 to capture image data of the user. This image data is, in some examples, still image data and / or video image data.
[0173] As shown in Figure 6J, after device 600 captures image data in Figure 6G, device 600 updates the avatar creation interface 615 to instruct the user to change position and acquire further image data. Specifically, the avatar creation interface 615 provides feedback to the user via command 623, updating the placeholder avatar 617 to show a rotated head and providing guidance to the user regarding how to position the user's head. Optionally, after the user has finished rotating their head slightly to the left, the placeholder avatar 617 updates to show a head rotated in the other direction. While the user completes the requested movement, device 600 captures image data (e.g., still and / or video image data) continuously or based on predefined conditions (e.g., when additional image criteria are met, such as when a certain level of rotation is completed).
[0174] Once device 600 has captured sufficient image data to generate the user's avatar, the avatar creation interface 615 is updated, as shown in Figure 6K. In some examples, the avatar 624, based on pre-captured image data, is shown at various generation stages. For example, as the avatar is generated, additional features and details appear over time. In some embodiments, while the structural features of the avatar are displayed, color tones, such as skin tones, are not displayed until the user can confirm that the generated skin tones are correct.
[0175] Figure 6L shows the avatar creation interface 615 after avatar 625 has been generated based on captured image data. Although avatar 625 is shown to have skin tones based on captured image data, in some embodiments the displayed avatar will not have skin tones based on captured image data (for example, the displayed avatar will use a predetermined skin tone unrelated to the captured image data), or skin tones will not be applied to the avatar at all.
[0176] In Figure 6L, the avatar creation interface 615 presents the user with options to review or adjust the generated skin tone. Specifically, each of the affordances 626-630 represents a specific skin tone. An indicator (e.g., the bolding of affordance 627) also indicates the currently selected skin tone. Additional skin tone options are optionally accessed via a swipe gesture on the area where affordances 626-630 are located. After the user has determined the correct skin tone, the next button is selected to view the final avatar 633 before customization, as shown in Figure 6M. By selecting the next button 634, the user can optionally access the customize interface, as described below with respect to Figures 9A-9H, for example.
[0177] Figure 7 is a flowchart illustrating a method for creating a user avatar using an electronic device according to several embodiments. Method 700 is performed on a device having a display (e.g., 100, 300, 500). Some operations of Method 700 are arbitrarily combined, the order of some operations is arbitrarily changed, and some operations are arbitrarily omitted.
[0178] As described below, Method 700 provides an intuitive method for creating user avatars. This method reduces the cognitive burden on the user when creating user avatars, thereby creating a more efficient human-machine interface. In the case of battery-powered computing devices, power is saved and the interval between battery charges is extended by enabling users to create avatars faster and more efficiently.
[0179] An electronic device (e.g., device 600 in Figures 6A-6M) having a display (e.g., display 601) and one or more cameras (e.g., camera 602) displays a placeholder avatar (e.g., 617) (e.g., a general outline such as a silhouette or mannequin (with or without a background) representing the user, which is 2D or 3D and / or not based on the user's physical appearance) on the display (702), and the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device (e.g., camera 602) (e.g., as shown in Figures 6F-6H) (e.g., the relative position, relative size, or orientation of the placeholder avatar represents the user in the image data from one or more cameras). In some examples, the size of the placeholder avatar relative to the viewfinder is changed based on how far the user is from one or more cameras (e.g., Figures 6F and 6G). In some examples, the position of the placeholder avatar relative to the viewfinder is changed based on the user's position within the field of view of one or more cameras (e.g., Figure 6E). In some examples, the orientation of the placeholder avatar is changed based on the user's orientation relative to one or more cameras. In some examples, the placeholder avatar includes a background that fits within the viewfinder when the user is in the correct position relative to the electronic device (Figure 6I). In some embodiments, the placeholder avatar is a silhouette of a predetermined person unrelated to the user's image data.
[0180] The electronic device displays a placeholder avatar while detecting the user's movement to a second position relative to the field of view of one or more cameras (704). For example, optionally, the electronic device uses image data from a camera (e.g., 602) to determine when the user is in a different relative position to the electronic device. In some embodiments, the first image data includes both still data (e.g., a single image) and video data (e.g., a series of sequential images). In some embodiments, instead of the electronic device detecting the user's movement, the electronic device sequentially evaluates the captured image data to determine whether image criteria (described below) are met.
[0181] In response to detecting the user's movement to a second position relative to the field of view of one or more cameras (706), the electronic device: captures first image data of the user (e.g., still and / or video image data including visual, infrared, and / or depth data) (708) (e.g., automatically without user input and / or in response to the first set of image criteria being met) in one or more cameras (e.g., 602) according to the determination that the user's second position relative to the field of view of one or more cameras (e.g., 602) satisfies a first set of image criteria (e.g., as shown in Figure 6I) Based on the determination that the user is not in a position, the device continues to display a placeholder avatar (e.g., 617) and provides the user with first guidance (e.g., 616 and 617, 620-621 in Figures 6G-6I) (710) to change the position relative to the electronic device to a first target position (e.g., positioning the placeholder avatar to indicate that the electronic device needs to be moved or reoriented to center the user in the image data, resizing the placeholder avatar to indicate that the device needs to be moved closer to or further away from the user, displaying text instructions or other visual indicators on how to move the user or the electronic device). By providing user feedback on the correct positioning of the user's head relative to the electronic device, the electronic device provides a simpler process for generating user avatars, improving the usability of the electronic device. The simpler process allows the user to complete avatar creation more quickly, making the electronic device more efficient, reducing power consumption, and improving the device's battery life.
[0182] According to some embodiments, after capturing first image data, the electronic device generates a user-specific avatar (e.g., 624, 625) (e.g., a 2D or 3D model having features that reflect the user's features) (714) (e.g., generating a 3D avatar representing the user based on at least the first and second image data). In some examples, the avatar reflects characteristics such as the user's skin tone, eye color, hair color, hairstyle, and facial hair. In some examples, the generation of the user-specific avatar occurs after capturing additional image data (e.g., from one or more additional locations of the user), and the generation of this user-specific avatar is based on this additional image data. In some examples, the user-specific avatar includes only the head. In some examples, the user-specific avatar includes the head, neck, shoulders, and part of the torso. In some examples, the user-specific avatar is a full-body avatar.
[0183] According to some embodiments, the electronic device displays a generated user-specific avatar (e.g., 624, 625) on a display (e.g., Figures 6K-6M) (e.g., by replacing the display of a placeholder avatar with a user-specific avatar, or by changing the appearance of a placeholder avatar by morphing it into a user-specific avatar).
[0184] According to some embodiments, the electronic device displays a placeholder avatar (e.g., 617) and a viewfinder graphical element (e.g., 616) (e.g., a circle representing the center of the field of view of one or more cameras) (716) simultaneously, and the display of the viewfinder graphical element relative to the display of the placeholder avatar is based on the user's first or second position relative to the field of view of one or more cameras (e.g., Figures 6F-6H). In some examples, when the placeholder avatar and the viewfinder graphical element coincide, the user and one or more cameras are properly positioned (e.g., Figure 6I). Alternatively and optionally, if the user is too far from one or more cameras, the placeholder avatar appears smaller relative to the viewfinder graphical element (e.g., Figure 6G). Another option is that if the user is offset from one or more cameras, the placeholder avatar is similarly offset from the viewfinder graphical element so that the placeholder avatar does not coincide with the viewfinder graphical element (e.g., Figure 6F). By displaying a graphical viewfinder and a placeholder avatar relative to it, users can more easily align themselves with the camera of an electronic device, improving the efficiency and accuracy of using the electronic device to create a user-specific avatar. This reduces the power consumption of the electronic device and extends its battery life.
[0185] According to some embodiments, the electronic device determines whether the user's second position relative to the field of view of one or more cameras (e.g., 602) (e.g., orientation, user proximity, user position within the field of view of one or more cameras, and / or user illumination) satisfies a first set of image criteria (e.g., criteria relating to proximity to one or more cameras, user orientation, illumination, and the user's relative position to one or more cameras). By determining whether the second image data satisfies the image criteria, the electronic device provides an improved avatar creation process that avoids the use of low-quality or erroneous image data. Furthermore, by providing feedback to the user regarding the image data, the likelihood of the electronic device capturing the image data necessary to efficiently generate an accurate avatar of the user is increased. Eliminating the use of erroneous or low-quality image data makes the electronic device more efficient, reduces power consumption, and improves the device's battery life.
[0186] According to some embodiments, after capturing first image data, the electronic device provides the user with a second guidance (e.g., 623) to change their position relative to the electronic device to a second target position (e.g., displaying a user contour with rotation to indicate that the user should turn their head, or other visual instructions to turn the user's head), updates the display of a placeholder avatar based on image data captured after the first image data (e.g., Figure 6J) (e.g., showing a user contour that is rotating or positioned differently relative to the viewfinder), and after providing the second guidance, the user's third position relative to the electronic device is determined by a second set of image references (e.g., from one or more cameras). The system determines whether the user's head orientation, proximity to one or more cameras, and position relative to one or more cameras are met, and if the second detected position satisfies a second set of image criteria (e.g., criteria similar to the first set of image criteria, with the additional criterion of the user's rotation relative to the electronic device), it captures second image data of the user (e.g., similar to the first image data) with one or more cameras, and if the detected second position does not satisfy the second set of image criteria, it continues to provide the user with second guidance (e.g., guidance in the same or different form as previously provided guidance) to change the position relative to the electronic device to a second target position. By providing the user with additional guidance, the electronic device can efficiently acquire additional image data at various positions necessary to generate a user-specific avatar. This allows the user to interact with the electronic device more quickly and efficiently, making the electronic device more efficient, reducing power consumption, and improving the device's battery life.
[0187] According to some embodiments, the first guidance (e.g., 620-622) is provided to the user without altering the appearance of the placeholder avatar (e.g., 617 in Figures 6F-6H) based on the first image data (712) (for example, in some embodiments, the position and size of the placeholder avatar are based on the image data, while the visual appearance features, shape, shading, and other aspects of the placeholder avatar are not based on the first image data). In some embodiments, they are not based on any image data. In some examples, the placeholder avatar is moved within the viewfinder without altering the appearance of the avatar itself (e.g., physical properties or features) (e.g., Figures 6F-6I). By not updating the characteristics of the placeholder avatar based on captured image data, the likelihood of the user continuing the avatar creation process is increased, thereby enhancing the ability of the electronic device to create user-specific avatars, avoiding potentially inaccurate intermediate results. This improves the human-machine interface and reduces the likelihood of the user abandoning the avatar creation process.
[0188] According to some embodiments, providing a first guidance (e.g., 620-622) includes providing user feedback (e.g., tactile feedback, visual feedback, or audible feedback) when the user's second position relative to the field of view of one or more cameras satisfies a first set of image criteria, or providing instructions (e.g., text instructions, animation instructions, or voice instructions) (e.g., instructions to move the electronic device or change the user's own position) based on how the user should be positioned relative to the field of view of one or more cameras so that they are in a first target position relative to the device. Providing user feedback when the first set of image criteria is met improves the usefulness of the electronic device by keeping the user informed about the creation process.
[0189] According to some embodiments, after capturing first image data (718), the electronic device displays information indicating one or more recommended skin tones (e.g., 626-630) selected based on the first image data (720) (e.g., displaying a calculated skin tone based on the first image data, or displaying a range of skin tones based on the first image data) (e.g., Figure 6L), receives user input confirming the corresponding recommended skin tone color among the one or more skin tone colors selected based on the first image data (e.g., selecting a confirmation affordance or selecting a specific skin tone) (724), and the electronic device generation of a user-specific avatar is further based on the recommended skin tone color. In some examples, the generation of a user-specific avatar occurs after capturing additional image data (e.g., from one or more additional locations of the user), and the generation of the user-specific avatar is further based on the additional image data. By allowing users to review skin tones or select new skin tones, electronic devices provide an improved avatar creation process by accommodating changes in lighting (which may affect skin tone determination) during the image capture process. This reduces the likelihood that users will have to repeat the avatar creation process, making the electronic device more efficient, reducing power consumption, and improving the device's battery life.
[0190] According to some embodiments, the display of information (722) indicating one or more recommended skin tone colors selected based on first image data is displayed without applying the recommended skin tone colors to the avatar. In some embodiments, the electronic device generates a user-specific placeholder avatar (e.g., 624) based on first image data, using a predetermined skin tone color unrelated to the first image data (e.g., generating a black and white avatar with a shape and features similar to the user in the first image data without skin tone coloring), and displays the user-specific placeholder avatar before receiving user input to confirm the corresponding recommended skin tone color. In some examples, the generation of the user-specific avatar occurs after capturing additional image data (e.g., from one or more additional locations of the user), and the generation of the user-specific avatar is further based on the additional image data. By allowing the user to select a new skin tone before coloring the generated avatar, the electronic device provides a more accessible avatar creation process that reduces the risk of the user being disappointed with the skin tone selected based on the captured image data. This reduces the likelihood that users will have to repeat the avatar creation process, making electronic devices more efficient, reducing power consumption, and improving the battery life of the devices.
[0191] According to some embodiments, the electronic device updates the display of a progress indicator (e.g., an indicator or bar indicator around a viewfinder graphical element) in response to the capture of first image data, and the display of this progress indicator is based on the amount of avatar image data that has been captured. In some examples, the progress indicator shows the progress toward achieving a target amount of image data for generating the avatar.
[0192] According to some embodiments, the electronic device captures user image data (e.g., first image data or other image data) and, upon determining that the user's image data fails to meet lighting criteria (Figure 6H), displays a command (e.g., 622) for the user to change the lighting of one or more camera fields of view. By providing guidance regarding lighting, the captured image data is ensured to have appropriate lighting, thereby improving the accuracy of skin tone determination and (in some situations) influencing skin tone determination based on image data, thereby realizing an improved avatar creation process. This reduces the likelihood that the user will have to repeat the avatar creation process, making the electronic device more efficient, reducing power consumption, and improving the device's battery life.
[0193] According to some embodiments, the electronic device determines the user's physical characteristics (e.g., hairstyle, facial hair, or eye color) or accessory characteristics (e.g., glasses, piercings, or tattoos) based on first image data, and generates a user-specific avatar by adding user-specific representations of the avatar's physical characteristics or accessory characteristics (e.g., Figures 6K-6L). In some embodiments, the user-specific avatar has an independent facial expression (e.g., no smile or grimace), regardless of whether the user has a facial expression in the first image data. In some examples, the user's first image data includes image data identified by the electronic device as indicating a facial expression, and the user-specific avatar is generated to have an expression-independent or neutral expression. In other examples, the method does not involve identifying image data indicating a facial expression.
[0194] According to some embodiments, generating a user-specific avatar based on first image data includes generating a plurality of avatars, the plurality of avatars including a first avatar and a second avatar different from the first avatar, and the electronic device displays the plurality of avatars and receives user input to select one of the plurality of avatars. In some examples, each of the avatars in the plurality of avatars is different. In some examples, the plurality of avatars are different based on a change to a predefined set of characteristics of the avatars.
[0195] According to some embodiments, an electronic device generates a user-specific avatar and then stores the avatar as a recipe (e.g., a non-graphical representation of the avatar), where the recipe defines the avatar's structure (e.g., eyes, nose, mouth, glasses) and parameters (e.g., eye color, nose size, mouth shape, glasses type). By storing the user-specific avatar as a recipe, the electronic device can store and transmit the user-specific avatar more efficiently by sending less data, such as only sending changes to the user-specific avatar recipe instead of the entire recipe. Consequently, this electronic device is more efficient, reduces power consumption, and improves the device's battery life.
[0196] It should be noted that the process details described above with respect to Method 700 (e.g., Figure 7) are also applicable in a similar manner to the methods described later / above. For example, Methods 1000 and 1600 optionally include one or more characteristics of the various methods described above with reference to Method 700. For example, Method 700 may include certain steps of Method 1000 or Method 1600 (for example, some or all of Methods 1000 and 1600 may be performed after Method 700 as part of the same interface). For brevity, these details will not be repeated below.
[0197] According to some embodiments, Figure 8 shows an exemplary functional block diagram of an electronic device 800 configured according to the principles of the various embodiments described. According to some embodiments, the functional block of the electronic device 800 is configured to perform the aforementioned techniques. The functional block of device 800 is optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art will understand that the functional block described in Figure 8 can be optionally combined or separated into subblocks to perform the principles of the various examples described. Accordingly, the description herein optionally supports any possible combination or separation of the functional blocks described herein, or further definitions.
[0198] As shown in Figure 8, the electronic device 800 includes a display unit 802 configured to display a graphic user interface, a camera unit 804, and a processing unit 806 coupled to the display unit 802 and the camera unit 804. In some embodiments, the processing unit 806 includes a display activation unit 810, a detection unit 812, an image capture unit 814, and a providing unit 816, and optionally, a generation unit 818, a determination unit 820, an update unit 822, a receiving unit 824, and a storage unit 826.
[0199] The processing unit 806 is configured to display a placeholder avatar on the display (for example, using a display activation unit 810), and the display of this placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device. While displaying the placeholder avatar, the processing unit 806 is configured to detect the user's movement to a second position relative to one or more cameras (for example, using a detection unit 812). In response to the detection of the user's movement to a second position relative to the field of view of one or more cameras, the processing unit 806 is configured to capture first image data of the user with one or more cameras (for example, using an image capture unit 814) according to the determination that the user's second position relative to the field of view of one or more cameras satisfies a first set of image criteria, and to provide the user with first guidance (for example, using a providing unit 816) to change the position relative to the electronic device to a first target position while continuing to display the placeholder avatar, according to the determination that the user's second position relative to the field of view of one or more cameras does not satisfy the first set of image criteria.
[0200] In some embodiments, the processing unit 806 is further configured to capture one image data and then generate a user-specific avatar (for example, using a generation unit 818) that includes features selected based on the user's appearance determined based on the first image data.
[0201] In some embodiments, the processing unit 806 is further configured to display the generated user-specific avatar (for example, using the display activation unit 810).
[0202] In some embodiments, the processing unit 806 is further configured to display a viewfinder graphical element (for example, using a display enablement unit 810) that simultaneously displays a placeholder avatar, and the display of the viewfinder graphical element relative to the display of the placeholder avatar is based on the user's first or second position relative to the field of view of one or more cameras.
[0203] In some embodiments, the processing unit 806 is further configured to determine (for example, using the determination unit 820) whether the user's second position relative to the field of view of one or more cameras satisfies a first set of image criteria.
[0204] In some embodiments, the processing unit 806 is further configured to, after capturing first image data, provide the user with a second guidance (e.g., using a providing unit 816) to change their position relative to the electronic device to a second target position, update the display of a placeholder avatar (e.g., using an update unit 822) based on image data captured after the first image data, determine (e.g., using an update unit 822) whether the user's third position relative to the electronic device satisfies a second set of image criteria after providing the second guidance, capture second image data of the user with one or more cameras (e.g., using an image capture unit 814) according to the determination that the second detected position satisfies the second set of image criteria, and continue to provide the user with a second guidance (e.g., using a providing unit 816) to change their position relative to the electronic device to a second target position according to the determination that the second detected position does not satisfy the second set of image criteria.
[0205] In some embodiments, the first guidance is provided to the user based on the first image data without altering the appearance of the placeholder avatar.
[0206] In some embodiments, providing first guidance includes providing feedback to the user when the user's second position relative to the field of view of one or more cameras meets a first set of image criteria, or providing instructions based on how the user should be positioned relative to the field of view of one or more cameras so that they are at a first target position relative to the device.
[0207] In some embodiments, the processing unit 806 is further configured to, after capturing first image data, display information (e.g., using a display enablement unit 810) indicating one or more recommended skin tone colors selected based on the first image data, and to receive user input (e.g., using a receiving unit 824) confirming the corresponding toned skin tone color among the one or more skin tone colors selected based on the first image data, and the generation of a user-specific avatar is further based on this recommended skin tone color.
[0208] In some embodiments, the display of information indicating one or more recommended skin tone colors selected based on the first image data is shown without applying any of the recommended skin tone colors to the avatar.
[0209] In some embodiments, the processing unit 806 is further configured to generate a user-specific placeholder avatar (e.g., using a generation unit 818) based on the first image data and using a predetermined skin tone color independent of the first image data, and to display the user-specific placeholder avatar (e.g., using a display enablement unit 810) before receiving user input to confirm the corresponding recommended skin tone color.
[0210] In some embodiments, the processing unit 806 is further configured to update the display of a progress indicator (for example, using an update unit 822) in response to the capture of first image data, the display of which is based on the amount of avatar image data that has been captured.
[0211] In some embodiments, the first image data includes both still data and video data.
[0212] In some embodiments, the processing unit 806 is further configured to capture user image data (e.g., using a capture unit 814) and to display instructions to the user (e.g., using a display enablement unit 810) to change the illumination of one or more camera fields of view according to a determination that the user image data fails to meet illumination criteria.
[0213] In some embodiments, the processing unit 806 is further configured to determine the user's physical characteristics or accessory characteristics based on the first image data (for example, using the determination unit 820), and creating a user-specific avatar includes adding representations of the physical characteristics or accessory characteristics to the user-specific avatar.
[0214] In some embodiments, the user-specific avatar is an independent facial expression, unrelated to whether the user has a facial expression in the first image data.
[0215] In some embodiments, generating a user-specific avatar based on a first image data includes generating a plurality of avatars, the plurality of avatars including a first avatar and a second avatar different from the first avatar, and the processing unit is further configured to display the plurality of avatars (e.g., using a display enablement unit 810) and to receive user input (e.g., using a receiving unit 824) to select one of the plurality of avatars.
[0216] In some embodiments, the processing unit 806 is further configured to generate a user-specific avatar and then store the avatar as a recipe (for example, using the storage unit 826), where the recipe defines the avatar structure and avatar parameters.
[0217] In some embodiments, the placeholder avatar is a silhouette of a predetermined person that is unrelated to the user's image data.
[0218] The operations described above, with reference to Figures 7A and 7B, are optionally performed by the components shown in Figures 1A-1B or Figure 8. For example, the capture operation 708 is optionally performed by the camera module 143, the optical sensor controller 158, and the optical sensor 164. Similarly, it will be obvious to those skilled in the art how other processes can be performed based on the components shown in Figures 1A-1B.
[0219] Figures 9A–9H show exemplary user interfaces for customizing user avatars according to several embodiments. These user interfaces are used to illustrate the processes described later, including the process in Figure 10.
[0220] Figure 9A shows device 600 (as described in relation to Figure 6A), which in some examples is a specific form factor of device 100, device 300, or device 500 described above. Device 600 includes a display 601, which in some embodiments is a touch-sensitive display.
[0221] In Figure 9A, device 600 displays the avatar customization interface 900 on display 601. In some examples, the avatar customization interface 900 is accessed via the avatar creation interface described in Figures 6A-6M, 7A-7B, and 8. In other examples, the avatar customization interface 900, or a similar interface, is accessed via other means, such as an application installed on device 600. The avatar customization interface 900 includes an avatar display area 900A, a feature selection control area 900B, and a feature option control area 900C. The avatar display area 900A displays the avatar currently selected for editing. In Figure 9A, the currently selected avatar is avatar 901.
[0222] The feature selection control area 900B includes ribbons 907-911 of feature representations. Each representation corresponds to a feature of the avatar 901 (e.g., eyes, ears, nose, face, glasses, hair, chin, eyebrows). If additional feature representations are available but cannot be displayed due to spatial constraints, the device 600 displays the additional feature representations in response to user input, such as swiping in the feature selection control area 900B. The feature selection control area 900B also includes an indicator that shows the currently selected avatar feature. In Figure 9A, the bolding on representation 909 indicates that the feature associated with representation 909 is selected for editing. Other examples use other indicators (e.g., arrows, highlighting, or centering). In some examples, one or more feature representations are shaped like the corresponding features. For example, if feature representation 908 corresponds to the avatar's eyes, feature representation 908 is shaped like an eye or created in another way to graphically indicate that it corresponds to an eye.
[0223] The feature option control area 900C includes ribbons 902-906 of option representations corresponding to different available options for the selected avatar feature. For example, in Figure 9A, if feature representation 909 corresponds to an ear feature, option representations 902-906 represent different types of ears (e.g., shape, size, appearance) in some examples. Similar to feature representations, one or more of the option representations have the shape of the corresponding option. For example, if feature representation 909 corresponds to the avatar's ear, feature representation 909 is shaped like an ear or created in another way to graphically indicate that it corresponds to an ear. Similarly, one or more option representations 902-906 have shapes that reflect the type of ear corresponding to the representation. For example, the option representation for small, wide ears is small and wide (compared to other representations) in some examples. The option control area 900C also includes an indicator that shows the currently selected option. In Figure 9A, the bold on representation 906 indicates that the option associated with representation 906 is selected for avatar 901. In other examples, other indicators (e.g., arrows, highlighting, or centering) are used.
[0224] Figure 9B shows the avatar customization interface 900 after a new feature has been selected for editing, for example, via touch input 912 (Figure 9A) on feature representation 908 corresponding to the avatar's hair. In Figure 9B, device 900 updates the avatar customization interface 900 to indicate that a feature corresponding to representation 908 (e.g., the hair in Figure 9B) has been selected for editing, displays option representations 913-917 corresponding to the selected feature for editing, indicates that option representation 915 (e.g., the hairstyle of avatar 901 depicted in Figure 9B) is the currently selected feature option for avatar 901, displays a color selection control area 900D including color representations 918-922 corresponding to the available colors of the selected feature option, and displays the currently selected color (the color corresponding to representation 920) of the currently selected feature option.
[0225] Figure 9C shows the avatar customization interface 900 after the user has selected a new hairstyle corresponding to expression 917, for example via touch 923 in Figure 9B. Avatar 901 has been updated to reflect the new hairstyle. The avatar customization interface 900 has also been updated to indicate that expression 917 is the currently selected feature option.
[0226] Figure 9D shows the avatar customization interface 900 after the user has selected a new hair color corresponding to expression 922, for example via touch 924 in Figure 9C. Avatar 901 has been updated to reflect the new hair color. The avatar customization interface 900 has also been updated to indicate that expression 922 is the currently selected color option.
[0227] Figure 9E shows the avatar customization interface 900 after the additional feature representations 926-930 are displayed in the feature selection control area 900B. These additional feature representations 926-930 are displayed, for example, in response to a swipe gesture (e.g., swipe gesture 925 in Figure 9D) received on the display 601 via the feature selection control area 900B. In some embodiments, additional options and color representations are displayed in the feature option control area 900C and the color selection control area 900D, respectively, in response to similar inputs received in those areas.
[0228] Figure 9F shows the avatar customization interface 900 after a feature corresponding to expression 927 (in this example, glasses) has been selected for editing, for example, via touch 931 in Figure 9E. Option expressions 932-936 display different style options for the avatar's glasses. Option expression 934 corresponds to the no-glasses option and is reflected in avatar 901 in Figure 9F. Additionally, color expressions 937-941 are available for the glasses feature, but since the no-glasses option is currently selected, the color expressions are not currently shown as selected.
[0229] Figure 9G shows the avatar customization interface 900 after a style of glasses corresponding to representation 936 has been selected, for example, via touch 937 in Figure 9F. Representation 936 corresponds to the glasses depicted as being worn by avatar 901, so that it is reflected in avatar 901. Also, a color corresponding to representation 939 is selected for the glasses, either by default or by user selection.
[0230] Figure 9H shows the completion of the avatar customization process in response to the selection of the next button 939 (Figure 9G) via touch 940, for example, in Figure 9G. Depending on the selection of the back button 941, the user can re-enter the avatar customization process. Depending on the selection of the continue button 942, the user can continue the process called the avatar customization process, or, in some embodiments, the continue button 942 is in place of an exit button to exit the application.
[0231] Figure 10 is a flowchart illustrating a method for customizing a user avatar using an electronic device according to several embodiments. Method 1000 is performed on a device having a display (e.g., 100, 300, or 500). Some operations of Method 1000 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0232] As described below, Method 1000 provides an intuitive method for customizing a user avatar. This method reduces the cognitive burden on the user when customizing the avatar, thereby creating a more efficient human-machine interface. In the case of battery-powered computing devices, power is saved and the intervals between battery charges are extended by allowing users to customize their user avatars faster and more efficiently.
[0233] An electronic device (e.g., device 600 in Figure 9A) comprising a display (e.g., display 601) and one or more input devices (e.g., display 601 if it is a touch-sensitive display). The electronic device displays an avatar editing user interface (e.g., 900) on the display (1002) which simultaneously includes the following displays: an avatar (e.g., 901) (e.g., an avatar loaded from memory or an avatar generated according to a previous request) having multiple editable features (e.g., 907-911) (e.g., hairstyle, facial features, clothing style, accessories); a first avatar feature (e.g., 909 in Figure 9A) (e.g., the hairstyle feature category corresponds to multiple hairstyle types such as no hair, curly hair, straight hair); and a second avatar feature (e.g., 907, 908, 910, or 909) that is not currently selected for modification. A feature selection control area (e.g., 900B) including representations of multiple avatar features (e.g., 907-911) (e.g., the hair feature category would have affordances that make it look like a wig, the nose feature category would have affordances that make it look like a nose, and so on, user-selectable user interface objects in shapes corresponding to the categories), and a feature option control area (e.g., 900C) including representations of multiple options for the first avatar feature for selection (e.g., 902-906), including a first option for the currently selected first avatar feature (e.g., 906) and a second option for the currently unselected first avatar feature (e.g., 902-903). In some embodiments, the representations in the feature selection control area have shapes based on the shapes of the corresponding avatar features. In some embodiments, the representations in the feature option control area have shapes based on the shapes of the corresponding avatar feature options. In some embodiments, the avatar display includes an indicator of the first avatar feature when the first avatar feature is currently selected. By displaying different control areas for feature selection and feature options, the electronic device provides an avatar customization process enhanced with an intuitive interface that is more quickly understood by the user.This allows users to customize their avatars with less interaction, leading to increased efficiency in electronic devices, reduced power consumption, and improved battery life.
[0234] The electronic device displays the avatar editing user interface and detects inputs (e.g., 912) in the avatar editing user interface (1004). In response to the detection of an input (1006), the electronic device updates the feature selection control area to indicate that the second avatar feature is currently selected (1010) (e.g., 9B) (e.g., by moving a feature indicator to highlight the second avatar feature), and updates the feature option control area to include representations of multiple options for the second avatar feature to be selected (e.g., 913-917) (for example, in some embodiments, the representation of curly hair looks curly, and so on) (1012). In some examples, the representation of the feature option is the same shape as the corresponding feature option. In some examples, the representation of the feature option for the first feature is replaced by the feature option for the second feature. For example, if the first feature is hairstyle and the second feature is nose style, the display of different hairstyle options would be replaced with a display of affordances for different nose style options.
[0235] When the electronic device determines that an input (e.g., 923) corresponds to the selection of a second option (e.g., 917) of a first avatar feature within the feature option control region (1014), it updates the feature option control region to indicate that the second option of the first avatar feature is currently selected (1016) (Figure 9C), and updates the avatar to change the appearance of the first avatar according to the second option of the first avatar feature (1018) (e.g., the hair of avatar 901 is updated from Figure 9B to Figure 9C) (e.g., the avatar is modified based on the characteristics of the feature option, or if the feature selection is about a nose style, the shape of the nose changes to correspond to the selected nose style). In some embodiments, the electronic device updating the avatar to change the appearance of the features of the first avatar according to the second option of the first avatar feature includes the electronic device transitioning from the first avatar feature based on the first option to the first avatar feature based on the second option via animation. In some embodiments, upon detection of input, the feature option control area is updated without updating the feature selection control area, according to a determination that the input corresponds to the selection of a second option for a first avatar feature in the feature option control area (1020) (for example, the hair of avatar 901 is updated from Figure 9B to Figure 9C, but the feature selection control area remains unchanged). In some embodiments, upon detection of input, the feature selection control area is updated without changing the avatar, according to a determination that the input corresponds to the selection of a second avatar feature in the feature selection control area (1020) (for example, the transition from Figure 9A to Figure 9B updates the feature selection control area, but the avatar remains unchanged). In some examples, the input includes gesture input, such as a tap, swipe, or other type of gesture. By separating the updating of the display of feature options and feature selections, the usability of the electronic device is improved, the electronic device is made more efficient, power consumption is reduced, and the battery life of the device is improved by not updating the control area or avatar when the corresponding part is not changed, while maintaining the ability of the user to review which other features and options are available.
[0236] According to some embodiments, displaying an avatar editing user interface involves an electronic device simultaneously displaying a color selection area (e.g., 900D) on a display that includes representations (e.g., 918-922) of multiple color options for a first avatar feature, including a currently selected first color (e.g., 920) and a second color not currently selected (e.g., 918, 919, 921, or 922), the color selection area being displayed simultaneously with the avatar (e.g., 901), a feature selection control area (e.g., 900B), and a feature option control area (e.g., 900C). In some embodiments, while displaying the color selection area, the electronic device updates the display of the first avatar feature in the avatar based on the second color in response to detection of user input (e.g., 924) corresponding to the selection of a second color (e.g., 922) (e.g., Figure 9D).
[0237] According to some embodiments, the first avatar feature is the avatar's clothing (e.g., a shirt, hat, or tie), and updating the display of the avatar's first avatar feature based on a second color includes updating the color of the avatar's clothing to the second color (e.g., changing some part of the clothing, such as the color of the entire clothing or a part of the color of a pattern on the clothing). In some embodiments, the first avatar feature (e.g., 924) is the avatar's accessory (e.g., glasses, hat, earrings, or jewelry).
[0238] According to some embodiments, the display is a touch-sensitive display, and in response to receiving a gesture (e.g., a touch and drag gesture, or a pinch gesture) on the touch-sensitive display, it modifies the characteristics of a first avatar feature based on the gesture and updates the avatar display based on the modified parameters. In some examples, the received gesture is a pinch gesture, a touch and drag gesture, or another type of gesture. In some embodiments, the modification occurs according to the process described with respect to Figures 15A-15F and 16A-16B below. Modifying avatar features using gestures makes the avatar customization process more efficient by avoiding the use of more complex controls to adjust the settings of various features. This allows more information to be presented on the screen, enables the electronic device to operate more efficiently, improves overall performance, and / or extends battery life.
[0239] According to some embodiments, the electronic device displays an avatar management interface containing a plurality of pre-stored avatars (e.g., a 3x3 list of avatars), receives user input to select a pre-stored avatar, and displays the pre-stored avatar in the avatar editing user interface in response to the user input selecting a pre-stored avatar. By providing different variations of the generated avatar, the electronic device enhances the avatar editing process by making user selection of avatars that users comfortably share as representations of the user faster, thereby making the electronic device more efficient, reducing power consumption, and improving the battery life of the device.
[0240] According to some embodiments, an electronic device updates an avatar to change the appearance of a first avatar feature according to a second option of the first avatar feature, and then stores the avatar as an avatar recipe (e.g., a non-graphical representation of the avatar), the avatar recipe defining an avatar structure that includes a second option (e.g., eyes, nose, mouth, glasses) and avatar parameters (e.g., eye color, nose size, mouth shape, glasses type).
[0241] According to some embodiments, an electronic device sends an avatar recipe to a contact. In some examples, the avatar recipe is sent to another user in response to user input corresponding to a request to send the avatar recipe to another user. For example, as will be described later with respect to process 1300 in Figures 13A and 13B, the avatar recipe is sent to another user.
[0242] According to some embodiments, an electronic device updates the display of an avatar with an avatar animation if no input related to the avatar editing user interface is detected via one or more input devices for a predetermined period of time (e.g., a predetermined period after liftoff, after the user has stopped touching the touchscreen).
[0243] According to some embodiments, the electronic device updates the avatar to change the appearance of a first avatar feature according to a second option of the first avatar feature (for example, in Figures 9F-9G, the avatar is updated to include glasses), and the electronic device modifies the avatar's facial expression based on the second option. In some examples, the first avatar feature is glasses, and the first and second options are different styles of glasses, and selecting the second option randomly causes the avatar to smile, give a positive reaction, or provide other feedback.
[0244] In some embodiments, while displaying an avatar, the electronic device updates the eyes of the avatar based on the position associated with the input (e.g., the position of the cursor on the screen or the position of a touch input) in response to detecting an input (e.g., a mouse cursor or a touch) via one or more input devices of the electronic device. In some embodiments, the electronic device updates the avatar based on an animation loop, which includes a series of expressions of the avatar. In some embodiments, the animation loop has a duration, and the electronic device determines a random time offset less than this duration, and updating the avatar based on the animation loop includes updating the avatar starting at a certain position within the animation loop based on the random time offset (e.g., to avoid synchronization of the animation loops with other avatars displaying the same animation loop). In some embodiments, the electronic device stops updating the avatar based on the animation loop after a predetermined period. By ensuring that multiple avatars displayed together (e.g., avatars of different users) are not animated identically by animating the avatar in response to an animation loop with a random start time, the electronic device is enhanced. This increases the likelihood that the user can continue to interact with the avatar during the customization process or in other situations.
[0245] According to some embodiments, FIG. 11 shows an exemplary functional block diagram of an electronic device 1100 configured in accordance with the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 1100 are configured to perform the aforementioned techniques. The functional blocks of the device 1100 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. Those skilled in the art will understand that the functional blocks described in FIG. 11 may optionally be combined or separated into sub-blocks to perform the principles of the various examples described. Thus, the description herein optionally supports any possible combination or separation of the functional blocks described herein, or further definitions.
[0246] As shown in FIG. 11, the electronic device 1100 includes a display unit 1102 configured to display a graphical user interface, an input unit 1104, and a processing unit 1106 connected to the display unit 1102 and the input unit 1104. In some embodiments, the processing unit 1106 includes a display activation unit 1110, a detection unit 1112, an update unit 1114, optionally a correction unit 1116, a reception unit 1118, a storage unit 1120, a transmission unit 1122, and a determination unit 1124.
[0247] The processing unit 1106 is configured to display the avatar editing user interface (for example, using the display activation unit 1110), and the avatar editing user interface includes the following simultaneous display: an avatar having multiple editable features, a feature selection control area including a representation of multiple avatar features including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, and a feature option control area including a representation of multiple options for the first avatar feature to be selected, including a first option for the currently selected first avatar feature and a second option for the first avatar feature not currently selected. The processing unit 1106 is further configured to display the avatar editing user interface and to detect input in the avatar editing user interface (for example, using the detection unit 1112). The processing unit 1106, upon detection of input, updates the feature selection control region (e.g., using the update unit 1114) to indicate that the second avatar feature is currently selected, in accordance with the determination that the input corresponds to the selection of a second avatar feature in the feature selection control region, and updates the feature option control region (e.g., using the update unit 1114) to include representations of multiple options for the second avatar feature to be selected, including the first option for the currently selected second avatar feature and the second option for the second avatar feature that is not currently selected. The processing unit 1106 is further configured to update the feature option control region (e.g., using the update unit 1114) to indicate that the second option for the first avatar feature is currently selected, in accordance with the determination that the input corresponds to the selection of a second option for the first avatar feature in the feature option control region, and to update the avatar (e.g., using the update unit 1114) to change the appearance of the first avatar feature according to the second option for the first avatar feature.
[0248] In some embodiments, upon detection of an input, the feature option control region is updated without updating the avatar feature control region, according to a determination that the input corresponds to the selection of a second option for a first avatar feature in the feature option control region.
[0249] In some embodiments, the feature selection control region is updated without updating the avatar, in response to the detection of an input and in accordance with the determination that the input corresponds to the selection of a second avatar feature in the feature selection control region.
[0250] In some embodiments, the display of the avatar editing user interface further includes simultaneous display on the display of a color selection area that includes representations of multiple color options for a first avatar feature, including a currently selected first color and a second color that is not currently selected, the color selection area being displayed simultaneously with the avatar, the feature selection control area, and the feature option control area.
[0251] In some embodiments, the processing unit 1106 is further configured to display a color selection area and, in response to detection of user input corresponding to the selection of a second color, update the display of the first avatar features in the avatar based on the second color (for example, using the update unit 1114).
[0252] In some embodiments, the first avatar feature is the avatar's clothing, and updating the display of the avatar's first avatar feature based on a second color includes updating the color of the avatar's clothing to the second color.
[0253] In some embodiments, the first avatar feature is an accessory for the avatar.
[0254] In some embodiments, the display unit is a touch-sensitive display unit, and the processing unit 1106 is further configured to, in response to receiving a gesture on the touch-sensitive display, modify the characteristics of a first avatar feature based on the gesture (e.g., using a modification unit 1116), and update the display of the avatar based on the modified parameters (e.g., using an update unit 1114).
[0255] In some embodiments, the processing unit 1106 is further configured to display an avatar management interface containing a plurality of pre-stored avatars (for example, using a display activation unit 1110), to receive user input to select a pre-stored avatar (for example, using a receiving unit 1118), and to display the pre-stored avatars in the avatar editing user interface (for example, using a display activation unit 1110) in response to the user input to select a pre-stored avatar.
[0256] In some embodiments, the processing unit 1106 is further configured to update the avatar to modify the appearance of the first avatar features according to a second option of the first avatar features, and then store the avatar as an avatar recipe (for example, using the storage unit 1120), the avatar recipe defining an avatar structure including the second option and avatar parameters.
[0257] In some embodiments, the processing unit 1106 is further configured to send the avatar recipe to a contact (for example, using the sending unit 1122).
[0258] In some embodiments, the processing unit 1106 is further configured to receive an avatar recipe for a first contact (for example, using a receiving unit 1118) and to display contact information for a plurality of contacts, including the first contact (for example, using a display enablement unit 1110), wherein the contact information displayed for the first contact includes an avatar based on the first contact's avatar recipe.
[0259] In some embodiments, the avatar display includes an indicator of the first avatar feature when the first avatar feature is currently selected.
[0260] In some embodiments, the representation within the feature selection control region has a shape based on the shape of the corresponding avatar feature.
[0261] In some embodiments, the representation within the feature option control region has a shape based on the shape of the corresponding avatar feature option.
[0262] In some embodiments, the processing unit 1106 is further configured to update the avatar display with avatar animation (for example, using the update unit 1114) if it has not detected any input related to the avatar editing user interface via one or more input devices during a predetermined period of time.
[0263] In some embodiments, updating an avatar to modify the appearance of a first avatar feature according to a second option of the first avatar feature includes modifying the avatar's facial expression based on the second option.
[0264] In some embodiments, the processing unit 1106 is further configured to display the avatar and, in response to detecting input through one or more input devices of the electronic device, update the avatar's eyes (for example, using the update unit 1114) based on the position associated with the input.
[0265] In some embodiments, the processing unit 1106 is further configured to update the avatar (for example, using an update unit 1114) based on an animation loop, the animation loop including a series of facial expressions of the avatar.
[0266] In some embodiments, the animation loop has a duration, and the processing unit 1106 is further configured to determine (e.g., using the determination unit 1124) a random time offset that is less than this duration, and updating the avatar based on the animation loop includes updating the avatar starting at a position within the animation loop based on the random time offset.
[0267] In some embodiments, the processing unit 1106 is further configured to stop updating the avatar based on the animation loop after a predetermined period.
[0268] In some embodiments, updating the avatar to change the appearance of the first avatar feature according to a second option of the first avatar feature includes transitioning the first avatar feature based on the first option to the first avatar feature based on the second option via an animation.
[0269] The operations described above with reference to FIGS. 10A and 10B are optionally implemented by the components shown in FIGS. 1A - 1B or FIG. 11. For example, the detection operation 1004 is optionally implemented by the event sorter 170, the display controller 156, and the touch sensing display system 112. Similarly, it will be apparent to those skilled in the art how other processes can be implemented based on the components shown in FIGS. 1A - 1B.
[0270] FIGS. 12A - 12J show an exemplary user interface using avatar stickers within a message according to some embodiments. The user interfaces of these figures are used to illustrate the processes described below, including the process of FIG. 13.
[0271] Figure 12A shows device 600 (mentioned above with respect to Figure 6A), which in some examples is a specific form factor of device 100, device 300, or device 500. Device 600 includes a display 601, which in some embodiments is a touch-sensitive display.
[0272] In Figure 12A, display 1201 displays a messaging interface 1203, also known as "Joe." The messaging interface 1203 includes a back button 1204, a username 1205, a user image 1206, and a contact information button 1207. For example, by touching the back button 1204 on display 1201, the messaging interface 1203 returns to the main messaging screen where recent messages are displayed and / or is selected for communication with other users, depending on the user's selection of the back button 1204. The username 1205 and user image 1206 indicate the other user currently configured for communication with the messaging interface 1203. The user image 1206 is, for example, the other user's avatar (e.g., an emoji or other graphic representation (e.g., a non-photorealistic representation), an image of the other user, or any other image associated with the other user). Depending on the user's selection of the contact information button 1207, options, settings, and other actions associated with the contact become accessible. In some examples, the contact information button 1207 causes device 1200 to open a contact interface page that allows the user to initiate communication with other users using other channels of communication, to change communication settings about other users, to send certain types of information (e.g., current location) to other users, and / or to review information related to previous communications with that user.
[0273] The messaging interface 1203 includes a message area 1208, which is empty in Figure 12A, and a message input area 1209. The message input area includes a photo button 1210, a drawing button 1211, a sticker button 1212, a text input field 1213, and a voice recognition button 1214. The photo button 1210 allows the user to select an existing image / video or capture a new image / video to include in a message to another user. The drawing button 1211 allows the user to create a sketch to include in a message to another user. The sticker button 1212 allows the user to select a sticker to include in a message to another user. The text input field 1213 allows the user to enter text that will be included in a message to another user. In Figure 12A, the text input field 1213 contains the word "iMessage," indicating the type of text message that will be sent to the other user. The voice recognition button 1214 allows the user to input text into the text input field 1213 by speaking to the device 1200 instead of manually typing the text.
[0274] As shown in Figure 12B, the keyboard 1216 appears on the display 1201 in response to user input, such as touch 1215 in Figure 12A, which selects the text input field 1213. The text input field 1213 is also expanded by moving it upwards on the display, hiding the photo button 1210, drawing button 1211, and sticker button 1212 in Figure 12A. These buttons reappear when the user selects the expand button 1217. In some examples, a cursor (not shown) is also displayed inside the text input field 1213.
[0275] As shown in Figure 12C, in response to character selection on the keyboard 1216 (for example, touches 1218 and 1219 in Figure 12B for the characters "H" and "I" respectively, via touches on the keyboard 1216), the text input field 1213 is updated to include the selected character. Additionally, the voice recognition button 1214 (Figure 12B) is replaced with a send button 1220 to send the currently entered message, including the entered text and other data such as image data, to another user.
[0276] Figure 12D shows the messaging interface 1203 after additional text input via additional touches on the keyboard 1216. The text input field 1213 contains the additional entered text.
[0277] When a user enters text into the text input field 1213, the user indicates that they are ready to send the message, for example, by selecting the send button 1220 via touch 1221 on the display 1201. In response, device 1200 prepares a message containing the text in the text input field 1213, as in the example in Figure 12D. Once the message is ready to send, device 1200 sends the message to the other user (in the examples in Figures 12A-12J, another user named "Joe").
[0278] As shown in Figure 12E, after sending a message to another user, the message content, including the text in the text input field 1213, is displayed in the message area 1208, which is shown in the text box 1222. The text box 1222 optionally also includes other non-text content of the message (e.g., images, animations, videos, etc.). In addition to the display of the text box 1222, an avatar 1223 is also displayed adjacent to the text box 1222 (e.g., the message comes out of the avatar's mouth). In some embodiments, the avatar 1223 is generated based on a predefined (e.g., baseline) avatar or avatar model (e.g., wire, mesh, or structural model) that represents the user of the device 1200.
[0279] Figure 12F shows the messaging interface 1203 after receiving a message from another user named "Joe" (for example, from an electronic device associated with another user named "Joe"). The content of the message is displayed in text box 1224 within message area 1208. The associated avatar 1225 is also displayed adjacent to text box 1224. Like avatar 1223, avatar 1225 is based on a predefined avatar or avatar model, unless a predefined (e.g., baseline) avatar or avatar model represents "Joe," rather than the user of device 1200. The predefined avatar or avatar model is optionally set by the user of device 1200 or provided by another user or remote server. Device 1200 optionally stores the predefined avatar or avatar model locally, or retrieves a predefined avatar or avatar model as needed.
[0280] Figure 12G shows the messaging interface 1203 updated with a sticker interface 1227, which is displayed in response to a user selection of a sticker button 1212, for example, by touch 1226 in Figure 12F. The sticker interface 1227 displays three avatar stickers 1228, 1229, and 1230 based on a predefined (e.g., baseline) avatar or avatar model (e.g., wire, mesh, or structural model) representing the user of device 1200. For example, if a recipe is used to define a baseline avatar, avatar stickers are generated in the sticker interface 1227 based on the recipe, for example, by adding elements to or modifying existing elements in the avatar recipe. In some embodiments, the avatar recipe is a non-graphical representation of the avatar. For example, in some cases, the avatar recipe is defined using a structured document such as XML, or using an exchange format such as JSON. The recipe optionally defines the avatar in terms of structural features (e.g., eyes, ears, mouth, hair) and / or various settings for those features (e.g., size, orientation, style, color).
[0281] Stickers within the sticker interface 1227 are optionally generated based on context obtained, for example, from device 600 (e.g., location, weather at that location, calendar appointments) or from the message interface (e.g., messages already received or sent, and / or message text that has been entered but not sent, and / or the recipient of the sticker).
[0282] In Figure 12G, as an example, sticker 1230 was generated based on a predefined avatar model and information from the messaging interface 1203 indicating that the conversation was about cooking. Similarly, sticker 1229 was generated based on a predefined avatar model and information from the messaging interface 1203 indicating that the conversation was about the user of device 600 bringing something to Joe. Sticker 1228 is generated based on a predefined avatar model and is not based on context from device 600 or the messaging interface 1203. Instead, sticker 1228 is the sticker most frequently used by the user of device 600. Sticker 1228 is animated, as indicated by the arrow. The sticker interface 1227 shows three stickers, but additional stickers, if any, can be optionally accessed, for example, via a horizontal swipe gesture on the interface.
[0283] In response to a drag-and-drop gesture 1231, in which sticker 1230 is dragged from sticker interface 1227 to text box 1224, the sticker is attached to text box 1223. Specifically, sticker 1232, identical to sticker 1230 in Figure 12G, is placed on text box 1224 as shown in Figure 12H. Sticker 1232 is also sent to Joe along with additional information (e.g., placement information) of a similar placement on Joe's text box displayed on Joe's device. In some embodiments, an avatar sticker recipe is sent to Joe representing sticker 1232. In some embodiments, if Joe's electronic device already has or can acquire the baseline avatar model of the user of device 600, only additions or modifications to the baseline avatar model of the user of device 600 are sent to Joe's electronic device.
[0284] Figure 12I shows the messaging interface after the user has entered message text in the text input field 1213, in a manner similar to that described in Figures 12A-12D. The user has also re-entered the sticker interface 1227. However, this time a different set of stickers has been generated. Specifically, sticker 1233 shows the user's avatar in response to, for example, the electronic device 600 determining that it is raining at the user's current location.
[0285] For example, depending on the selection of sticker 1229 via touch 1234, sticker 1229 and the already entered text portion of the message are sent to JOY and displayed in the messaging interface 1203 as text box 1235 and sticker 1236, as shown in Figure 12J.
[0286] Figures 13A and 13B are flowcharts illustrating a method for using avatar stickers in messages on an electronic device according to some embodiments. Method 1300 is performed on devices having displays (e.g., 100, 300, 500). Some operations of Method 1300 are optionally combined, the order of some operations is optionally changed, and some operations are optionally omitted.
[0287] As described later, Method 1300 provides an intuitive way to use avatar stickers in messages. This method reduces the cognitive burden on the user when using avatar stickers in messages, thereby creating a more efficient human-machine interface. In the case of battery-powered computing devices, power is saved and the interval between battery charges is extended by enabling users to use avatar stickers in messages more quickly and efficiently.
[0288] An electronic device (e.g., device 600 in Figure 12A) has a display (e.g., display 601) and one or more input devices. The electronic device displays a messaging interface (e.g., 1203) (e.g., a message input interface after another user has been selected) (1302) of a messaging application (e.g., iMessages or another messaging application) for sending messages between a first user of the device and other users, and the first user is represented in the messaging application by a first user avatar (e.g., 1233) that distinguishes the first user of the device from other users (e.g., associated with 1206 and 1225). While displaying the messaging user interface, the electronic device receives a first request (e.g., gesture 1226) (1304) and displays a sticker user interface (e.g., 1227) for selecting stickers (e.g., 1228-1230) to send to a second user.
[0289] In response to a first request to display a sticker user interface, the electronic device displays a sticker user interface on the display that includes a first set of avatar stickers (e.g., 1228-1230) generated based on the user's avatar, including the following simultaneous display (1306): A first avatar sticker (e.g., 1228) is generated based on a modification of an avatar representing the user (e.g., 1223) (e.g., avatar recipe parameters are added to, modified, and / or removed from the avatar recipe to generate an avatar sticker), (e.g., modified to smile, hold an umbrella, or run), and a second avatar sticker (e.g., 1229) is generated based on a modification of an avatar representing the user that is different from the first avatar sticker. By modifying an existing avatar to generate user avatar stickers, electronic devices can operate more efficiently and have greater flexibility by being able to change which stickers they generate and / or display without having to first generate a baseline avatar, thereby improving the efficiency of the electronic device, reducing power consumption, and improving the battery life of the device.
[0290] The electronic device detects a sequence of one or more inputs (e.g., gestures 1231 or 1234) via one or more input devices (e.g., display 601) (1308) that respond to a request to send a corresponding avatar sticker (1230) from a first user to a second user via a messaging application, while displaying multiple affordances of an avatar selection interface on a display. In some examples, the sequence of one or more inputs corresponds to a gesture of selecting a sticker, dragging the sticker to a specific location in the messaging interface, and releasing the selected sticker. In some examples, the sequence of one or more inputs is a tap gesture of the selected sticker to send to another user.
[0291] In response to the detection of a sequence of one or more inputs (1310): the electronic device, in accordance with the determination that this sequence of one or more inputs corresponds to the selection of a first avatar sticker, sends a first avatar sticker to a second user via a messaging application from the first user to the second user (1312) (e.g., Figures 12-12H), and in accordance with the determination that this sequence of one or more inputs corresponds to the selection of a second avatar sticker (e.g., 1229), sends a second avatar sticker to a second user via a messaging application from the first user to the second user (1314) (e.g., Figures 12I-12J).
[0292] According to some embodiments, the user's avatar is based on an avatar recipe (e.g., a non-graphic representation of the avatar) (1316). In some examples, the avatar recipe is a structured document, such as XML, that defines the avatar features and parameters used to generate the avatar. In some embodiments, a first avatar sticker is generated by modifying a first parameter of the user's avatar recipe (1318). In some embodiments, the first avatar sticker (e.g., 1228) is animated (e.g., in the first avatar sticker, the avatar is waving, winking, or being rained on). In some embodiments, a second avatar sticker (e.g., 1230) includes props (e.g., an umbrella, a flag, or other objects near the avatar or objects typically associated with the avatar, such as glasses). In some examples, the user's avatar recipe includes parameters that represent the user's facial expressions or emotions. Optionally, adding facial expression or emotion parameters to an avatar recipe will affect how multiple features in a first avatar sticker are generated. For example, the emotion of happiness alters the appearance of the mouth, eyes, and facial contours in the corresponding first avatar sticker compared to the appearance of those features in an avatar sticker generated from an unmodified sticker. In some embodiments, a second avatar sticker is generated by adding a second parameter to the avatar recipe of a user's avatar (1320). In some examples, parameters are added to the avatar recipe, such as a parameter representing an avatar accessory. In one example, an umbrella parameter is added so that the avatar sticker includes an avatar generated from an avatar recipe under an umbrella. In some embodiments, sending a first avatar sticker to a second user includes sending the user a recipe representing the first avatar sticker. By generating and / or transmitting avatar stickers using avatar recipes, less data can be transmitted faster, processing requirements are lower, and the performance of the electronic devices involved (e.g., battery life and responsiveness) is improved.
[0293] According to some embodiments, as part of the transmission of a first avatar sticker from a first user to a second user via a messaging application of an electronic device, sending the first avatar sticker to the second user (1322) according to the determination that the device associated with the second user supports avatar recipes (for example, this device is using the same messaging application as the first user, or a different, compatible messaging application) includes sending the user a recipe representing the first avatar sticker, and sending the user a graphical representation of the first avatar sticker (1324) according to the determination that the device associated with the second user does not support avatar recipes. By sending the first avatar sticker as a recipe, the electronic device can send less data and send this data more quickly than if it were sending a graphical representation, thereby improving the efficiency and performance of the electronic device. In some embodiments, data can be further reduced by sending only additions or modifications to the baseline avatar of the user of the electronic device that the recipient's electronic device already has access to.
[0294] According to some embodiments, the sticker user interface is displayed simultaneously with at least a portion of the messaging interface (e.g., Figures 12G and 12I). In some examples, the sticker interface is displayed overlapping a portion of the messaging interface. In some examples, the sticker interface is displayed next to the messaging interface (e.g., to the left or right, or above or below). In some examples, the messaging interface slides in one direction, so that the sticker interface and messaging interface are displayed simultaneously without overlapping. By displaying the messaging interface and the sticker user interface, the electronic device provides a better user experience that allows the user to select an avatar sticker and send it as part of a message in the messaging application while reviewing past messages. This improves the human-machine interface by displaying more data on the screen and facilitating sustained interaction with the device.
[0295] According to some embodiments, the electronic device receives user input of the text portion of a user message (e.g., 1213) before receiving a request to display a sticker user interface, and after detecting a sequence of one or more inputs, transmits the text portion of the user message to a second user via a messaging application (e.g., Figures 12I-12J). By allowing text input before selecting an avatar sticker, the electronic device enables the user to send messages incorporating both text and sticker content, reducing the number of user interactions required to send the desired information (e.g., the user only needs to send one message instead of multiple messages), thereby improving the efficiency of the electronic device, reducing power consumption, and improving the battery life of the device.
[0296] According to some embodiments, after transmitting a first avatar sticker or a second avatar sticker, the electronic device detects a second sequence of one or more inputs via one or more input devices (for example, Figure 12J) that corresponds to a request from a first user to a second user via a messaging application, while displaying a plurality of affordances of an avatar selection interface on a display. In response to the detection of the second sequence of one or more inputs, and in accordance with the determination that this sequence of one or more inputs corresponds to the selection of the second avatar sticker, the electronic device sends the second avatar sticker from the first user to the second user via the messaging application.
[0297] According to some embodiments, Figure 14 shows an exemplary functional block diagram of an electronic device 1400 configured according to the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 1400 are configured to perform the aforementioned techniques. The functional blocks of device 1400 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. It will be understood by those skilled in the art that the functional blocks described in Figure 14 are optionally combined or separated into subblocks to perform the principles of the various examples described. Accordingly, the description herein optionally supports any possible combination or separation of the functional blocks described herein, or further definitions.
[0298] As shown in Figure 14, the electronic device 1400 includes a display unit 1402 configured to display a graphic user interface, an input unit 1104, and a processing unit 1406 coupled to the display unit 1402 and the input unit 1104. In some embodiments, the processing unit 1406 includes a display activation unit 1410, a receiving unit 1412, a detection unit 1414, a transmitting unit 1416, and optionally a receiving unit 1418.
[0299] The processing unit 1406 is configured to display (for example, using the display enablement unit 1410) the messaging interface of a messaging application that sends messages between a first user of the device and other users, the first user being represented in the messaging application by a user avatar that distinguishes the first user of the device from other users. The processing unit 1406 is further configured to receive (for example, using the receiving unit 1412) a first request to display a sticker user interface that selects stickers to send to a second user, while displaying the messaging user interface. In response to the first request to display the sticker user interface, the processing unit 1406 is configured to display (for example, using the display enablement unit 1410) a sticker user interface that includes a first set of avatar stickers generated based on the user's avatar, including the simultaneous display on the display unit: a first avatar sticker generated based on a modification of the avatar representing the user, and a second avatar sticker generated based on a modification of the avatar that represents the user and is different from the first avatar sticker. The processing unit 1406 is configured to detect, via one or more input devices (for example, using the detection unit 1414), a sequence of one or more inputs corresponding to a request to send an avatar sticker from a first user to a second user via a messaging application, while displaying multiple affordances of an avatar selection interface on the display.In response to the detection of one or more input sequences: The processing unit 1406 is configured to send a first avatar sticker for the second user from the first user to the second user via a messaging application (for example, using the transmission unit 1416) according to the determination that this sequence of one or more inputs corresponds to the selection of a first avatar sticker, and to send a second avatar sticker from the first user to the second user via a messaging application (for example, using the transmission unit 1416) according to the determination that this sequence of one or more inputs corresponds to the selection of a second avatar sticker.
[0300] In some embodiments, the user's avatar is based on an avatar recipe. In some embodiments, a first avatar sticker is generated by modifying a first parameter of the user's avatar's avatar recipe. In some embodiments, a second avatar sticker is generated by adding a second parameter (e.g., a parameter to add an accessory or specify an expression) to the user's avatar's avatar recipe. In some embodiments, sending the first avatar sticker to a second user includes sending the recipe representing the first avatar sticker to the second user.
[0301] In some embodiments, the processing unit 1406 is configured to send a first avatar sticker to a second user from a first user to a second user via a messaging application, and further includes the processing unit 1406 sending the first avatar sticker to the second user (e.g., using the sending unit 1416), which includes sending the user a recipe representing the first avatar sticker, according to the determination that the device associated with the second user supports avatar recipes, and sending the user a graphical representation of the first avatar sticker (e.g., using the sending unit 1416), according to the determination that the device associated with the second user does not support avatar recipes.
[0302] In some embodiments, the sticker user interface is displayed simultaneously with at least a portion of the messaging interface. In some embodiments, the first avatar sticker is animated. In some embodiments, the second avatar sticker includes a prop.
[0303] In some embodiments, the processing unit 1406 is further configured to receive user input of the text portion of a user message (e.g., using the receiving unit 1418) before receiving a request to display a sticker user interface, and to send the text portion of the user message to a second user via a messaging application (e.g., using the sending unit 1416) after detecting a sequence of one or more inputs.
[0304] In some embodiments, the processing unit 1406 is configured to, after transmitting a first avatar sticker or a second avatar sticker, to detect a second sequence of one or more inputs via one or more input devices that corresponds to a request to send the corresponding avatar sticker from a first user to a second user via a messaging application, while displaying a plurality of affordances of an avatar selection interface on a display; and, in response to the detection of the second sequence of one or more inputs, to send the second avatar sticker from the first user to the second user via the messaging application, according to a determination that the sequence corresponds to the selection of the second avatar sticker.
[0305] The operations described above with reference to Figures 13A and 13B are optionally performed by the components shown in Figures 1A-1B or Figure 14. For example, the detection operation 1308 is optionally performed by the event sorter 170, the display controller 156, and the touch-sensitive display system 112. Similarly, it will be obvious to those skilled in the art how other processes can be performed based on the components shown in Figures 1A-1B.
[0306] Figures 15A to 15F show exemplary user interfaces for notifications in several embodiments. The user interfaces in these figures are used to illustrate the processes described later, including the process shown in Figure 16.
[0307] Figure 15A shows device 600 (mentioned above with respect to Figure 6A), which in some examples is a specific form factor of device 100, device 300, or device 500. Device 600 includes a display 601, which in some embodiments is a touch-sensitive display.
[0308] In Figure 15A, device 600 displays the avatar customization interface 1500 on display 601. In some embodiments, the avatar customization interface 1500 is the same as the avatar customization interface 900 described above with respect to Figures 9A-9H. The avatar customization interface 1500 includes the display of avatar 1501, a feature selection control area including feature representations 1507-1511, and a feature option control area including option representations 1502-1506. Feature representations 1507-1511 correspond to editable avatar features in the avatar customization interface 1500 and include an indicator (bolded indicator 1508) that identifies the representation corresponding to the feature currently selected for editing. Option representations 1502-1511 correspond to feature options, each corresponding to a different style (e.g., shape, size, type) of the selected feature. In some embodiments, the feature selection control area and the feature option control area are implemented in the same way as described above with respect to Figures 9A-9H.
[0309] The avatar customization interface 1500 also includes an indicator 1512 that provides a visual indication of which avatar feature is currently selected for editing in the feature selection control area. In some embodiments, other indicators such as highlighting, circles, feature movement, and / or other styles of indicators are used.
[0310] The avatar customization interface 1500, if the display 601 is a touch-sensitive display, allows editing of selected avatar features in response to gestures received on the display 601. The device 600 determines appropriate modifications to the avatar 1501 based on any of several factors, including the type of gesture (e.g., tap, pinch, drag, rotate), direction (e.g., vertical, horizontal, clockwise, counterclockwise, expand, squeeze), the currently selected avatar feature, and / or the location of the gesture.
[0311] For example, when the ear is currently selected for editing (representation 1508 corresponds to the ear), if the pinch gesture 1513 in Figure 15A is received, the device 600 enlarges / reduces the ear according to the pinch gesture (e.g., enlarges the ear with an expanding pinch and shrinks it with a shrinking pinch). The result of the expanding pinch 1513 on avatar 1501 in Figure 15A is shown in Figure 15B. Specifically, in Figure 15B, the ear of avatar 1501 is larger than the ear of avatar 1501 in Figure 15A.
[0312] As another example, if the ear is currently selected for editing (representation 1508 corresponds to the ear) and the vertical drag gesture 1514 in Figure 15B is received, the device 600 moves the vertical position of the ear in response to this drag gesture (for example, an upward drag moves the ear upward, and a downward drag moves the ear downward). The result of the vertical drag 1514 on avatar 1501 in Figure 15B is shown in Figure 15C. Specifically, in Figure 15C, the ear of avatar 1501 has moved upward compared to the ear of avatar 1501 in Figure 15B.
[0313] Figure 15D shows the avatar customization interface 1500 in response to the electronic device 600 receiving a selection of a different feature representation (e.g., representation 1509) via touch 1515 in Figure 15C. In Figure 15D, indicator 1512 has moved to indicate that the feature corresponding to representation 1509 selected for editing is the nose. The feature option control area also includes the new feature option representations 1516-1520. As previously mentioned with respect to Figures 9A-9H, the color selection control area, which has color representations 1521-1525, also displays an indication that the color corresponding to representation 1525 is currently selected.
[0314] When the pinch gesture 1526 in Figure 15D is received while the nose is currently selected for editing (representation 1509 corresponds to the nose), device 600 changes the width of the nose in response to this pinch gesture (for example, an expanding pinch widens the nose, while a contracting pinch narrows it). The result of an expanding pinch 1526 on avatar 1501 in Figure 15D is shown in Figure 15E. Specifically, in Figure 15E, the nose of avatar 1501 is wider than the nose of avatar 1501 in Figure 15D. Based on the different avatar features selected for editing, the effect of pinch gesture 1526 (Figure 15D) (changing the width) is different from the effect of pinch gesture 1513 (Figure A) (changing the size).
[0315] When the vertical drag gesture 1527 in Figure 15E is received while the nose is currently selected for editing (representation 1509 corresponds to the nose), device 600 moves the vertical position of the nose in response to the drag gesture (for example, an upward drag moves the nose upward, and a downward drag moves the nose downward). The result of the vertical drag 1527 in Figure 15E on avatar 1501 is shown in Figure 15F. Specifically, in Figure 15F, the nose of avatar 1501 has moved upward compared to the nose of avatar 1501 in Figure 15E. In this case, even if different avatar features are selected, the effect of the vertical drag gesture 1514 (Figure 15B) is the same as the effect of the vertical drag gesture 1527 (Figure 15D) (both gestures result in an adjustment of the nose's position).
[0316] Figure 16 is a flowchart illustrating how to edit an avatar using gestures on an electronic device according to several embodiments. Method 1600 is performed on a device having a display (e.g., 100, 300, 500). Some operations of Method 1600 are combined optionally, the order of some operations is changed optionally, and some operations are omitted optionally.
[0317] As described later, Method 1600 provides an intuitive way to edit avatars using gestures. This method reduces the cognitive burden on the user regarding editing avatars using gestures, thereby creating a more efficient human-machine interface. In the case of battery-powered computing devices, power is saved and the intervals between battery charges are extended by enabling users to edit avatars more quickly and efficiently using gestures.
[0318] The electronic device has a display and a touch-sensitive surface. The electronic device displays an avatar editing interface (e.g., 1500) on the display (1602) which includes an avatar (e.g., 1501) having a plurality of editable features (e.g., an avatar generated from the aforementioned process or an avatar retrieved from memory or a remote server). In some embodiments, the avatar editing interface includes a first selection indicator having feature affordances (e.g., 1512) (e.g., hair, nose, eyebrows, eyes, ears, glasses) of one or more of the plurality of editable features that can be selected for editing.
[0319] While the corresponding feature among several editable features is the currently selected feature (e.g., the feature corresponding to representation 1508), the electronic device detects a first gesture (e.g., gesture 1513 or gesture 1514) (e.g., swipe, pinch, drag, rotate) on the touch-sensitive surface, which involves the movement of one or more contacts with the touch-sensitive surface (1604).
[0320] In response to the detection of a first gesture (1606), and in accordance with the determination that the first gesture (e.g., 1513 or 1514) is a first type of gesture (e.g., pinch) and the corresponding feature is a first feature (e.g., ear), the electronic device updates the avatar display by modifying the first feature (e.g., ear scale) (e.g., making the ear scale larger or smaller) (1608) (e.g., Figure 15B), where the first feature of the first feature is associated with a first gesture type (e.g., ear scale is associated with the pinch gesture), and the first Upon determining that a gesture is a second type of gesture (e.g., vertical drag) distinct from a first type of gesture, and that the corresponding feature is a first feature (e.g., ears), the electronic device updates the avatar display by modifying a second property of the first feature (e.g., vertical position) that is different from the first property of the first feature (e.g., modifying the position of the ears in response to a vertical drag) (1610) (e.g., Figure 15C), where the second property of the first feature is associated with the second gesture type (e.g., the vertical position of the ears is associated with the vertical drag gesture). In some examples, the mapping of gesture types to different properties of avatar features follows one or more rows in Table 1. By mapping different gestures to different properties of a single feature, as shown in Table 1, the electronic device enhances the avatar editing interface by providing greater granularity for modifying avatar features while offering a simple and intuitive interface without extraneous user interface elements. This allows the user to interact with the electronic device with less interaction. [Table 1]
[0321] Upon detecting a first gesture (e.g., 1526 or 1527), and determining that this gesture is a first type of gesture (e.g., a pinch gesture) and that the corresponding feature is a second feature (e.g., a nose), the electronic device updates the avatar display by modifying the first property of the second feature (e.g., nose width) (in response to a pinch gesture that modifies the width of the nose) (1612) (e.g., Figure 15E), where the first property of the second feature is associated with the first gesture type (e.g., nose width is associated with a pinch gesture). In some embodiments, the first property of the second feature (e.g., nose) (e.g., nose width) is different from the first property of the first feature (e.g., ear) (e.g., ear scale). By mapping the same gesture to different properties of different features, the electronic device provides a simple interface that maintains a high degree of freedom in customizing the avatar with a limited number of simple gestures, thereby improving the overall human-machine interface of the electronic device.
[0322] In some embodiments, the electronic device, upon detecting a first gesture (e.g., 1526 or 1527), updates the avatar display by modifying a second characteristic of the second feature (e.g., the vertical position of the nose) that is different from a second characteristic of the second feature (e.g., the width of the nose), according to the determination that the first gesture is a second type of gesture (e.g., vertical drag) different from a first type of gesture (e.g., pinch) and the corresponding feature is a second feature (e.g., nose) (1614) (e.g., Figure 15F) (e.g., the vertical position of the nose is adjusted in response to a vertical drag), where the second characteristic of the second feature is associated with a second gesture type (e.g., the vertical position of the nose is associated with a vertical drag gesture). In some embodiments, the second characteristic of the second feature (e.g., the width of the nose) is different from the second characteristic of the first feature (e.g., the scale of the ears).
[0323] According to some embodiments, the first type of gesture is a pinch gesture, the first feature is the nose, and the first characteristic is the width of the nose. In some embodiments, the second type of gesture is a vertical drag, and the second characteristic is the vertical position of the first feature. Examples of other gestures are described above with reference to Table 1.
[0324] According to some embodiments, the electronic device stops modifying a first characteristic of a first feature if it determines that a first gesture modifies the first characteristic beyond a first tolerance range for that characteristic. In some embodiments, the electronic device detects an input during the first gesture that corresponds to a modification of the first characteristic beyond the tolerance range for that characteristic. After modifying the first characteristic beyond the tolerance range for that characteristic, the electronic device detects the end of the gesture. In response to the detection of the end of the first gesture, the electronic device updates the avatar display by modifying the first characteristic of the first feature so that it falls within a second tolerance range for the second characteristic. In some examples, the electronic device receives user input that exceeds the tolerance range for a characteristic. In response to this user input, the characteristic is modified beyond the tolerance range for that characteristic. In response to the end of the user input, the display of the characteristic returns to the edge or within the tolerance range for that characteristic. By limiting the amount by which a certain characteristic can be modified, the electronic device improves avatar customization by ensuring that the user does not create invalid avatars that waste the electronic device's resources (e.g., processing time or battery power).
[0325] In some embodiments, the first gesture is detected at a location on a touch-sensitive surface separate from where the first feature is displayed (Figure 15D). In some embodiments, how the first gesture affects the characteristics of the avatar feature depends on the location of the first gesture.
[0326] According to some embodiments, the electronic device receives user input to select a set of preset characteristics (e.g., 1519) for a corresponding feature (e.g., 1509) (e.g., nose) (1616), the set of preset characteristics includes values for a first characteristic (e.g., nose width) and a third characteristic (e.g., nose length), but does not include any values for a second characteristic, and updates the avatar display based on the first and second values in response to the receipt of user input (1618). In some examples, the set of preset characteristics does not include a value for a second characteristic, or includes a value for a second characteristic that has been overridden by a previously set user value for the second characteristic. In some embodiments, the third characteristic is not modifiable except by the selection of one or more preset characteristics. In some embodiments, the avatar display based on the values for the first and third characteristics is based on a pre-set user value for the second characteristic. In some embodiments, the user input to select a set of preset characteristics is a selection of affordances associated with the characteristic, the affordances having shape representations of one or more values in the set of preset characteristics. In some embodiments, the electronic device requests a set of pre-configured characteristics from a remote server in response to user input. By using pre-configured user-defined parameters for the avatar feature characteristics, the electronic device enhances the avatar editing interface by minimizing the re-entry of parameters and necessary interaction after the user selects a new preset for a given feature.
[0327] According to some embodiments, Figure 17 shows an exemplary functional block diagram of an electronic device 1700 configured according to the principles of the various embodiments described. According to some embodiments, the functional blocks of the electronic device 1700 are configured to perform the aforementioned techniques. The functional blocks of device 1700 are optionally implemented by hardware, software, or a combination of hardware and software to perform the principles of the various examples described. It will be understood by those skilled in the art that the functional blocks described in Figure 17 are optionally combined or separated into subblocks to perform the principles of the various examples described. Accordingly, the description herein optionally supports any possible combination or separation of the functional blocks described herein, or further definitions.
[0328] As shown in Figure 17, the electronic device 1700 includes a display unit 1702 configured to display a graphic user interface, and a processing unit 1706 connected to the display unit 1402. In some embodiments, the processing unit 1706 includes a display activation unit 1710, a detection unit 1412, an image capture unit 1414, and a providing unit 1416, and optionally a generation unit 1418, a determination unit 1420, an update unit 1422, a receiving unit 1424, and a storage unit 1426.
[0329] The processing unit 1706 is configured to display an avatar editing interface, which includes an avatar having multiple editable features, on the display (for example, using the display activation unit 1710). While the corresponding feature among the multiple editable features is the currently selected feature, the processing unit 1706 is further configured to detect a first gesture on the touch-sensing surface (for example, using the detection unit 1712), which includes the movement of one or more contacts with the touch-sensing surface. In response to the detection of a first gesture, the processing unit 1706 is further configured to update the avatar display (e.g., using the update unit 1714) by modifying the first property of the first property, according to the determination that the first gesture is a first type of gesture and the corresponding feature is a first property; and the first property of the first property is associated with a first gesture type, and the first gesture is a second type of gesture different from the first type of gesture and the corresponding feature is a first property, according to the determination that the first property of the first property is associated with a first gesture type, and the second property of the first property is associated with a second gesture type.
[0330] In some embodiments, the processing unit 1706 is further configured to update the avatar display (e.g., using the update unit 1714) in response to the detection of a first gesture, by modifying the first characteristic of the second feature according to the determination that the gesture is of a first type and the corresponding feature is a second feature, the first characteristic of the second feature being associated with the first gesture type. In some embodiments, the first characteristic of the second feature is different from the first characteristic of the first feature.
[0331] In some embodiments, the processing unit 1706 is further configured to update the avatar display (for example, using the update unit 1714) in response to the detection of a first gesture, by modifying the second characteristic of the second feature to be different from the first characteristic of the second feature, based on the determination that the first gesture is a second type of gesture different from a first type of gesture and the corresponding feature is a second feature, the second characteristic of the second feature being associated with the second type of gesture.
[0332] In some embodiments, the second characteristic of a second feature is different from the second characteristic of a first feature. In some embodiments, the avatar editing interface includes a first selection indicator having feature affordances for one or more features from a plurality of editable features that can be selected for editing. In some embodiments, the first type of gesture is a pinch gesture, the first feature is a nose, and the first characteristic is the width of the nose. In some embodiments, the second type of gesture is a vertical drag, and the second characteristic is the vertical position of the first feature.
[0333] In some embodiments, the processing unit 1706 is further configured to stop modifying the first characteristic of the first feature (e.g., using the update unit 1714) in accordance with the determination that the first gesture modifies the first characteristic beyond a first tolerance range of the first characteristic.
[0334] In some embodiments, the processing unit 1706 is further configured to detect an input (e.g., using a detection unit 1712) during a first gesture that corresponds to a modification of the first characteristic that exceeds the tolerance range of the first characteristic, to detect the end of the gesture (e.g., using a detection unit 1712) after modifying the first characteristic beyond the tolerance range of the first characteristic, and to update the avatar display (e.g., using an update unit 1714) in response to the detection of the end of the first gesture by modifying the first characteristic of the first feature so that it falls within a second tolerance range of the second characteristic.
[0335] In some embodiments, the first gesture is detected at a location on a touch-sensitive surface separate from the location where the first feature is displayed.
[0336] In some embodiments, the processing unit 1706 is further configured to receive user input (e.g., using a receiving unit 1716) to select a preset set of characteristics for a corresponding feature, the preset set of characteristics includes the values of a first characteristic and a third characteristic but does not have the value of a second characteristic, and to update the avatar display (e.g., using an update unit 1714) based on the first and second values in response to the receipt of user input.
[0337] In some embodiments, the third characteristic is not modifiable except by selecting one or more pre-set sets of characteristics. In some embodiments, the display of the avatar based on the values of the first and third characteristics is based on a pre-set user value of the second characteristic.
[0338] In some embodiments, user input for selecting a set of predefined characteristics is a selection of affordances associated with these characteristics, where the affordances have a shape representing one or more values within the set of predefined characteristics.
[0339] In some embodiments, the processing unit 1706 is further configured to request a pre-configured set of characteristics from a remote server (for example, using a request unit 1718) in response to the receipt of user input.
[0340] The operations described above with reference to Figures 16A and 16B are optionally performed by the components shown in Figures 1A-1B or Figure 17. For example, the detection operation 1604 is optionally performed by the event sorter 170, the display controller 156, and the touch-sensitive display system 112. Similarly, it will be obvious to those skilled in the art how other processes can be performed based on the components shown in Figures 1A-1B.
[0341] The following sections briefly describe various aspects of the present invention, which are described in detail herein. Item 1. An electronic device having a display and one or more cameras, The method involves displaying a placeholder avatar on the display, wherein the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device. To display a placeholder avatar while detecting the user's movement to a second location relative to the field of view of one or more cameras, In response to detecting the user's movement to a second position relative to the field of view of one or more cameras, Based on the determination that the user's second position relative to the field of view of one or more cameras satisfies the first set of image criteria, the user's first image data is captured by one or more cameras, Based on the determination that the user's second position relative to the field of view of one or more cameras does not meet the first set of image criteria, the system provides the user with first guidance to change their position relative to the electronic device to the first target position while continuing to display the placeholder avatar. Methods that include... Item 2. After capturing the first image data, a user-specific avatar is generated that includes features selected based on the user's appearance determined from the first image data. The method described in item 1, further including the method described in item 1. Item 3. Displaying the generated user-specific avatar on the screen. The method described in item 2, further including the method described in item 2. Item 4. Displaying a placeholder avatar and simultaneously displaying viewfinder graphical elements; the display of viewfinder graphical elements relative to the placeholder avatar is based on the user's first or second position relative to the field of view of one or more cameras. The method described in any one of items 1 to 3, further including the method described in item 1 to 3. Item 5. To determine whether the user's second position relative to the field of view of one or more cameras satisfies the first set of image criteria. The method described in any one of items 1 to 4, further including the method described in any one of items 1 to 4. Item 6. After capturing the first image data, a second instruction is provided to the user to change the position relative to the electronic device to a second target position. Updating the display of the placeholder avatar based on image data captured after the first image data, After providing the second guidance, it is determined whether the user's third position relative to the electronic device satisfies the second set of image criteria, The second detected location is determined to satisfy the second set of image criteria, and the second image data of the user is captured by one or more cameras. Based on the determination that the second detected position does not meet the second set of image criteria, the system continues to provide the user with a second prompt to change the position relative to the electronic device to the second target position. The method described in any one of items 1 to 5, further including the method described in any one of items 1 to 5. Item 7. The method described in any one of items 1 to 6, wherein the first instruction is provided to the user without altering the appearance of the placeholder avatar based on the first image data. Item 8. The method according to any one of Items 1 to 7, wherein providing first guidance includes providing user feedback when the user's second position relative to the field of view of one or more cameras satisfies a first set of image criteria, or providing instructions based on how the user should be positioned relative to the field of view of one or more cameras so that they are in a first target position relative to the device. Item 9. After capturing the first image data, Displaying information indicating one or more recommended skin tone colors selected based on the first image data, The system receives user input to confirm the corresponding recommended skin tone color from one or more skin tone colors selected based on the first image data, The method described in any one of items 1 through 8, further including the method described in any one of items 1 through 8. Item 10. The method according to Item 9, wherein information indicating one or more recommended skin tone colors selected based on the first image data is displayed without applying the recommended skin tone colors to the avatar. Item 11. A user-specific placeholder avatar is generated based on the first image data, and a predetermined skin tone color independent of the first image data is used. Before receiving user input to confirm the corresponding recommended skin tone, display a user-specific placeholder avatar, The method described in item 9 or 10, further including the method described in item 9 or 10. Item 12. The method according to any one of items 1 to 11, further comprising updating the display of a progress indicator in response to the capture of first image data, wherein the display of the progress indicator is based on the amount of avatar image data captured. Item 13. The method described in any one of items 1 to 12, wherein the first image data includes both still data and video data. Item 14. Capturing user image data, Based on the determination that the user's image data fails to meet the lighting standards, the system displays instructions to the user to change the lighting in the field of view of one or more cameras, The method described in any one of items 1 through 13, further including the method described in item 1 through 13. Item 15. The method described in any one of items 2 through 14, further comprising determining the user's physical characteristics or accessory characteristics based on the first image data, and creating a user-specific avatar, which includes adding representations of the physical characteristics or accessory characteristics to the user-specific avatar. Item 16. A user-specific avatar is an independent facial expression, regardless of whether the user has a facial expression in the first image data, as described in any one of items 2 through 15. Item 17. Generating a user-specific avatar based on the first image data, The process involves generating multiple avatars, where these multiple avatars include a first avatar and a second avatar that is different from the first avatar. Displaying multiple avatars, Receiving user input to select one of several avatars, The method described in any one of items 2 through 16, further including the method described in item 2 through 16. Item 18. The method described in any one of items 2 through 17, further comprising generating a user-specific avatar and then storing the avatar as a recipe, the recipe defining the structure and parameters of the avatar. Item 19. A placeholder avatar is a silhouette of a predetermined person unrelated to the user's image data, as described in any one of items 1 through 18. Item 20. The display and One or more processors, One or more cameras, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and configured to be executed by one or more processors, The method involves displaying a placeholder avatar on the display, wherein the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device. To display a placeholder avatar while detecting the user's movement to a second location relative to the field of view of one or more cameras, In response to detecting the user's movement to a second position relative to the field of view of one or more cameras, Based on the determination that the user's second position relative to the field of view of one or more cameras satisfies the first set of image criteria, the user's first image data is captured by one or more cameras, Based on the determination that the user's second position relative to the field of view of one or more cameras does not meet the first set of image criteria, the system provides the user with first guidance to change their position relative to the electronic device to a first target position while continuing to display the placeholder avatar. An electronic device that includes instructions to perform a specific action. Item 21. A non-temporary computer-readable storage medium that stores one or more programs, wherein one or more programs include instructions, and the instructions are executed by one or more processors of an electronic device having a display and one or more cameras. The method involves displaying a placeholder avatar on a display, wherein the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device. To display a placeholder avatar while detecting the user's movement to a second location relative to the field of view of one or more cameras, In response to detecting the user's movement to a second position relative to the field of view of one or more cameras, Based on the determination that the user's second position relative to the field of view of one or more cameras satisfies the first set of image criteria, the user's first image data is captured by one or more cameras, Based on the determination that the user's second position relative to the field of view of one or more cameras does not meet the first set of image criteria, the system provides the user with first guidance to change their position relative to the electronic device to the first target position while continuing to display the placeholder avatar, A non-temporary, computer-readable storage medium that allows a device to perform this task. Item 22. Electronic devices, The display and One or more cameras, A means for displaying a placeholder avatar on a display, wherein the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of an electronic device, A means for detecting the user's movement to a second position relative to the field of view of one or more cameras, while displaying a placeholder avatar. In response to detecting the user's movement to a second position relative to the field of view of one or more cameras, A means for capturing first image data of a user with one or more cameras according to the determination that the user's second position relative to the field of view of one or more cameras satisfies a first set of image criteria, A means for providing the user with first guidance to change their position relative to an electronic device to a first target position, while continuing to display a placeholder avatar, based on the determination that the user's second position relative to the field of view of one or more cameras does not meet the first set of image criteria, An electronic device equipped with [a specific feature / feature]. Item 23. The display and One or more processors, One or more cameras coupled to one or more processors, Memory and One or more programs, stored in memory and configured to be executed by one or more processors, and containing instructions that perform any of the methods described in items 1 through 19, An electronic device equipped with [a specific feature / feature]. Item 24. A non-temporary computer-readable storage medium storing one or more programs, wherein one or more programs include instructions, and when executed by one or more processors of an electronic device having a display and one or more cameras, the instructions cause the device to perform any of the methods described in Items 1 to 19. Item 25. The display and One or more cameras, Means for carrying out any of the methods described in items 1 to 19, An electronic device equipped with [a specific feature / feature]. Item 26. In an electronic device having a display and one or more input devices, Avatars with multiple editable features, A feature selection control region including a representation of multiple avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, and Feature option control region including a representation of multiple options for the first avatar feature to be selected, including a first option for the first avatar feature that is currently selected and a second option for the first avatar feature that is not currently selected. Displaying an avatar editing user interface on the display, including simultaneously displaying the following: To display the avatar editing user interface while detecting input within the avatar editing user interface, In response to detecting input, According to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region, Update the feature selection control region to indicate that the second avatar feature is currently selected, The feature option control region is updated to include a representation of multiple options for the second avatar feature to be selected, including the first option for the currently selected second avatar feature and the second option for the second avatar feature that is not currently selected. According to the determination that the input corresponds to the selection of the second option for the first avatar feature in the feature option control region, Update the feature option control area to indicate that the second option for the first avatar feature is currently selected, Updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, Methods that include... Item 27. The method described in item 26, wherein, upon detection of an input, the feature option control region is updated without updating the avatar feature control region, according to the determination that the input corresponds to the selection of a second option for a first avatar feature in the feature option control region. Item 28. The method according to item 26 or 27, wherein, in response to the detection of an input, the feature selection control region is updated without updating the avatar, according to the determination that the input corresponds to the selection of a second avatar feature in the feature selection control region. Item 29. Displaying the avatar editing user interface is further... A color selection area that includes representations of multiple color options for a first avatar feature, including the currently selected first color and the currently unselected second color. The method according to any one of items 26 to 28, which includes displaying the avatar, the feature selection control area, and the feature option control area simultaneously on the display. Item 30. While displaying a color selection area, the system updates the display of the first avatar features based on the second color in response to detection of user input corresponding to the selection of a second color. The method described in item 29, further including the method described in item 29. Item 31. The method according to Item 29 or 30, wherein the first avatar feature is the avatar's clothing, and updating the display of the first avatar feature in the avatar based on a second color includes updating the color of the avatar's clothing to the second color. Item 32. The method described in any one of items 26 to 31, wherein the first avatar feature is an accessory of the avatar. Item 33. The display is a touch-sensitive display, and the method is In response to receiving a gesture on a touch-sensitive display, the characteristics of the first avatar feature are modified based on the gesture, Updating the avatar display based on the corrected parameters, The method described in any one of items 26 to 32, further including the method described in any one of items 26 to 32. Item 34. To display an avatar management interface that includes multiple pre-saved avatars, Receiving user input to select a pre-saved avatar, In response to user input selecting a pre-saved avatar, the pre-saved avatar is displayed in the avatar editing user interface. The method described in any one of items 26 to 33, further including the method described in any one of items 26 to 33. Item 35. The method according to any one of items 26 to 34, further comprising updating the avatar to change the appearance of the first avatar feature according to a second option of the first avatar feature, and then storing the avatar as an avatar recipe, wherein the avatar recipe defines an avatar structure and avatar parameters including the second option. Item 36. Send the avatar recipe to your contacts. The method described in item 35, further including the method described in item 35. Item 37. Receiving the avatar recipe from the first contact, The method described in any one of items 26 to 36, further comprising displaying contact information for multiple contacts, including a first contact, wherein the contact information displayed for the first contact includes an avatar based on the first contact's avatar recipe. Item 38. The method described in any one of items 26 to 37, wherein the avatar display includes an indicator of the first avatar feature when the first avatar feature is currently selected. Item 39. The representation within the feature selection control region has a shape based on the shape of each avatar feature, as described in any one of items 26 to 38. Item 40. The representation within the feature option control region has a shape based on the optional shape of each avatar feature, as described in any one of items 26 to 39. Item 41. Updating the avatar display using avatar animation when no input associated with the avatar editing user interface is detected for a predetermined period of time via one or more input devices. The method described in any one of items 26 to 40, further including the method described in any one of items 26 to 40. Item 42. Updating an avatar to modify the appearance of a first avatar feature in accordance with a second option of the first avatar feature, including modifying the avatar's facial expressions based on the second option, as described in any one of Items 26 to 41. Item 43. Displaying an avatar and updating the avatar's eyes based on the position associated with the input in response to detecting input through one or more input devices of an electronic device. The method described in any one of items 26 to 42, further including the method described in any one of items 26 to 42. Item 44. The animation loop includes a series of facial expressions of the avatar, and the avatar is updated based on the animation loop. The method described in any one of items 26 to 43, further including the method described in any one of items 26 to 43. Item 45. An animation loop has a duration, and the method is, The method of item 44, further comprising determining a random time offset less than the duration, and updating the avatar based on the animation loop, which includes updating the avatar to start at a position within the animation loop based on the random time offset. Item 46. To stop updating the avatar based on the animation loop after a predetermined period of time. The method described in item 44 or 45, further including the method described in item 44 or 45. Item 47. The method described in any one of Items 26 to 46, wherein updating the avatar to change the appearance of the first avatar feature according to a second option of the first avatar feature includes, via animation, transitioning the first avatar feature based on the first option to the first avatar feature based on the second option. Item 48. Electronic devices, The display and One or more processors, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and are configured to be executed by one or more processors, and the one or more programs are An avatar with multiple editable features, A feature selection control region including a representation of multiple avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, A feature option control area including a representation of multiple options for the first avatar feature to be selected, including a first option for the first avatar feature that is currently selected and a second option for the first avatar feature that is not currently selected, Displaying an avatar editing user interface on the display, including simultaneously displaying the following: To display the avatar editing user interface while detecting input within the avatar editing user interface, In response to detecting input, According to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region, Update the feature selection control region to indicate that the second avatar feature is currently selected, The feature option control region is updated to include a representation of multiple options for the second avatar feature to be selected, including the first option for the currently selected second avatar feature and the second option for the second avatar feature that is not currently selected. According to the determination that the input corresponds to the selection of the second option for the first avatar feature in the feature option control region, Update the feature option control area to indicate that the second option for the first avatar feature is currently selected, Updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, An electronic device that includes instructions to perform a specific action. Item 49. A non-temporary computer storage medium that stores one or more programs, wherein one or more programs are executed by one or more processors of an electronic device having a display and one or more input devices. An avatar with multiple editable features, A feature selection control region including a representation of multiple avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, A feature option control area including a representation of multiple options for the first avatar feature to be selected, including a first option for the first avatar feature that is currently selected and a second option for the first avatar feature that is not currently selected, Displaying an avatar editing user interface on the display, including simultaneously displaying the following: To display the avatar editing user interface while detecting input within the avatar editing user interface, In response to detecting input, According to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region, Update the feature selection control region to indicate that the second avatar feature is currently selected, The feature option control region is updated to include a representation of multiple options for the second avatar feature to be selected, including the first option for the currently selected second avatar feature and the second option for the second avatar feature that is not currently selected. According to the determination that the input corresponds to the selection of the second option for the first avatar feature in the feature option control region, Update the feature option control region to indicate that the second option of the first avatar feature is currently selected, Updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, A non-temporary computer storage medium containing instructions that cause a device to perform an action. Item 50. Electronic devices, The display and One or more input devices, Avatars with multiple editable features, A feature selection control region including a representation of multiple avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification. A feature option control area including a representation of multiple options for the first avatar feature to be selected, including a first option for the first avatar feature that is currently selected and a second option for the first avatar feature that is not currently selected. A means for displaying an avatar editing user interface on a display, including simultaneous display of the following: A means for displaying an avatar editing user interface and detecting input within that avatar editing user interface, In response to detecting input, According to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region, Update the feature selection control region to indicate that the second avatar feature is currently selected, and Update the feature option control region to include a representation of multiple options for the second avatar feature to be selected, including the first option for the currently selected second avatar feature and the second option for the second avatar feature that is not currently selected. Means to do so, According to the determination that the input corresponds to the selection of the second option for the first avatar feature in the feature option control region, Update the feature option control area to indicate that the second option for the first avatar feature is currently selected, and Updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, Means to do so, An electronic device equipped with [a specific feature / feature]. Item 51. The display and One or more processors, Memory and One or more programs, An electronic device comprising one or more programs, which are stored in memory and configured to be executed by one or more processors, and which include instructions that perform any of the methods described in items 26 to 47. Item 52. A non-temporary computer-readable storage medium storing one or more programs, wherein one or more programs include instructions, and when the instructions are executed by one or more processors of an electronic device having a display and one or more input devices, the device causes the device to perform any of the methods described in Items 26 to 47. Item 53. The display and Means for carrying out any of the methods described in items 27 to 47, An electronic device equipped with [a specific feature / feature]. Item 54. An electronic device having a display and one or more input devices, The present invention displays the messaging interface of a messaging application that sends messages between a first user of a device and other users, wherein the first user is represented in the messaging application by a user avatar that distinguishes the first user of the device from other users, Receiving a first request that displays a messaging user interface and a sticker user interface that allows the user to select stickers to send to a second user, In response to the first request to display a sticker user interface, A first avatar sticker generated based on modifications to the avatar representing the user, and A second avatar that represents the user and is generated based on a modification of the avatar that is different from the first avatar sticker, Displaying a sticker user interface on a display that includes a first set of multiple avatar stickers generated based on the user's avatar, including the simultaneous display of the following: The system detects, via one or more input devices, a sequence of one or more inputs corresponding to a request to send an avatar sticker from a first user to a second user via a messaging application, while displaying multiple affordances of an avatar selection interface on a display. Depending on the detection of a sequence of one or more inputs, In accordance with the determination that a sequence of one or more inputs corresponds to the selection of a first avatar sticker, the first avatar sticker is sent from the first user to the second user via a messaging application, Sending a second avatar sticker from the first user to the second user via a messaging application, based on the determination that one or more input sequences correspond to the selection of a second avatar sticker, Methods that include... Item 55. The user's avatar is created according to the method described in Item 54, based on the avatar recipe. Item 56. The first avatar sticker is generated by modifying the first parameter of the avatar recipe of the user's avatar, as described in Item 55. Item 57. A second avatar sticker is generated by adding a second parameter to the avatar recipe of the user's avatar, as described in Item 55 or 56. Item 58. Sending a first avatar sticker to a second user is the method described in any one of items 54 to 57, including sending the user a recipe representing the first avatar sticker. Item 59. Sending a first avatar sticker to a second user from a first user via a messaging application is not permitted. In accordance with the determination that the device associated with the second user supports avatar recipes, sending the first avatar sticker to the second user includes sending the user a recipe representing the first avatar sticker, Based on the determination that the device associated with the second user does not support avatar recipes, the graphical representation of the first avatar sticker is sent to the user. The method described in any one of items 54 to 58, including the method described in item 54 to 58. Item 60. The method described in any one of items 54 to 59, wherein the sticker user interface is displayed simultaneously with at least a portion of the messaging interface. Item 61. The first avatar sticker is animated, as described in any one of items 54 through 60. Item 62. A second avatar sticker, including a prop, as described in any one of items 54 to 61. Item 63. Before receiving a request to display the sticker user interface, the user input of the text portion of the user message must be received, After detecting a sequence of one or more inputs, the text portion of the user message is sent to a second user via a messaging application. The method described in any one of items 54 to 62, further including the method described in any one of items 54 to 62. Item 64. After sending a sticker of the first avatar or a second avatar sticker, the system detects a second sequence of one or more inputs via one or more input devices that corresponds to a request from the first user to send a corresponding avatar sticker to the second user via a messaging application, while displaying multiple affordances of the avatar selection interface on the display. Upon detection of a second sequence of one or more inputs, and in accordance with the determination that the sequence of one or more inputs corresponds to the selection of a second avatar sticker, the first user sends a second avatar sticker to the second user via a messaging application. The method described in any one of items 54 to 63, further including the method described in any one of items 54 to 63. Item 65. The display and One or more processors, One or more input devices, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and are configured to be executed by one or more processors, and the one or more programs are The present invention displays the messaging interface of a messaging application that sends messages between a first user of a device and other users, wherein the first user is represented in the messaging application by a user avatar that distinguishes the first user of the device from other users, Receiving a first request that displays a messaging user interface and a sticker user interface that allows the user to select stickers to send to a second user, In response to the first request to display a sticker user interface, A first avatar sticker generated based on modifications to the avatar representing the user, and A second avatar that represents the user and is generated based on a modification of the avatar that is different from the first avatar sticker, Displaying a sticker user interface on a display that includes a first set of multiple avatar stickers generated based on the user's avatar, including the simultaneous display of the following: The system detects, via one or more input devices, a sequence of one or more inputs corresponding to a request to send an avatar sticker from a first user to a second user via a messaging application, while displaying multiple affordances of an avatar selection interface on a display. In response to the detection of a sequence of one or more inputs, In accordance with the determination that a sequence of one or more inputs corresponds to the selection of a first avatar sticker, the first avatar sticker is sent from the first user to the second user via a messaging application, Sending a second avatar sticker from the first user to the second user via a messaging application, based on the determination that one or more input sequences correspond to the selection of a second avatar sticker, An electronic device that includes instructions to perform a specific action. Item 66. A non-temporary computer-readable storage medium that stores one or more programs, wherein one or more programs include instructions, and the instructions are executed by one or more processors of an electronic device having a display and one or more input devices. The present invention displays the messaging interface of a messaging application that sends messages between a first user of a device and other users, wherein the first user is represented in the messaging application by a user avatar that distinguishes the first user of the device from other users, Receiving a first request that displays a messaging user interface and a sticker user interface that allows the user to select stickers to send to a second user, In response to the first request to display a sticker user interface, A first avatar sticker generated based on modifications to the avatar representing the user, and A second avatar that represents the user and is generated based on a modification of the avatar that is different from the first avatar sticker, Displaying a sticker user interface on a display that includes a first set of multiple avatar stickers generated based on the user's avatar, including the simultaneous display of the following: The system displays multiple affordances of an avatar selection interface on a display, and detects a sequence of one or more inputs via one or more input devices that corresponds to a request to send a corresponding avatar sticker from a first user to a second user via a messaging application. In response to the detection of a sequence of one or more inputs, In accordance with the determination that a sequence of one or more inputs corresponds to the selection of a first avatar sticker, the first avatar sticker is sent from the first user to the second user via a messaging application, Sending a second avatar sticker from the first user to the second user via a messaging application, based on the determination that one or more input sequences correspond to the selection of a second avatar sticker, A non-temporary, computer-readable storage medium containing instructions that cause a device to perform a certain action. Item 67. Electronic devices, The display and One or more input devices, A means for displaying the messaging interface of a messaging application that sends messages between a first user of a device and other users, wherein the first user is represented in the messaging application by a user avatar that distinguishes the first user of the device from other users; A means for receiving a first request, which displays a messaging user interface and a sticker user interface for selecting stickers to send to a second user, In response to the first request to display a sticker user interface, A first avatar sticker generated based on modifications to the avatar representing the user, and A second avatar that represents the user and is generated based on a modification of the avatar that is different from the first avatar sticker. Means for displaying a sticker user interface on a display, which includes a first plurality of avatar stickers generated based on the user's avatar, including the simultaneous display of the following: A means for detecting, via one or more input devices, a sequence of one or more inputs corresponding to a request to send an avatar sticker from a first user to a second user via a messaging application, while displaying multiple affordances of an avatar selection interface on a display, In response to the detection of a sequence of one or more inputs, A means for sending a first avatar sticker for a second user from a first user to a second user via a messaging application, based on the determination that a sequence of one or more inputs corresponds to the selection of a first avatar sticker, A means for sending a second avatar sticker from a first user to a second user via a messaging application, based on the determination that a sequence of one or more inputs corresponds to the selection of a second avatar sticker, An electronic device equipped with [a specific feature / feature]. Item 68. The display and One or more processors, One or more input devices, Memory and One or more programs, An electronic device comprising one or more programs, which are stored in memory and configured to be executed by one or more processors, and which include instructions that perform any of the methods described in items 54 to 64. Item 69. A non-temporary computer-readable storage medium storing one or more programs, wherein one or more programs include instructions, and when the instructions are executed by one or more processors of an electronic device having a display and one or more input devices, the instructions cause the device to perform any of the methods described in Items 54 to 64. Item 70. The display and One or more input devices, Means for carrying out any of the methods described in items 54 to 64, An electronic device equipped with [a specific feature / feature]. Item 71. In an electronic device having a display and a touch-sensitive surface, Displaying an avatar editing interface on the device that includes an avatar with multiple editable features, Detecting a first gesture on a touch-sensitive surface that involves the movement of one or more contacts with the touch-sensitive surface, while the corresponding feature among multiple editable features is the currently selected feature, In response to the detection of the first gesture, The avatar display is updated by modifying the first characteristic of the first characteristic, based on the determination that the first gesture is a first type of gesture and the corresponding feature is the first characteristic, wherein the first characteristic of the first characteristic is associated with the first gesture type. A method comprising updating the display of an avatar by modifying a second characteristic of the first characteristic that is different from the first characteristic of the first characteristic, according to the determination that the first gesture is a second type of gesture different from the first type of gesture and the corresponding characteristic is the first characteristic, wherein the second characteristic of the first characteristic is associated with the second gesture type. Item 72. The method according to item 71, further comprising updating the display of the avatar by modifying the first property of the second property, in accordance with the determination that, in response to the detection of a first gesture, the gesture is of a first type and the corresponding property is the second property, wherein the first property of the second property is associated with the first gesture type. Item 73. The first characteristic of the second characteristic is different from the first characteristic of the first characteristic, as described in Item 72. Item 74. The method according to item 72 or 73, further comprising updating the display of the avatar by modifying the second characteristic of the second characteristic to be different from the first characteristic of the second characteristic, in accordance with the determination that the first gesture is a second type of gesture different from a first type of gesture and the corresponding feature is a second characteristic, in response to the detection of a first gesture, wherein the second characteristic of the second characteristic is associated with a second gesture type. Item 75. The second characteristic of the second characteristic is different from the second characteristic of the first characteristic, as described in any one of items 72 to 74. Item 76. The method according to any one of items 71 to 75, wherein the avatar editing interface includes a first selection indicator having feature affordances for one or more features among a plurality of editable features that are selectable for editing. Item 77. The method described in any one of items 71 to 76, wherein the first type of gesture is a pinch gesture, the first feature is the nose, and the first characteristic is the width of the nose. Item 78. The method according to any one of items 71 to 77, wherein the second type of gesture is a vertical drag and the second characteristic is the vertical position of the first characteristic. Item 79. The first gesture, in accordance with the determination that it modifies the first characteristic beyond the first tolerance range of the first characteristic, ceases modifying the first characteristic of the first feature. The method described in any one of items 71 to 78, further including the method described in any one of items 71 to 78. Item 80. Detecting an input corresponding to a modification of the first characteristic that exceeds the tolerance range of the first characteristic during the first gesture, After modifying the first characteristic beyond its tolerance range, the end of the gesture is detected. The display of the avatar is updated by modifying the first characteristic of the first feature so that it falls within the second tolerance range of the second characteristic, in response to the detection of the end of the first gesture. The method described in any one of items 71 to 79, further including the method described in any one of items 71 to 79. Item 81. The method according to any one of items 71 to 80, wherein the first gesture is detected at a location on a touch-sensitive surface separate from the location where the first feature is displayed. Item 82. The system receives user input to select a pre-configured set of characteristics for a corresponding feature, wherein the pre-configured set of characteristics includes the values of the first and third characteristics but does not include the value of the second characteristic. In response to receiving user input, the avatar display is updated based on the first and second values, The method described in any one of items 71 to 81, further including the method described in any one of items 71 to 81. Item 83. The method described in any one of items 71 to 82, wherein the third characteristic is not modifiable except by selecting one or more predefined sets of characteristics. Item 84. The display of an avatar based on the values of the first and third characteristics is as described in any one of items 71 to 83, based on a pre-configured user value for the second characteristic. Item 85. The method according to any one of items 71 to 84, wherein the user input for selecting a set of predefined characteristics is a selection of affordances associated with a presented characteristic, the affordances having a shape that represents one or more values in the set of predefined characteristics. Item 86. In response to receiving user input, request a pre-configured set of characteristics from the remote server. The method described in any one of items 71 to 85, further including the method described in any one of items 71 to 85. Item 87. The display and One or more processors, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and are configured to be executed by one or more processors, and the one or more programs are Displaying an avatar editing interface on the device that includes an avatar with multiple editable features, Detecting a first gesture on a touch-sensitive surface that involves the movement of one or more contacts with the touch-sensitive surface, while the corresponding feature among multiple editable features is the currently selected feature, In response to the detection of the first gesture, The avatar display is updated by modifying the first characteristic of the first characteristic, based on the determination that the first gesture is a first type of gesture and the corresponding feature is the first characteristic, wherein the first characteristic of the first characteristic is associated with the first gesture type. The avatar display is updated by modifying the second characteristic of the first characteristic, which is different from the first characteristic of the first characteristic, based on the determination that the first gesture is a second type of gesture different from the first type of gesture, and that the corresponding feature is the first characteristic, wherein the second characteristic of the first characteristic is associated with the second gesture type. An electronic device that includes instructions to perform a specific action. Item 88. A non-temporary computer-readable storage medium that stores one or more programs, wherein one or more programs include instructions, and the instructions are executed by one or more processors of an electronic device having a display and one or more input devices. Displaying an avatar editing interface on the screen that includes an avatar with multiple editable features, Detecting a first gesture on a touch-sensitive surface that involves the movement of one or more contacts with the touch-sensitive surface, while the corresponding feature among multiple editable features is the currently selected feature, In response to the detection of the first gesture, The avatar display is updated by modifying the first characteristic of the first characteristic, based on the determination that the first gesture is a first type of gesture and the corresponding feature is the first characteristic, wherein the first characteristic of the first characteristic is associated with the first gesture type. The avatar display is updated by modifying the second characteristic of the first characteristic, which is different from the first characteristic of the first characteristic, based on the determination that the first gesture is a second type of gesture, which is different from the first type of gesture, and that the corresponding feature is the first characteristic, wherein the second characteristic of the first characteristic is associated with the second gesture type. A non-temporary, computer-readable storage medium containing instructions that cause a device to perform a certain action. Item 89. Electronic devices, The display and One or more input devices, A means for displaying an avatar editing interface on a device, which includes an avatar having multiple editable features, A means for detecting a first gesture on a touch-sensing surface, which includes the movement of one or more contacts with the touch-sensing surface, while the corresponding feature among multiple editable features is the currently selected feature. In response to the detection of the first gesture, The avatar display is updated by modifying the first characteristic of the first characteristic, based on the determination that the first gesture is a first type of gesture and the corresponding feature is the first characteristic, wherein the first characteristic of the first characteristic is associated with the first gesture type, and A means for updating the display of an avatar by modifying the second characteristic of the first characteristic, which is different from the first characteristic of the first characteristic, based on the determination that the first gesture is a second type of gesture different from the first type of gesture, and that the corresponding characteristic is the first characteristic, wherein the second characteristic of the first characteristic is associated with the second gesture type. An electronic device equipped with [a specific feature / feature]. Item 90. The display and One or more processors, Memory and One or more programs, An electronic device comprising one or more programs, which are stored in memory and configured to be executed by one or more processors, and which include instructions that perform any of the methods described in items 71 to 86. Item 91. A non-temporary computer-readable storage medium storing one or more programs, wherein one or more programs include instructions, and when the instructions are executed by one or more processors of an electronic device having a display and one or more input devices, the instructions cause the device to perform any of the methods described in Items 71 to 86. Item 92. The display and Means for carrying out any of the methods described in items 71 to 86, An electronic device equipped with [a specific feature / feature].
[0342] The above is written with reference to specific embodiments for illustrative purposes. However, the above exemplary discussion is not intended to be exhaustive or to limit the invention to the exact form disclosed. Many modifications and variations are possible in light of the above teachings. These embodiments have been selected and described to best illustrate the principles of the Art and its practical applications. Therefore, those skilled in the art will be able to best utilize the Art and its various embodiments with various modifications suited to their specific intended use.
[0343] While the present disclosure and examples have been fully described with reference to the accompanying drawings, it should be noted that various changes and modifications will be apparent to those skilled in the art. Such changes and modifications should be understood to fall within the scope of the present disclosure and examples as defined by the claims.
Claims
1. In an electronic device having a display and one or more cameras, The method involves displaying a placeholder avatar on the display, wherein the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device. While displaying the placeholder avatar, the user's movement to a second position relative to the field of view of one or more cameras is detected. In response to detecting the user's movement to the second position relative to the field of view of one or more cameras, In accordance with the determination that the second position of the user relative to the field of view of one or more cameras satisfies the first set of image criteria, the first image data of the user is captured by one or more cameras. Based on the determination that the user's second position relative to the field of view of one or more cameras does not satisfy the first set of image criteria, the system provides the user with first guidance to change their position relative to the electronic device to a first target position while continuing to display the placeholder avatar. Methods that include...
2. After capturing the first image data, a user-specific avatar is generated that includes features selected based on the user's appearance determined based on the first image data. The method according to claim 1, further comprising:
3. Display the generated user-specific avatar on the display. The method according to claim 2, further comprising:
4. The method according to any one of claims 1 to 3, further comprising displaying a viewfinder graphical element simultaneously with the display of the placeholder avatar, wherein the display of the viewfinder graphical element relative to the display of the placeholder avatar is based on the first or second position of the user relative to the field of view of the one or more cameras.
5. Determining whether the second position of the user relative to the field of view of one or more cameras satisfies the first set of image criteria, The method according to any one of claims 1 to 3, further comprising:
6. After capturing the first image data, a second instruction is provided to the user to change the position relative to the electronic device to a second target position. Updating the display of the placeholder avatar based on image data captured after the first image data, After providing the second guidance, it is determined whether the user's third position relative to the electronic device satisfies the second set of image criteria, The second detected position is determined to satisfy the second set of image criteria, and the second image data of the user is captured by one or more cameras. The second guidance continues to be provided to the user to change the position relative to the electronic device to the second target position, in accordance with the determination that the second detected position does not satisfy the second set of image criteria, The method according to any one of claims 1 to 3, further comprising:
7. The method according to any one of claims 1 to 3, wherein the first guidance is provided to the user without changing the appearance of the placeholder avatar based on the first image data.
8. The method according to any one of claims 1 to 3, wherein providing the first guidance includes providing user feedback when the second position of the user relative to the field of view of the one or more cameras satisfies the first set of image criteria, or providing instructions based on how the user should be positioned relative to the field of view of the one or more cameras so that they are in a first target position relative to the device.
9. After capturing the first image data, Displaying information indicating one or more recommended skin tone colors selected based on the first image data, The system receives user input to confirm the corresponding recommended skin tone color among the one or more skin tone colors selected based on the first image data, The method according to any one of claims 1 to 3, further comprising:
10. The method according to claim 9, wherein the display of information indicating one or more recommended skin tone colors selected based on the first image data is displayed without applying any of the recommended skin tone colors to the avatar.
11. The first image data is used to generate a user-specific placeholder avatar, and a predetermined skin tone color unrelated to the first image data is used. Displaying the user-specific placeholder avatar before receiving the user input to confirm the corresponding recommended skin tone color, The method according to claim 9, further comprising:
12. The method according to any one of claims 1 to 3, further comprising updating the display of a progress indicator in response to the capture of the first image data, wherein the display of the progress indicator is based on the amount of captured avatar image data.
13. The method according to any one of claims 1 to 3, wherein the first image data includes both still data and video data.
14. The user's image data is captured, In accordance with the determination that the user's image data fails to meet the lighting standards, the system displays an instruction to the user to change the lighting of the field of view of one or more cameras. The method according to any one of claims 1 to 3, further comprising:
15. Based on the first image data, determine the physical characteristics of the user or the characteristics of the accessory. The method according to claim 2 or 3, further comprising creating the user-specific avatar, which includes adding representations of the physical characteristics or accessory characteristics of the user-specific avatar.
16. The method according to claim 2 or 3, wherein the user-specific avatar is an independent facial expression regardless of whether the user has a facial expression in the first image data.
17. Generating the user-specific avatar based on the first image data includes generating a plurality of avatars, wherein the plurality of avatars includes a first avatar and a second avatar different from the first avatar, and the method is Displaying the aforementioned multiple avatars, The system receives user input to select one of the aforementioned multiple avatars, The method according to claim 2 or 3, further comprising:
18. After generating the user-specific avatar, the avatar is stored as a recipe. The method according to claim 2 or 3, further comprising, wherein the recipe defines the structure and parameters of the avatar.
19. The method according to any one of claims 1 to 3, wherein the placeholder avatar is the silhouette of a predetermined person unrelated to the user's image data.
20. The display and One or more processors, One or more cameras, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and are configured to be executed by one or more processors, and the one or more programs are The method involves displaying a placeholder avatar on the display, wherein the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device. While displaying the placeholder avatar, the user's movement to a second position relative to the field of view of one or more cameras is detected. In response to detecting the user's movement to the second position relative to the field of view of one or more cameras, In accordance with the determination that the second position of the user relative to the field of view of one or more cameras satisfies the first set of image criteria, the first image data of the user is captured by one or more cameras. In accordance with the determination that the user's second position relative to the field of view of one or more cameras does not satisfy the first set of image criteria, the first guidance is provided to the user to change their position relative to the electronic device to a first target position while continuing to display the placeholder avatar, An electronic device that includes instructions to perform a specific action.
21. A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs include instructions, and the instructions are executed by one or more processors of an electronic device having a display and one or more input devices. Displaying a placeholder avatar on the display, wherein the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device, While displaying the placeholder avatar, the user's movement to a second position relative to the field of view of one or more cameras is detected. In response to detecting the user's movement to the second position relative to the field of view of one or more cameras, In accordance with the determination that the second position of the user relative to the field of view of one or more cameras satisfies the first set of image criteria, the first image data of the user is captured by one or more cameras. In accordance with the determination that the user's second position relative to the field of view of one or more cameras does not satisfy the first set of image criteria, the first guidance is provided to the user to change their position relative to the electronic device to a first target position while continuing to display the placeholder avatar, A non-temporary computer-readable storage medium including an instruction to cause the device to perform the following action.
22. It is an electronic device, The display and One or more cameras, Means for displaying a placeholder avatar on the display, wherein the display of the placeholder avatar is based on the user's first position relative to the field of view of one or more cameras of the electronic device, Means for detecting the user's movement to a second position relative to the field of view of one or more cameras while displaying the placeholder avatar, In response to detecting the user's movement to the second position relative to the field of view of one or more cameras, Means for capturing first image data of the user with one or more cameras in accordance with the determination that the second position of the user relative to the field of view of one or more cameras satisfies the first set of image criteria, Means for providing the user with first guidance to change their position relative to the electronic device to a first target position, while continuing to display the placeholder avatar, based on the determination that the user's second position relative to the field of view of one or more cameras does not satisfy the first set of image criteria, An electronic device equipped with [a specific feature / feature].
23. The display and One or more processors, One or more cameras coupled to the one or more processors, Memory and One or more programs, stored in memory and configured to be executed by one or more processors, each including instructions that perform any of the methods according to claims 1 to 19, An electronic device equipped with [a specific feature / feature].
24. A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs include instructions, and when the instructions are executed by one or more processors of an electronic device having a display and one or more cameras, the instructions cause the device to execute any of the methods according to claims 1 to 19.
25. The display and One or more cameras, Means for carrying out any of the methods described in claims 1 to 19, An electronic device equipped with [a specific feature / feature].
26. In an electronic device having a display and one or more input devices, An avatar with multiple editable features, A feature selection control region including a representation of multiple avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, A feature option control region including a representation of multiple options for the first avatar feature to be selected, including a first option for the first avatar feature that is currently selected and a second option for the first avatar feature that is not currently selected, Displaying an avatar editing user interface on the display, which includes simultaneously displaying the following: Displaying the aforementioned avatar editing user interface and detecting input within the aforementioned avatar editing user interface, In response to detecting the aforementioned input, According to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region, The feature selection control region is updated to indicate that the second avatar feature is currently selected, Updating the feature option control region to include a representation of multiple options for the second avatar feature to be selected, including a first option for the second avatar feature that is currently selected and a second option for the second avatar feature that is not currently selected; According to the determination that the input corresponds to the selection of the second option of the first avatar feature in the feature option control region, Updating the feature option control region to indicate that the second option of the first avatar feature is currently selected, Updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, Methods that include...
27. The method according to claim 26, wherein, in response to the detection of the input, the feature option control region is updated without updating the avatar feature control region, according to the determination that the input corresponds to the selection of the second option of the first avatar feature in the feature option control region.
28. The method according to claim 26 or 27, wherein, in response to the detection of the input, the feature selection control region is updated without updating the avatar, according to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region.
29. Displaying the aforementioned avatar editing user interface is further, A color selection area including a representation of multiple color options for the first avatar feature, including a first color that is currently selected and a second color that is not currently selected. The method according to claim 26 or 27, comprising simultaneously displaying the avatar, the feature selection control area, and the feature option control area on the display, wherein the color selection area is displayed simultaneously with the avatar, the feature selection control area, and the feature option control area.
30. While displaying the color selection area, the display of the first avatar features in the avatar is updated based on the second color in response to detection of user input corresponding to the selection of the second color. The method according to claim 29, further comprising:
31. The method according to claim 29, wherein the first avatar feature is the clothing of the avatar, and updating the display of the first avatar feature in the avatar based on the second color includes updating the color of the clothing of the avatar to the second color.
32. The method according to claim 26 or 27, wherein the first avatar feature is an accessory of the avatar.
33. The display is a touch-sensitive display, and the method is In response to receiving a gesture on the touch-sensitive display, the characteristics of the first avatar feature are modified based on the gesture. Updating the display of the avatar based on the modified parameters, The method according to claim 26 or 27, further comprising:
34. To display an avatar management interface that includes multiple pre-saved avatars, Receiving user input to select a pre-saved avatar, In response to the user input selecting one of the pre-saved avatars, the pre-saved avatar is displayed on the avatar editing user interface. The method according to claim 26 or 27, further comprising:
35. The method according to claim 26 or 27, further comprising updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, and then storing the avatar as an avatar recipe, wherein the avatar recipe defines an avatar structure and avatar parameters including the second option.
36. Send the aforementioned avatar recipe to your contacts. The method according to claim 35, further comprising:
37. Receiving the avatar recipe from the first contact, The method according to claim 26 or 27, further comprising displaying contact information for a plurality of contacts, including the first contact, wherein the contact information displayed for the first contact includes an avatar based on the avatar recipe for the first contact.
38. The method according to claim 26 or 27, wherein when the first avatar feature is currently selected, the display of the avatar includes an indicator of the first avatar feature.
39. The method according to claim 26 or 27, wherein the representation in the feature selection control region has a shape based on the shape of each avatar feature.
40. The method according to claim 26 or 27, wherein the representation within the feature option control region has a shape based on the shape of each avatar feature option.
41. Updating the display of the avatar using avatar animation if no input associated with the avatar editing user interface is detected for a predetermined period of time via one or more input devices. The method according to claim 26 or 27, further comprising:
42. The method according to claim 26 or 27, wherein updating the avatar according to the second option of the first avatar feature to change the appearance of the first avatar feature includes modifying the facial expression of the avatar based on the second option.
43. While displaying the avatar, the eyes of the avatar are updated based on the position associated with the input when an input is detected via one or more input devices of the electronic device. The method according to claim 26 or 27, further comprising:
44. Updating the avatar based on the animation loop, wherein the animation loop includes a series of facial expressions of the avatar. The method according to claim 26 or 27, further comprising:
45. The animation loop has a duration, and the method is The method according to claim 44, further comprising determining a random time offset less than the duration, and updating the avatar based on the animation loop, comprising updating the avatar to start at a position in the animation loop based on the random time offset.
46. After a predetermined period, stop updating the avatar based on the animation loop. The method according to claim 44, further comprising:
47. The method according to claim 26 or 27, wherein updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature includes transitioning the first avatar feature based on the first option to the first avatar feature based on the second option via animation.
48. The display and One or more processors, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and are configured to be executed by one or more processors, and the one or more programs are An avatar with multiple editable features, A feature selection control region including a representation of multiple avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, A feature option control region including a representation of multiple options for the first avatar feature to be selected, including a first option for the first avatar feature that is currently selected and a second option for the first avatar feature that is not currently selected, Displaying an avatar editing user interface on the display, which includes simultaneously displaying the following: To display the avatar editing user interface and to detect input in the avatar editing user interface, In response to detecting the aforementioned input, According to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region, The feature selection control region is updated to indicate that the second avatar feature is currently selected, Updating the feature option control region to include a representation of multiple options for the second avatar feature to be selected, including a first option for the second avatar feature that is currently selected and a second option for the second avatar feature that is not currently selected; According to the determination that the input corresponds to the selection of the second option of the first avatar feature in the feature option control region, Updating the feature option control region to indicate that the second option of the first avatar feature is currently selected, Updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, An electronic device that includes instructions to perform a specific action.
49. A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs are executed by one or more processors of an electronic device having a display and one or more input devices. An avatar with multiple editable features, A feature selection control region including a representation of multiple avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, A feature option control region including a representation of multiple options for the first avatar feature to be selected, including a first option for the first avatar feature that is currently selected and a second option for the first avatar feature that is not currently selected, Displaying an avatar editing user interface on the display, which includes simultaneously displaying the following: To display the avatar editing user interface and to detect input in the avatar editing user interface, In response to detecting the aforementioned input, According to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region, The feature selection control region is updated to indicate that the second avatar feature is currently selected, Updating the feature option control region to include a representation of multiple options for the second avatar feature to be selected, including a first option for the second avatar feature that is currently selected and a second option for the second avatar feature that is not currently selected; According to the determination that the input corresponds to the selection of the second option of the first avatar feature in the feature option control region, Updating the feature option control region to indicate that the second option of the first avatar feature is currently selected, Updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, A non-temporary computer-readable storage medium including an instruction to cause the device to perform the following action.
50. The display and One or more input devices, Avatars with multiple editable features, A feature selection control region including a representation of multiple avatar features, including a first avatar feature currently selected for modification and a second avatar feature not currently selected for modification, and A feature option control region including a representation of multiple options for the first avatar feature to be selected, including a first option for the first avatar feature that is currently selected and a second option for the first avatar feature that is not currently selected. Means for displaying an avatar editing user interface on the display, including simultaneous display of the following: A means for displaying the avatar editing user interface and detecting input in the avatar editing user interface, In response to detecting the aforementioned input, According to the determination that the input corresponds to the selection of the second avatar feature in the feature selection control region, The feature selection control region is updated to indicate that the second avatar feature is currently selected, and Means for updating the feature option control region to include a representation of a plurality of options for selecting the second avatar feature, including a first option for the second avatar feature that is currently selected and a second option for the second avatar feature that is not currently selected. According to the determination that the input corresponds to the selection of the second option of the first avatar feature in the feature option control region, Update the feature option control region to indicate that the second option of the first avatar feature is currently selected, and Means for updating the avatar to change the appearance of the first avatar feature according to the second option of the first avatar feature, An electronic device equipped with [a specific feature / feature].
51. The display and One or more processors, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and configured to be executed by one or more processors, and the one or more programs include instructions to perform any of the methods according to claims 26 to 47.
52. A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs include instructions, and when the instructions are executed by one or more processors of an electronic device having a display and one or more input devices, the instructions cause the device to execute any of the methods according to claims 26 to 47.
53. The display and Means for carrying out any of the methods described in claims 27 to 47, An electronic device equipped with [a specific feature / feature].
54. In an electronic device having a display and one or more input devices, Displaying the messaging interface of a messaging application that transmits messages between a first user of the device and other users, wherein the first user is represented in the messaging application by a user avatar that distinguishes the first user of the device from other users, Receiving a first request to display a sticker user interface for selecting a sticker to send to a second user, while displaying the messaging user interface, In response to the first request to display the sticker user interface, A first avatar sticker generated based on the modification of the avatar representing the user, and A second avatar sticker representing the user and generated based on a modification of the avatar that is different from the first avatar sticker. Displaying a sticker user interface on the display that includes a first plurality of avatar stickers generated based on the user's avatar, including simultaneously displaying the following: The system detects, via one or more input devices, a sequence of one or more inputs corresponding to a request to send an avatar sticker from the first user to the second user via the messaging application, while displaying the plurality of affordances of the avatar selection interface on the display. In response to the detection of the sequence of one or more inputs, In accordance with the determination that the sequence of one or more inputs corresponds to the selection of the first avatar sticker, the first avatar sticker for the second user is sent from the first user to the second user via the messaging application. In accordance with the determination that the sequence of one or more inputs corresponds to the selection of the second avatar sticker, the first user sends the second avatar sticker to the second user via the messaging application. Methods that include...
55. The method according to claim 54, wherein the user's avatar is based on an avatar recipe.
56. The method according to claim 55, wherein the first avatar sticker is generated by modifying the first parameter of the avatar recipe of the user's avatar.
57. The method according to claim 55 or 56, wherein the second avatar sticker is generated by adding a second parameter to the avatar recipe of the user's avatar.
58. The method according to any one of claims 54 to 56, wherein sending the first avatar sticker to the second user includes sending the user a recipe representing the first avatar sticker.
59. Sending the first avatar sticker to the second user from the first user to the second user via the messaging application is: Sending the first avatar sticker to the second user, in accordance with the determination that the device associated with the second user supports avatar recipes, is equivalent to sending the user a recipe representing the first avatar sticker. In accordance with the determination that the device associated with the second user does not support avatar recipes, a graphical representation of the first avatar sticker is sent to the user. The method according to any one of claims 54 to 56, including the method described in any one of claims 54 to 56.
60. The method according to any one of claims 54 to 56, wherein the sticker user interface is displayed simultaneously with at least a portion of the messaging interface.
61. The method according to any one of claims 54 to 56, wherein the first avatar sticker is animated.
62. The method according to any one of claims 54 to 56, wherein the second avatar sticker includes a prop.
63. Before receiving the request to display the sticker user interface, the system receives user input in the text portion of the user message, After detecting the sequence of one or more inputs, the text portion of the user message is sent to the second user via the messaging application. The method according to any one of claims 54 to 56, further comprising:
64. After sending the first avatar sticker or the second avatar sticker, the system detects a second sequence of one or more inputs via one or more input devices that corresponds to a request from the first user to send the corresponding avatar sticker to the second user via the messaging application, while displaying the plurality of affordances of the avatar selection interface on the display. In response to the detection of a second sequence of one or more inputs, and in accordance with the determination that the sequence of one or more inputs corresponds to the selection of the second avatar sticker, the first user sends the second avatar sticker to the second user via the messaging application. The method according to any one of claims 54 to 56, further comprising:
65. The display and One or more processors, One or more input devices, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and executed by one or more processors, Displaying the messaging interface of a messaging application that transmits messages between a first user of the device and other users, wherein the first user is represented in the messaging application by a user avatar that distinguishes the first user of the device from other users, Receiving a first request to display a sticker user interface for selecting a sticker to send to a second user, while displaying the messaging user interface, In response to the first request to display the sticker user interface, A first avatar sticker generated based on the modification of the avatar representing the user, and A second avatar representing the user and generated based on a modification of the avatar that is different from the first avatar sticker. Displaying a sticker user interface on the display that includes a first plurality of avatar stickers generated based on the user's avatar, including simultaneously displaying the following: The system detects, via one or more input devices, a sequence of one or more inputs corresponding to a request to send an avatar sticker from the first user to the second user via the messaging application, while displaying the plurality of affordances of the avatar selection interface on the display. In response to the detection of the sequence of one or more inputs, In accordance with the determination that the sequence of one or more inputs corresponds to the selection of the first avatar sticker, the first avatar sticker for the second user is sent from the first user to the second user via the messaging application. In accordance with the determination that the sequence of one or more inputs corresponds to the selection of the second avatar sticker, the first user sends the second avatar sticker to the second user via the messaging application. An electronic device that includes instructions to perform a specific action.
66. A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs are executed by one or more processors of an electronic device having a display and one or more input devices. Displaying the messaging interface of a messaging application that transmits messages between a first user of the device and other users, wherein the first user is represented in the messaging application by a user avatar that distinguishes the first user of the device from other users, Receiving a first request to display a sticker user interface for selecting a sticker to send to a second user, while displaying the messaging user interface, In response to the first request to display the sticker user interface, the display will show: A first avatar sticker generated based on the modification of the avatar representing the user, and A second avatar representing the user and generated based on a modification of the avatar that is different from the first avatar sticker. Displaying a sticker user interface that includes a first plurality of avatar stickers generated based on the user's avatar, including simultaneously displaying the following: The system displays the plurality of affordances of the avatar selection interface on the display, and detects one or more input sequences via one or more input devices that correspond to a request to send a corresponding avatar sticker from the first user to the second user via the messaging application. In response to the detection of the sequence of one or more inputs, In accordance with the determination that the sequence of one or more inputs corresponds to the selection of the first avatar sticker, the first avatar sticker for the second user is sent from the first user to the second user via the messaging application. In accordance with the determination that the sequence of one or more inputs corresponds to the selection of the second avatar sticker, the first user sends the second avatar sticker to the second user via the messaging application. A non-temporary, computer-readable storage medium containing instructions that cause a device to perform a certain action.
67. It is an electronic device, The display and One or more input devices, Means for displaying a messaging interface of a messaging application that transmits messages between a first user of the device and other users, wherein the first user is represented in the messaging application by an avatar of the user that distinguishes the first user of the device from other users; A means for receiving a first request, which displays the messaging user interface and a sticker user interface for selecting a sticker to send to a second user, In response to the first request to display the sticker user interface, A first avatar sticker generated based on the modification of the avatar representing the user, and A second avatar representing the user and generated based on a modification of the avatar that is different from the first avatar sticker. means for displaying on the display a sticker user interface including a first plurality of avatar stickers generated based on the user's avatar, including simultaneous display of the following: Means for detecting, via one or more input devices, a sequence of one or more inputs corresponding to a request to send an avatar sticker corresponding to a second user from a first user via a messaging application, while displaying the plurality of affordances of the avatar selection interface on the display, In response to the detection of the sequence of one or more inputs, A means for sending the first avatar sticker for the second user from the first user to the second user via the messaging application, in accordance with the determination that the sequence of one or more inputs corresponds to the selection of the first avatar sticker, A means for sending the second avatar sticker from the first user to the second user via the messaging application, in accordance with the determination that the sequence of one or more inputs corresponds to the selection of the second avatar sticker, An electronic device equipped with [a specific feature / feature].
68. The display and One or more processors, One or more input devices, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and configured to be executed by one or more processors, and the one or more programs include instructions to execute any of the methods according to claims 54 to 64.
69. A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs include instructions, and when the instructions are executed by one or more processors of an electronic device having a display and one or more input devices, the device is caused to execute any of the methods according to claims 54 to 64.
70. The display and One or more input devices, Means for carrying out any of the methods described in claims 54 to 64, An electronic device equipped with [a specific feature / feature].
71. In an electronic device having a display and a touch-sensitive surface, Displaying an avatar editing interface on the device, which includes an avatar having multiple editable features, A first gesture is detected on the touch-sensing surface, which includes the movement of one or more contacts with the touch-sensing surface, while a corresponding feature among the plurality of editable features is the currently selected feature. In response to the detection of the first gesture, Updating the display of the avatar by modifying the first characteristic of the first characteristic, in accordance with the determination that the first gesture is a first type of gesture and the corresponding characteristic is a first characteristic, wherein the first characteristic of the first characteristic is associated with the first gesture type, The method involves updating the display of the avatar by modifying the second characteristic of the first characteristic, which is different from the first characteristic of the first characteristic, based on the determination that the first gesture is a second type of gesture different from the first type of gesture and the corresponding feature is the first characteristic, wherein the second characteristic of the first characteristic is associated with the second gesture type, Methods that include...
72. The method according to claim 71, further comprising updating the display of the avatar by modifying the first property of the second property in response to the detection of the first gesture, in accordance with the determination that the gesture is a first type of gesture and the corresponding property is a second property, wherein the first property of the second property is associated with the first gesture type.
73. The method according to claim 72, wherein the first characteristic of the second feature is different from the first characteristic of the first feature.
74. The method according to claim 72 or 73, further comprising updating the display of the avatar by modifying the second characteristic of the second characteristic, which is different from the first characteristic of the second characteristic, in response to the detection of the first gesture, according to the determination that the first gesture is a second type of gesture different from the first type of gesture and the corresponding feature is the second characteristic, wherein the second characteristic of the second characteristic is associated with the second gesture type.
75. The method according to claim 72 or 73, wherein the second characteristic of the second feature is different from the second characteristic of the first feature.
76. The method according to any one of claims 71 to 73, wherein the avatar editing interface includes a first selection indicator having feature affordances for one or more of the plurality of editable features that can be selected for editing.
77. The method according to any one of claims 71 to 73, wherein the first type of gesture is a pinch gesture, the first feature is a nose, and the first characteristic is the width of the nose.
78. The method according to any one of claims 71 to 73, wherein the second type of gesture is a vertical drag, and the second characteristic is the vertical position of the first characteristic.
79. The first gesture, in accordance with the determination that it modifies the first characteristic beyond the first tolerance range of the first characteristic, stops modifying the first characteristic of the first feature. The method according to any one of claims 71 to 73, further comprising:
80. During the first gesture, an input corresponding to a modification of the first characteristic that exceeds the tolerance range of the first characteristic is detected, After modifying the first characteristic beyond the tolerance range of the first characteristic, the end of the gesture is detected, The display of the avatar is updated by modifying the first characteristic of the first feature so that it falls within the second tolerance range of the second characteristic, in response to the detection of the end of the first gesture. The method according to any one of claims 71 to 73, further comprising:
81. The method according to any one of claims 71 to 73, wherein the first gesture is detected at a location on the touch-sensing surface separate from the location where the first feature is displayed.
82. Receiving user input to select a pre-configured set of characteristics for the corresponding feature, wherein the pre-configured set of characteristics includes the values of the first and third characteristics but does not include the value of the second characteristic. In response to receiving the user input, the display of the avatar is updated based on the first value and the second value, The method according to any one of claims 71 to 73, further comprising:
83. The method according to any one of claims 71 to 73, wherein the third characteristic is not modifiable except by selecting one or more pre-set sets of characteristics.
84. The method according to any one of claims 71 to 73, wherein the display of the avatar based on the value of the first characteristic and the value of the third characteristic is based on a user-defined value of the second characteristic.
85. The method according to any one of claims 71 to 73, wherein the user input for selecting the set of pre-set characteristics is a selection of an affordance associated with a presented characteristic, and the affordance has a shape that represents one or more values in the set of pre-set characteristics.
86. In response to receiving the user input, the system requests the remote server to configure the set of pre-configured characteristics. The method according to any one of claims 71 to 73, further comprising:
87. The display and One or more processors, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and executed by one or more processors, Displaying an avatar editing interface on the device, which includes an avatar having multiple editable features, A first gesture is detected on the touch-sensing surface, which includes the movement of one or more contacts with the touch-sensing surface, while a corresponding feature among the plurality of editable features is the currently selected feature. In response to the detection of the first gesture, Updating the display of the avatar by modifying the first characteristic of the first characteristic, in accordance with the determination that the first gesture is a first type of gesture and the corresponding characteristic is a first characteristic, wherein the first characteristic of the first characteristic is associated with the first gesture type, The method involves updating the display of the avatar by modifying a second characteristic of the first feature that is different from the first characteristic of the first feature, based on the determination that the first gesture is a second type of gesture different from the first type of gesture and the corresponding feature is the first feature, wherein the second characteristic of the first feature is associated with the second gesture type, An electronic device that includes instructions to perform a specific action.
88. A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs include instructions, and when the instructions are executed by one or more processors of an electronic device having a display and one or more input devices, Displaying an avatar editing interface on the display, which includes an avatar having multiple editable features, A first gesture is detected on the touch-sensing surface, which includes the movement of one or more contacts with the touch-sensing surface, while a corresponding feature among the plurality of editable features is the currently selected feature. In response to the detection of the first gesture, Updating the display of the avatar by modifying the first characteristic of the first characteristic, in accordance with the determination that the first gesture is a first type of gesture and the corresponding characteristic is a first characteristic, wherein the first characteristic of the first characteristic is associated with the first gesture type, Updating the display of the avatar by modifying the second characteristic of the first characteristic, which is different from the first characteristic of the first characteristic, in accordance with the determination that the first gesture is a second type of gesture different from the first type of gesture and the corresponding feature is the first characteristic, wherein the second characteristic of the first characteristic is associated with the second gesture type, A non-temporary computer-readable storage medium including an instruction to cause the device to perform the following action.
89. It is an electronic device, The display and One or more input devices, Means for displaying an avatar editing interface on the device, which includes an avatar having multiple editable features, Means for detecting a first gesture on the touch-sensing surface, which includes the movement of one or more contacts with the touch-sensing surface, while a corresponding feature among the plurality of editable features is the currently selected feature. In response to the detection of the first gesture, Updating the display of the avatar by modifying the first characteristic of the first characteristic, in accordance with the determination that the first gesture is a first type of gesture and the corresponding characteristic is a first characteristic, wherein the first characteristic of the first characteristic is associated with the first gesture type, and Means for updating the display of the avatar by modifying the second characteristic of the first characteristic, which is different from the first characteristic of the first characteristic, in accordance with the determination that the first gesture is a second type of gesture different from the first type of gesture and the corresponding feature is the first characteristic, wherein the second characteristic of the first characteristic is associated with the second gesture type, An electronic device equipped with [a specific feature / feature].
90. The display and One or more processors, Memory and One or more programs, An electronic device comprising, wherein one or more programs are stored in memory and configured to be executed by one or more processors, and the one or more programs include instructions to execute any of the methods according to claims 71 to 86.
91. A non-temporary computer-readable storage medium for storing one or more programs, wherein the one or more programs include instructions, and when the instructions are executed by one or more processors of an electronic device having a display and one or more input devices, the device is caused to execute any of the methods according to claims 71 to 86.
92. The display and Means for carrying out any of the methods described in claims 71 to 86, An electronic device equipped with [a specific feature / feature].