CN111045754A - 由基于改变的试探法驱动的自动和交互式动画 - Google Patents

由基于改变的试探法驱动的自动和交互式动画 Download PDF

Info

Publication number
CN111045754A
CN111045754A CN201910700115.4A CN201910700115A CN111045754A CN 111045754 A CN111045754 A CN 111045754A CN 201910700115 A CN201910700115 A CN 201910700115A CN 111045754 A CN111045754 A CN 111045754A
Authority
CN
China
Prior art keywords
sub
objects
animation
palette
ordered list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201910700115.4A
Other languages
English (en)
Inventor
A·萨斯库玛
A·波特雷克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN111045754A publication Critical patent/CN111045754A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2213/00Indexing scheme for animation
    • G06T2213/08Animation software package
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2213/00Indexing scheme for animation
    • G06T2213/12Rule based animation

Abstract

本公开的实施例涉及由基于改变的试探法驱动的自动和交互式动画。通过在多个画板之间自动匹配对象来执行自动交互式动画的技术,其允许动画师使用时间作为触发以时间顺序链接多个画板,并允许动画师经由诸如鼠标或触摸屏的输入设备使用直观拖动控制来预览动画。通过基于为与画板中的每个对象相关联的一个或多个属性的集合计算的距离度量,来确定对象之间的相似性的排序,通过匹配画板之间的对象/节点来执行自动动画过程。如果找到足够的匹配,则可以将匹配的对象视为要被动画化的单个实体。在另一实施例中,确定相对于匹配的对象的移动的主导方向,并且接收在所述主导方向上的拖动事件(鼠标输入或触摸屏姿势输入)引起该实体的动画的预览。

Description

由基于改变的试探法驱动的自动和交互式动画
技术领域
本公开涉及用于执行数字动画的技术。具体地,本公开涉及用于通过在多个画板之间自动匹配对象来执行自动交互式动画的技术,其允许动画师使用时间作为触发以时间顺序链接多个画板,并允许动画师经由诸如鼠标或触摸屏的输入设备使用拖动控制来预览动画。
背景技术
在移动和web应用中看到的创作动画对于没有专门从事动画制作的可视化设计者来说是不直观的。设计由如拖动和滑动的交互触发的动画对创作者来说很复杂,并且需要设计师理解非常面向开发人员的概念。更详细地,为了跨一个或多个画布执行动画,每个画布中的相同对象需要彼此明确地相关联。为了实现这一点,来自一个场景的对象必须以自动的方式与另一场景中的相同对象匹配。例如,画板可以包括任何数目的诸如形状或图像的子对象。相同的对象可以出现在第二画板中,在这种情况下,动画算法将匹配对象从它们在第一画板中的相应位置动画化到它们在第二画板中的位置。通常,画板中的对象与诸如名称、类型等的各种属性相关联。可以通过在共享相同名称和类型的两个画板中找到对象来实现将对象从一个画板匹配到另一画板。然而,当例如跨多个画板存在重复的对象名称时,以自动方式执行这种匹配可能是有问题的。
在通过开发多个画板设计了动画之后,设计者通常会想预览动画。然而,用于设计动画的已知技术通常需要设计者/动画师除了输入姿势之外还输入拖动方向(如左、上、右、下),这不方便。另外,这些已知技术一般受限于它们可以生成的动画类型。其他已知技术采用简单的自动动画技术,诸如“魔术移动”的概念,其将对象从一个幻灯片动画化到另一幻灯片。然而,这些已知方法不存在像拖动这样的复杂交互。
其他工具采用“时间线”和单个画布,在该单个画布中示出原图。需要用户在时间线UI中指定多个选项以使属性动画化。需要用户选择和指定大量属性往往不方便并且经常不切实际。
发明内容
根据一些实施例,一种用于执行动画的方法,方法包括:确定第一画板的第一子对象和第二画板的第二子对象;如果第二子对象中的多个第二子对象与第一子对象相匹配,则:将多个第二子对象添加到初始列表,基于与第一子对象和多个第二子对象相关联的至少一个距离度量对初始列表进行排序以生成排序列表,至少一个距离度量基于与第一子对象和多个第二子对象相关联的至少一个属性,以及生成第一子对象与对应于排序列表中的第一条目的第二子对象之间的关联;以及使用关联来绘制动画,动画包括第一子对象和与排序列表中的第一条目相对应的第二子对象。
根据一些实施例,一种用于预览动画的方法,方法包括:接收与第一画板相关联的第一对象和与第二画板相关联的第二对象,其中第一对象和第二对象分别表示在第一时间和第二时间的单个实体;确定相对于第一对象和第二对象的移动的主导方向;接收在主导方向上的拖动事件;以及响应于拖动事件,更新实体的可视化表示的动画状态。
根据一些实施例,一种计算机程序产品,包括编码有指令的一个或多个非瞬态机器可读介质,指令在由一个或多个处理器执行时使得用于执行动画的过程被执行,过程包括:确定第一画板的第一子对象和第二画板的第二子对象;如果第二子对象中的多个第二子对象与第一子对象相匹配,则:将多个第二子对象添加到初始列表,基于与第一子对象和多个第二子对象相关联的至少一个距离度量对初始列表进行排序以生成排序列表,至少一个距离度量基于与第一子对象和多个第二子对象相关联的至少一个属性,以及生成第一子对象与对应于排序列表中的第一条目的第二子对象之间的关联;以及使用关联来绘制动画,动画包括第一子对象和与排序列表中的第一条目相对应的第二子对象。
附图说明
图1a是根据本公开的一个实施例的动画形状匹配过程的流程图。
图1b是根据本公开的一个实施例的动画形状匹配过程的更详细的流程图。
图1c是根据本公开的一个实施例的用于确定针对第一画板中的对象关于第二画板中的多个对象的最佳匹配的过程的流程图。
图2是根据本公开的一个实施例的用于执行拖动试探法的过程的流程图。
图3是描绘根据本公开的一个实施例的时间触发可视化过程的操作的流程图。
图4是根据本公开的一个实施例的动画系统的框图。
图5图示了根据本公开的一个实施例的匹配过程的各种方面。
图6a描绘了根据本公开的一个实施例的拖动试探法过程的示例操作。
图6b描绘了根据本公开的一个实施例的在确定主导方向时的拖动试探法过程的示例操作。
图7描绘了根据本公开的一个实施例的多画板时间触发可视化过程的示例。
图8a示出了根据本公开的一个实施例的用于生成多画板时间触发动画的用户界面的初始配置。
图8b示出了根据本公开的一个实施例的用于生成明确指示画板和帧之间的关系的多画板时间触发动画的用户界面的配置。
图8c示出了根据本公开的一个实施例的用于生成明确指示画板和帧之间的关系的多画板时间触发动画的用户界面的配置。
图8d示出了根据本公开的一个实施例的用于生成多画板时间触发动画的用户界面的配置。
图9a图示了根据本公开的一个实施例的执行动画过程的示例计算系统。
图9b图示了根据本公开的一个实施例的动画系统到网络环境中的示例集成。
具体实施方式
公开了用于在两个或更多个画板之间执行自动动画的技术。在实施例中,作为自动动画的一部分,匹配过程被执行以将对象在一个画板和另一画板之间相关联。该匹配过程包括对重复对象的标识,所有重复对象可以共享共同的属性或属性的集合,以及对真正匹配的标识(基于一些匹配阈值或标准)。在一个这种实施例中,通过基于为与画板中的每个对象相关联的属性的集合计算的距离度量来确定对象之间的相似性的排序,通过匹配画板之间的对象/节点来执行自动动画过程。根据一个这种实施例,使用第一画板和第二画板中的对象之间的一个或多个距离度量来确定最佳或足够的匹配。在其他距离度量中,可以基于将对象分离的层的相对数目来确定两个对象之间的距离。另一示例距离度量是(被比较的对象的)相似的属性或特性的数目。可以比较以下示例属性值:对象位置(例如,画板内和/或层的层级内的位置)、对象大小、与对象相关联的填充颜色、与对象相关联的笔划颜色、对象的可见性(例如,未隐藏、部分隐藏、完全隐藏)、角半径或与对象相关联的其他独特几何质量、与对象相关联的线高或间距、与对象相关联的字符间距,以及与对象相关联的字体类型和/或大小等。
另外,公开了用于预览动画的技术。特别地,在完成动画设计之后,动画师可能期望经由来自鼠标或键盘或触摸屏的输入来交互地驱动动画的预览。然而,生成用于预览任意动画的适当控制界面可能是困难的,因为各个动画化的对象的轨迹可能变化。因此,根据本公开的一个实施例,采用在本文中被称为拖动试探法的预览技术。拖动试探法过程试图确定一个或多个对象/形状在两个画板之间移动的主导方向。然后可以将主导方向用作单个动画化的对象的轨迹,其又可以被用来生成用于预览该对象的动画的直观或其他适当的控制界面。
另外,描述了用于以无缝方式将多个画板链接在一起以生成单个动画的技术。根据一个实施例,图形用户界面(“GUI”)允许设计者用多个画板工作并以图形方式将它们链接在一起。GUI关于底层对象在相邻画板之间的匹配对每个画板内的底层对象执行分析,并提供图形和其他设计辅助以有助于从多个画板生成动画。
定义
画板:除了其字面和普通的含义之外,本文使用的画板是指数字画布,插图画家、艺术家、动画师等可以在其上绘制或表示要被动画化的对象,诸如形状、图像或任何其他图形。
对象/节点:除了其字面含义或普通含义之外,节点或对象是指可以与画板相关联的任何实体,包括要被动画化的实际形状或图像,包括逻辑实体,逻辑实体诸如是作为逻辑容器操作的组以表示构成给定实体的形状之间的层级或其他关系,或其他组。出于本公开的目的,术语节点和对象可以互换地使用并且有效地指代可以与画布或画板相关联的任何实体。
层:除了其字面含义或普通含义之外,层是表示垂直于2-D屏幕或图像的想象的z维度中的形状或组的排序的逻辑构造。即,层表示垂直于图像的维度(‘z’维度)中的形状或组的虚拟排序。应当理解,当绘制画板时,取决于它们在虚拟z轴上的相应位置,某些形状可以遮挡其他形状。因此,层提供了用于表示在该想象的z维度内的对象的相对位置的技术。
组:除了其字面含义或普通含义之外,组是指一个或多个对象的逻辑集合,其本身可以是形状或图像或其他组。组的使用允许对象以递归结构被排列。出于本公开的目的,术语子对象是指包含在组内的对象,其可以包括另一组或诸如图形形状的任何其他对象。
重复:根据本公开的一个实施例,每个对象可以与各种属性(包括例如名称和类型)相关联。由于设计者/动画师有时可能对多个对象使用相同的名称和类型,因此在执行匹配过程中出现的常见场景涉及标识和重复的消除。因此,除了其字面含义之外,术语重复是指由于一个或多个共同属性而与第一对象相关联的至少两个第二对象。
方法论与架构
图1a是根据本公开的一个实施例的用于执行动画形状匹配过程的高级流程图。根据本公开的一个实施例,设计者或动画师可以首先在其中动画师设计多个画板的设计阶段工作,其中每个画板表示动画过程中的时间点。每个画板与对象的集合相关联,对象可以包括图形对象或图形对象的组。另外,形状可以以层布置,因此,由于它们在层的层级中的位置,形状可能遮挡其他形状。根据本公开的一个实施例,在动画师设计了画板的集合之后,动画师可以调用自动动画过程,该过程可以进一步调用动画形状匹配过程,以用于将多个画板之间的形状相关联以便执行自动动画。将进一步理解,画板中的每个对象与属性的集合相关联,属性可以包括名称、类型、颜色、形状等。
现在参考图1a,过程在170中开始。在172中,接收两个画板(画板A 120(1)和画板B120(2))。尽管本描述通过示例仅涉及两个画板,但是应当理解,图1a中所示的过程可以扩展到任意数目的画板。在174中,确定画板A 120(1)中是否存在任何未经检查的子对象。如之前所描述的,画板的子对象可以是对象,该对象可以是图形对象或组对象。如果在画板A120(1)中没有未经检查的子对象(174的‘否’分支),则该过程在184中结束。
如果在画板A 120(1)中存在未经检查的子对象(174的‘是’分支),则流程以176继续并且将变量currentAChild设置为画板A 120(1)中的下一子对象。在178中,确定对应于currentAChild的画板B 120(2)中的任何匹配。根据本公开的一个实施例,匹配可以包括画板B中的对象,其具有与currentAChild的属性相同的一个或多个属性。例如,根据本公开的一个实施例,两个对象之间的匹配可以包括具有相同名称和类型的两个对象。根据本公开的一个实施例,动画师可以为画板上定义的每个节点/对象提供名称。类型属性可以包括例如形状的类型或对象是否是组。
在180中,通过根据currentAChild和在178中确定的所有匹配对象的关联的属性计算距离度量,来对178中确定的所有匹配进行排序。根据本公开的一个实施例,可以利用以下特性属性:位置、大小、填充颜色、笔划颜色、可见性、角半径、线高、字符间距和字体大小。这些属性仅是示例,任何其他属性都是可能的。可以通过比较画板A120(1)和画板B 120(2)中的每个对象的索引来计算每个对象的相对层距离。根据本公开的一个实施例,可以利用欧几里德或其他度量,例如,通过计算currentAChild的属性相对于在178中确定的每个匹配对象的差的平方和。如果它是层属性,则可以使用层索引之间的差的绝对值。在182中,选择排名最高的匹配(即,具有最小距离的匹配)。然后流程以174继续。
图1b是根据本公开的一个实施例的动画形状匹配过程的详细流程图。出于本讨论的目的,与关于图1a的讨论类似的,假设要相对于两个画板(本文中被称为画板A 120(1)和画板B 120(2))执行自动动画。每个画板120可以与一个或多个对象相关联。关联的对象可以包括组,组本身可以与一个或多个对象相关联,该一个或多个对象可以是组,从而生成对象之间的层级关系。为了执行关于画板A120(1)和画板B 120(2)的自动动画,执行匹配过程,其中画板A120(1)中的每个对象与画板B 120(2)中的相应对象相关联,如果可能的话。为了有效地执行该匹配,执行用以消除重复的过程。如前所述,由于对多个对象使用相同的名称/类型,可能会出现重复。
现在参考图1b,在102中启动动画形状匹配过程100。在104中,初始化各种数据结构。如图1a的虚线框所示的,根据本公开的一个实施例,地图(字典)数据结构matchedNodes140被创建和初始化。列表数据结构unMatchedNodes 142、newNodes 148、tempMatchedNodes 150和matchedGroupNodes 146也被创建和初始化。字典数据结构和列表数据结构的行为是熟知的,本文不再进一步讨论。然而,出于本讨论的目的,matchedNodes 140存储第一画板(画板A)120(1)中的节点或对象与第二画板(画板B)120(2)中的节点或对象之间的关联。unMatchedNodes 142是列表数据结构,其存储不匹配节点的列表。tempMatchedNodes 150是列表数据结构,其存储关于第一画板中的节点/对象的第二画板中的匹配节点的排序列表。根据本公开的一个实施例,可以通过应用下面描述的一个或多个距离度量来执行tempMatchedNodes的排序。matchedGroupNodes 146存储在第二画板中的已经匹配到第一画板中的相应对象的组对象的列表。newNodes 148存储仅存在于第二画板中,而不存在于第一画板中的对象的列表。
在105中,接收画板A 120(1)和画板B 120(2)。在106中,确定画板A 120(1)和画板B 120(2)的所有子对象。特别地,如前所述,对象可以以层级方式排列在画板中,其中组包含对象,对象本身可以是组,从而为对象/节点的排列提供层级或分层方法。
如将要描述的,现在以顺序方式检查在106中确定的画板A 120(1)的子对象。特别地,在108中,确定画板A 120(1)中是否存在任何未经检查的子对象。如果是(108的‘是’分支),则在112中,将变量currentAChild设置为画板A 120(1)中的下一子对象。根据本公开的一个实施例,将利用由currentAChild标识的对象来尝试确定画板B 120(2)中的最佳匹配。在116中,通过计算currentAChild与画板B 120(2)的每个子对象之间的距离度量,来确定用于画板A120(1)中的currentAChild的画板B 120(2)中的最佳匹配(如果存在的话)。如将参考图1b更详细地描述的那样,确定画板B 120(2)中的最佳匹配可能需要消除可能与currentAChild共享相同名称和类型的画板B 120(2)中的重复子对象。如将参考图1b更详细地描述的那样,在完成118时,针对与currentAChild相对应的画板B 120(2)中的任何匹配的节点更新matchedNodes 140。类似地,matchedGroupNodes 146也被更新以包括与currentAChild相匹配的任何组节点(如果它实际上是组的话)。另外,更新unMatchedNodes142以包括任何不匹配的节点。然后流程以108继续,其中确定在画板A120(1)中是否存在任何未经检查的子对象。
如果已经检查了画板A 120(1)中的所有子对象(108的‘否’分支),则流程以118继续,其中确定在matchedGroupNodes 146中是否存在任何未经检查的节点/对象。如将关于图1b描述的,matchedGroupNodes 146是存储已经根据图1b(118)所示的过程匹配的组对象的列表。如果matchedGroupNodes 146中没有未经检查的节点/对象(118的‘否’分支),则流程以124继续,其中将画板B 120(2)中的不在matchedNodes 140中的每个子对象插入到newNodes148中。如果matchedGroupNodes 146中存在未经检查的对象/节点,则流程以120继续,其中变量matchedGroupNode被设置为matchedGroupNodes 146中的下一节点。然后在122中,通过将当前画板A 120(1)设置为matchedGroupNode来初始化递归步骤,并且画板B120(2)被设置为与键matchedGroupNode相对应的matchedNodes 140中的键的值。然后流程以102继续,其中执行递归操作。
图1c是根据本公开的一个实施例的用于确定针对第一画板中的对象关于第二画板中的多个对象的最佳匹配的过程的流程图。如之前关于图1b所描述的那样,图1c中所示的过程操作以确定用于画板A120(1)(currentAChild)中当前子对象的最佳匹配并更新各种状态变量。过程在130中开始。在134中,确定画板B 120(2)中是否存在任何剩余的子对象。如果是(134的‘是’分支),则在132中,将变量currentBChild设置为画板B 120(2)中的下一子对象。在154中,确定由变量currentAChild标识的对象是否与由currentBChild标识的对象相匹配。根据本公开的一个实施例,如果画板A 120(1)中的对象与画板B 120(2)中的对象至少共享相同的名称,则登记这两个对象之间的匹配。根据备选实施例,如果对应的对象共享相同名称和相同类型,则登记匹配。根据备选实施例,可以利用与画板A 120(1)和画板B 120(2)中的对象相关联的任何属性或属性的组合来确定是否存在匹配。如果未检测到匹配(154的‘否’分支),则流程以134继续,其中检查画板B 120(2)中的剩余子对象。如果检测到匹配(154的‘是’分支),则流程以133继续,其中由currentBChild标识的节点被插入到tempMatchedNodes 150中。利用列表变量tempMatchedNodes来保持对应于currentAChild的来自画板B 120(2)的匹配对象/节点的运行列表。流程以134继续,其中确定画板B 120(2)中是否存在任何剩余的子对象。
如果画板B 120(2)中没有剩余的子对象(134的‘否’分支),则流程以160继续,其中确定tempMatchedNodes 150的大小。如前所述,tempMatchedNodes 150存储来自画板B120(2)的节点,其关于诸如名称和类型的一个或多个属性与currentAChild相匹配。如果tempMatchedNodes 150的大小为1,则指示已经检测到单个匹配(即,不存在重复),并且流程以138继续,其中应当是唯一的节点的tempMatchedNodes中的第一条目(tempMatchedNodes[0])被插入到列表变量matchedNodes 140中。流程以160继续,其中确定currentAChild是否是组节点。如果currentAChild是组节点并且已经检测到与currentBChild的匹配,则意味着currentBChild也是组节点,因为根据一些实施例,节点必须在其类型属性上匹配。如果currentAChild不是组节点(160的‘否’分支),则流程以162继续并且过程结束。否则(160的‘是’分支),流程以162继续,其中由currentAChild标识的节点被插入到字典/地图matchedGroupNodes 146中。根据本公开的一个实施例,键值是currentAChild的标识符并且值是currentBChild的标识符。然后,流程以162继续并且过程结束。
如果tempMatchedNodes的大小不等于1(160的‘否’分支),则流程以162继续,其中确定tempMatchedNodes的大小是否大于1。如果不是(162的‘否’分支),则这意味着在画板B120(2)中没有找到匹配节点,并且流程以142继续,其中由currentAChild标识的节点被插入到列表结构unmatchedNodes 144中。然后流程以162继续并且过程结束。
另一方面,如果tempMatchedNodes的大小大于1(162的‘是’分支),则流程以136继续,并且基于一个或多个度量对tempMatchedNodes 150进行排序。根据本公开的一个实施例,tempMatchedNodes基于以下标准按降序排序:
(a)相似的属性的数目。可以比较以下属性值:位置、大小、填充颜色、笔划颜色、可见性、角半径、线高、字符间距和字体大小。具有较高数目的相似或匹配属性的对象在列表上可以比具有较低数目的相似/匹配属性的对象更高地列出(更可能是匹配)。
(b)每个子对象的相对层距离。根据本公开的一个实施例,通过检查其父对象中的画板120(1)中的子对象的索引并且将其与画板B中的子对象的索引进行比较来计算层距离。在它们之间具有较小的层距离差异的对象在列表上可以比在它们之间具有较大的层距离差异的对象更高地列出(更可能是匹配)。
然后,在139中,tempMatchedNodes中的第一条目(tempMatchedNodes[0])被保存在matchedNodes 140中。因为这表示最佳匹配。然后过程在162中结束。
图2是根据本公开的一个实施例的用于执行拖动试探法的过程的流程图。如之前所描述的,可以执行拖动试探法过程作为预览过程的一部分,以便有助于或增强动画师预览之前设计的动画的能力。根据本公开的一个实施例,拖动试探法过程为动画师提供擦洗所设计的动画的自动化的能力。在202中开始拖动试探法过程200,由此用户指示执行拖动试探法交互的意图。特别地,根据本公开的一个实施例,接收matchedNodes对象140。之前描述了matchedNodes对象140,并且根据本公开的一个实施例,其可以包括字典或地图,其中键是第一画板120中的对象标识符,并且值是第二画板120中的匹配对象的对象标识符。
在206中,确定主导方向。对象可能在X和Y平面中在两个维度上移动。根据本公开的一个实施例,可以将主导拖动方向确定为对象在X和Y维度上移动的距离中的较大者。例如,如果对象在X维度中移动10个单位而在Y维度中移动25个单位,则主导方向将在Y方向上。在过程中的这一点处,用户可以使用诸如鼠标或触摸屏的设备与动画预览操作交互。在208中,确定是否接收到拖动事件。特别地,根据本公开的一个实施例,拖动事件可以包括用户沿着根据206确定的主导方向移动鼠标或其他输入设备(例如,触摸屏)。如果没有接收到拖动事件(208的‘否’分支),则流程以208继续,并且再次确定是否接收到拖动事件。否则(208的‘是’分支),在210中,确定在主导方向上的拖动距离。例如,如果拖动事件在X维度中移动5个单位并且在Y维度中移动2个单位,并且主导方向在Y维度中,则距离将被确定为2个单位。
在212中,基于在210中确定的距离来更新(即,动画化)要被动画化的匹配的对象。根据本公开的一个实施例,可以基于诸如鼠标或触摸屏的输入设备的灵敏度来定义总拖动距离。根据本公开的一个实施例,总拖动距离可以是动画化的对象在主导方向上行进的单位的总数。然后可以基于在210中确定的距离与总拖动距离的比率以及用以调整输入设备(诸如鼠标或触摸屏)的灵敏度的比例因子来更新匹配的对象的动画。换言之,可以以类似于更新诸如磁带卡座或VCR的回放机器的播放头的方式来更新动画。特别地,动画师可以“擦洗”虚拟播放头以在动画中寻找不同的时间点。例如,如果拖动进行到一半并且动画持续时间为1秒,则播放头可以移动到动画中的0.5秒。在214中,确定是否已经达到总拖动距离。如果是(214的‘是’分支),则过程在216结束。否则(214的‘否’分支),流程以208继续。
图3是描绘根据本公开的一个实施例的时间触发可视化过程的操作的流程图。图3中所示的过程可以在下面关于图4描述的时间触发模块416上被实现。如之前所描述的,时间触发过程允许动画师创建多个画板的时间序列,多个画板被视为用于动画目的的单个画板,其中时间作为从一个画板到下一画板的动画之间的触发事件。为了有助于这种功能性,根据本公开的一个实施例,GUI提供可视化工具以允许动画师以时间序列链接多个画板。另外,时间触发可视化过程可以应用一个或多个试探法来确定是否在时间序列内包括特定画板。图3中所示的流程图中描绘的过程涉及允许动画师生成多个画板的时间序列的GUI的操作。
现在参考图3,过程在302中开始。在304中,接收画板连接410。根据本公开的一个实施例,用户可以利用链接指示符(下面参考图8a-图8c描述)来指示多个画板的链接。在306中,确定是否已经考虑了所有画板。如果是(306的‘是’分支),则过程在312中结束。否则(306的‘否’分支),流程以308继续,其中下一画板被设置为当前画板。在312中,确定当前画板是否是序列中的第一画板。如果是(312的‘是’分支),则在314中为当前画板添加帧。否则(312的‘否’分支),在316中例如使用动画匹配过程100确定在之前画板和当前画板之间是否存在匹配的对象。如果不存在(316的‘否’分支),则流程以306继续。否则(316的‘是’分支),流程以318继续,从而为当前画板添加帧。然后流程以306继续。
图4是根据本公开的一个实施例的动画系统的框图。如图4中所示,动画系统还包括动画设计系统404和动画预览系统402。动画师或设计者可以利用动画设计系统404来设计包括任何数目的画板的任意动画。在已经使用动画设计系统404设计动画之后,动画师可以利用动画预览系统403来预览动画并评估其效果。如图4中所示,动画设计系统404还包括匹配模块402、多画板时间触发可视化模块416和数据存储库406。匹配模块402可以执行如参考图1a-图1c所描述的动画匹配过程100。特别地,画板120可以由动画设计系统404接收并被存储在数据存储库210中。匹配模块402可以从数据存储库406中取回画板120并且执行动画匹配过程100来生成匹配的对象408。
现在将描述多画板时间触发可视化模块416的操作。根据本公开的一个实施例,多画板时间触发可视化模块416执行可视化过程并为以时间序列排列的多个画板的动画绘制提供控制。如图4中所示,多画板时间触发可视化模块416接收画板连接410,画板连接410指示特定画板120以顺序方式被链接在一起以提供无缝动画。多画板时间触发可视化模块416可以将关于所考虑的特定画板120的信息提交给匹配模块420,并进而从匹配模块420接收诸如匹配的对象408的匹配信息。
在设计者已经完成了动画设计之后,设计者可以利用动画预览系统403来预览动画。如图4中所示,动画预览系统403还包括拖动试探法模块414和动画绘制器420。拖动试探法模块执行如参考图2所描述的拖动试探法过程200。动画绘制器420接收匹配的对象408和来自拖动试探法模块的输出以绘制动画422。
现在将描述拖动试探法模块414的操作。如图4中所示,匹配的对象408和拖动事件412由拖动试探法模块414接收。拖动事件412可以包括例如基于鼠标的事件或基于触摸屏的事件(例如,触摸屏上的滑动或拖动姿势)或其他输入设备拖动事件。如之前所描述的匹配的对象408包括来自画板120的对象,已经使用动画形状匹配过程100对这些对象进行匹配。
图5图示了根据本公开的一个实施例的匹配过程的各种方面。特别地,图5描绘了可以应用动画匹配过程100的场景。如图5中所示,呈现了两个画板120(1)和120(2),每个画板与子对象502(1)-502(7)和502(8)-502(16)相关联。关于每个对象502示出名称属性和层索引属性。例如,对象502(2)具有名称‘A’和层索引6。还可以从图5中所示的对象的形状推断出类型属性。例如,对象502(2)与对象502(10)具有相同的类型,因为它们都是矩形的。另外,组对象(例如,502(1)和502(14))由虚线框指示。可以将对象之间的距离属性推断为图画中所示的对象之间的二维距离。假设图5中所示的每个对象502可以与其中未明确描绘的任意数目的其他属性相关联。
出于本示例的目的,假设用于匹配的其他属性是层索引和距离。另外,假设要使用动画匹配过程100为对象502(4)确定匹配。因为502(4)是具有名称“A”的正方形类型,所以候选匹配是502(12)和502(10)。为了确定最佳匹配,需要评估502(4)与502(10)和502(12)二者之间的层索引和距离。使用欧几里德度量,最佳匹配可以表达为:
mini(ldi-3)2+(xi-x)2+(yi-y)2
其中x和y是502(4)的相应坐标,ldi是画板120(2)中第i个子对象的层索引,并且xi和yi是画板120(2)中第i个子对象的相应的x坐标和y坐标。尽管图5中的示例仅利用两个属性(层索引和距离),但是根据备选实施例,可以利用任何数目的属性。
图6a描绘了根据本公开的一个实施例的拖动试探法过程的示例操作。出于该示例的目的,假设画板120(1)中的对象502将被动画化。因为对象502明显地在x方向上移动较大距离,所以x方向是主导方向。特别地,可以通过比较在x维度和y维度中移动的距离的绝对值来实现对主导方向的确定,如下:
如果|xd|>|yd|,则x是主导方向。
否则y是主导方向。
根据一些实施例,两个对象之间的层索引与两个对象之间的空间差异分开处理。因此,例如,在确定第一画板中的对象与第二画板中的若干对象之间的最佳匹配时,可以首先确定第一画板中的对象与第二画板中的对象之间的空间距离,可以根据该空间距离对第二画板中的对象进行排序。然后,可以确定第一画板中的对象与第二画板中的对象之间的层索引差异,并且基于该差异对列表进行排序,同时保持关于空间距离的第一排序操作。
图6b描绘了根据本公开的一个实施例的在确定主导方向时的拖动试探法过程的示例操作。注意,对象502在画板120(1)和画板120(2)之间的东南方向上移动。因为该示例中的主导方向是在x方向上,所以仅在x维度中实现滚动或擦洗,如图6b中所示的那样。特别地,用户可以通过在对象502上拖动来预览动画,并且通过将动画播放头移动到对应的时间点,对象502的位置将与从西向东水平拖动的距离成比例地更新。例如,并且根据一个示例实施例,考虑对象502在东南方向上移动并且整个动画花费1秒。当用户将对象502向东拖动50%时,系统操作以将动画回放头移动到0.5秒。如果用户向西拖回25%,则系统操作以将动画回放头移动到0.25秒。用户可以继续来回拖动,直到释放鼠标或手指。
图7描绘了根据本公开的一个实施例的多画板时间触发可视化过程的示例。如图7中所示,画板120(1)、120(2)和120(3)可以被链接在一起,使得可以绘制单个动画。注意,图7中所示的对象502在画板120(1)和120(2)之间从POS A垂直移动到POS B。然而,对象502在画板120(2)至120(3)之间从POS B水平移动到POS C。因此,利用时间触发可视化过程,画板120(1)-120(3)之间的组合的垂直和水平运动可以被呈现为向东北方向的整体移动。
图8a-图8d示出了根据本公开的一个实施例的用于生成多画板时间触发动画的用户界面和示例场景。图8a示出了根据本公开的一个实施例的用于生成多画板时间触发动画的用户界面的初始配置。如图8a中所示,用户可以与主窗口800交互,主窗口800还包括画板链接窗格808、时间线802和层窗格804。如图8a中所示,四个画板120(1)-120(4)最初被显示在画板链接窗格808中。根据本公开的一个实施例,用户可以将一个或多个画板拖动或放置在多个画板链接窗格808中,以便指示动画师希望用多个画板工作。当时间触发时,画板120(1)-120(4)中每个将按顺序自动动画化。
图8a还示出了时间线窗格802,其进一步示出了层信息804。时间线窗格802提供允许动画师用多个画板工作的可视化界面,就好像它们是单个画板一样。在动画师已经选择多个画板进行工作之后,动画师然后可以通过使用可视化链接指示符810将所选择的画板链接在一起来而在所选择的画板之间建立时间序列。例如,图8a示出了画板120(1)和120(2)包括由它们之间的可视化链接指示符810指示的序列。
根据本公开的一个实施例,多时间触发可视化过程300可以应用一个或多个试探法来确定哪些画板应当作为动画序列中的帧被添加。特别地,如果可以在两个不同的链接的画板之间完成动画(即,匹配算法确定画板120之间的至少一个匹配的对象502),则两个画板120将作为相应的帧806出现在时间线窗格802中。即,如果这么做有意义的话(即,关于序列中的其他画板存在匹配对象),则每个画板不是作为不同的组件存在,而是变成时间序列中的帧。根据图8a中所示的示例,用户已经选择了两个画板(120(1)和120(2)并将它们链接在一起,如由链接指示符810所指示的,链接指示符810向系统指示将在画板120(1)和120(2)之间建立时间触发。相应地,时间线窗格802自动显示对应于相应的画板120(1)和120(2)的对应的帧806(a)和806(b)。
如当前在图8a中所示,因为在两个画板120(1)和120(2)之间建立了链接,所以可以在这两个画板120之间启动自动动画。相应地,在设计者已经指示希望开始自动动画之后,动画匹配过程100将启动以确定画板120(1)和120(2)之间的匹配对象,随后是对动画的绘制。如果设计者指示画板120(1)、120(2)、120(3)和120(4)之间的链接,则如果可能的话,这些画板将被视为单个画板。
图8b示出了根据本公开的一个实施例的用于生成明确指示画板和帧之间的关系的多画板时间触发动画的用户界面的配置。特别地,如图8b中所示,画板120(1)和120(2)分别在时间线802中明确地被表示为帧806(a)和806(b)。
图8c示出了根据本公开的一个实施例的用于生成明确指示画板和帧之间的关系的多画板时间触发动画的用户界面的配置。特别地,如图8c中所示,已经添加了第三画板120(3),并且在时间线802中已经自动生成了帧806(c)。
图8d示出了根据本公开的一个实施例的用于生成多画板时间触发动画的用户界面的配置。特别地,如图8d中所示,因为突出显示的层存在于画板120(1)中但在画板120(2)中淡出,所以不会为画板120(3)生成过渡。因为该层不再存在于画板120(2)中,所以在从画板120(2)到画板120(3)的时间线120上将不会表现出过渡。
可以操纵持续时间和排序时间控件820(a)-820(e)以改变针对每个对象的动画的“持续时间”和“开始时间”。因为针对所有三个画板的单个时间线被显示,所以在一个地方调整这些参数,而不是通过查看画板1和画板2之间的类似UI以及用于画板2和画板3的另一UI更加直观。
计算系统与网络环境的整合
图9a图示了根据本公开的一个实施例的执行动画过程的示例计算系统。如图9a中所描绘的,计算设备500可以包括执行一个或多个过程以执行动画系统400的CPU 504。特别地,还可以经由程序指令来配置CPU 504以执行动画系统400(如本文不同地描述的)。通常的计算系统的通常的其他组件和模块(诸如,例如协处理器、处理核、图形处理单元、鼠标、触摸板、触摸屏、显示器等)未被示出但这些是明显的。鉴于本公开,众多计算环境变型将是明显的。计算设备500可以是任何独立的计算平台,诸如桌面或工作站计算机、膝上型计算机、平板计算机、智能电话或个人数字助理、游戏控制台、机顶盒或其他合适的计算平台。根据备选实施例,CPU 504可以用GPU代替。
图9b图示了根据本公开的一个实施例的动画系统到网络环境的示例集成。如图9b中所描绘的,计算设备500可以在云环境、数据中心、局域网(“LAN”)等中并置。图9b中所示的计算设备500与关于图9a描述的示例实施例相同地构造。如图9b中所示,客户端应用512可以经由网络510与计算设备500交互。特别地,客户端应用512可以经由在API服务器506处接收的API调用来发出请求和接收响应,这些请求和响应经由网络510和网络接口508传输。
应当理解,网络510可以包括任何类型的公共网络或专用网络,包括因特网或LAN。将进一步容易理解,网络510可以包括任何类型的公共网络和/或专用网络,包括因特网、LAN、WAN或这些网络的某种组合。在该示例情况下,计算设备500是服务器计算机,并且客户端应用512可以是任何通常的个人计算平台。
如将进一步理解的,计算设备500(无论是在图9a还是在图9b中所示的那个)包括和/或以其他方式访问一个或多个非瞬态计算机可读介质或存储设备,其上编码有一个或多个计算机可执行指令或软件,以用于实现本公开中不同地描述的技术。存储设备可以包括任何数目的耐用存储设备(例如,任何电子、光学和/或磁存储设备,包括RAM、ROM、闪存、USB驱动器、板上CPU高速缓存、硬盘驱动器、服务器存储装置、磁带、CD-ROM或其他物理计算机可读存储介质),以用于存储实现本文提供的各种实施例的数据和计算机可读指令和/或软件。可以使用存储器的任何组合,并且各种存储组件可以位于单个计算设备中或跨多个计算设备分布。另外,并且如之前所解释的,可以与一个或多个计算设备分离或远程地提供一个或多个存储设备。许多配置是可能的。
在本公开的一些示例实施例中,本文描述的各种功能模块以及网络510的具体的训练和/或测试可以用软件实现,软件诸如是编码在任何非瞬态计算机可读介质或计算机程序产品(例如,硬盘驱动器、服务器、盘或其他合适的非瞬态存储器或存储器的集合)上的指令的集合(例如,HTML、XML、C、C++、面向对象的C、JavaScript、Java、BASIC等),当软件由一个或多个处理器执行时,使得执行本文提供的各种创建者推荐方法。
在其他实施例中,使用基于软件的引擎来实现本文提供的技术。在这种实施例中,引擎是包括一个或多个处理器的功能单元,利用编码了如本文中不同地提供的创建者推荐过程的指令来编程或以其他方式配置该处理器。以这种方式,基于软件的引擎是功能电路。
在其他实施例中,本文提供的技术用硬件电路实现,硬件电路诸如门级逻辑(FPGA)或专用半导体(例如,专用集成电路或ASIC)。还有其它实施例利用微控制器实现,该微控制器具有处理器、用于接收和输出数据的多个输入/输出端口,以及用于执行本文提供的功能性的处理器的多个嵌入式例程。在更一般的意义上,可以使用硬件、软件和固件的任何合适的组合,这是明显的。如本文所使用的,电路是一个或多个物理组件并且可用以执行任务。例如,电路可以是用软件模块编程或以其他方式配置的一个或多个处理器,或者是响应于输入激励的特定集合而提供输出的集合的基于逻辑的硬件电路。众多配置将是明显的。
另外的示例实施例
以下示例涉及另外的实施例,其中许多排列和配置将是明显的。
示例1是一种用于执行动画的方法。方法包括确定第一画板的第一子对象和第二画板的第二子对象。如果第二子对象中的多个第二子对象与第一子对象相匹配,则该方法还包括将多个第二子对象添加到初始列表;基于与第一子对象和多个第二子对象相关联的至少一个距离度量对初始列表进行排序以生成排序列表,该至少一个距离度量是基于与第一子对象和多个第二子对象相关联的至少一个属性;以及生成第一子对象与对应于排序列表中的第一条目的第二子对象之间的关联。该方法还包括使用该关联来绘制动画,该动画包括第一子对象和与排序列表中的第一条目相对应的第二子对象。
示例2包括示例1的主题内容,其中至少一个距离度量是基于与第一子对象和多个第二子对象相关联的层距离属性,以便排序使第二子对象中的第一个子对象在排序列表中比第二子对象中的第二个子对象更高地被列出,第二子对象中的第一个子对象具有通过其与第一子对象分离的第一数目的层,并且第二子对象中的第二个子对象具有通过其与第一子对象分离的第二数目的层,第二数目大于第一数目。注意,分离第一子对象和第二子对象的层的数目可以与给定层的层级的层1,或者与该层级内的某个其他层相关。为此,可以以多种方式计算一个子对象通过其与另一子对象分离的层的数目,只要以一致的方式应用所使用的层区分技术,如根据本公开内容将理解的。
示例3包括示例1或示例2的主题内容,其中至少一个距离度量是基于与第一子对象相关联的、与关联于多个第二子对象的属性相匹配的属性的数目,以便排序使第二子对象中的第一个子对象在排序列表中比第二子对象中的第二个子对象更高地被列出,第二子对象中的第一个子对象具有第一数目的匹配属性,并且第二子对象中的第二个子对象具有第二数目的匹配属性,第二数目小于第一数目。
示例4包括前述示例中任一项的主题内容,其中至少一个属性包括位置、大小、填充颜色、笔划颜色、可见性、角半径、线高、字符间距和字体大小中的一个或多个。
示例5包括前述示例中任一项的主题内容,并且还包括:如果排序列表中的第一条目是组,则使用排序列表中的第一条目和第一子对象进行递归。
示例6包括示例5的主题内容,并且还包括将第一画板设置为排序列表中的第一条目,并且将第二画板设置为与第一条目相关联的对象。
示例7包括示例5或示例6的主题内容,其中绘制动画包括使至少一对匹配的对象动画化。
示例8包括前述示例中任一项的主题内容,其中第二子对象中的单个子对象与第一子对象相匹配。
示例9包括任何示例8的主题内容,其中如果第一子对象具有与第二子对象中的单个子对象相同的名称和类型,则匹配被确定。
示例10是一种用于预览动画的方法,方法包括:接收与第一画板相关联的第一对象和与第二画板相关联的第二对象,其中第一对象和第二对象分别表示在第一时间和第二时间的单个实体;确定相对于第一对象和第二对象的移动的主导方向;接收在主导方向上的拖动事件;以及响应于拖动事件更新实体的可视化表示的动画状态。
示例11包括示例10的主题内容,其中主导方向是水平方向或垂直方向中的一个。
示例12包括示例11的主题内容,其中主导方向通过选择与在第一时间和第二时间之间与实体的位移中的最大绝对值相关联的方向来确定。
示例13包括示例10至12中任一项的主题内容,其中拖动事件由鼠标移动引起。
示例14包括示例10至示例13中任一项的主题内容,其中在接收第一对象和第二对象之前,方法还包括确定第一对象和第二对象关于基于与第一对象和第二对象二者相关联的至少一个属性而被计算的距离度量彼此相匹配。
示例15包括示例14的主题内容,其中所述至少一个属性包括位置、大小、填充颜色、笔划颜色、可见性、角半径、线高、字符间距和字体大小中的一个或多个。
示例16包括示例10至示例15中任一项的主题内容,其中更新动画状态还包括在图形用户界面上绘制实体以反映更新的位置。
示例18是一种包括编码有指令的一个或多个非瞬态机器可读介质的计算机程序产品,该指令在由一个或多个处理器执行时使得用于执行动画的过程被执行,该过程包括示例1至示例9中任一项的主题内容。
示例19是包括编码有指令的一个或多个非瞬态机器可读介质的计算机程序产品,该指令在由一个或多个处理器执行时使得用于预览动画的过程被执行,该过程包括示例10至16中任一项的主题内容。
已经出于说明和描述的目的绘制了本公开的示例实施例的前述描述。其并非旨在穷举或将本公开限制于所公开的精确形式。鉴于本公开,许多修改和变型都是可能的。本公开的范围旨在不受该详细描述的限制,而是受所附权利要求的限制。

Claims (20)

1.一种用于执行动画的方法,所述方法包括:
确定第一画板的第一子对象和第二画板的第二子对象;
如果所述第二子对象中的多个第二子对象与所述第一子对象相匹配,则:
将所述多个第二子对象添加到初始列表,
基于与所述第一子对象和所述多个第二子对象相关联的至少一个距离度量对所述初始列表进行排序以生成排序列表,所述至少一个距离度量基于与所述第一子对象和所述多个第二子对象相关联的至少一个属性,以及
生成所述第一子对象与对应于所述排序列表中的第一条目的所述第二子对象之间的关联;以及
使用所述关联来绘制动画,所述动画包括所述第一子对象和与所述排序列表中的所述第一条目相对应的所述第二子对象。
2.根据权利要求1所述的方法,其中所述至少一个距离度量是基于与所述第一子对象和所述多个第二子对象相关联的层距离属性,使得所述排序使所述第二子对象中的第一个第二子对象在所述排序列表中比所述第二子对象中的第二个第二子对象更高地被列出,所述第二子对象中的所述第一个第二子对象具有第一数目的层,所述第二子对象中的所述第一个第二子对象通过所述第一数目的层与所述第一子对象分离,并且所述第二子对象中的所述第二个第二子对象具有第二数目的层,所述第二子对象中的所述第二个第二子对象通过所述第二数目的层与所述第一子对象分离,所述第二数目大于所述第一数目。
3.根据权利要求1所述的方法,其中所述至少一个距离度量是基于与所述第一子对象相关联的、与关联于所述多个第二子对象的属性相匹配的属性的数目,使得所述排序使所述第二子对象中的第一个第二子对象在所述排序列表中比所述第二子对象中的第二个第二子对象更高地被列出,所述第二子对象中的所述第一个第二子对象具有第一数目的匹配属性,并且所述第二子对象中的所述第二个第二子对象具有第二数目的匹配属性,所述第二数目小于所述第一数目。
4.根据权利要求1所述的方法,其中所述至少一个属性包括位置、大小、填充颜色、笔划颜色、可见性、角半径、线高、字符间距和字体大小中的一个或多个。
5.根据权利要求1所述的方法,还包括:如果所述排序列表中的所述第一条目是组,则使用所述排序列表中的所述第一条目和所述第一子对象进行递归。
6.根据权利要求1所述的方法,其中所述第二子对象中的单个第二子对象与所述第一子对象相匹配。
7.根据权利要求6所述的方法,其中如果所述第一子对象具有与所述第二子对象中的所述单个第二子对象相同的名称和类型,则匹配被确定。
8.一种用于预览动画的方法,所述方法包括:
接收与第一画板相关联的第一对象和与第二画板相关联的第二对象,其中所述第一对象和所述第二对象分别表示在第一时间和第二时间的单个实体;
确定相对于所述第一对象和所述第二对象的移动的主导方向;
接收在所述主导方向上的拖动事件;以及
响应于所述拖动事件,更新所述实体的可视化表示的动画状态。
9.根据权利要求8所述的方法,其中所述主导方向是水平方向或垂直方向中的一个。
10.根据权利要求9所述的方法,其中所述主导方向通过选择与在所述第一时间和所述第二时间之间与所述实体的位移中的最大绝对值相关联的方向来确定。
11.根据权利要求8所述的方法,其中所述拖动事件由鼠标移动引起。
12.根据权利要求8所述的方法,其中在接收所述第一对象和所述第二对象之前,所述方法还包括:确定所述第一对象和所述第二对象关于基于与所述第一对象和所述第二对象二者相关联的至少一个属性而被计算的距离度量彼此相匹配,其中所述至少一个属性包括位置、大小、填充颜色、笔划颜色、可见性、角半径、线高、字符间距和字体大小中的一个或多个。
13.根据权利要求8所述的方法,其中更新动画状态还包括在图形用户界面上绘制所述实体以反映更新的位置。
14.一种计算机程序产品,包括编码有指令的一个或多个非瞬态机器可读介质,所述指令在由一个或多个处理器执行时使得用于执行动画的过程被执行,所述过程包括:
确定第一画板的第一子对象和第二画板的第二子对象;
如果所述第二子对象中的多个第二子对象与所述第一子对象相匹配,则:
将所述多个第二子对象添加到初始列表,
基于与所述第一子对象和所述多个第二子对象相关联的至少一个距离度量对所述初始列表进行排序以生成排序列表,所述至少一个距离度量基于与所述第一子对象和所述多个第二子对象相关联的至少一个属性,以及
生成所述第一子对象与对应于所述排序列表中的第一条目的所述第二子对象之间的关联;以及
使用所述关联来绘制动画,所述动画包括所述第一子对象和与所述排序列表中的所述第一条目相对应的所述第二子对象。
15.根据权利要求14所述的计算机程序产品,其中所述至少一个距离度量基于与所述第一子对象和所述多个第二子对象相关联的层距离属性,使得所述排序使所述第二子对象中的第一个第二子对象在所述排序列表中比所述第二子对象中的第二个第二子对象更高地被列出,所述第二子对象中的所述第一个第二子对象具有第一数目的层,所述第二子对象中的所述第一个第二子对象通过所述第一数目的层与所述第一子对象分离,并且所述第二子对象中的所述第二个第二子对象具有第二数目的层,所述第二子对象中的所述第二个第二子对象通过所述第二数目的层与所述第一子对象分离,所述第二数目大于所述第一数目。
16.根据权利要求14所述的计算机程序产品,其中所述至少一个距离度量基于与所述第一子对象相关联的、与关联于所述多个第二子对象的属性相匹配的属性的数目,使得所述排序使所述第二子对象中的第一个第二子对象在所述排序列表中比所述第二子对象中的第二个第二子对象更高地被列出,所述第二子对象中的所述第一个第二子对象具有第一数目的匹配属性,并且所述第二子对象中的所述第二个第二子对象具有第二数目的匹配属性,所述第二数目小于所述第一数目。
17.根据权利要求14所述的计算机程序产品,其中所述至少一个属性包括位置、大小、填充颜色、笔划颜色、可见性、角半径、线高、字符间距和字体大小中的一个或多个。
18.根据权利要求14所述的计算机程序产品,所述过程还包括:如果所述排序列表中的所述第一条目是组,则使用所述排序列表中的所述第一条目和所述第一子对象进行递归。
19.根据权利要求14所述的计算机程序产品,其中所述第二子对象中的单个第二子对象与所述第一子对象相匹配。
20.根据权利要求19所述的计算机程序产品,其中如果所述第一子对象具有与所述第二子对象中的所述单个第二子对象相同的名称和类型,则匹配被确定。
CN201910700115.4A 2018-10-14 2019-07-31 由基于改变的试探法驱动的自动和交互式动画 Pending CN111045754A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/159,672 US10600228B1 (en) 2018-10-14 2018-10-14 Automatic and interactive animation driven by change-based heuristics
US16/159,672 2018-10-14

Publications (1)

Publication Number Publication Date
CN111045754A true CN111045754A (zh) 2020-04-21

Family

ID=67990992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910700115.4A Pending CN111045754A (zh) 2018-10-14 2019-07-31 由基于改变的试探法驱动的自动和交互式动画

Country Status (5)

Country Link
US (3) US10600228B1 (zh)
CN (1) CN111045754A (zh)
AU (1) AU2019216672B2 (zh)
DE (1) DE102019005517A1 (zh)
GB (2) GB2586547B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9898187B2 (en) 2013-06-09 2018-02-20 Apple Inc. Managing real-time handwriting recognition
US10003938B2 (en) 2015-08-14 2018-06-19 Apple Inc. Easy location sharing
DK179329B1 (en) 2016-06-12 2018-05-07 Apple Inc Handwriting keyboard for monitors
DK180171B1 (en) 2018-05-07 2020-07-14 Apple Inc USER INTERFACES FOR SHARING CONTEXTUALLY RELEVANT MEDIA CONTENT
US11074408B2 (en) 2019-06-01 2021-07-27 Apple Inc. Mail application features
US11194467B2 (en) * 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11954431B2 (en) * 2021-11-09 2024-04-09 Adobe Inc. Intelligent change summarization for designers
US11954775B2 (en) * 2022-02-23 2024-04-09 International Business Machines Corporation Artboard element positioning in a series of computer-based artboards

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064223A1 (en) * 2008-09-08 2010-03-11 Apple Inc. Object-aware transitions
CN106021519A (zh) * 2016-05-24 2016-10-12 腾讯科技(深圳)有限公司 图片动态展示方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3091684B2 (ja) * 1996-03-28 2000-09-25 日立ソフトウエアエンジニアリング株式会社 Mpegファイル編集システムおよびmpegファイル編集方法
JP2016081095A (ja) * 2014-10-10 2016-05-16 キヤノン株式会社 被写体追跡装置、その制御方法、撮像装置、表示装置及びプログラム
US10097959B2 (en) * 2016-07-13 2018-10-09 Play Impossible Corporation Capturing smart playable device and gestures

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100064223A1 (en) * 2008-09-08 2010-03-11 Apple Inc. Object-aware transitions
CN106021519A (zh) * 2016-05-24 2016-10-12 腾讯科技(深圳)有限公司 图片动态展示方法和装置

Also Published As

Publication number Publication date
GB2586547A (en) 2021-02-24
US11276220B2 (en) 2022-03-15
GB201911597D0 (en) 2019-09-25
US20200211250A1 (en) 2020-07-02
US20220180587A1 (en) 2022-06-09
AU2019216672B2 (en) 2021-09-16
GB2578191B (en) 2021-03-10
GB2578191A (en) 2020-04-22
GB202016190D0 (en) 2020-11-25
US10600228B1 (en) 2020-03-24
AU2019216672A1 (en) 2020-04-30
US20200118325A1 (en) 2020-04-16
GB2586547B (en) 2021-08-18
DE102019005517A1 (de) 2020-04-23
US11544891B2 (en) 2023-01-03

Similar Documents

Publication Publication Date Title
CN111045754A (zh) 由基于改变的试探法驱动的自动和交互式动画
Ikehata et al. Structured indoor modeling
Frishman et al. Online dynamic graph drawing
JP2022531536A (ja) セマンティック融合
Musialski et al. Interactive coherence‐based façade modeling
MXPA06012368A (es) Integracion de jerarquia de escena tridimensional en sistema de composicion bidimensional.
WO2013173949A1 (zh) 一种三维虚拟现实场景中物体按层级加卸载的方法和装置
US9489759B1 (en) File path translation for animation variables in an animation system
US20200250865A1 (en) Drawing Curves in Space Guided by 3-D Objects
Tatzgern Situated visualization in augmented reality
US8788538B2 (en) Navigation of hierarchical data using climb/dive and spin inputs
US11650717B2 (en) Using artificial intelligence to iteratively design a user interface through progressive feedback
Fu et al. Layerpaint: A multi-layer interactive 3d painting interface
US10193959B2 (en) Graphical interface for editing an interactive dynamic illustration
Kelly et al. Interactive dimensioning of parametric models
US10726621B2 (en) Traversal selection of components for a geometric model
Sokolov et al. Viewpoint quality and global scene exploration strategies.
US8566359B1 (en) Unfolding sparse data sets
Zhang et al. Knotpad: Visualizing and exploring knot theory with fluid reidemeister moves
US9582247B1 (en) Preserving data correlation in asynchronous collaborative authoring systems
Mateo et al. Hierarchical, Dense and Dynamic 3D Reconstruction Based on VDB Data Structure for Robotic Manipulation Tasks
US11340761B2 (en) Systems and methods for indicating organizational relationships between objects
Zhang et al. Sceneviewer: Automating residential photography in virtual environments
Argudo et al. Interactive inspection of complex multi-object industrial assemblies
Takahashi A browsing interface for exploring constraints in visualization rules

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination