IP Library › Granted Patent US 12,592,019
Granted Patent B1
US 12,592,019 · App. 18/306,864 · Granted Mar 31, 2026

Systems, methods and graphical user interfaces for motion editing and animation applications

Inventors: Jee Young Park (San Bruno, CA); Magnus H. Johnson (San Francisco, CA); Karen N. Wong (Sunnyvale, CA); Bradley W. Peebler (Redwood City, CA)
Assignee: Apple Inc.
G06T13/40G06F3/0484G06T13/80G06T2200/24
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,592,019
App. No.
18/306,864
Granted
Mar 31, 2026
Kind
B1
Abstract

Some examples of the disclosure are directed to a virtual motion capture application configured to operate on a first electronic device. In some examples, the virtual motion capture application is configured to present, via the first electronic device, a user interface element containing an animation timeline and a virtual platter including a virtual object in a computer-generated environment. In some examples, the user interface element includes a plurality of options and tools for generating pose-centered motion for the virtual object in the computer-generated environment. In some examples, the virtual motion capture application is configured to exchange data corresponding to the virtual object with a content creation application running on a second electronic device. In some examples, the second electronic device may display a motion creation user interface associated with the content creation application while the first electronic device presents the computer-generated environment.

Claims (96)

1 . A method comprising:

presenting, at a first electronic device, a computer-generated environment including:

a representation of a second electronic device, wherein the second electronic device is in communication with the first electronic device, and wherein the second electronic device is running a content creation application; and

an animation user interface associated with the content creation application, including:

a first object having a first pose; and

a first user interface element including an animation timeline;

while presenting the computer-generated environment at the first electronic device, receiving, at the first electronic device, a first input corresponding to movement of the first object from the first pose to a second pose, different from the first pose;

in response to receiving the first input:

updating display, in the computer-generated environment, of the first object to have the second pose; and

transmitting, to the content creation application running on the second electronic device, data corresponding to the movement of the first object from the first pose to the second pose.

2 . The method of claim 1 , wherein:

the animation timeline includes a plurality of time frames; and

the first user interface element further includes a first key frame corresponding to the first pose at a first time frame of the plurality of time frames.

3 . The method of claim 2 , wherein the first input includes advancement from the first time frame to a second time frame, different from the first time frame, in the animation timeline, the method further comprising:

in response to receiving the first input:

generating a second key frame corresponding to the second pose at the second time frame; and

interpolating the first pose and the second pose to generate animated movement of the first object from the first pose to the second pose.

4 . The method of claim 3 , wherein the first user interface element further includes a first interpolation segment extending between the first key frame and the second key frame, the first interpolation segment associated with a first interpolation type for the animated movement of the first object, the method further comprising:

while displaying the first user interface element, receiving, at the first electronic device, a second input corresponding to selection of the first interpolation segment;

in response to receiving the second input, displaying, at the first electronic device, a plurality of interpolation types associated with the first interpolation segment, including the first interpolation type;

while displaying the plurality of interpolation types, receiving, at the first electronic device, a third input corresponding to selection of a second interpolation type, different from the first interpolation type; and

in response to receiving the third input:

associating the first interpolation segment with the second interpolation type; and

interpolating the first pose and the second pose based on the second interpolation type.

5 . The method of claim 4 , wherein, before receiving the third input, the first interpolation segment is displayed with a first appearance, the method further comprising:

in response to receiving the third input:

displaying the first interpolation segment with a second appearance, different from the first appearance.

6 . The method of claim 1 , wherein the first user interface element further includes a play option that is selectable to cause the first electronic device to display animated motion of the first object according to the animation timeline.

7 . The method of claim 6 , further comprising:

while displaying the first user interface element, receiving, at the first electronic device, a second input corresponding to selection of the play option; and

in response to receiving the first input:

displaying, at the first electronic device, animated motion of the first object from the first pose to the second pose according to the animation timeline.

8 . A first electronic device comprising:

one or more processors;

memory; and

one or more programs stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for performing a method comprising:

presenting, at the first electronic device, a computer-generated environment including:

a representation of a second electronic device, wherein the second electronic device is in communication with the first electronic device, and wherein the second electronic device is running a content creation application; and

an animation user interface associated with the content creation application, including:

a first object having a first pose; and

a first user interface element including an animation timeline;

while presenting the computer-generated environment at the first electronic device, receiving, at the first electronic device, a first input corresponding to movement of the first object from the first pose to a second pose, different from the first pose;

in response to receiving the first input:

updating display, in the computer-generated environment, of the first object to have the second pose; and

transmitting, to the content creation application running on the second electronic device, data corresponding to the movement of the first object from the first pose to the second pose.

9 . The first electronic device of claim 8 , wherein:

the animation timeline includes a plurality of time frames; and

the first user interface element further includes a first key frame corresponding to the first pose at a first time frame of the plurality of time frames.

10 . The first electronic device of claim 9 , wherein the first input includes advancement from the first time frame to a second time frame, different from the first time frame, in the animation timeline, the method further comprising:

in response to receiving the first input:

generating a second key frame corresponding to the second pose at the second time frame; and

interpolating the first pose and the second pose to generate animated movement of the first object from the first pose to the second pose.

11 . The first electronic device of claim 10 , wherein the first user interface element further includes a first interpolation segment extending between the first key frame and the second key frame, the first interpolation segment associated with a first interpolation type for the animated movement of the first object, the method further comprising:

while displaying the first user interface element, receiving, at the first electronic device, a second input corresponding to selection of the first interpolation segment;

in response to receiving the second input, displaying, at the first electronic device, a plurality of interpolation types associated with the first interpolation segment, including the first interpolation type;

while displaying the plurality of interpolation types, receiving, at the first electronic device, a third input corresponding to selection of a second interpolation type, different from the first interpolation type; and

in response to receiving the third input:

associating the first interpolation segment with the second interpolation type; and

interpolating the first pose and the second pose based on the second interpolation type.

12 . The first electronic device of claim 11 , wherein, before receiving the third input, the first interpolation segment is displayed with a first appearance, the method further comprising:

in response to receiving the third input:

displaying the first interpolation segment with a second appearance, different from the first appearance.

13 . The first electronic device of claim 8 , wherein the first user interface element further includes a play option that is selectable to cause the first electronic device to display animated motion of the first object according to the animation timeline.

14 . The first electronic device of claim 13 , wherein the method further comprises:

while displaying the first user interface element, receiving, at the first electronic device, a second input corresponding to selection of the play option; and

in response to receiving the first input:

displaying, at the first electronic device, animated motion of the first object from the first pose to the second pose according to the animation timeline.

15 . A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by one or more processors of a first electronic device, cause the first electronic device to perform a method comprising:

presenting, at the first electronic device, a computer-generated environment including:

a representation of a second electronic device, wherein the second electronic device is in communication with the first electronic device, and wherein the second electronic device is running a content creation application; and;

an animation user interface associated with the content creation application, including:

a first object having a first pose; and

a first user interface element including an animation timeline;

while presenting the computer-generated environment at the first electronic device, receiving, at the first electronic device, a first input corresponding to movement of the first object from the first pose to a second pose, different from the first pose;

in response to receiving the first input:

updating display, in the computer-generated environment, of the first object to have the second pose; and

transmitting, to the content creation application running on the second electronic device, data corresponding to the movement of the first object from the first pose to the second pose.

16 . The non-transitory computer readable storage medium of claim 15 , wherein:

the animation timeline includes a plurality of time frames; and

the first user interface element further includes a first key frame corresponding to the first pose at a first time frame of the plurality of time frames.

17 . The non-transitory computer readable storage medium of claim 16 , wherein the first input includes advancement from the first time frame to a second time frame, different from the first time frame, in the animation timeline, the method further comprising:

in response to receiving the first input:

generating a second key frame corresponding to the second pose at the second time frame; and

interpolating the first pose and the second pose to generate animated movement of the first object from the first pose to the second pose.

18 . The non-transitory computer readable storage medium of claim 17 , wherein the first user interface element further includes a first interpolation segment extending between the first key frame and the second key frame, the first interpolation segment associated with a first interpolation type for the animated movement of the first object, the method further comprising:

while displaying the first user interface element, receiving, at the first electronic device, a second input corresponding to selection of the first interpolation segment;

in response to receiving the second input, displaying, at the first electronic device, a plurality of interpolation types associated with the first interpolation segment, including the first interpolation type;

while displaying the plurality of interpolation types, receiving, at the first electronic device, a third input corresponding to selection of a second interpolation type, different from the first interpolation type; and

in response to receiving the third input:

associating the first interpolation segment with the second interpolation type; and

interpolating the first pose and the second pose based on the second interpolation type.

19 . The non-transitory computer readable storage medium of claim 15 , wherein the first user interface element further includes a play option that is selectable to cause the first electronic device to display animated motion of the first object according to the animation timeline.

20 . The non-transitory computer readable storage medium of claim 19 , wherein the method further comprises:

while displaying the first user interface element, receiving, at the first electronic device, a second input corresponding to selection of the play option; and

in response to receiving the first input:

displaying, at the first electronic device, animated motion of the first object from the first pose to the second pose according to the animation timeline.

Continuity (1)
Provisional Application 63363561 · Apr 25, 2022
References Cited (12)
US 20040100482A1 · Cajolet et al. · 2004 [cited by applicant]
US 20100259545A1 · Elnatan · 2010 [cited by applicant]
US 20130076755A1 · Pritting · 2013 [cited by examiner]
US 20130219344A1 · Zyracki et al. · 2013 [cited by applicant]
US 20170091977A1 · West · 2017 [cited by examiner]
US 20180181194A1 · Harvey · 2018 [cited by examiner]
US 20210256175A1 · Bailey et al. · 2021 [cited by applicant]
US 20220028145A1 · Stevenson · 2022 [cited by examiner]
Animation Window Guide, Unity Documentation [online], Unity Documentation, Version 2022.3 [retrieved on Apr. 30, 2024], Retrieved from the Internet: <URL: https://docs.unity3d.com/Manual/AnimationEditorGuide.html>, 2 pa… [cited by applicant]
De Coster, Jean-Gobert, “How to Use Spine Animations in Unity's Timeline Editor”, YouTube [online], YouTube, 2021 [retrieved on Apr. 30, 2024], Retrieved from the Internet: <URL: https://www.youtube.com/watch?v=U9gHP8V0… [cited by applicant]
Koyama et al., “Precomputed Optimal One-hop Motion Transition for Responsive Character Animation”, The Visual Computer, <http//doi.org/10.1007/s00371-019-01693-8>, May 9, 2019, 12 pages. [cited by applicant]
Unity User Manual 2019.4 LTS, Published at https://docs.unity3d.com/2019.4/Documentation/Manual/, 2021, 58 pages. [cited by applicant]