DE102019005517A1 - Von änderungsbasierten Heuristiken getriebene automatische und interaktive Animation - Google Patents

Von änderungsbasierten Heuristiken getriebene automatische und interaktive Animation Download PDF

Info

Publication number
DE102019005517A1
DE102019005517A1 DE102019005517.9A DE102019005517A DE102019005517A1 DE 102019005517 A1 DE102019005517 A1 DE 102019005517A1 DE 102019005517 A DE102019005517 A DE 102019005517A DE 102019005517 A1 DE102019005517 A1 DE 102019005517A1
Authority
DE
Germany
Prior art keywords
objects
child
animation
child object
drawing area
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
DE102019005517.9A
Other languages
English (en)
Inventor
Anirudh Sasikumar
Alexander Poterek
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 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 Inc filed Critical Adobe Inc
Publication of DE102019005517A1 publication Critical patent/DE102019005517A1/de
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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

Bereitgestellt werden Techniken zum Durchführen einer automatischen interaktiven Animation durch automatisches Abgleichen von Objekten zwischen mehreren Zeichenflächen, was einem Animator ermöglicht, mehrere Zeichenflächen in einer zeitlichen Sequenz unter Nutzung der Zeit als Auslöser zu verknüpfen, und einem Animator zudem eine Vorschau auf eine Animation unter Nutzung von intuitiven Ziehsteuerungen bzw. Regelungen mittels einer Eingabevorrichtung, so beispielsweise einer Maus oder eines berührungsempfindlichen Schirmes, ermöglicht. Ein automatischer Animationsprozess wird durchgeführt, indem Objekte/Knoten zwischen Zeichenflächen dadurch abgeglichen werden, dass eine Rangbewertung der Ähnlichkeit zwischen Objekten auf Grundlage einer Abstandsmetrik bestimmt wird, die für einen Satz eines oder mehrerer Attribute, die jedem Objekt in den Zeichenflächen zugeordnet sind, berechnet wird. Werden ausreichend Abgleiche ausfindig gemacht, so können die abgeglichenen Objekte als eine einzige Entität, die animiert werden soll, behandelt werden. Bei einer weiteren Ausführungsform wird eine vorherrschende Richtung der Bewegung in Bezug auf die abgeglichenen Objekte bestimmt, wobei das Empfangen eines Ziehereignisses (Mauseingabe oder Bewegungseingabe an einem berührungsempfindlichen Schirm) in der vorherrschenden Richtung eine Vorschau der Animation jener Entität veranlasst.

Description

  • Gebiet der Offenbarung
  • Die vorliegende Offenbarung betrifft Techniken zum Durchführen einer digitalen Animation. Die vorliegende Offenbarung betrifft insbesondere Techniken zum Durchführen einer automatischen, interaktiven Animation durch automatisches Abgleichen von Objekten zwischen mehreren Zeichenflächen, was einem Animator ermöglicht, mehrere Zeichenflächen unter Nutzung der Zeit als Auslöser in einer zeitlichen Sequenz zu verknüpfen, und was einem Animator zudem eine Vorschau auf eine Animation unter Nutzung von Ziehsteuerungen bzw. Regelungen mittels einer Eingabevorrichtung, so beispielsweise einer Maus oder eines berührungsempfindlichen Schirmes, ermöglicht.
  • Hintergrund
  • Das Erstellen von Animationen, die in einer Mobil- und Webanwendung zu sehen sein sollen, ist für visuelle Gestalter, die nicht auf Animation spezialisiert sind, nicht intuitiv. Das Gestalten von Animationen, die durch Interaktionen wie Ziehen (dragging) und Wischen (swiping) ausgelöst werden, ist in der Erstellung komplex und erfordert, dass Gestalter Konzepte verstehen, die eigentlich entwicklerorientiert sind. Im Detail bedeutet dies, dass zum Durchführen einer Animation über eine oder mehrere Leinwände hinweg dieselben Objekte auf jeder Leinwand einander explizit zugeordnet werden müssen. Um dies zu erreichen, müssen Objekte aus einer Szene mit denselben Objekten in einer anderen Szene auf automatisierte Weise abgeglichen werden. Eine Zeichenfläche kann beispielsweise eine beliebige Anzahl von Kindobjekten, so beispielsweise von Formen oder Bildern, umfassen. Dieselben Objekte sind gegebenenfalls in einer zweiten Zeichenfläche vorhanden, wobei in diesem Fall ein Animationsalgorithmus die Abgleichsobjekte aus ihren jeweiligen Positionen in der ersten Zeichenfläche in ihre Positionen in der zweiten Zeichenfläche animiert. Üblicherweise sind Objekte in einer Zeichenfläche verschiedenen Attributen, so beispielsweise Name, Typ und dergleichen mehr, zugeordnet. Das Abgleichen von Objekten aus einer Zeichenfläche mit einer anderen Zeichenfläche kann erreicht werden, indem Objekte, die denselben Namen und Typ teilen, in den zwei Zeichenflächen ausfindig gemacht werden. Das auf automatische Weise erfolgende Durchführen dieses Abgleiches kann jedoch problematisch sein, wenn beispielsweise doppelte Objektnamen über Zeichenflächen hinweg vorhanden sind.
  • Sobald eine Animation durch Entwickeln mehrerer Zeichenflächen gestaltet worden ist, wünschen Gestalter üblicherweise eine Vorschau auf die Animation. Bekannte Techniken zum Gestalten einer Animation erfordern jedoch üblicherweise, dass Gestalter/Animatoren eine Ziehrichtung (beispielsweise nach links, nach oben, nach rechts, nach unten) zusätzlich zu einer Bewegung eingeben, was unpraktisch ist. Derartige bekannte Techniken sind im Allgemeinen zudem hinsichtlich der Typen von Animationen, die sie generieren können, beschränkt. Andere bekannte Techniken nutzen vereinfachte Autoanimationstechniken, so beispielsweise das „Magic Move“-Konzept, das Objekte von einer Abbildung zur nächsten animiert. Komplexe Interaktionen wie das Ziehen sind bei diesen bekanntenVerfahren indes nicht vorgesehen.
  • Andere Werkzeuge setzen eine Zeitachse („timeline“) und eine einzelne Leinwand, auf der ein Kunstwerk gezeigt ist, ein. Der Nutzer muss dann die Anzahl von Wahlvorgängen in einer Zeitachsen-Nutzerschnittstelle (UI) spezifizieren, um eine Eigenschaft zu animieren. Der Umstand, dass der Nutzer eine große Anzahl von Eigenschaften auswählen und spezifizieren muss, ist tendenziell unbequem und oftmals unpraktisch.
  • Figurenliste
    • 1a ist ein Flussdiagramm eines Animationsformabgleichsprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 1b ist ein detaillierteres Flussdiagramm eines Animationsformabgleichsprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 1c ist ein Flussdiagramm eines Prozesses zum Bestimmen eines Optimalabgleiches für ein Objekt in einer ersten Zeichenfläche in Bezug auf mehrere Objekte in einer zweiten Zeichenfläche entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 2 ist ein Flussdiagramm eines Prozesses zum Durchführen von Ziehheuristiken entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 3 ist ein Flussdiagramm zur Darstellung des Betriebes eines Zeitauslöservisualisierungsprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 4 ist ein Blockdiagramm eines Animationssystems entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 5 zeigt verschiedene Aspekte eines Abgleichsprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 6a zeigt einen exemplarischen Betrieb eines Ziehheuristikenprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 6b zeigt einen exemplarischen Betrieb eines Ziehheuristikenprozesses bei Bestimmung einer vorherrschenden Richtung entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 7 zeigt ein Beispiel für einen mehrere Zeichenflächen betreffenden Zeitauslöservisualisierungsprozess entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 8a zeigt eine Anfangskonfiguration einer Nutzerschnittstelle zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 8b zeigt eine Konfiguration einer Nutzerschnittstelle zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation, wobei die Beziehung zwischen Zeichenflächen und Frames explizit angegeben ist, entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 8c zeigt eine Konfiguration einer Nutzerschnittstelle zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation, wobei die Beziehung zwischen Zeichenflächen und Frames explizit angegeben ist, entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 8d zeigt eine Konfiguration einer Nutzerschnittstelle zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation entsprechend einer Ausführungsform der vorliegenden Offenbarung.
    • 9a zeigt ein exemplarisches Rechensystem, das einen Animationsprozess entsprechend einer Ausführungsform der vorliegenden Offenbarung ausführt.
    • 9b zeigt eine exemplarische Integration eines Animationssystems in eine Netzwerkumgebung entsprechend einer Ausführungsform der vorliegenden Offenbarung.
  • Detailbeschreibung
  • Offenbart werden Techniken zum Durchführen einer automatischen Animation zwischen zwei oder mehr Zeichenflächen. Bei einer Ausführungsform wird als Teil einer automatischen Animation ein Matching- bzw. Abgleichsprozess ausgeführt, um Objekte zwischen einer Zeichenfläche und einer anderen zuzuordnen. Dieser Abgleichsprozess beinhaltet die Identifikation von doppelten Objekten, die alle ein gemeinsames Attribut oder einen Satz von Attributen teilen können, und die Identifikation des realen Abgleiches (auf Grundlage irgendeiner Abgleichsschwelle oder solcher Kriterien). Bei einer derartigen Ausführungsform wird ein automatischer Animationsprozess durchgeführt, indem Objekte/Knoten zwischen Zeichenflächen dadurch gematched bzw. abgeglichen werden, dass eine Rangbewertung der Ähnlichkeit zwischen Objekten auf Grundlage einer Abstandsmetrik bestimmt wird, die für einen Satz von Attributen, die jedem Objekt in den Zeichenflächen zugeordnet sind, berechnet wird. Entsprechend einer derartigen Ausführungsform wird ein optimaler oder auf andere Weise ausreichender Abgleich unter Nutzung einer oder mehrerer Abstandsmetriken zwischen Objekten in einer ersten Zeichenfläche und einer zweiten Zeichenfläche bestimmt. Neben anderen Abstandsmetriken kann ein Abstand zwischen zwei Objekten auf Grundlage der relativen Anzahl von Schichten, die die Objekte trennen, bestimmt werden. Eine weitere exemplarische Abstandsmetrik ist die Anzahl von Eigenschaften oder Attributen (der verglichenen Objekte), die ähnlich sind. Die nachfolgenden exemplarischen Eigenschaftswerte können verglichen werden: Objektposition (beispielsweise die Position innerhalb einer Zeichenfläche und/oder innerhalb einer Schichthierarchie), Objektgröße, Füllfarbe, die einem Objekt zugeordnet ist, Strichfarbe, die einem Objekt zugeordnet ist, Sichtbarkeit eines Objektes (beispielsweise nicht verborgen, teilweise verborgen, vollständig verborgen), Eckradius oder eine andere eindeutige geometrische Eigenschaft, die einem Objekt zugeordnet ist, Linienhöhe oder Rasterweite (pitch), die einem Objekt zugeordnet ist, Schriftzeichenbeabstandung, die einem Objekt zugeordnet ist, und Zeichensatztyp und/oder Größe, der/die einem Objekt zugeordnet sind, um nur einige zu nennen.
  • Zusätzlich werden Techniken zur Vorschau auf eine Animation offenbart. Sobald die Gestaltung einer Animation fertiggestellt ist, kann ein Animator insbesondere wünschen, dass ihm eine Vorschau auf die Animation zur Verfügung gestellt wird, die interaktiv mittels einer Eingabe durch eine Maus oder eine Tastatur oder einen berührungsempfindlichen Schirm eingeleitet werden kann. Das Generieren einer geeigneten Steuer- bzw. Regelschnittstelle für die Vorschau auf eine beliebige Animation ist jedoch gegebenenfalls schwierig, da die Trajektorie einzelner animierter Objekte variieren kann. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird eine Vorschautechnik, die hier als Ziehheuristiken (drag heuristics) bezeichnet wird, eingesetzt. Ein Ziehheuristikenprozess versucht, eine vorherrschende Richtung, in der sich ein oder mehrere Objekte/Formen zwischen zwei Zeichenflächen bewegen, zu bestimmen. Die vorherrschende Richtung kann sodann als Trajektorie eines einzelnen animierten Objektes benutzt werden, die wiederum zum Generieren einer intuitiven oder auf andere Weise passenden Steuer- bzw. Regelschnittstelle zur Vorschau auf die Animation jenes Objektes benutzt werden kann.
  • Zusätzlich beschrieben werden Techniken zum miteinander erfolgenden, nahtlosen Verknüpfen mehrerer Zeichenflächen zum Generieren einer einzigen Animation. Entsprechend einer Ausführungsform ermöglicht eine grafische Nutzerschnittstelle („GUI“), dass ein Gestalter mit mehreren Zeichenflächen arbeitet und diese miteinander grafisch verknüpft. Die GUI führt Analysen an den zugrunde liegenden Objekten innerhalb jeder Zeichenfläche in Bezug auf deren Abgleich zwischen benachbarten Zeichenflächen durch und stellt grafische und andere Gestaltungshilfen bereit, um das Generieren einer Animation aus mehreren Zeichenflächen zu erleichtern.
  • Definitionen
  • Zeichenfläche (artboard): Über die eigentliche oder gewöhnliche Bedeutung hinaus bezeichnet eine Zeichenfläche im Sinne des Vorliegenden eine Digitalleinwand, auf der ein Illustrator, Künstler, Animator und dergleichen Objekte, die animiert werden sollen, also beispielsweise Formen, Bilder und beliebige andere Grafiken, zeichnen oder darstellen kann.
  • Objekt/Knoten: Über die eigentliche oder gewöhnliche Bedeutung hinaus bezeichnet ein Knoten oder ein Objekt eine beliebige Entität, die einer Zeichenfläche zugeordnet werden kann, darunter reale Formen oder Bilder, die animiert werden sollen, einschließlich einer logischen Entität, so beispielsweise einer Gruppe, die als logischer Container zur Darstellung einer hierarchischen oder anderen Beziehung zwischen Formen, die eine gegebene Entität bilden, oder anderen Gruppen dient. Im Sinne der vorliegenden Offenbarung können die Begriffe „Knoten“ und „Objekt“ austauschbar benutzt werden und bezeichnen effektiv beliebige Entitäten, die einer Leinwand oder Zeichenfläche zugeordnet werden können.
  • Schicht: Über die eigentliche oder gewöhnliche Bedeutung hinaus bezeichnet eine Schicht ein logisches Konstrukt, das eine Ordnung von Formen oder Gruppen in einer imaginären z-Dimension senkrecht zu einem zweidimensionalen Schirm oder Bild darstellt. Dies bedeutet, dass eine Schicht eine virtuelle Ordnung von Formen oder Gruppen in einer Dimension senkrecht zu einem Bild („z“-Dimension) darstellt. Es sollte einsichtig sein, dass bei der Wiedergabe einer Zeichenfläche bestimmte Formen andere Formen ausschließen können, was von deren jeweiligen Positionen auf der virtuellen z-Achse abhängt. Schichten stellen daher eine Technik zum Darstellen des relativen Ortes von Objekten innerhalb dieser imaginären z-Dimension dar.
  • Gruppe: Über die eigentliche oder gewöhnliche Bedeutung hinaus bezeichnet eine Gruppe eine logische Sammlung eines oder mehrerer Objekte, die selbst Formen oder Bilder oder andere Gruppen sein können. Die Nutzung von Gruppen ermöglicht, dass Objekte in einer rekursiven Struktur angeordnet werden. Im Sinne der vorliegenden Offenbarung bezeichnet der Begriff „Kind“ (child) Objekte, die innerhalb einer Gruppe enthalten sind und die eine weitere Gruppe oder ein beliebiges weiteres Objekt, so beispielsweise eine grafische Form, umfassen können.
  • Doppelung: Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann jedes Objekt verschiedenen Attributen zugeordnet werden, darunter beispielsweise Name und Typ. Da Gestalter/Animatoren gegebenenfalls bisweilen dieselben Namen und Typen für mehrere Objekte einsetzen, impliziert ein gängiges Szenario, das beim Durchführen eines Abgleichsprozesses auftritt, das Identifizieren und Beseitigen von Doppelungen. Über die eigentliche Bedeutung hinaus bezeichnet der Begriff „Doppelungen“ wenigstens zwei zweite Objekte, die einem ersten Objekt auf Grundlage eines oder mehrerer gemeinsamer Attribute zugeordnet sind.
  • Methodische Vorgehensweise und Architektur
  • 1a zeigt ein stark abstrahiertes Flussdiagramm zum Durchführen eines Animationsformabgleichsprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung. Entsprechend einer Ausführungsform der vorliegenden Offenbarung ist ein Gestalter oder Animator gegebenenfalls zunächst in einer Gestaltungsphase befindlich, in der er mehrere Zeichenflächen gestaltet, wobei jede Zeichenfläche einen Zeitpunkt in einem Animationsprozess darstellt. Jede Zeichenfläche ist einem Satz von Objekten zugeordnet, die grafische Objekte oder Gruppen von grafischen Objekten umfassen können. Formen können zudem in Schichten angeordnet sein, weshalb Formen infolge ihrer Position in der Schichthierarchie andere Formen ausschließen können. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Animator, sobald er einen Satz von Zeichenflächen gestaltet hat, einen automatisierten Animationsprozess aufrufen, der wiederum einen Animationsformabgleichsprozesses aufrufen kann, der Formen zwischen den mehreren Zeichenflächen zuordnet, um eine automatisierte Animation auszuführen. Es sollte einsichtig sein, dass jedes Objekt in einer Zeichenfläche einem Satz von Attributen, die einen Namen, einen Typ, eine Farbe, eine Form und dergleichen mehr beinhalten können, zugeordnet ist.
  • Wie in 1a gezeigt ist, beginnt der Prozess bei 170. Bei 172 werden zwei Zeichenflächen (Zeichenfläche A 120(1) und Zeichenfläche B 120(2)) empfangen. Obwohl die vorliegende Beschreibung beispielshalber nur zwei Zeichenflächen einbezieht, sollte einsichtig sein, dass der in 1a gezeigte Prozess auf eine beliebige Anzahl von Zeichenflächen erweitert werden kann. Bei 174 wird bestimmt, ob irgendwelche nichtuntersuchte Kinder in der Zeichenfläche A 120(1) vorhanden sind. Wie vorstehend beschrieben worden ist, kann ein Kind einer Zeichenfläche ein Objekt sein, das ein grafisches Objekt oder ein Gruppenobjekt sein kann. Sind keine nichtuntersuchten Kinder in der Zeichenfläche A 120(1) vorhanden („Nein“-Zweig von 174), so endet der Prozess bei 184.
  • Sind nichtuntersuchte Kinder in der Zeichenfläche A 120(1) vorhanden („Ja“-Zweig von 174), so setzt sich der Ablauf bei 176 fort, und es wird eine Variable currentAChild auf das nächste Kind in der Zeichenfläche A 120(1) gesetzt. Bei 178 werden beliebige Abgleiche in der Zeichenfläche B 120(2) entsprechend currentAChild bestimmt. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Abgleich ein Objekt in der Zeichenfläche B mit einem oder mehreren zu denjenigen von currentAChild identischen Attributen umfassen. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Abgleich zwischen zwei Objekten zwei Objekte mit demselben Namen und Typ umfassen. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Animator einen Namen für jeden Knoten / jedes Objekt, der/das in einer Zeichenfläche definiert ist, bereitstellen. Das Typattribut kann beispielsweise den Typ der Form oder den Umstand, ob das Objekt eine Gruppe ist, umfassen.
  • Bei 180 werden alle bei 178 bestimmten Abgleiche rang bewertet, indem eine Abstandsmetrik als Funktion der zugeordneten Attribute von currentAChild und aller Abgleichsobjekte aus der Bestimmung bei 178 berechnet werden. Entsprechend einer Ausführungsform der vorliegenden Offenbarung können die nachfolgenden Eigenschaftsattribute benutzt werden: Position, Größe, Füllfarbe, Strichfarbe, Sichtbarkeit, Eckradius, Linienhöhe, Schriftzeichenbeabstandung und Zeichensatzgröße. Diese Attribute sind jedoch lediglich Beispiele, und es sind beliebige andere Attribute möglich. Der Relativschichtabstand eines jeden Objektes kann dadurch berechnet werden, dass die Indizes eines jeden Objektes in der Zeichenfläche A 120(1) und der Zeichenfläche B 120(2) verglichen werden. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann eine Euklidische oder eine andere Metrik eingesetzt werden, indem beispielsweise die Summe der Quadrate der Differenzen der Attribute von currentAChild in Bezug auf jedes der bei 178 bestimmten Abgleichsobjekte berechnet wird. Liegt ein Schichtattribut vor, so kann der Absolutwert der Differenz zwischen den Schichtindizes benutzt werden. Bei 182 wird der am höchsten rangbewertete Abgleich (das heißt der Abgleich mit dem kleinsten Abstand) ausgewählt. Der Ablauf setzt sich sodann bei 174 fort.
  • 1b ist ein detailliertes Flussdiagramm eines Animationsformabgleichsprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung. Im Sinne der vorliegenden Diskussion wird ähnlich wie bei der Diskussion anhand von 1a angenommen, dass eine automatische Animation in Bezug auf zwei Zeichenflächen, die hier als Zeichenfläche A 120(1) und Zeichenfläche B 120(2) bezeichnet werden, durchgeführt werden soll. Jede Zeichenfläche 120 kann einem oder mehreren Objekten zugeordnet sein. Die zugeordneten Objekte können Gruppen umfassen, die ihrerseits einem oder mehreren Objekten zugeordnet sein können, die wiederum Gruppen sein können, wodurch eine hierarchische Beziehung zwischen Objekten generiert wird. Zur Durchführung einer automatisierten Animation in Bezug auf die Zeichenfläche A 120(1) und die Zeichenfläche B 120(2) wird ein Abgleichsprozess durchgeführt, wobei jedes Objekt in der Zeichenfläche A 120(1) einem jeweiligen Objekt in der Zeichenfläche B 120(2), so dies möglich ist, zugeordnet wird. Um diesen Abgleich effektiv durchzuführen, wird ein Prozess zum Beseitigen von Doppelungen durchgeführt. Wie vorstehend erwähnt worden ist, können Doppelungen infolge der Nutzung von identischen Namen/Typen für mehrere Objekte entstehen.
  • Wie in 1b gezeigt ist, beginnt der Animationsformabgleichsprozess 100 bei 102. Bei 104 werden verschiedene Datenstrukturen initialisiert. Wie in dem gestrichelten Kästchen von 1a gezeigt ist, wird entsprechend einer Ausführungsform der vorliegenden Offenbarung eine Abbildungs-(Wörterbuch-)Datenstruktur matchedNodes 140 erstellt und initialisiert. Listendatenstrukturen unMatchedNodes 142, newNodes 148, tempMatchedNodes 150 und matchedGroupNodes 146 werden ebenfalls erstellt und initialisiert. Das Verhalten einer Wörterbuchdatenstruktur und einer Listendatenstruktur ist bekannt und wird hier nicht weiter erläutert. Im Sinne der vorliegenden Erläuterung speichert matchedNodes 140 jedoch eine Zuordnung zwischen Knoten oder Objekten in einer ersten Zeichenfläche (Zeichenfläche A) 120(1) und Knoten oder Objekten in einer zweiten Zeichenfläche (Zeichenfläche B) 120(2). unMatchedNodes 142 ist eine Listendatenstruktur, die eine Liste von nichtabgeglichenen Knoten speichert. tempMatchedNodes 150 ist eine Listendatenstruktur, die eine rangbewertete Liste von abgeglichenen Knoten in einer zweiten Zeichenfläche in Bezug auf einen Knoten / ein Objekt in einer ersten Zeichenfläche speichert. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann das Rangbewerten von tempMatchedNodes durch Anwenden einer oder mehrerer der nachstehend beschriebenen Abstandsmetriken durchgeführt werden. matchedGroupNodes 146 speichert eine Liste von Gruppenobjekten, die in einer zweiten Zeichenfläche mit jeweiligen Objekten in einer ersten Zeichenfläche gematched bzw. abgeglichen worden sind. newNodes 148 speichert eine Liste von Objekten, die nur in der zweiten Zeichenfläche, jedoch nicht in der ersten Zeichenfläche vorhanden sind.
  • Bei 105 werden die Zeichenfläche A 120(1) und die Zeichenfläche B 120(2) empfangen. Bei 106 werden alle Kinder der Zeichenfläche A 120(1) und der Zeichenfläche B 120(2) bestimmt. Insbesondere können, wie vorstehend erwähnt worden ist, Objekte in einer Zeichenfläche auf hierarchische Weise angeordnet sein, wodurch Gruppen Objekte enthalten, die ihrerseits Gruppen sein können, sodass eine hierarchische oder geschichtete Darstellungsweise für die Anordnung von Objekten/Knoten bereitgestellt wird.
  • Wie noch beschrieben wird, werden die Kinder der Zeichenfläche A 120(1), die bei 106 bestimmt worden sind, nunmehr auf sequenzielle Weise untersucht. Insbesondere wird bei 108 bestimmt, ob nichtuntersuchte Kinder in der Zeichenfläche A 120(1) vorhanden sind. Ist dem so („Ja“-Zweig von 108), so wird bei 112 eine Variable currentAChild auf das nächste Kind in der Zeichenfläche A 120(1) gesetzt. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird ein durch currentAChild identifiziertes Objekt eingesetzt, um die Bestimmung eines Optimalabgleiches in der Zeichenfläche B 120(2) zu versuchen. Bei 116 wird ein Optimalabgleich in der Zeichenfläche B 120(2), so einer vorhanden ist, für currentAChild in der Zeichenfläche A 120(1) bestimmt, indem eine Abstandsmetrik zwischen currentAChild und jedem Kind der Zeichenfläche B 120(2) berechnet wird. Wie nachstehend noch detaillierter anhand 1b beschrieben wird, kann die Bestimmung eines Optimalabgleiches in der Zeichenfläche B 120(2) die Beseitigung von doppelten Kindobjekten in der Zeichenfläche B 120(2), die gegebenenfalls denselben Namen und Typ wie currentAChild teilen, erfordern. Wie nachstehend noch detaillierter anhand 1b beschrieben wird, wird matchedNodes 140 bei Fertigstellung von 118 mit Blick auf beliebige abgeglichene Knoten in der Zeichenfläche B 120(2) entsprechend currentAChild aktualisiert. Auf ähnliche Weise wird auch matchedGroupNodes 146 aktualisiert, sodass es beliebige Gruppenknoten, die mit currentAChild abgeglichen sind, so es sich tatsächlich um eine Gruppe handelt, beinhaltet. Zudem wird unmatchesNodes 142 aktualisiert, sodass es beliebige nichtabgeglichene Knoten beinhaltet. Der Ablauf setzt sich sodann bei 108 fort, wo bestimmt wird, ob nichtuntersuchte Kinder in der Zeichenfläche A 120(1) vorhanden sind.
  • Sind alle Kinder in der Zeichenfläche A 120(1) untersucht worden („Nein“-Zweig von 108), so setzt sich der Ablauf bei 118 fort, wo bestimmt wird, ob beliebige nichtuntersuchte Knoten/Objekte in matchedGroupNodes 146 vorhanden sind. Wie anhand 1b beschrieben wird, ist matchedGroupNodes 146 eine Liste, die Gruppenobjekte speichert, die entsprechend dem in 1b gezeigten Prozess abgeglichen worden sind (118). Sind keine nichtuntersuchten Knoten/Objekte in matchedGroupNodes 146 vorhanden („Nein“-Zweig von 118), so setzt sich der Ablauf bei 124 fort, wo jedes Kind in der Zeichenfläche B 120(2), das nicht in matchedNodes 140 ist, in newNodes 148 eingefügt wird. Sind nichtuntersuchte Objekte/Knoten in matchedGroupNodes 146 vorhanden, so setzt sich der Ablauf bei 120 fort, wo eine Variable matchedGroupNode auf den nächsten Knoten in matchedGroupNodes 146 gesetzt wird. Sodann wird bei 122 ein Rekursionsschritt initialisiert, indem die aktuelle Zeichenfläche A 120(1) auf matchedGroupNode gesetzt wird und die Zeichenfläche B 120(2) auf den Wert des Schlüssels in matchedNodes 140 entsprechend dem Schlüssel matchedGroupNode gesetzt wird. Der Ablauf setzt sich sodann bei 102 fort, wo ein Rekursivbetrieb durchgeführt wird.
  • 1c ist ein Flussdiagramm eines Prozesses zum Durchführen eines Optimalabgleiches für ein Objekt in einer ersten Zeichenfläche in Bezug auf mehrere Objekte in einer zweiten Zeichenfläche entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie vorstehend anhand 1b beschrieben worden ist, dient der in 1c gezeigte Prozess dazu, einen Optimalabgleich für ein aktuelles Kind in der Zeichenfläche A 120(1) (currentAChild) zu bestimmen, und aktualisiert verschiedene Zustandsvariablen. Der Prozess beginnt bei 130. Bei 134 wird bestimmt, ob irgendwelche übrigen Kinder in der Zeichenfläche B 120(2) vorhanden sind. Ist dem so („Ja“-Zweig von 134), so wird bei 132 eine Variable currentBChild auf das nächste Kind in der Zeichenfläche B 120(2) gesetzt. Bei 154 wird bestimmt, ob das Objekt, das durch die Variable currentAChild identifiziert wird, mit dem Objekt, das durch currentBChild identifiziert wird, abgeglichen ist. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird ein Abgleich zwischen einem Objekt in der Zeichenfläche A 120(1) und der Zeichenfläche B 120(2) registriert, wenn wenigstens die Objekte denselben Namen teilen. Entsprechend einer alternativen Ausführungsform wird ein Abgleich registriert, wenn die entsprechenden Objekte sowohl denselben Namen wie auch denselben Typ teilen. Entsprechend alternativen Ausführungsformen können beliebige Attribute oder eine Kombination von Attributen, die Objekten in der Zeichenfläche A 120(1) und der Zeichenfläche B 120(2) zugeordnet sind, zur Bestimmung dessen benutzt werden, ob ein Abgleich vorhanden wird. Wird kein Abgleich detektiert („Nein“-Zweig von 154), so setzt sich der Ablauf bei 134 fort, wo übrige Kinder in der Zeichenfläche B 120(2) untersucht werden. Wird ein Abgleich detektiert („Ja“-Zweig von 154), so setzt sich der Ablauf bei 133 fort, wo der Knoten, der durch currentBChild identifiziert wird, in tempMatchedNodes 150 eingefügt wird. Die Listenvariable tempMatchedNodes wird benutzt, um eine laufende Liste von Abgleichsobjekten/Knoten aus der Zeichenfläche B 120(2) entsprechend currentAChild vorzuhalten. Der Ablauf setzt sich bei 134 fort, wo bestimmt wird, ob irgendwelche übrigen Kinder in der Zeichenfläche B 120(2) vorhanden sind.
  • Sind keine übrigen Kinder in der Zeichenfläche B 120(2) vorhanden („Nein“-Zweig von 134), so setzt sich der Ablauf bei 160 fort, wo die Größe von tempMatchedNodes 150 bestimmt wird. Wie vorstehend bemerkt worden ist, speichert tempMatchedNodes 150 Knoten aus der Zeichenfläche B 120(2), die mit currentAChild in Bezug auf ein oder mehrere Attribute, so beispielsweise den Namen und den Typ, abgeglichen sind. Ist die Größe von tempMatchedNodes 150 gleich 1, so gibt dies an, dass ein einziger Abgleich detektiert worden ist (das heißt, es sind keine Doppelungen vorhanden), und der Ablauf setzt sich bei 138 fort, wo der erste Eintrag in tempMatchedNodes (tempMatchedNodes[0]), der der einzige Knoten sein sollte, in die Listenvariable matchedNodes 140 eingefügt wird. Der Ablauf setzt sich bei 160 fort, wo bestimmt wird, ob currentAChild ein Gruppenknoten ist. Ist currentAChild ein Gruppenknoten und ist ein Abgleich mit currentBChild detektiert worden, so impliziert dies, dass currentBChild ebenfalls ein Gruppenknoten ist, da entsprechend einigen Ausführungsformen die Knoten in ihrer Typattributen abgeglichen sein müssen. Ist currentAChild kein Gruppenknoten („Nein“-Zweig von 160), so setzt sich der Ablauf bei 162 fort, und der Prozess endet. Andernfalls („Ja“-Zweig von 160), setzt sich der Ablauf bei 162 fort, wo der Knoten, der durch currentAChild identifiziert wird, in das Wörterbuch / die Abbildung matchedGroupNodes 146 eingefügt wird. Entsprechend einer Ausführungsform der vorliegenden Offenbarung ist der Schlüsselwert ein Identifikator von currentAChild, und der Wert ist ein Identifikator von currentBChild. Der Ablauf setzt sich sodann bei 162 fort, und der Prozess endet.
  • Ist die Größe von tempMatchedNodes ungleich 1 („Nein“-Zweig von 160), so setzt sich der Ablauf bei 162 fort, wo bestimmt wird, ob die Größe von tempMatchedNodes größer als 1 ist. Ist dies nicht der Fall („Nein“-Zweig von 162), so impliziert dies, dass keine Abgleichsknoten in der Zeichenfläche B 120(2) ausfindig gemacht worden sind, und der Ablauf setzt sich bei 142 fort, wo der Knoten, der currentAChild identifiziert wird, in die Listenstruktur unmatchedNodes 144 eingefügt wird. Der Ablauf setzt sich sodann bei 162 fort, und der Prozess endet.
  • Ist die Größe von tempMatchedNodes demgegenüber großer als 1 („Ja“-Zweig von 162), so setzt sich der Ablauf bei 136 fort, und tempMatchedNodes 150 wird auf Grundlage einer oder mehrerer Metriken sortiert. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird tempMatchedNodes auf Grundlage der nachfolgenden Kriterien in absteigender Reihenfolge sortiert:
    1. (a) die Anzahl von Eigenschaften, die ähnlich sind. Die nachfolgenden Eigenschaftswerte können verglichen werden: Position, Größe, Füllfarbe, Strichfarbe, Sichtbarkeit, Eckradius, Linienhöhe, Schriftzeichenbeabstandung und Zeichensatzgröße. Objekte mit einer höheren Anzahl von ähnlichen oder Abgleichseigenschaften können in der Liste höher (als wahrscheinlicherer Abgleich) als Objekte mit einer niedrigeren Nummer von ähnlichen/Abgleichseigenschaften gelistet werden.
    2. (b) der Relativschichtabstand eines jeden Kindes. Entsprechend einer Ausführungsform der vorliegenden Offenbarung wird der Schichtabstand dadurch berechnet, dass der Index des Kindes in der Zeichenfläche 120(1) in deren Elternteil (parent) untersucht und mit dem Index des Kindes in der Zeichenfläche B verglichen wird. Objekte mit einer kleineren Schichtabstandsdifferenz dazwischen können in der Liste höher (als wahrscheinlicherer Abgleich) als Objekte mit einer größeren Schichtabstandsdifferenz dazwischen gelistet werden.
  • Sodann wird bei 139 der erste Eintrag in tempMatchedNodes (tempMatchedNodes[0]) in matchedNodes 140 gespeichert, da dies einen Optimalabgleich darstellt. Der Prozess endet sodann bei 162.
  • 2 ist ein Flussdiagramm eines Prozesses zum Durchführen von Ziehheuristiken entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie vorstehend beschrieben worden ist, kann ein Ziehheuristikenprozess als Teil eines Vorschauprozesses durchgeführt werden, um die Möglichkeit eines Animators zu fördern oder zu verbessern, eine Vorschau auf eine vorher gestaltete Animation zu erhalten. Entsprechend einer Ausführungsform der vorliegenden Offenbarung stellt ein Ziehheuristikenprozess für einen Animator eine automatisierte Fähigkeit bereit, ein Scrubbing an einer gestalteten Animation vorzunehmen. Der Ziehheuristikenprozess 200 wird bei 202 initialisiert, wo ein Nutzer die Absicht äußert, eine Ziehheuristikeninteraktion durchzuführen. Insbesondere wird entsprechend einer Ausführungsform der vorliegenden Offenbarung ein matchedNodes-Objekt 140 empfangen. Das matchedNodes-Objekt 140 ist vorstehend beschrieben worden und kann entsprechend einer Ausführungsform der vorliegenden Offenbarung ein Wörterbuch oder eine Abbildung umfassen, wobei ein Schlüssel ein Objektidentifikator in einer ersten Zeichenfläche 120 ist und der Wert ein Objektidentifikator eines Abgleichsobjektes in einer zweiten Zeichenfläche 120 ist.
  • Bei 206 wird eine vorherrschende Richtung bestimmt. Ein Objekt hat sich gegebenenfalls in zwei Dimensionen in der X- und Y-Ebene bewegt. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann eine vorherrschende Ziehrichtung als der größere der Abstände, um den sich das Objekt in den X- und Y-Dimensionen bewegt hat, bestimmt werden. Hat sich das Objekt beispielsweise um 10 Einheiten in der X-Dimension und um 25 Einheiten in der Y-Dimension bewegt, so ist die vorherrschende Richtung die Y-Richtung. An diesem Punkt des Prozesses kann ein Nutzer mit dem Animationsvorschauvorgang unter Nutzung einer Vorrichtung, so beispielsweise einer Maus oder eines berührungsempfindlichen Schirmes, interagieren. Bei 208 wird bestimmt, ob ein Ziehereignis empfangen wird. Insbesondere kann ein Ziehereignis entsprechend einer Ausführungsform der vorliegenden Offenbarung ein nutzerseitige Bewegung einer Maus oder einer anderen Eingabevorrichtung (beispielsweise eines berührungsempfindlichen Schirmes) entlang der bestimmten vorherrschenden Richtung von 206 umfassen. Wird kein Ziehereignis empfangen („Nein“-Zweig von 208), so setzt sich der Vorgang bei 208 fort, und es wird erneut bestimmt, ob ein Ziehereignis empfangen wird. Andernfalls („Ja“-Zweig von 208), wird bei 210 ein Ziehabstand in der vorherrschenden Richtung bestimmt. Ist das Ziehereignis beispielsweise eine Bewegung um 5 Einheiten in der X-Dimension und um 2 Einheiten in der Y-Dimension und war die vorherrschende Richtung in den Y-Dimensionen, so wird der Abstand als 2 Einheiten bestimmt.
  • Bei 212 werden die abgeglichenen Objekte, die animiert werden sollen, auf Grundlage des bei 210 bestimmten Abstandes aktualisiert (das heißt animiert). Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Gesamtziehabstand auf Grundlage der Empfindlichkeit der Eingabevorrichtung, so beispielsweise einer Maus oder eines berührungsempfindlichen Schirmes, definiert sein. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann der Gesamtziehabstand die Gesamtanzahl von in der vorherrschenden Richtung gegebenen Einheiten sein, um die sich die animierten Objekte bewegen. Die Animation der abgeglichenen Objekte kann sodann auf Grundlage eines Verhältnisses des bei 210 bestimmten Abstandes und des Gesamtziehabstandes und eines Skalierungsfaktors aktualisiert werden, um eine Anpassung an die Empfindlichkeit einer Eingabevorrichtung, so beispielsweise einer Maus oder eines berührungsempfindlichen Schirmes, zu erreichen. Mit anderen Worten, die Animation kann auf eine Weise aktualisiert werden, die zur Aktualisierung des Abspielkopfes eines Abspielgerätes, so beispielsweise eines Kassettendecks oder eines VCR-Gerätes, ähnlich ist. Insbesondere kann der Animator an einen virtuellen Abspielkopf ein „Scrubbing“ vornehmen, um einen anderen Zeitpunkt der Animation zu suchen. Ist das Ziehen beispielsweise auf halbem Wege und weist die Animation eine Dauer von 1 s auf, so kann sich der Abspielkopf in der Animation auf 0,5 s bewegen. Bei 214 wird bestimmt, ob der Gesamtziehabstand erreicht worden ist. Ist dem so („Ja“-Zweig von 214), so endet der Prozess bei 216. Andernfalls („Nein“-Zweig von 214) setzt sich der Ablauf bei 208 fort.
  • 3 ist ein Flussdiagramm zur Darstellung des Betriebes eines Zeitauslöservisualisierungsprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung. Der in 3 gezeigte Prozess kann auf einem Zeitauslösermodul 416, wie es nachstehend anhand 4 beschrieben wird, implementiert sein. Wie vorstehend beschrieben worden ist, ermöglicht ein Zeitauslöserprozess, dass ein Animator eine zeitliche Sequenz von mehreren Zeichenflächen erstellt, die zu Animationszwecken als eine einzige Zeichenfläche behandelt werden, wobei die Zeit als Auslöseereignis innerhalb der Animation von einer Zeichenfläche zur nächsten dient. Um diese Funktionalität zu vereinfachen, stellt eine GUI entsprechend einer Ausführungsform der vorliegenden Offenbarung ein visuelles Werkzeug bereit, das einem Animator ermöglicht, mehrere Zeichenflächen in einer zeitlichen Sequenz zu verknüpfen. Ein Zeitauslöservisualisierungsprozess kann des Weiteren eine oder mehrere Heuristiken anwenden, um zu bestimmen, ob bestimmte Zeichenflächen innerhalb einer zeitlichen Sequenz beinhaltet sind. Der in dem Flussdiagramm von 3 dargestellte Prozess betrifft den Betrieb einer GUI, die einem Animator ermöglicht, eine zeitliche Sequenz von mehreren Zeichenflächen zu generieren.
  • Wie in 3 dargestellt ist, beginnt der Prozess bei 302. Bei 304 werden Zeichenflächenverbindungen 410 empfangen. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Nutzer einen Verknüpfungsindikator (nachstehend anhand 8a bis 8c beschrieben) nutzen, um die Verknüpfung von mehreren Zeichenflächen anzugeben. Bei 306 wird bestimmt, ob alle Zeichenflächen betrachtet worden sind. Ist dem so („Ja“-Zweig von 306), so endet der Prozess bei 312. Andernfalls („Nein“-Zweig von 306) setzt sich der Ablauf bei 308 fort, wo die nächste Zeichenfläche als aktuelle Zeichenfläche gesetzt wird. Bei 312 wird bestimmt, ob die aktuelle Zeichenfläche die erste Zeichenfläche in der Sequenz ist. Ist dem so („Ja“-Zweig von 312), so wird bei 314 ein Frame für die aktuelle Zeichenfläche hinzugefügt. Andernfalls („Nein“-Zweig von 312) wird bei 316 bestimmt, ob zwischen der vorherigen Zeichenfläche und der aktuellen Zeichenfläche abgeglichene Objekte vorhanden sind, und zwar beispielsweise unter Nutzung des Animationsabgleichsprozesses 100. Ist dem nicht so („Nein“-Zweig von 316), so setzt sich der Ablauf bei 306 fort. Andernfalls („Ja“-Zweig von 316), setzt sich der Ablauf bei 318 fort, wo ein Frame für die aktuelle Zeichenfläche hinzugefügt wird. Der Ablauf setzt sich sodann bei 306 fort.
  • 4 ist ein Blockdiagramm eines Animationssystems entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 4 gezeigt ist, umfasst das Animationssystem des Weiteren ein Animationsgestaltungssystem 404 und ein Animationsvorschausystem 402. Ein Animator oder Gestalter kann das Animationsgestaltungssystem 404 zum Gestalten einer beliebigen Animation, die eine Anzahl von Zeichenflächen umfasst, nutzen. Sobald eine Animation unter Nutzung des Animationsgestaltungssystems 404 gestaltet worden ist, kann ein Animator das Animationsvorschausystem 403 für eine Vorschau auf die Animation und zur Bewertung von deren Wirkungen nutzen. Wie in 4 gezeigt ist, umfasst das Animationsgestaltungssystem 404 zudem ein Abgleichsmodul 402, ein mehrere Zeichenflächen betreffendes Zeitauslöservisualisierungsmodul 416 und einen Datenspeicher 406. Das Abgleichsmodul 402 kann einen Animationsabgleichsprozess 100, wie er anhand 1a bis 1c beschrieben worden ist, durchführen. Insbesondere können Zeichenflächen 120 von dem Animationsgestaltungssystem 404 empfangen und in dem Datenspeicher 120 gespeichert werden. Das Abgleichsmodul 402 kann Zeichenflächen 120 aus dem Datenspeicher 406 abrufen und einen Animationsabgleichsprozess 100 zum Generieren von abgeglichenen Objekten 408 durchführen.
  • Der Betrieb des mehrere Zeichenflächen betreffenden Zeitauslöservisualisierungsmoduls 416 wird nunmehr beschrieben. Entsprechend einer Ausführungsform der vorliegenden Offenbarung führt das mehrere Zeichenflächen betreffende Zeitauslöservisualisierungsmodul 416 einen Visualisierungsprozess durch und stellt Steuerungen bzw. Regelungen zur Animationswiedergabe mehrerer Zeichenflächen, die in einer zeitlichen Sequenz angeordnet sind, bereit. Wie in 4 gezeigt ist, empfängt das mehrere Zeichenflächen betreffende Zeitauslöservisualisierungsmodul 416 Zeichenflächenverbindungen 410, die bestimmte Zeichenflächen 120 angeben, die auf sequenzielle Weise zur Bereitstellung einer nahtlosen Animation miteinander verknüpft werden sollen. Das mehrere Zeichenflächen betreffende Zeitauslöservisualisierungsmodul 416 kann Information im Zusammenhang mit den betrachteten bestimmten Zeichenflächen 120 dem Abgleichsmodul 420 zuleiten und im Gegenzug Abgleichsinformation, so beispielsweise abgeglichene Objekte 408, von dem Abgleichsmodul 420 empfangen.
  • Sobald ein Gestalter eine Animationsgestaltung fertiggestellt hat, kann der Gestalter das Animationsvorschausystem 403 für eine Vorschau auf die Animation nutzen. Wie in 4 gezeigt ist, umfasst das Animationsvorschausystem 403 zudem ein Ziehheuristikenmodul 414 und einen Animationswiedergeber 420. Das Ziehheuristikenmodul führt einen Ziehheuristikenprozess 200 durch, wie er anhand 2 beschrieben worden ist. Der Animationswiedergeber 420 empfängt die abgeglichenen Objekte 408 sowie die Ausgabe von dem Ziehheuristikenmodul, um eine Animation 422 wiederzugeben.
  • Der Betrieb des Ziehheuristikenmoduls 414 wird nunmehr beschrieben. Wie in 4 gezeigt ist, werden die abgeglichenen Objekte 408 und die Ziehereignisse 412 von dem Ziehheuristikenmodul 414 empfangen. Die Ziehereignisse 412 umfassen beispielsweise ein auf einer Maus beruhendes Ereignis oder ein auf einem berührungsempfindlichen Schirm beruhendes Ereignis (beispielsweise eine Wisch- oder Ziehbewegung auf dem berührungsempfindlichen Schirm) oder andere Ziehereignisse einer Eingabevorrichtung. Die abgeglichenen Objekte 408 umfassen, wie vorstehend beschrieben worden ist, Objekte von den Zeichenflächen 120, die unter Nutzung des Animationsformabgleichsprozesses 110 abgeglichen worden sind.
  • 5 zeigt verschiedene Aspekte eines Abgleichsprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung. Insbesondere zeigt 5 ein Szenario, bei dem der Animationsabgleichsprozess 100 angewendet werden kann. Wie in 5 gezeigt ist, werden zwei Zeichenflächen 120(1) und 120(2) präsentiert, die jeweiligen Kindobjekten 502(1) bis 502(7) und 502(8) bis 502(16) bezugsrichtig zugeordnet sind. Ein Namensattribut und ein Schichtindexattribut werden in Bezug auf jedes Objekt 502 gezeigt. Das Objekt 502(2) weist beispielsweise den Namen „A“ und den Schichtindex „6“ auf. Ein Typattribut kann zudem aus der Form der in 5 gezeigten Objekte hergeleitet werden. Das Objekt 502(2) ist beispielsweise vom selben Typ wie das Objekt 502(10), da sie beide rechteckig sind. Gruppenobjekte (beispielsweise 502(1) und 502(14)) sind zudem durch gestrichelte Kästchen angegeben. Ein Abstandsattribut zwischen Objekten kann als zweidimensionaler Abstand zwischen Objekten, wie in der Zeichnung gezeigt sind, hergeleitet werden. Es werde angenommen, dass jedes in 5 gezeigte Objekt 502 einer beliebigen Anzahl von anderen Attributen, die hier nicht explizit dargestellt sind, zugeordnet werden kann.
  • Im Sinne des vorliegenden Beispiels werde angenommen, dass die anderen Attribute, die für den Abgleich benutzt werden, der Schichtindex und der Abstand sind. Es werde zudem angenommen, dass ein Abgleich für das Objekt 502(4) unter Nutzung des Animationsabgleichsprozesses 100 bestimmt werden soll. Da 502(4) ein quadratischer Typ mit Namen „A“ ist, sind die Kandidatenabgleiche gleich 502(12) und 502(10). Um den Optimalabgleich zu bestimmen, erfordern der Schichtindex und der Abstand zwischen 502(4) und sowohl 502(10) wie auch 502(12) eine Bewertung. Unter Nutzung einer Euklidischen Metrik kann der Optimalabgleich folgendermaßen ausgedrückt werden: m i n i ( l d i 3 ) 2 + ( x i x ) 2 + ( y i y ) 2
    Figure DE102019005517A1_0001
  • Hierbei sind x und y die jeweiligen Koordinaten von 502(4), ldt ist der Schichtindex des i-ten Kindobjektes in der Zeichenfläche 120(2), und xi und yi sind die jeweiligen x- und y-Koordinaten des i-ten Kindobjektes in der Zeichenfläche 120(2). Obwohl das Beispiel von 5 nur zwei Attribute (Schichtindex und Abstand) zeigt, kann entsprechend alternativen Ausführungsformen auch eine beliebige Anzahl von Attributen zum Einsatz kommen.
  • 6a zeigt einen exemplarischen Betrieb eines Ziehheuristikenprozesses entsprechend einer Ausführungsform der vorliegenden Offenbarung. Im Sinne des vorliegenden Beispiels werde angenommen, dass das Objekt 502 in der Zeichenfläche 120(1) animiert werden soll. Da sich das Objekt 502 eindeutig in der x-Richtung um einen größeren Abstand bewegt, ist die x-Richtung die vorherrschende Richtung. Insbesondere kann die Bestimmung einer vorherrschenden Richtung verwirklicht werden, indem der Absolutwert des Abstandes, um den die Bewegungen in den x- und y-Dimensionen erfolgt sind, folgendermaßen einem Vergleich unterzogen wird: Gilt  | x d | > | y d | ,  so ist x die vorherrschende Richtung Andernfalls ist y die vorherrschende Richtung .
    Figure DE102019005517A1_0002
  • Entsprechend einigen Ausführungsformen wird der Schichtindex zwischen zwei Objekten getrennt von der räumlichen Differenz zwischen zwei Objekten behandelt. Beim Bestimmen eines Optimalabgleichs zwischen einem Objekt in einer ersten Zeichenfläche und mehreren Objekten in einer zweiten Zeichenfläche können daher beispielsweise zunächst die räumlichen Abstände zwischen dem Objekt in der ersten Zeichenfläche und denjenigen in der zweiten Zeichenfläche bestimmt werden, woraus die Objekte in der zweiten Zeichenfläche sortiert werden können. Bestimmt werden kann sodann ein Schichtindexdifferenzial bzw. eine Schichtindexdifferenz zwischen dem Objekt in der ersten Zeichenfläche und den Objekten in der zweiten Zeichenfläche sowie die Liste, die auf Grundlage jenes Differenzials bzw. jener Differenz sortiert ist, wobei der erste Sortiervorgang in Bezug auf die räumlichen Abstände erhalten bleibt.
  • 6b zeigt einen exemplarischen Betrieb eines Ziehheuristikenprozesses bei Bestimmung einer vorherrschenden Richtung entsprechend einer Ausführungsform der vorliegenden Offenbarung. Man beachte, dass sich das Objekt 502 zwischen der Zeichenfläche 120(1) und der Zeichenfläche 120(2) in Süd-Ost-Richtung bewegt. Da die vorherrschende Richtung bei diesem Beispiel die x-Richtung ist, erfolgt das Scrollen und Scrubben nur in x-Richtung, wie in 6b gezeigt ist. Insbesondere kann ein Nutzer eine Vorschau auf die Animation durchführen, indem er das Objekt 502 zieht, wobei sich die Position des Objektes 502 proportional zum Ziehabstand horizontal von West nach Ost aktualisiert, indem der Animationsabspielkopf zu dem entsprechenden Zeitpunkt bewegt wird. Man betrachte entsprechend einer exemplarischen Ausführungsform beispielsweise einen Fall, in dem sich das Objekt 502 in Süd-Ost-Richtung bewegt hat und die Gesamtanimation 1 s dauert. Zieht der Nutzer das Objekt 502 um 50% nach Osten, so arbeitet das System derart, dass es den Animationsabspielkopf auf 0,5 s bewegt. Nimmt der Nutzer ein Zurückziehen um 25% nach Westen vor, so arbeitet das System derart, dass es den Animationsabspielkopf auf 0,25 s bewegt. Der Nutzer kann das Vorwärts- und Rückwärtsziehen fortsetzen, bis die Maus oder der Finger freigegeben werden.
  • 7 zeigt ein Beispiel für einen mehrere Zeichenflächen betreffenden Zeitauslöservisualisierungsprozess entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 7 gezeigt ist, können die Zeichenflächen 120(1), 120(2) und 120(3) derart miteinander verknüpft sein, dass eine einzige Animation wiedergegeben werden kann. Man beachte, dass sich das in 7 gezeigte Objekt 502 vertikal von POS A nach POS B zwischen den Zeichenflächen 120(1) und 120(2) bewegt. Gleichwohl bewegt sich das Objekt 502 horizontal von POS B nach POS C zwischen den Zeichenflächen 120(2) und bzw. nach 120(3). Sodann kann unter Nutzung eines Zeitauslöservisualisierungsprozesses die kombinierte vertikale und horizontale Bewegung zwischen den Zeichenflächen 120(1) bis 120(3) als Gesamtbewegung nach Nord-Ost wiedergegeben werden.
  • 8a bis 8d zeigen eine Nutzerschnittstelle und ein exemplarisches Szenario zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation entsprechend einer Ausführungsform der vorliegenden Offenbarung. 8a zeigt eine Anfangskonfiguration einer Nutzerschnittstelle zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 8a gezeigt ist, kann ein Nutzer mit einem Hauptfenster 800 interagieren, das zudem ein Zeichenflächen betreffendes Verknüpfungsfeld 808, eine Zeitachse bzw. ein Zeitachsenfeld 802 und ein Schichtfeld 804 umfasst. Wie in 8a gezeigt ist, werden anfänglich vier Zeichenflächen 120(1) bis 120(4) in dem Zeichenflächenverknüpfungsfeld 808 angezeigt. Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Nutzer eine oder mehrere Zeichenflächen in das mehrere Zeichenflächen betreffende Verknüpfungsfeld 808 ziehen oder dort platzieren, um seinen Wunsch zu äußern, mit mehreren Zeichenflächen zu arbeiten. Bei einem Zeitauslöser erfolgt bei jeder der Zeichenflächen 120(1) bis 120(4) eine Autoanimation in der Sequenz.
  • 8a zeigt zudem das Zeitachsenfeld 802, das zudem Schichtinformation 804 zeigt. Das Zeitachsenfeld 802 stellt eine visuelle Schnittstelle bereit, die einem Animator ermöglicht, mit mehreren Zeichenflächen so zu arbeiten, als wären sie eine Zeichenfläche. Sobald der Animator mehrere Zeichenflächen ausgewählt hat, damit er mit ihnen arbeiten kann, kann der Animator sodann eine zeitliche Sequenz zwischen den ausgewählten Zeichenflächen festlegen, indem er diese unter Nutzung eines visuellen Verknüpfungsindikators 810 miteinander verknüpft. 8a zeigt beispielsweise, dass die Zeichenflächen 120(1) und 120(2) eine Sequenz umfassen, die von dem visuellen Verknüpfungsindikator 810 dazwischen angegeben wird.
  • Entsprechend einer Ausführungsform der vorliegenden Offenbarung kann ein Mehrfachzeitauslöservisualisierungsprozess 300 eine oder mehrere Heuristiken zur Bestimmung dessen anwenden, welche Zeichenflächen als Frames in einer Animationssequenz hinzugefügt werden sollen. Insbesondere erscheinen, wenn eine Animation zwischen zwei verschiedenen verknüpften Zeichenflächen fertiggestellt werden kann (das heißt, wenn ein Abgleichsalgorithmus wenigstens ein abgeglichenes Objekt 502 zwischen den Zeichenflächen 120 bestimmt), beide Zeichenflächen 120 in dem Zeitachsenfeld 802 als jeweilige Frames 806. Dies bedeutet, dass jede Zeichenfläche, anstatt dass sie als separate Komponente bestehen bleibt, zu einem Frame in einer zeitlichen Sequenz wird, so dies sinnvoll ist (das heißt, wenn Abgleichsobjekte in Bezug auf andere Zeichenflächen in der Sequenz vorhanden sind). Entsprechend hat bei dem in 8a gezeigten Beispiel ein Nutzer zwei der Zeichenflächen 120(1) und 120(2) ausgewählt und miteinander verknüpft, wie durch den Verknüpfungsindikator 810 angegeben ist, was dem System gegenüber angibt, dass ein Zeitauslöser zwischen den Zeichenflächen 120(1) und 120(2) eingerichtet werden soll. Entsprechend zeigt das Zeitachsenfeld 802 automatisch entsprechende Frames 808(a) und 806(b) entsprechend jeweiligen Zeichenflächen 120(1) und 120(2).
  • Wie in 8a gezeigt ist, kann, da eine Verknüpfung zwischen den beiden Zeichenflächen 120(1) und 120(2) eingerichtet worden ist, eine automatische Animation zwischen diesen beiden Zeichenflächen 120 begonnen werden. Entsprechend wird, sobald ein Gestalter den Wunsch äußert, eine automatische Animation zu beginnen, ein Animationsabgleichsprozess 100 begonnen, um Abgleichsobjekte zwischen den Zeichenflächen 120(1) und 120(2) mit anschließender Wiedergabe der Animation zu bestimmen. Hat ein Gestalter eine Verknüpfung zwischen den Zeichenflächen 120(1), 120(2), 120(3) und 120(4) angegeben, so werden diese Zeichenflächen, so dies möglich ist, als eine einzige Zeichenfläche behandelt.
  • 8b zeigt eine Konfiguration einer Nutzerschnittstelle zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation, die die Beziehung zwischen Zeichenflächen und Frames explizit angibt, entsprechend einer Ausführungsform der vorliegenden Offenbarung. Insbesondere werden, wie in 8b gezeigt ist, die Zeichenflächen 120(1) und 120(2) explizit als Frames 806(a) beziehungsweise 806(b) auf der Zeitachse 802 dargestellt.
  • 8c zeigt eine Konfiguration einer Nutzerschnittstelle zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation, die die Beziehung zwischen Zeichenflächen und Frames explizit angibt, entsprechend einer Ausführungsform der vorliegenden Offenbarung. Insbesondere ist, wie in 8c gezeigt ist, eine dritte Zeichenfläche 120(3) hinzugefügt worden, und es ist ein Frame 806(c) automatisch auf der Zeitachse 802 erzeugt worden.
  • 8d zeigt eine Konfiguration einer Nutzerschnittstelle zum Generieren einer mehrere Zeichenflächen betreffenden Zeitauslöseranimation entsprechend einer Ausführungsform der vorliegenden Offenbarung. Insbesondere wird, wie in 8d gezeigt ist, aufgrund dessen, dass die hervorgehobenen Schichten in der Zeichenfläche 120(1) vorhanden sind, in der Zeichenfläche 120(2) jedoch schwinden, für die Zeichenfläche 120(3) kein Übergang generiert. Da die Schicht in den Zeichenflächen 120(2) nicht mehr vorhanden ist, wird auf der Zeitachse 120 kein Übergang von der Zeichenfläche 120(2) zu der Zeichenfläche 120(3) dargestellt.
  • Die für Dauer und Sortierung gedachten Zeitsteuerungen bzw. Regelungen 820(a) bis 820(e) können manipuliert werden, um die „Dauer“ und die „Startzeit“ der Animation für jedes Objekt zu ändern. Da für alle drei Zeichenflächen eine einzige Zeitachse angezeigt wird, ist das an einem Ort erfolgende Anpassen dieser Parameter intuitiver, als eine Nutzerschnittstelle UI für die Zeichenfläche 1 und die Zeichenfläche 2 und eine weitere, ähnliche Nutzerschnittstelle für die Zeichenfläche 2 und die Zeichenfläche 3 zu betrachten.
  • Integration in ein Rechensystem und eine Netzwerkumgebung
  • 9a zeigt ein exemplarisches Rechensystem, das einen Animationsprozess entsprechend einer Ausführungsform der vorliegenden Offenbarung ausführt. Wie in 9a dargestellt ist, kann die Rechenvorrichtung 500 eine CPU 504 beinhalten, die einen oder mehrere Prozesse zum Ausführen des Animationssystems 400 ausführt. Insbesondere kann die CPU 504 mittels programmartiger Anweisungen zudem zum Ausführen des Animationssystems 400 (wie hier verschiedentlich beschrieben) konfiguriert sein. Weitere Komponenten und Module, die für ein typisches Rechensystem typisch sind, so beispielsweise ein Koprozessor, ein Prozessorkern, eine Grafikverarbeitungseinheit, eine Maus, ein berührungsempfindliches Feld, ein berührungsempfindlicher Schirm, eine Anzeige und dergleichen mehr, sind nicht gezeigt, da sie ohne Weiteres offensichtlich sind. Zahlreiche Abwandlungen der Rechenumgebung erschließen sich im Lichte der vorliegenden Offenbarung. Die Rechenvorrichtung 500 kann eine beliebige eigenständige Rechenplattform sein, so beispielsweise ein Desktop- oder Workstation-Computer, ein Laptop-Computer, ein Tablet-Computer, ein Smartphone oder ein persönlicher digitaler Assistent, eine Spielekonsole, eine Set-Top-Box oder eine andere geeignete Rechenplattform. Entsprechend alternativen Ausführungsformen kann die CPU 504 auch durch eine GPU ersetzt werden.
  • 9b zeigt eine exemplarische Integration eines Animationssystems in eine Netzwerkumgebung entsprechend einer Ausführungsform der vorliegenden Offenbarung. Wie in 9b gezeigt ist, kann die Rechenvorrichtung 500 in einer Cloudumgebung, einer Datenzentrale, einem Ortsbereichsnetzwerk („LAN“) und dergleichen mehr örtlich konzentriert sein. Die in 9b gezeigte Rechenvorrichtung 500 ist der Struktur nach zu der anhand 9a beschriebenen exemplarischen Ausführungsform identisch. Wie in 9b gezeigt ist, kann die Clientanwendung 512 mit der Rechenvorrichtung 500 über ein Netzwerk 510 interagieren. Insbesondere kann die Clientanwendung 512 Anfragen stellen und Antworten über API-Aufrufe, die an einem API-Server 506 empfangen werden und die über ein Netzwerk 510 und eine Netzwerkschnittstelle 508 übertragen werden, empfangen.
  • Es sollte einsichtig sein, dass das Netzwerk 500 einen beliebigen Typ von öffentlichem oder privatem Netzwerk, darunter das Internet oder ein LAN, umfassen kann. Es sollte des Weiteren unmittelbar einsichtig sein, dass das Netzwerk 500 einen beliebigen Typ von öffentlichem und/oder privatem Netzwerk umfassen kann, darunter das Internet, LANs, ein WAN oder irgendeine Kombination aus diesen Netzwerken. In diesem exemplarischen Fall ist die Rechenvorrichtung 500 ein Servercomputer, und eine Clientanwendung 512 kann eine beliebige typische PC-Plattform sein.
  • Wie zudem einsichtig sein sollte, beinhaltet die Rechenvorrichtung 500 - sei es nun die in 9a oder bei 65 gezeigte - einen Zugriff auf ein oder mehrere nichttemporäre computerlesbare Medien oder Speichervorrichtungen, auf denen eine oder mehrere computerausführbare Anweisungen oder Software zum Implementieren von Techniken wie den in der vorliegenden Offenbarung verschiedentlich beschriebenen gespeichert sind, und/oder sie verfügt über einen anderen Zugriff hierauf. Beinhalten können die Speichervorrichtungen eine beliebige Anzahl von dauerhaften Speichervorrichtungen (beispielsweise eine beliebige elektronische, optische und/oder magnetische Speichervorrichtung, darunter RAM, ROM, Flash, USB-Laufwerk, On-Board-CPU-Cache, Festplatte, Serverspeicher, Magnetband, CD-ROM) oder andere physische computerlesbare Speichermedien zum Speichern von Daten und computerlesbaren Anweisungen und/oder Software, die verschiedene der hier bereitgestellten Ausführungsformen implementieren. Es kann eine beliebige Kombination von Ablagen benutzt werden, und es können verschiedene Speicherkomponenten in einer einzigen Rechenvorrichtung oder über mehrere Rechenvorrichtungen verteilt angeordnet sein. Zusätzlich können, wie vorstehend erläutert worden ist, die eine oder die mehreren Speichervorrichtungen separat oder entfernt (remote) von der einen oder den mehreren Rechenvorrichtungen vorgesehen sein. Es sind zahlreiche Konfigurationen möglich.
  • Bei einigen exemplarischen Ausführungsformen der vorliegenden Offenbarung können die verschiedenen funktionalen Module, die hier beschriebenen werden, und insbesondere das Trainieren und/oder Testen des Netzwerkes 510 in Software implementiert sein, so beispielsweise als Satz von Anweisungen (beispielsweise HTML, XML, C, C++, objektorientiertes C, JavaScript, Java, BASIC und dergleichen mehr), die auf einem beliebigen nichttemporären computerlesbaren Medium oder Computerprogrammerzeugnis (beispielsweise Laufwerk, Server, Diskette oder einer anderen geeigneten nichttemporären Ablage oder einem Satz von Ablagen) codiert sind und die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass die verschiedenen hier empfohlenen, bereitgestellten methodischen Vorgehensweisen ausgeführt werden.
  • Bei wieder anderen Ausführungsformen sind die hier bereitgestellten Techniken unter Nutzung von softwarebasierten Engines implementiert. Bei derartigen Implementierungen ist eine Engine eine funktionelle Einheit, die einen oder mehrere Prozessoren beinhaltet, die mit Anweisungen, die einen hier empfohlenen Prozess, wie verschiedentlich beschrieben, konfigurieren, programmiert oder auf andere Weise konfiguriert sind. Auf diese Weise ist eine softwarebasierte Engine eine funktionelle Einheit.
  • Bei wieder anderen Ausführungsformen sind die hier bereitgestellten Techniken mit Hardwareschaltungen implementiert, so beispielsweise als Gate-Level-Logik (FPGA) oder als zweckgebundener Halbleiter (beispielsweise als anwendungsspezifische integrierte Schaltung ASIC). Wieder andere Ausführungsformen sind mit einem Mikrocontroller implementiert, der einen Prozessor, eine Anzahl von Eingabe/Ausgabeanschlüssen zum Empfangen und Ausgeben von Daten und eine Anzahl von eingebetteten Routinen zum durch den Prozessor erfolgenden Ausführen der hier bereitgestellten Funktionalität aufweist. Allgemeiner kann eine beliebige geeignete Kombination aus Hardware, Software und Firmware, wie ersichtlich ist, benutzt werden. Im Sinne des Vorliegenden entspricht eine Schaltung einer oder mehreren physischen Komponenten und ist im Sinne der Ausführung einer Aufgabe funktional. Entsprechen kann eine Schaltung beispielsweise einem oder mehreren Prozessoren, die mit einem Softwaremodul programmiert oder auf andere Weise konfiguriert sind, oder auch einer logikbasierten Hardwareschaltung, die einen Satz von Ausgaben in Reaktion auf einen bestimmten Satz von Eingabereizen bereitstellt. Zahlreiche Konfigurationen sind ersichtlich.
  • Weitere exemplarische Ausführungsformen
  • Die nachfolgenden Beispiele betreffen weitere Ausführungsformen, aus denen zahlreiche Permutationen und Konfigurationen ersichtlich sind.
  • Beispiel 1 ist ein Verfahren zum Durchführen einer Animation. Das Verfahren beinhaltet ein Bestimmen eines ersten Kindobjektes einer ersten Zeichenfläche und von zweiten Kindobjekten einer zweiten Zeichenfläche. Sind mehrere der zweiten Kindobjekte mit dem ersten Kindobjekt abgeglichen, so beinhaltet das Verfahren des Weiteren ein Hinzufügen der mehreren zweiten Kindobjekte zu einer Anfangsliste; ein Sortieren der Anfangsliste auf Grundlage wenigstens einer Abstandsmetrik, die dem ersten Kindobjekt und den mehreren zweiten Kindobjekten zugeordnet ist, um eine sortierte Liste zu generieren, wobei die wenigstens eine Abstandsmetrik auf wenigstens einem Attribut beruht, das dem ersten Kindobjekt und den mehreren zweiten Kindobjekten zugeordnet ist; und ein Generieren einer Zuordnung zwischen dem ersten Kindobjekt und dem zweiten Kindobjekt entsprechend einem ersten Eintrag in der sortierten Liste. Des Weiteren beinhaltet das Verfahren ein Wiedergeben einer Animation unter Nutzung der Zuordnung, wobei die Animation das erste Kindobjekt und das zweite Kindobjekt entsprechend dem ersten Eintrag in der sortierten Liste beinhaltet.
  • Beispiel 2 beinhaltet den Gegenstand von Beispiel 1, wobei die wenigstens eine Abstandsmetrik auf Schichtabstandsattributen beruht, die dem ersten Kindobjekt und den mehreren zweiten Kindobjekten derart zugeordnet sind, dass das Sortieren veranlasst, dass ein erstes der zweiten Kindobjekte in der sortierten Liste höher als ein zweites der zweiten Kindobjekte gelistet wird, wobei das erste der zweiten Kindobjekte eine erste Anzahl von Schichten aufweist, um die es von dem ersten Kindobjekt getrennt ist, und das zweite der zweiten Kindobjekte eine zweite Anzahl von Schichten aufweist, um die es von dem ersten Kindobjekt getrennt ist, wobei die zweite Anzahl größer als die erste Anzahl ist. Man beachte dass die Anzahl von Schichten, die die ersten und zweiten Kindobjekte trennen, relativ zu einer Schicht 1 einer gegebenen Schichthierarchie oder zu irgendeiner anderen Schicht innerhalb jener Hierarchie gegeben sein kann. Zu diesem Zweck kann die Anzahl von Schichten, um die ein Kindobjekt von einem anderen Kindobjekt getrennt ist, auf zahlreiche Weisen berechnet werden, solange die verwendete Schichtdifferenzierungstechnik auf konsistente Weise angewendet wird, wie im Lichte der vorliegenden Offenbarung ersichtlich ist.
  • Beispiel 3 beinhaltet den Gegenstand von Beispiel 1 oder 2, wobei die wenigstens eine Abstandsmetrik auf der Anzahl von Attributen beruht, die dem ersten Kindobjekt zugeordnet sind und die mit Attributen, die den mehreren zweiten Kindobjekten zugeordnet sind, derart abgeglichen sind, dass das Sortieren veranlasst, dass ein erstes der zweiten Kindobjekte in der sortierten Liste höher als ein zweites der zweiten Kindobjekte sortiert wird, wobei das erste der zweiten Kindobjekte eine erste Anzahl von Abgleichsattributen aufweist und das zweite der zweiten Kindobjekte eine zweite Anzahl von Abgleichsattributen aufweist, wobei die zweite Anzahl kleiner als die erste Anzahl ist.
  • Beispiel 4 beinhaltet den Gegenstand eines jeden der vorhergehenden Beispiele, wobei das wenigstens eine Attribut eines oder mehrere von Position, Größe, Füllfarbe, Strichfarbe, Sichtbarkeit, Eckradius, Linienhöhe, Schriftzeichenbeabstandung und Schriftsatzgröße beinhaltet.
  • Beispiel 5 beinhaltet den Gegenstand eines jeden der vorhergehenden Beispiele und beinhaltet des Weiteren ein dann, wenn der erste Eintrag in der sortierten Liste eine Gruppe ist, erfolgendes Rekursieren unter Nutzung des ersten Eintrages in der sortierten Liste und des ersten Kindobjektes.
  • Beispiel 6 beinhaltet den Gegenstand von Beispiel 5 und beinhaltet des Weiteren ein Setzen der ersten Zeichenfläche auf den ersten Eintrag in der sortierten Liste und der zweiten Seitenfläche auf ein Objekt, das dem ersten Eintrag zugeordnet ist.
  • Beispiel 7 beinhaltet den Gegenstand von Beispiel 5 oder 6, wobei das Wiedergeben einer Animation ein Animieren wenigstens eines Paares von abgeglichenen Objekten beinhaltet.
  • Beispiel 8 beinhaltet den Gegenstand eines jeden der vorhergehenden Beispiele, wobei ein einziges der zweiten Kindobjekte mit dem ersten Kindobjekt abgeglichen ist.
  • Beispiel 9 beinhaltet den Gegenstand von Beispiel 8, wobei ein Abgleich bestimmt wird, wenn das erste Kindobjekt einen selben Namen und Typ wie das einzige der zweiten Kindobjekte aufweist.
  • Beispiel 10 ist ein Verfahren zur Vorschau auf eine Animation, wobei das Verfahren umfasst: Empfangen eines ersten Objektes, das einer ersten Zeichenfläche zugeordnet ist, und eines zweiten Objektes, das einer zweiten Zeichenfläche zugeordnet ist, wobei die ersten und zweiten Objekte zu einer ersten Zeit beziehungsweise einer zweiten Zeit eine einzige Entität darstellen; Bestimmen einer vorherrschenden Richtung der Bewegung in Bezug auf die ersten und zweiten Objekte; Empfangen eines Ziehereignisses in der vorherrschenden Richtung; und Aktualisieren eines Animationszustandes einer visuellen Darstellung der Entität in Reaktion auf das Ziehereignis.
  • Beispiel 11 beinhaltet den Gegenstand von Beispiel 10, wobei die vorherrschende Richtung eine von einer horizontalen Richtung oder einer vertikalen Richtung ist.
  • Beispiel 12 beinhaltet den Gegenstand von Beispiel 11, wobei die vorherrschende Richtung bestimmt wird, indem eine Richtung ausgewählt wird, die einem größten Absolutwert der Verschiebung der Entität zwischen der ersten Zeit und der zweiten Zeit zugeordnet ist.
  • Beispiel 13 beinhaltet den Gegenstand eines jeden von Beispielen 10 bis 12, wobei das Ziehereignis durch eine Mausbewegung veranlasst wird.
  • Beispiel 14 beinhaltet den Gegenstand eines jeden von Beispielen 10 bis 13, wobei vor dem Empfangen der ersten und zweiten Objekte das Verfahren des Weiteren ein Bestimmen dessen beinhaltet, dass die ersten und zweiten Objekte miteinander in Bezug auf eine Abstandsmetrik abgeglichen sind, die auf Grundlage wenigstens eines Attributes, das sowohl den ersten wie auch zweiten Objekten zugeordnet ist, berechnet wird.
  • Beispiel 15 beinhaltet den Gegenstand von Beispiel 14, wobei das wenigstens eine Attribut eines oder mehrere von Position, Größe, Füllfarbe, Strichfarbe, Sichtbarkeit, Eckradius, Linienhöhe, Schriftzeichenbeabstandung und Zeichensatzgröße beinhaltet.
  • Beispiel 16 beinhaltet den Gegenstand nach einem von Beispielen 10 bis 15, wobei das Aktualisieren eines Animationszustandes des Weiteren ein Wiedergeben der Entität auf einer grafischen Nutzerschnittstelle, um eine aktualisierte Position widerzuspiegeln, umfasst.
  • Beispiel 18 ist ein Computerprogrammerzeugnis, das ein oder mehrere nichttemporäre maschinenlesbare Medien beinhaltet, die mit Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass ein Prozess zum Durchführen einer Animation ausgeführt wird, wobei der Prozess den Gegenstand eines jeden von Beispielen 1 bis 9 umfasst.
  • Beispiel 19 ist ein Computerprogrammerzeugnis, das ein oder mehrere nichttemporäre maschinenlesbare Medien beinhaltet, die mit Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass ein Prozess zur Vorschau auf eine Animation durchgeführt wird, wobei der Prozess den Gegenstand eines jeden von Beispielen 10 bis 16 umfasst.
  • Die vorstehende Beschreibung exemplarischer Ausführungsformen der Offenbarung ist zum Zwecke der Illustration und Beschreibung angegeben. Sie soll nicht erschöpfend sein oder die Offenbarung genau auf die offenbarten Formen beschränken. Viele Modifikationen und Abänderungen sind im Lichte der vorliegenden Offenbarung möglich. Es ist beabsichtigt, dass der Umfang der Offenbarung nicht durch diese Detailbeschreibung, sondern durch die beigefügten Ansprüche beschränkt wird.

Claims (15)

  1. Verfahren zum Durchführen einer Animation, wobei das Verfahren umfasst: Bestimmen eines ersten Kindobjektes einer ersten Zeichenfläche und von zweiten Kindobjekten einer zweiten Zeichenfläche; wenn mehrere der zweiten Kindobjekte mit dem ersten Kindobjekt gematched bzw. abgeglichen sind, Hinzufügen der mehreren zweiten Kindobjekte zu einer Anfangsliste, Sortieren der Anfangsliste auf Grundlage wenigstens einer Abstandsmetrik, die dem ersten Kindobjekt und den mehreren zweiten Kindobjekten zugeordnet ist, um eine sortierte Liste zu generieren, wobei die wenigstens eine Abstandsmetrik auf wenigstens einem Attribut beruht, das dem ersten Kindobjekt und den mehreren zweiten Kindobjekten zugeordnet ist, und Generieren einer Zuordnung zwischen dem ersten Kindobjekt und dem zweiten Kindobjekt entsprechend einem ersten Eintrag in der sortierten Liste; und Rendern bzw. Wiedergeben einer Animation unter Nutzung der Zuordnung, wobei die Animation das erste Kindobjekt und das zweite Kindobjekt entsprechend dem ersten Eintrag in der sortierten Liste beinhaltet.
  2. Verfahren nach Anspruch 1, wobei die wenigstens eine Abstandsmetrik auf Schichtabstandsattributen beruht, die dem ersten Kindobjekt und den mehreren zweiten Kindobjekten derart zugeordnet sind, dass das Sortieren veranlasst, dass ein erstes der zweiten Kindobjekte in der sortierten Liste höher als ein zweites der zweiten Kindobjekte gelistet wird, wobei das erste der zweiten Kindobjekte eine erste Anzahl von Schichten aufweist, um die es von dem ersten Kindobjekt getrennt ist, und das zweite der zweiten Kindobjekte eine zweite Anzahl von Schichten aufweist, um die es von dem ersten Kindobjekt getrennt ist, wobei die zweite Anzahl größer als die erste Anzahl ist.
  3. Verfahren nach Anspruch 1 oder 2, wobei die wenigstens eine Abstandsmetrik auf der Anzahl von Attributen beruht, die dem ersten Kindobjekt zugeordnet sind und die mit Attributen, die den mehreren zweiten Kindobjekten zugeordnet sind, derart gematched bzw. abgeglichen sind, dass das Sortieren veranlasst, dass ein erstes der zweiten Kindobjekte in der sortierten Liste höher als ein zweites der zweiten Kindobjekte gelistet wird, wobei das erste der zweiten Kindobjekte eine erste Anzahl von Abgleichsattributen aufweist und das zweite der zweiten Kindobjekte eine zweite Anzahl von Abgleichsattributen aufweist, wobei die zweite Anzahl kleiner als die erste Anzahl ist.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei das wenigstens eine Attribut eines oder mehrere von Position, Größe, Füllfarbe, Strichfarbe, Sichtbarkeit, Eckradius, Linienhöhe, Schriftzeichenbeabstandung und Zeichensatzgröße beinhaltet.
  5. Verfahren nach einem der vorhergehenden Ansprüche, des Weiteren umfassend: wenn der erste Eintrag in der sortierten Liste eine Gruppe ist, Rekursieren unter Nutzung des ersten Eintrages in der sortierten Liste und des ersten Kindobjektes.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei ein einziges der zweiten Kindobjekte mit dem ersten Kindobjekt gematched bzw. abgeglichen ist.
  7. Verfahren nach Anspruch 6, wobei ein Abgleich bestimmt wird, wenn das erste Kindobjekt einen selben Namen und Typ wie das einzige der zweiten Kindobjekte aufweist.
  8. Verfahren zur Vorschau auf eine Animation, wobei das Verfahren umfasst: Empfangen eines ersten Objektes, das einer ersten Zeichenfläche zugeordnet ist, und eines zweiten Objektes, das einer zweiten Zeichenfläche zugeordnet ist, wobei die ersten und zweiten Objekte zu einer ersten Zeit beziehungsweise einer zweiten Zeit eine einzige Entität darstellen; Bestimmen einer vorherrschenden Richtung der Bewegung in Bezug auf die ersten und zweiten Objekte; Empfangen eines Ziehereignisses in der vorherrschenden Richtung; und Aktualisieren eines Animationszustandes einer visuellen Darstellung der Entität in Reaktion auf das Ziehereignis.
  9. Verfahren nach Anspruch 8, wobei die vorherrschende Richtung eine von einer horizontalen Richtung oder einer vertikalen Richtung ist.
  10. Verfahren nach Anspruch 9, wobei die vorherrschende Richtung bestimmt wird, indem eine Richtung ausgewählt wird, die einem größten Absolutwert der Verschiebung der Entität zwischen der ersten Zeit und der zweiten Zeit zugeordnet ist.
  11. Verfahren nach einem der Ansprüche 8 bis 10, wobei das Ziehereignis durch eine Mausbewegung veranlasst wird.
  12. Verfahren nach einem der Ansprüche 8 bis 11, wobei vor dem Empfangen der ersten und zweiten Objekte das Verfahren des Weiteren beinhaltet: Bestimmen, dass die ersten und zweiten Objekte miteinander in Bezug auf eine Abstandsmetrik abgeglichen sind, die auf Grundlage wenigstens eines Attributes berechnet wird, das sowohl den ersten wie auch zweiten Objekten zugeordnet ist, wobei das wenigstens eine Attribut eines oder mehrere von Position, Größe, Füllfarbe, Strichfarbe, Sichtbarkeit, Eckradius, Linienhöhe, Schriftzeichenbeabstandung und Zeichensatzgröße beinhaltet.
  13. Verfahren nach einem der Ansprüche 8 bis 12, wobei das Aktualisieren eines Animationszustandes des Weiteren umfasst: Rendern bzw. Wiedergeben der Entität auf einer grafischen Nutzerschnittstelle, um eine aktualisierte Position widerzuspiegeln.
  14. Computerprogrammerzeugnis, das ein oder mehrere nichttemporäre, maschinenlesbare Medien beinhaltet, die mit Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass ein Prozess zum Durchführen einer Animation ausgeführt wird, wobei der Prozess umfasst: Bestimmen eines ersten Kindobjektes einer ersten Zeichenfläche und von zweiten Kindobjekten einer zweiten Zeichenfläche; wenn mehrere der zweiten Kindobjekte mit dem ersten Kindobjekt gematched bzw. abgeglichen sind, Hinzufügen der mehreren zweiten Kindobjekte zu einer Anfangsliste, Sortieren der Anfangsliste auf Grundlage wenigstens eine Abstandsmetrik, die dem ersten Kindobjekt und den mehreren zweiten Kindobjekten zugeordnet ist, um eine sortierte Liste zu generieren, wobei die wenigstens eine Abstandsmetrik auf wenigstens einem Attribut beruht, das dem ersten Kindobjekt und den mehreren zweiten Kindobjekten zugeordnet ist, und Generieren einer Zuordnung zwischen dem ersten Kindobjekt und dem zweiten Kindobjekt entsprechend einem ersten Eintrag in der sortierten Liste; und Wiedergeben einer Animation unter Nutzung der Zuordnung, wobei die Animation das erste Kindobjekt und das zweite Kindobjekt entsprechend dem ersten Eintrag in der sortierten Liste beinhaltet.
  15. Computerprogrammerzeugnis nach Anspruch 14, wobei das eine oder die mehreren nichttemporären maschinenlesbaren Medien mit Anweisungen codiert sind, die bei Ausführung durch den einen oder die mehreren Prozessoren veranlassen, dass ein Prozess zum Durchführen einer Animation ausgeführt wird, wobei der Prozess die Verfahrensschritte nach einem der Ansprüche 2 bis 7 umfasst.
DE102019005517.9A 2018-10-14 2019-08-06 Von änderungsbasierten Heuristiken getriebene automatische und interaktive Animation Pending DE102019005517A1 (de)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
DE102019005517A1 true DE102019005517A1 (de) 2020-04-23

Family

ID=67990992

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102019005517.9A Pending DE102019005517A1 (de) 2018-10-14 2019-08-06 Von änderungsbasierten Heuristiken getriebene automatische und interaktive Animation

Country Status (5)

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

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9465985B2 (en) 2013-06-09 2016-10-11 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
CN114187396A (zh) * 2021-12-16 2022-03-15 深圳依时货拉拉科技有限公司 用户轨迹绘制方法、装置、计算机设备和存储介质
US11954775B2 (en) * 2022-02-23 2024-04-09 International Business Machines Corporation Artboard element positioning in a series of computer-based artboards

Family Cites Families (5)

* 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ファイル編集方法
US7721209B2 (en) * 2008-09-08 2010-05-18 Apple Inc. Object-aware transitions
JP2016081095A (ja) * 2014-10-10 2016-05-16 キヤノン株式会社 被写体追跡装置、その制御方法、撮像装置、表示装置及びプログラム
CN106021519A (zh) * 2016-05-24 2016-10-12 腾讯科技(深圳)有限公司 图片动态展示方法和装置
US10097959B2 (en) * 2016-07-13 2018-10-09 Play Impossible Corporation Capturing smart playable device and gestures

Also Published As

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

Similar Documents

Publication Publication Date Title
DE102019005517A1 (de) Von änderungsbasierten Heuristiken getriebene automatische und interaktive Animation
DE69224499T2 (de) Dreidimensionale graphische Verarbeitung
DE69129712T2 (de) Arbeitsraumanzeigen
DE69525696T2 (de) Wiedergeben von Knotenverbindungsstruktur mit einer Zone von grösseren Abständen und peripheren Zweigen
DE69130198T2 (de) Bildanzeigesysteme
DE69725346T2 (de) Gerät und verfahren zur erzeugung eines blechbiegemodells
DE69033865T2 (de) Display hierarchischer dreidimensionaler Strukturen
DE102019005516A1 (de) Videoinpainting mittels verlässlichkeitsgewichteter Bewegungsschätzung
DE3856198T2 (de) Interaktives Inbewegungbringen von graphischen Objekten
DE69737913T2 (de) Gerät und verfahren zur eingabe von daten fuer ein biegemodell zur blecherzeugung
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE10296401B4 (de) Verbund-Rendering von 3-D-Graphikobjekten
DE112004000377B4 (de) Verfahren und Vorrichtung Bildsegmentierung in einer dreidimensionalen Arbeitsumgebung
DE112007001789B9 (de) Verfahren zum Bewerten eines Bildes im Hinblick auf eine dominante Linie
EP0829822B1 (de) Verfahren zur Anzeige von geometrischen Objektoberflächen
DE29623701U1 (de) Grafik Browser
DE102018001136A1 (de) Interaktive Farbpalettenschnittstelle zum digitalen Malen
DE112020005584T5 (de) Verdeckung berücksichtigende Innenraumszenenanalyse
DE102011108079A1 (de) Verfahren und Vorrichtung zur Anordnung komplex verknüpfter Informationen sowie deren Durchwegung
DE19817584A1 (de) Verfahren und System zur Objektsuche
DE202017007534U1 (de) Multiskalige 3D-Textursynthese
DE112008003854T5 (de) Raum-Zeit-Medienobjektlayouts
DE102022112888A1 (de) Benutzerschnittstellen und Verfahren zum Erzeugen eines neuen Artefakts auf der Grundlage vorhandener Artefakte
EP1159689A2 (de) Such- und navigationseinrichtung für hypertext-dokumente
DE19817583B4 (de) Verfahren und System zur Datenverarbeitung für dreidimensionale Objekte

Legal Events

Date Code Title Description
R012 Request for examination validly filed