DE69826167T2 - Verfahren und Gerät zur Graffitianimation - Google Patents

Verfahren und Gerät zur Graffitianimation Download PDF

Info

Publication number
DE69826167T2
DE69826167T2 DE69826167T DE69826167T DE69826167T2 DE 69826167 T2 DE69826167 T2 DE 69826167T2 DE 69826167 T DE69826167 T DE 69826167T DE 69826167 T DE69826167 T DE 69826167T DE 69826167 T2 DE69826167 T2 DE 69826167T2
Authority
DE
Germany
Prior art keywords
image
frame
interpolation
animation
stroke
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.)
Expired - Fee Related
Application number
DE69826167T
Other languages
English (en)
Other versions
DE69826167D1 (de
Inventor
Miwako Minato-ku Doi
Akira Minato-ku Morishita
Naoko Minato-ku Umeki
Shunichi Minato-ku Numazaki
Yasunobu Minato-ku Yamauchi
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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
Priority claimed from JP05521797A external-priority patent/JP3507647B2/ja
Priority claimed from JP15867697A external-priority patent/JP3431452B2/ja
Priority claimed from JP21343697A external-priority patent/JP3505360B2/ja
Priority claimed from JP21625897A external-priority patent/JP3505361B2/ja
Application filed by Toshiba Corp filed Critical Toshiba Corp
Publication of DE69826167D1 publication Critical patent/DE69826167D1/de
Application granted granted Critical
Publication of DE69826167T2 publication Critical patent/DE69826167T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/802D [Two Dimensional] animation, e.g. using sprites

Description

  • Die Erfindung bezieht sich auf eine Vorrichtung zum Durchführen einer Steuerung im Zusammenhang mit der Verarbeitung und dem Editieren einer CG-Animation.
  • Die Verbesserung in der Leistung von Personal-Computers (PC) hat ermöglicht, dass Computergraphik (CG-Animation) auf dem Personal-Computer in Echtzeit gehandhabt werden kann. Dies führt zu einer Tatsache, dass Computergraphik-Anwendungen, die auf dem Personal-Computer verändert werden können, zugenommen haben. Außerdem hat ein Benutzer häufig die Möglichkeit, einen Computergraphikinhalt zu erzeugen und daran Gefallen zu finden. Da die Möglichkeiten zugenommen haben, wurde eine Vielfalt von Anwendungen zum Erzeugen von Computergraphik-Animation auf einem Personal-Computer untersucht und entwickelt.
  • Computergraphik-Animation kann durch ein Mittel, das auf einem 3D-Koordinatendatensatz (3D-Computergraphik-Animation) basiert, und das, das auf einem Bitmap-Datensatz (2D-Computergraphik-Animation) basiert, erzeugt werden.
  • Das Mittel zum Erzeugen von Computergraphik-Animation auf der Grundlage des Bitmap-Datensatzes verwendet einen vorbereiteten Bitmap-Datensatz, der jeder Szene entspricht, so, dass Computergraphik-Animation angezeigt wird, während Bitmap-Daten umgeschaltet werden. Das vorhergehende Verfahren ist eine bekannte Animation einer auf aufeinander folgenden Seiten eines Notizbuchs gezeichneten Figur sehr ähnlich, die durchgeblättert werden, wobei das Verfahren ein eingerichtetes Verfahren ist, das einer Person ermöglicht, ohne weiteres Animation zu erzeugen. Eine Mehrzahl von Bitmap-Daten, genannt "Sprites", werden erstellt, die einem jeden Objekt entsprechen, das angezeigt werden soll. Die Sprites werden manchmal überlagert und angezeigt, so dass eine Szene gebildet wird. In dem vorhergehenden Fall wird die Position des Sprite in jeder Szene geändert, und eine Mehrzahl von Sprites, die den Szenen entsprechen, werden umgeschaltet. Somit wird Animation erzeugt.
  • Da die 2D-Computergraphik-Animation durch Bitmap-Datensätze gebildet wird, kann jede Szene nur durch Zeichnen von Bildern erzeugt werden. Daher ist ein normaler Benutzer imstande, Animationen in einer bestimmten Zeitspanne zu erzeugen. Da nur erforderlich ist, das ein Bitmap-Bild angezeigt wird, ist die erforderliche Datenmenge, Animation zu erzeugen, ohne Rücksicht auf die Feinheit und Komplikation (dem Inhalt des Bitmap-Bilds) des Objekts konstant, das in jeder Szene angezeigt werden muss.
  • Die Erzeugung von 2D-Computergraphik-Animation, die sich kompliziert bewegt, wie von einem Benutzer verlangt, muss jedoch auf eine solche Art und Weise durchgeführt werden, dass jedes Bitmap-Bild erzeugt wird. Somit muss eine zeitraubende Veränderung durchgeführt werden. Es ist selbstverständlich, dass die Zeit verkürzt werden kann, wenn eine einfache 2D-Computergraphik-Animation erzeugt wird, die aus einer kleinen Anzahl von erzeugten Bitmap-Bildern zusammengesetzt ist, und sie einfach als Sprites bewegt oder angezeigt wird, während die Bitmap-Bilder umgeschaltet werden. In dem vorhergehenden Fall wird ermöglicht, dass eine nicht zufrieden stellende, einfache Animation angezeigt wird.
  • Wenn ein großes Bitmap-Bild erzeugt werden kann, ist es erforderlich, dass eine Speichereinheit mit einer großen Kapazität alle Bitmap-Daten speichert. Um obige Daten effizient zu komprimieren, ist eine exklusive Hardware mit einer Codierfunktion, wie beispielsweise objektives MPEG, erforderlich.
  • Andererseits ist ein "Warping" Mittel genannt bekannt, mit dem ein als ursprüngliches Bild dienendes Bitmap verformt wird, um unterschiedliche Szenen zu erzeugen. Wie in 1A und 1B gezeigt ist, wird Warping auf eine solche Art und Weise durchgeführt, dass Steuerpunkte in einer Gitterkonfiguration angeordnet werden. Außerdem werden die Steuerpunkte bewegt, um ein Bitmap-Bild in einer von dem Steuerpunkten umgebenen Zone in Übereinstimmung mit einer Änderung in der von den Steuerpunkten umgebenden Zone zu verformen, so dass eine neue Szene erzeugt wird.
  • Da das Warping-Mittel ein Mittel zum Erzeugen einer neuen Szene durch Verformen einer von benachbarten Steuerpunkten umgebenden maschenförmigen rechtwinkligen Zone ist, sind Szenen, die erzeugt werden können, jedoch erheblich eingeschränkt. Da der für die Steuerpunkte erlaubte bewegbare Bereich auf die von den Steuerpunkten umgebenen Zone begrenzt ist, kann die Bewegung von nur einer Bildzone, die der Hand eines Menschen entsprechen, wie in 2 gezeigt ist, nicht ohne weiteres durchgeführt werden. In einem anderen Fall, in dem der Abschnitt mit der bewegten Hand den Abschnitt mit dem Gesicht überlappt, kann die dem Gesicht entsprechende ursprüngliche Form des Bildbereichs nicht beibehalten werden.
  • Um dies zu verhindern, muss das ursprüngliche Bild in eine Mehrzahl von Teilen aufgeteilt werden, die aus Gesichtsabschnitten und dergleichen bestehen. Um ein existierendes Bitmap eines ursprünglichen Bitmap zu verwenden, muss das Bitmap des ursprünglichen Bilds vorher in eine Mehrzahl von Sprites aufgeteilt werden. Daher muss ein erheblich komplizierter vorausgehender Prozess durchgeführt werden.
  • Wenn ein Warping-Prozess zwangsweise durchgeführt wird, um eine Szene zu erzeugen, die nicht erforderlich ist, erfordert die Computergraphik-Animation, wie beispielsweise eine Aktion des Gelenks, das eine große Anzahl von Steuerpunkten einzeln bewegt werden müssen. Da jeder Steuerpunkt bewegt werden muss, während Bedingungen, wie beispielsweise das Beibehalten der Ausgewogenheit der Form der Hand, die beibehalten werden müssen, berücksichtigt werden, ist das oben erwähnte Mittel kein praktisches Mittel.
  • Ein "Morphing" genanntes Mittel, das eine Anwendung des "Warping" ist, ist auf eine solche Art und Weise ausgestaltet, dass ein zwischen zwei Bitmap-Bildern interpoliertes Bild erzeugt wird, um zu ermöglichen, dass unterschiedliche Bilder erzeugt werden können. Wie in 3A und 3B gezeigt ist, erfordert die Morphing-Manipulation, dass Punkte zum Angeben der entsprechenden Positionsbeziehung zwischen zwei Bitmap-Bildern angewiesen werden. In dem in 3B gezeigten Fall werden Steuerpunkte a1 und b1 für den Zweck angewiesen, die Positionen der Hand in den Szenen A und B dazu zu bringen, dass sie einander entsprechen. Ein interner Teilungspunkt m1 wird auf einer geraden Linie bestimmt, die die Steuerpunkte a1 und b1 miteinander verbindet. In der Szene A wird der Steuerpunkt von a1 nach m1 verschoben. In der Szene B wird der Steuerpunkt von b1 nach m1 verschoben. Dann wird der Warping-Prozess durchgeführt, so dass die Position der Hand in den beiden Szenen im Wesentlichen zu den gleichen Positionen bewegt werden kann. Die erzeugten beiden Warping-Szenen werden mit einem geeigneten Verhältnis vermischt, so dass eine interpolierte Szene automatisch erzeugt werden kann.
  • Wenn Zwischenszenen erzeugt und kontinuierlich angezeigt werden, während der innere Teilungspunkt m1 etwas auf der geraden Linie von a1 nach b1 bewegt wird, wird Computergraphik-Animation, die sich von der Szene zu der Szene B ändert, erzeugt.
  • Da das Morphing die Anwendung des Warping-Mittels ist, wird eine Grenze auferlegt, die der für das Warping-Mittel ähnlich ist. Da der bewegbare Bereich für den Steuerpunkt des Warping-Mittels begrenzt ist, kann Morphing einer Szene, bei der die Arme geöffnet sind, und einer Szene, bei der die Arme miteinander gekreuzt sind, keine natürliche Animation erzeugen. Da die Steuerpunkte, die die gleiche Position angeben, eingestellt werden müssen, um einander zwischen den beiden Bildern zu entsprechen, ist eine zeitraubende Manipulation erforderlich, um die Korrespondenz zwischen einer Vielzahl von Steuerpunkten zu erkennen, wenn eine Vielzahl der Steuerpunkte eingestellt ist.
  • Um Computergraphik-Animation zu erzeugen, wie beispielsweise die Bewegung des Handgelenks, müssen zwei Bitmap-Bilder, die sich voneinander nur im Ausmaß des Warpings der Hand unterscheiden, erstellt werden. Außerdem muss die Positionsbeziehung zwischen den beiden Bitmap-Bildern als die Steuerpunkte angewiesen werden. Was schlimmer ist, eine große Anzahl von Steuerpunkten muss einzeln angewiesen werden, um eine reibungslose Animation zu erzeugen. Daher ist das vorhergehende Mittel kein praktisches Mittel.
  • Um Computergraphik-Animation nur durch eine intuitive und einfache Manipulation zu erzeugen, ist ein Mittel erforderlich, das imstande ist, eine Animation zu erzeugen, die imstande ist, alle Bewegungen von einem Bitmap-Bild durchzuführen. Wie oben beschrieben, kann das herkömmliche Computergraphik-Animations-Erzeugungsmittel, das auf der Grundlage der Bitmap-Daten strukturiert ist, die oben erwähnte Anforderung nicht erfüllen.
  • Das heißt, dass das herkömmliche Computergraphik-Animationserzeugungsmittel, das auf der Grundlage des Bitmap-Datensatzes strukturiert ist, keine Computergraphik-Animation erzeugen kann, die imstande ist, beliebige Bewegungen nur durch eine intuitive und einfache Manipulation eines Bitmap-Bilds, das ein ursprüngliches Bild ist, oder eines Bitmap-Bilds, das ein das ursprüngliche Bild bildendes Sprite ist, durchzuführen.
  • Ein Prozess zum Erzeugen von Computergraphik-Animation von Bewegungen des Handgelenks einer Person wird nun berücksichtigt. Ein Mittel, das auf der Grundlage von 3D-Computergraphik-Animation strukturiert ist, ist auf eine solche Art und Weise ausgestaltet, dass ein Modell eines menschlichen Körpers (ein Skelettmodell), das durch Einstellen von 3D-Koordinatendaten gebildet wird, die die Form der Hand angeben, erzeugt wird. Die Bewegung wird durch Durchführen von umgekehrten Berechnungen, genannt "inverse Kinetik", für jeden Winkel des Gelenks erzeugt. Der oben erwähnte Prozess ist eine extrem schwere Belastung und kann somit nicht benutzt werden, um eine interaktive Animation zu erzeugen, die einen Echtzeitprozess erfordert.
  • Wenn eine Animation der oben erwähnten stroke-basierten Bewegungen, die die Bewegungen einer Hand ausdrücken, auf der Grundlage des Bitmap-Datensatzes eingestellt wird, wird eine Animation mit unnatürlicher Erweiterung durchgeführt, und eine Kontraktion wird durchgeführt, da die Gesamtform nicht beibehalten werden kann. Wenn versucht wird, eine dem Menschen familiäre Animation eines Subjekts (die Bewegung der Hand) zu erzeugen, werden kuriose Bewegungen durchgeführt.
  • Wenn das Schlüsselframe der Animation fein aufgeteilt wird, werden die oben erwähnten unnatürlichen Bewegungen unauffällig. Im Gegensatz dazu wird das Wissen zum Einstellen des Schlüsselframe und des Animationserzeugungsprozesses, das erforderlich ist, um die natürlichen Bewegungen zu verwirklichen, erhöht. Als Ergebnis kann die Animation nicht durch eine intuitive Manipulation durchgeführt werden. Wenn interpolierte Strokes automatisch durch Definieren von Start- und End-Strokes erzeugt werden, kann eine zufrieden stellende Wirkung nicht erhalten werden, wenn eine komplizierte Animation ausgedrückt wird.
  • Bis jetzt ermöglichte die Anzeige von 3D-Formdaten, die mittels einer Abstandsmessvorrichtung, wie beispielsweise eines Abstandsmessers, erfasst wurden, dass die Unregelmäßigkeit der Formen in Übereinstimmung mit der räumlichen Dichte der Gitter erkannt werden kann. Das vorhergehende Verfahren, das strukturiert ist, um die Form zu erkennen, wurde nicht dazu verwendet, zu versuchen, die Animation durch Ändern der Zustände des Gitters zu erzeugen, wenn Zeit verstreicht.
  • Da die Zustände von Strokes zwischen Schlüsselframes hinsichtlich Zeit und Raum nicht gesteuert werden können, wurde die Form der Animation erheblich eingeschränkt. Insbesondere kann ein Verfahren zum Abbilden der den Strokes zugewiesenen Bitmap-Bilder nicht geändert werden, um der Form und der Position des Strokes zu entsprechen.
  • Das herkömmliche Verfahren zum Erzeugen von Animation durch sequentielles Reproduzieren lediglich der erstellten Schlüsselframes kann keine Animation erzeugen, die imstande ist, Bewegungen zusätzlich zu den erzeugten Bewegungen auszudrücken. Daher war ein zeitraubender Prozess erforderlich, um Animation zu erzeugen, die Bewegungen ausdrücken, die in Übereinstimmung mit Rhythmen sanft geändert werden. Außerdem kann die Animation nicht durch Durchführen einer interaktiven Manipulation umgeschaltet werden, die von einem Benutzer während der Reproduktionsmanipulation durchgeführt wird. Wenn ein Austausch mit einem anderen Frame durchgeführt und die Animation während des Reproduktionsprozesses umgeschaltet wird, kann die Kontinuität der Bewegungen nicht beibehalten werden. In diesem Fall entsteht ein Problem, weil die unnatürliche Animation erzeugt wird. Um Animation zu erzeugen, die beispielsweise eine Szene ausdrückt, in der Blumenblätter verstreut werden, muss eine Vielzahl von unterschiedlichen Schlüsselframes erzeugt werden. Dies führt dazu, dass eine übermäßige zeitraubende Manipulation durchgeführt werden muss. Was schlimmer ist, eine Animation dieser Art kann nicht durch die interaktive Manipulation erzeugt werden.
  • Andererseits ermöglicht Computergraphik auf der Grundlage des Modellierens von Daten, dass Animation durch die interaktive Manipulation erzeugen werden kann, da die Computergraphik der vorgegebenen Art ausgestaltet ist, um Animation (Bewegungen) durch Ändern von Koordinaten zu erzeugen. Eine Vielzahl von Steuerpunkten kann nicht ohne weiteres von einem Benutzer nach Bedarf geändert werden. Die Manipulation für die Änderung ist eine komplizierte Arbeit. Wenn ein Computergraphikbild eines Menschen bewegt wird, muss gewöhnlicherweise ein Bewegungserfassungsverfahren durchgeführt werden. In diesem Fall muss eine kostspielige Eingabevorrichtung, wie beispielsweise Datenanzüge, verwendet werden. Ein weiteres Verfahren zum Erzeugen von Animation ist bekannt, das einen Schritt eines Abbildens einer Vielzahl von Daten, wie beispielsweise MIDI-Daten, die geändert werden, an jedem Steuerpunkt umfasst. Es ist für einen Benutzer sehr schwierig, Animation intuitiv zu erkennen, die aus Datenabbildung resultiert. Daher kann eine für den Benutzer erforderliche komplizierte Animation nicht erzeugt werden.
  • "TicTacToon: A paperless system for Professional 2D A", Computer Graphics Proceedings, Annual Conference Series 1995, J. D Fekete u. a. beschreibt ein Animationssystem, das vektorbasiertes Malen und Skizzieren verwendet. Eine Animation wird durch Interpolieren eines Abschnitts zwischen Schlüsselframes erzeugt. Wenn die Animation durch Schlüsselframes erzeugt wird, wird die ursprüngliche Linie mit einer Bezier-Kurve dazwischen geschoben.
  • Eine Aufgabe der Erfindung besteht darin, ein Animationserzeugungsverfahren, das imstande ist, ohne weiteres eine Animation, die für ein beliebige Bewegen geeignet ist, nur durch Durchführen einer intuitiven und einfachen Manipulation zum Eingeben eines Strokes, der eine sequentielle Manipulation eines Bitmap-Bilds ausdrückt, in ein Bitmap-Bild zu erzeugen, das als ein ursprüngliches Bild oder ein Bitmap-Bild dient, das ein Sprite ist, das das ursprüngliche Bild bildet, und eine das Verfahren benutzende Animationserzeugungsvorrichtung bereitzustellen.
  • Eine weitere Aufgabe der Erfindung besteht darin, eine Animationserzeugungsvorrichtung bereitzustellen, die imstande ist, eine Animation zu erzeugen, die eine ausgezeichnete Ausdrucksleistung, wie beispielsweise ein 3D-Bildeffekt, durch Ändern der Form eines zwischen Schlüsselframes interpolierten Strokes und Abbilden eines Bitmap-Bilds, das dem Interpolationsstroke entspricht, wenn die Zeit verstreicht, und hinsichtlich eines Raums aufweist.
  • Noch eine weitere Aufgabe der Erfindung besteht darin, eine Animationserzeugungsvorrichtung und ein Animationserzeugungsverfahren bereitzustellen, die ein Schalten eines bestimmten Animationsflusses, der aus einer Mehrzahl von Schlüsselframes erzeugt wird, zu einem anderen Animationsfluss, der beliebig durchzuführen ist, und reibungslos durch eine Manipulation des Benutzers ermöglichen, und mit denen eine unendliche Anzahl von Mustern ohne weiteres aus einer kleinen Anzahl von Schlüsselframes erzeugt werden kann, obwohl die Animation eine Schlüsselframeanimation ist.
  • Eine weitere Aufgabe der Erfindung besteht darin, eine Animationserzeugungsvorrichtung und ein Animationserzeugungsverfahren bereitzustellen, die imstande sind, ohne weiteres eine neue Animation durch Einfügen eines neuen Animationsflusses in einen ursprünglichen Animationsfluss sowie auch Umschalten des Animationsflusses zu erzeugen.
  • Gemäß einem Aspekt der Erfindung wird eine Animationserzeugungsvorrichtung zum Erzeugen einer Animation bereitgestellt, die durch ein Schlüsselframebild gebildet wird, das aus einem oder mehreren Strokes zusammengesetzt ist, und ein Interpolationsframebild, das aus Interpolationsstrokes zusammengesetzt ist, die durch Interpolieren eines Abschnitts zwischen den Strokes jedes Schlüsselframebilds erzeugt werden, wobei die Animationserzeugungsvorrichtung umfasst: ein Eingabemittel zum Eingeben eines oder mehrerer Strokes in das Schlüsselframe; ein Quantisierungsmittel zum Quantisieren jedes Strokes, der in jedes Schlüsselframe eingegeben wird, durch das Eingabemittel in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; und ein Erzeugungsmittel zum Erzeugen eines Interpolationsvektors zum Interpolieren eines Abschnittes zwischen den entsprechenden Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag zwischen entsprechenden Einheitsvektoren zwischen den Schlüsselframes, der durch eine durch das Quantisierungsmittel durchgeführte Quantisierungsmanipulation erhalten wird.
  • Somit kann ohne weiteres eine Animation, die imstande ist, ein sequentielles Bewegen zu erzeugen, wie von einem Benutzer gefordert, mit einer einfachen Manipulation erzeugt werden.
  • Gemäß einem weiteren Aspekt der Erfindung wird eine Animationserzeugungsvorrichtung zum Erzeugen von Animation bereitgestellt, die durch ein aus einem oder mehreren Strokes zusammengesetzt Schlüsselframebild und ein aus Interpolationsstrokes zusammengesetztes Interpolationsframebild gebildet wird, die durch Interpolieren eines Abschnittes zwischen den Strokes jedes Schlüsselframebilds erzeugt werden, wobei das Animationserzeugungsmittel folgende Schritte umfasst: Quantisieren eines oder mehrerer Strokes, die von einem Benutzer an das Schlüsselframe eingegeben wurden, in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; und Erzeugen eines Interpolationsvektors zum Interpolieren eines Abschnitts zwischen den entsprechenden Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag zwischen den entsprechenden Einheitsvektoren zwischen den Schlüsselframes.
  • Somit kann eine Animation, die imstande ist, sich sequentiell zu bewegen, wie von einem Benutzer gefordert, ohne weiteres mit einer einfachen Manipulation erzeugt werden.
  • Bei einem bevorzugten Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass das Eingabemittel einen oder eine Mehrzahl von Strokes in jedes der Framebilder eingibt; dadurch, dass ein Korrespondenzherstellungsmittel bereitgestellt wird, um die von dem Eingabemittel eingegebenen Strokes dazu zu bringen, einander zwischen den mehreren Framebildern zu entsprechen; und dadurch, dass das Erzeugungsmittel einen Interpolationsstroke zum Interpolieren eines Abschnitts zwischen den Strokes erzeugt, die durch das Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen. Somit kann eine Animation, die imstande ist, sich sequentiell zu bewegen, wie von einem Benutzer gefordert, ohne weiteres mit einer einfachen Manipulation erzeugt werden. Das heißt, dass die Strokes zum Anweisen der Bewegung der Animation dazu gebracht werden, einander zu entsprechen, wenn die Strokes eingegeben werden. Sogar wenn die Strokes zwischen der Mehrzahl der Framebilder eine Korrespondenzbeziehung aufweisen, wie beispielsweise 1 : 0, 1 : 1, 1 : eine Multiplizität oder eine Multiplizität : eine Multiplizität, werden die Interpolationsstrokes in Übereinstimmung mit der Korrespondenz erzeugt. Daher können die Strokes für jedes Framebild ohne eine Begrenzung der Anzahl eingegeben werden. Außerdem ist es nicht erforderlich, dass die der Mehrzahl der Framebilder entsprechenden Strokes die gleiche Länge aufweisen. Eine Notwendigkeit zum Ziehen eines Strokes, um einem Framebild zu entsprechen, das die größte Anzahl von Strokes aufweist, kann in einem Fall eliminiert werden, in dem die Strokes zwischen den Framebildern die Korrespondenz aufweisen müssen (die Anzahl von Strokes in jedem Framebild muss die gleiche sein). Wenn eine komplizierte Animation erzeugt wird, bei der beispielsweise ein in einem bestimmten Framebild existierender Stroke in einem nächsten Framebild verschwindet oder ein Stroke in einem bestimmten Framebild in n Abschnitte zerlegt wird, kann eine Notwendigkeit zum Zeichnen eines Dummy-Strokes, der visuell nicht erkannt werden kann, eliminiert werden. Somit kann eine Animation ohne weiteres lediglich durch freies Zeichnen von Strokes auf einem Framebild ohne irgendeine Begrenzung erzeugt werden.
  • Bei einem weiteren Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass ferner ein Quantisierungsmittel zum Quantisieren der Stroke in Einheitsvektoren bereitgestellt wird, die jeweils eine beliebige Länge aufweisen; dadurch, dass das Korrespondenzherstellungsmittel umfasst: ein erstes Korrespondenzherstellungsmittel, um die von dem Eingabemittel eingegeben Strokes dazu zu bringen, einander zwischen den mehreren Framebildern zu entsprechen; und ein zweites Korrespondenzherstellungsmittel, um den Einheitsvektor dazu zu bringen, einander zwischen den Strokes zu entsprechen, die dazu gebracht wurden, einander in Übereinstimmung mit der Anzahl von Einheitsvektoren jedes der Strokes zu entsprechen, die durch das erste Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen; und dadurch, dass das Erzeugungsmittel einen Interpolationsvektor zum Interpolieren eines Abschnitts zwischen den Einheitsvektoren in Übereinstimmung mit dem Änderungsbetrag zwischen den Einheitsvektoren erzeugt, die durch das zweite Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen. Somit kann eine Animation, die imstande ist, sich sequentiell zu bewegen, wie von einem Benutzer gefordert, ohne weiteres mit einer einfachen Manipulation erzeugt werden. Das heißt, dass die Strokes zum Anweisen der Bewegung der Animation dazu gebracht werden, einander zu entsprechen, wenn die Strokes eingegeben werden. Außerdem werden Einheitsvektoren dazu gebracht, einander zwischen den Strokes zu entsprechen, die erstellt werden, um einander zu entsprechen. In Übereinstimmung mit der erstellten Korrespondenz wird der Interpolationsvektor erzeugt. Daher können die Strokes für jedes Framebild ohne eine Begrenzung der Anzahl eingegeben werden. Außerdem ist es nicht erforderlich, dass die Strokes, die der Mehrzahl der Framebilder entsprechen, die gleiche Länge aufweisen. Somit kann eine Animation ohne weiteres lediglich durch freies Ziehen von Strokes auf einem Framebild ohne irgendeine Begrenzung erzeugt werden.
  • Bei einem weiteren bevorzugten Aspekt ist die Animationsherstellungsvorrichtung dadurch gekennzeichnet, dass das Eingabemittel erste Eingabemittel zum Eingeben einer oder einer Mehrzahl von ersten Strokes entlang eines Bildabschnitts umfasst; zweites Eingabemittel zum Eingeben einer oder einer Mehrzahl von zweiten Strokes, die die Formänderungen des ersten Stroke angeben, die von dem, ersten Eingabemittel eingegeben wurden; und dadurch, dass das Erzeugungsmittel ein erstes Erzeugungsmittel zum Erzeugen eines Interpolationsstroke zum Interpolieren eines Abschnittes zwischen den ersten und zweiten Strokes umfasst, die dazu gebracht werden, einander durch das Korrespondenzherstellungsmittel zu entsprechen; und ein zweites Erzeugungsmittel zum Bewegen oder Verformen oder Bewegen und Verformen einer Bildbereich benachbart dem ersten Stroke in Übereinstimmung mit der Position und der Form des zweiten Stroke, die dazu gebracht werden, dem ersten Stroke zu entsprechen, und diejenigen des Interpolationsstroke, um ein Einheitsbild zu erzeugen, das jeweils dem zweiten Stroke und dem Interpolationsstroke entspricht; und dritte Erzeugungsmittel zum Erzeugen eines Framebilds durch Vermischen des Einheitsbilds mit dem ursprünglichen Bild in Übereinstimmung mit dem zweiten Stroke oder dem Interpolationsstroke. Somit kann eine Animation, die imstande ist, sich sequentiell zu bewegen, wie von einem Benutzer gefordert, ohne weiteres mit einer einfachen Manipulation erzeugt werden. Das heißt, dass die Strokes zum Anweisen der Bewegung der Animation dazu gebracht werden, einander zu entsprechen, wenn die Strokes eingegeben werden. Sogar wenn die Strokes zwischen der Mehrzahl der Framebilder eine beliebige Korrespondenzbeziehung, wie beispielsweise 1 : 0, 1 : 1, 1 : einer Multiplizität oder eine Multiplizität : einer Multiplizität werden Interpolationsstrokes in Übereinstimmung mit der Korrespondenz erzeugt. Daher können die Strokes für jedes Framebild ohne eine Begrenzung der Anzahl eingegeben werden. Außerdem ist es nicht erforderlich, dass die Strokes, die der Mehrzahl von Framebildern entsprechen, die gleiche Länge aufweisen. Eine Notwendigkeit eines Ziehens eines Stroke, um ein Framebild mit der größten Anzahl von Strokes zu entsprechen, kann in einem Fall eliminiert werden, wobei die Strokes zwischen den Framebildern die Korrespondenz aufweisen müssen (die Anzahl von Strokes in jedem Framebild muss dieselbe sein). Wenn ein Bild benachbart einem Abschnitt, an dem der erste Stroke eingegeben wurde, frei in Übereinstimmung mit den Positionen und Formen des zweiten Stroke und des Interpolationsvektors verformt werden, kann eine Animation, die imstande ist, sich beliebig zu bewegen, erzeugt werden. Da die Einheitsvektoren der Strokes dynamisch dazu gebracht werden können, einander zu entsprechen (Quantisierung und Erstellen einer Korrespondenz in Übereinstimmung mit der Anzahl der Einheitsvektoren der entsprechenden Stroke), kann eine Animation ohne weiteres erzeugt werden, bei der die Einheitsbilder, die den Strokes entsprechen, in Übereinstimmung mit der Differenz und der Länge des Strokes expandiert/kontrahiert werden.
  • Gemäß einem weiteren bevorzugten Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass das Eingabemittel umfasst: ein erstes Eingabemittel zum Eingeben eines oder einer Mehrzahl von ersten Strokes entlang eines Bildabschnitts; und ein zweites Eingabemittel zum Eingeben eines oder einer Mehrzahl von zweiten Strokes, die die Formänderung der durch das erste Eingabemittel eingegebenen ersten Stroke angibt, dadurch, dass ferner ein erstes Korrespondenzherstellungsmittel, um die ersten und zweiten Stroke dazu zu bringen, einander zu entsprechen; ein Quantisierungsmittel zum Quantisieren der ersten und zweiten Stroke in Einheitsvektoren, die jeweils eine beliebige Länge aufweisen; ein zweites Korrespondenzherstellungsmittel, um die Einheitsvektoren zwischen ersten und zweiten Strokes dazu zu bringen, einander zu entsprechen, durch das erste Korrespondenzherstellungsmittel in Übereinstimmung mit der Anzahl der Einheitsvektoren der ersten und zweiten Strokes;
    ein erstes Erzeugungsmittel zum Erzeugen eines Interpolationsvektors zum Interpolieren eines Abschnitts zwischen den Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag zwischen den Einheitsvektoren, die durch das zweite Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen;
    ein zweites Erzeugungsmittel zum Erzeugen eines Einheitsbild, das dem Einheitsvektor des zweiten Strokes und dem Interpolationsvektor entspricht, durch Bewegen oder Verformen oder Bewegen und Verformen eines Bildbereichs, der benachbart zu jedem Einheitsvektor des ersten Stroke ist, in Übereinstimmung mit der Position und der Form des zweiten Stroke, der jedem Einheitsvektor und dem Interpolationsvektor entspricht;
    und ein drittes Erzeugungsmittel zum Erzeugen eines Framebilds durch Vermischen des Einheitsbilds in das ursprüngliche Bild in Übereinstimmung mit dem Einheitsvektor des zweiten Stroke oder des Interpolationsvektors.
  • Somit kann eine Animation, die imstande ist, sich sequentiell zu bewegen, wie von einem Benutzer gefordert, ohne weiteres mit einer einfachen Manipulation erzeugt werden. Das heißt, die Stroke zum Anweisen der Bewegung des Animationsbereichs werden dazu gebracht, zu korrespondieren, wenn die Stroke eingegeben werden. Die Einheitsvektoren werden dazu gebracht, einander zwischen den Strokes zu entsprechen, die dazu gebracht wurden, einander zu entsprechen. In Übereinstimmung mit der Korrespondenz wird der Interpolationsvektor erzeugt. Daher können die Stroke für jedes Framebild ohne eine Begrenzung der Anzahl eingegeben werden. Außerdem ist es nicht erforderlich, dass die zwischen der Mehrzahl der Framebildern korrespondieren Strokes die gleiche Länge aufweisen. Wenn ein Bild benachbart einem Abschnitt, in den der erste Stroke eingegeben wurde, frei in Übereinstimmung mit den Positionen und Formen des zweiten Strokes und des Interpolationsvektors verändert werden, kann eine Animation erzeugt werden, die imstande ist, sich beliebig zu bewegen. Da die Einheitsvektoren der Strokes dynamisch dazu gebracht werden können, einander zu entsprechen (Quantisierung und Herstellen der Korrespondenz in Übereinstimmung mit der Anzahl der Einheitsvektoren der entsprechenden Strokes), kann eine Animation ohne weiteres erzeugt werden, bei der die den Strokes entsprechenden Einheitsbilder in Übereinstimmung mit der Differenz in der Länge des Stroke expandiert/kontrahiert werden.
  • Da ein Speichermittel zum Formen des Einheitsbilds in eine regelmäßige Form und zum Speichern des geformten Einheitsbilds, und wenn das Framebild erzeugt wird, bereitgestellt wird, wird das in dem Speichermittel gespeicherte Einheitsbild in die ursprüngliche Form wiederhergestellt und mit dem ursprünglichen Bild vermischt. Daher kann, wenn ein Bildbereich benachbart dem ersten Stroke geschnitten wird, sogar ein Bildbereich mit einer unregelmäßigen Form (das heißt, ein beliebiges Rechteck oder Dreieck) geschnitten werden. Daher kann die Begrenzung des Animationsbilds, das erzeugt werden kann, sinnvoll aufgehoben werden.
  • Da ein Speichermittel, um verarbeitete Daten für einen angewiesenen Spezialeffekt dazu zu bringen, dem Einheitsbild zu entsprechen, und um die verarbeiteten Daten zu speichern, bereitgestellt wird, und wenn das in dem Speichermittel gespeicherte Framebild erzeugt wird, das in dem Speichermittel gespeicherte Einheitsbild dem Spezialeffekt in Übereinstimmung mit verarbeiteten Daten unterworfen wird, um mit dem ursprünglichen Bild vermischt zu werden. Da ein Spezialeffekt, wie beispielsweise Schattieren oder Lärmhinzufügung, durchgeführt wird, und dann der Bildbereich gezeichnet wird, kann eine Animation, die eine ausgezeichnete Ausdrucksleistung aufweist, erzeugt werden.
  • Gemäß einem weiteren bevorzugten Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass das Eingabemittel umfasst: ein erstes Eingabemittel zum Eingeben eines oder einer Mehrzahl von Strokes in jedes der Framebilder; und ein zweites Eingabemittel zum Eingeben von Begrenzungsinformation der geänderten Form des Strokes, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen der Mehrzahl der Framebilder interpoliert wird; und dadurch, dass das Erzeugungsmittel einen Interpolationsstroke in Übereinstimmung mit der Interpolationsposition, bei der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebildern interpoliert wird, Begrenzungsinformation und den von dem ersten Eingabemittel eingegebenen Stroke erzeugt.
  • Gemäß einem weiteren bevorzugten Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass das Eingabemittel umfasst: ein erstes Eingabemittel zum Eingeben eines oder einer Mehrzahl von Strokes in jedes der Framebilder; und ein zweites Eingabemittel zum Eingeben einer Begrenzungsbedingung zum Begrenzen einer geänderten Form des Strokes, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebildern interpoliert wird; und dadurch, dass ein Quantisierungsmittel zum Quantisieren jedes der Strokes, die dazu gebracht wurden, einander zwischen den mehreren Framebildern zu entsprechen und die von dem ersten Eingabemittel eingegeben wurden, in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; und dadurch, dass das Erzeugungsmittel einen Interpolationsvektors in Übereinstimmung mit der Interpolationsposition, bei der ein Abschnitt zwischen den Strokes, die dazu gebracht wurden, einander zu entsprechen, interpoliert wird, Begrenzungsinformation und die entsprechenden Einheitsvektoren der Strokes dazu gebracht werden, einander zu entsprechen, und ein Interpolationsstroke zum Interpolieren eines Abschnitts zwischen dem Stroke, der dazu gebracht wurde, einander zu entsprechen, in Übereinstimmung mit dem erzeugten Interpolationsvektor erzeugt.
  • Daher wird der erzeugte Interpolationsstroke mit der Begrenzungsfunktion verformt. Somit kann eine Animation, die einen visuellen 3D-Effekt, wie beispielsweise Konvexität und Unregelmäßigkeit, ohne weiteres erzeugt werden.
  • Bevorzugterweise umfasst die Animationserzeugungsvorrichtung gemäß diesem bevorzugten Aspekt ferner ein Interpolationsbilderzeugungsmittel zum Erzeugen eines Bilds zum Interpolieren eines Abschnitts zwischen den Framebildern durch Bewegen oder Verformen oder Bewegen und Verformen eines Bilds, das dem von dem ersten Eingabemittel eingegebenen Stroke benachbart ist, in Übereinstimmung mit der Position und der Form des von dem Erzeugungsmittel erzeugten Interpolationsstroke. Da der Interpolationsstroke für einen Abschnitt zwischen den eingegebenen Schlüsselstrokes in Übereinstimmung mit einem Begrenzungsstroke zum Begrenzen der Positionen der beiden Enden des Interpolationsstrokes erzeugt wird, kann eine Animation, die für eine natürliche Bewegung geeignet ist, ohne weiteres erzeugt werden, während die Gesamtform in der Nachbarschaft des Schlüsselstrokes beibehalten wird. Daher wird der erzeugte Interpolationsstroke mittels der Begrenzungsfunktion verformt. Somit kann eine Animation mit einem visuellen 3D-Effekt, wie beispielsweise Konvexität und Unregelmäßigkeit, ohne weiteres erzeugt werden. Da ein Bild in der Nachbarschaft des geschnittenen Strokes, einem Prozess, wie beispielsweise einer Verformung oder Schattierung unterworfen wird, wenn das Abbilden des Bilds in den Interpolationsstroke durchgeführt wird, kann ebenfalls eine Animation, die eine Ausdrucksleistung mit einem speziellen visuellen Effekt aufweist, ohne weiteres erzeugt werden.
  • Gemäß einem weiteren bevorzugten Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass ferner ein Bildframespeichermittel bereitgestellt wird, bei dem eine Mehrzahl von Bildframes gespeichert sind, und dadurch, dass das Erzeugungsmittel umfasst: ein erstes Erzeugungsmittel zum Erzeugen einer ersten Animation aus einem ersten Bildframe in ein zweites Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes für Interpolationsabschnitte zwischen einem angewiesenen ersten Bildframe und einem zweiten Bildframe der in dem Bildframespeichermittel gespeicherten Bildframes; und ein zweites Erzeugungsmittel, das auf eine solche Art und Weise angeordnet ist, dass, wenn mindestens ein Interpolationsframe einer Mehrzahl von Interpolationsframes bei der ersten Animation und ein drittes Bildframe, das in dem Bildframespeichermittel gespeichert ist, angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird, das zweite Erzeugungsmittel eine Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe erzeugt, um eine zweite Animation zu erzeugen, die von dem angewiesenen Interpolationsframe verzweigt.
  • Daher kann das Umschalten von einem bestimmten, aus einer Mehrzahl von Schlüsselframes erzeugten Animationsfluss, zu einem anderen Animationsfluss ohne weiteres reibungslos mit beliebigem Timing in Übereinstimmung mit einer Anweisung von einem Benutzer durchgeführt werden. Somit kann eine Animation mit unendlichen Mustern ohne weiteres aus einem Schlüsselframes mit einer kleinen Anzahl von Mustern erzeugt werden.
  • Gemäß einem weiteren bevorzugten Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass ferner ein Bildframespeichermittel zum Speichern einer Mehrzahl von Bildframes bereitgestellt wird; und dadurch, dass das Erzeugungsmittel umfasst: eine erstes Erzeugungsmittel zum Erzeugen einer ersten Animation aus einem ersten Bildframe in ein zweites Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem ersten Bildframe der in dem Bildframespeichermittel gespeicherten Bildframes und dem zweiten Bildframe; ein zweites Erzeugungsmittel, das auf eine solche Art und Weise angeordnet ist, dass, wenn mindestens ein Interpolationsframe einer Mehrzahl von Interpolationsframes bei der ersten Animation und ein drittes Bildframe; in dem Bildframespeichermittel gespeichert ist, angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird, das zweite Erzeugungsmittel eine Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe erzeugt, um eine zweite Animation zu erzeugen, die von dem angewiesenen Interpolationsframe verzweigt ist; und ein drittes Erzeugungsmittel, das auf eine solche Art und Weise angeordnet ist, dass, wenn eine Verzweigung von der ersten Animation angewiesen ist, das dritte Erzeugungsmittel ein Interpolationsframe aus den mehreren Interpolationsframes bei der ersten Animation auswählt und eine Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem ausgewählten Interpolationsframe erzeugt, um eine dritte Animation zu erzeugen, die von der zweiten Animation zu der ersten Animation verbunden wird.
  • Daher kann ein Umschalten von einem bestimmten Animationsfluss, der aus einer Mehrzahl von Schlüsselframes erzeugt wird, zu einem anderen Animationsfluss ohne weiteres mit einem beliebig Timing in Übereinstimmung mit einer Anweisung von einem Benutzer durchgeführt werden. Somit kann eine Animation mit einem unendlichen Muster ohne weiteres aus einem Schlüsselframe mit einer kleinen Anzahl von Mustern erzeugt werden.
  • Gemäß einem weiteren bevorzugten Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass ferner bereitgestellt werden Bildframespeichermittel, bei denen die mehreren Bildframes gespeichert sind; und ein Interpolationsframenummer-Berechnungsmittel zum Berechnen der Nummer von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe und der Anzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem ausgewählten Interpolationsframe bei der ersten Animation; und dadurch, dass das Erzeugungsmittel umfasst: ein erstes Erzeugungsmittel zum Erzeugen einer ersten Animation aus einem ersten Bildframe in ein zweites Bildframe, durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe des in dem Bildframespeichermittel gespeicherten Bildframes und dem zweiten Bildframe; ein zweites Erzeugungsmittel, das auf eine solche Art und Weise angeordnet ist, dass, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und ein bei dem Bildframespeichermittel gespeichertes drittes Bildframe angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird, das zweite Erzeugungsmittel eine Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe erzeugt, um eine zweite Animation zu erzeugen, die von dem angewiesenen Interpolationsframe verzweigt ist; ein drittes Erzeugungsmittel zum Erzeugen einer dritten Animation, die von der zweiten Animation mit der ersten Animation durch Auswählen eines Interpolationsframes der mehreren Interpolationsframes bei der ersten Animation, wenn eine Verzweigung von der ersten Animation angewiesen wird, und durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem zweiten Interpolationsframe verbunden wird.
  • Daher kann ein Umschalten von einem Animationsfluss, der aus einer Mehrzahl von Schlüsselframes erzeugt wird, in einen anderen Animationsfluss reibungslos mit einem beliebigen Timing in Übereinstimmung mit einer Anweisung von einem Benutzer durchgeführt werden. Somit kann eine Animation mit unendlichen Mustern ohne weiteres aus einem Schlüsselframes und einer kleinen Anzahl von Mustern erzeugt werden.
  • Gemäß einem weiteren bevorzugten Aspekt ist die Animationserzeugungsvorrichtung dadurch gekennzeichnet, dass ferner bereitgestellt werden: Bildframespeichermittel, bei denen ein Mehrzahl von Bildframes gespeichert sind; ein erstes Erzeugungsmittel zum Erzeugen einer ersten Animation aus einem ersten Bildframe in ein zweites Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe der in dem Bildframespeichermittel gespeicherten Bildframes und dem zweiten Bildframe; und Animationseinfügungsmittel, die auf eine solche Art und Weise angeordnet sind, dass, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und ein oder eine Mehrzahl der in dem Bildframespeichermittel gespeicherten dritten Bildframe angewiesen werden, und die Einfügung einer oder einer Mehrzahl von zweiten Animationen, die sich von der ersten Animation unterscheiden, in die erste Animation angewiesen wird, das Animationseinfügungsmittel die zweite Animation von dem angewiesenen Interpolationsframe, das durch Erzeugen der Mehrzahl der Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe gebildet wird, in die erste Animation und das dritte Bildframe zu dem dritten Bildframe in die erste Animation nach dem angewiesenen Interpolationsframe einfügt.
  • Wenn ein neuer Animationsfluss in einen ursprünglichen Animationsfluss eingefügt wird, kann eine neue Animation ohne weiteres erzeugt werden.
  • Gemäß einem weiteren Aspekt der Erfindung wird ein Aufzeichnungsmedium mit einem computernutzbaren Medium bereitgestellt, das computerlesbare Programmcodemittel aufweist, die darin aufgenommen sind, um zu veranlassen, dass eine Animation, die durch einen oder eine Mehrzahl von Strokes gebildeten Schlüsselframebilder und ein Interpolationsframebild, das durch durch Interpolationsstrokes jedes Schlüsselframebilds erzeugte Interpolationsstrokes gebildet wird, erzeugt wird, wobei das computerlesbare Programmcodemittel in dem Herstellungsartikel umfasst: ein computerlesbares Programmmittel, um einen Computer zu veranlassen, den einen oder eine Mehrzahl von Strokes mit Bezug auf die Schlüsselframes einzugeben; ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, den einen oder eine Mehrzahl von Strokes, die von einem Benutzer eingegeben wurden, in Einheitsvektoren zu quantisieren, die jeweils eine vorbestimmte Länge auf weisen; und ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, interpolierte Vektoren zu erzeugen, die die entsprechenden Einheitsvektoren basierend auf einem Änderungsbetrag zwischen den entsprechenden Einheitsvektoren zwischen den Schlüsselframes interpolieren.
  • Gemäß einem bevorzugten Aspekt ist das computerbenutzbare Medium dadurch gekennzeichnet, dass ferner ein darin gespeichertes Programm bereitgestellt wird, wobei das Programm angeordnet ist, um eine sequentielle Animation, die aus einer Mehrzahl von Bildframes und einer Mehrzahl von Interpolationsframes zusammengesetzt ist, durch Erzeugen der mehreren Interpolationsframes zum Interpolieren eines Abschnitts zwischen der Mehrzahl der gelieferten Bildframe zu erzeugen, wobei das Programm angeordnet ist, folgende Schritte durchzuführen: Erzeugen einer ersten Animation aus einem ersten Bildframe in ein zweites Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe und der Mehrzahl der gelieferten Bildframes und dem zweiten Bildframe; und Erzeugen einer zweiten Animation, die von dem angewiesenen Interpolationsframe verzweigt ist, durch Erzeugen einer Mehrzahl von Interpolationsframe zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und dem dritten Bildframe der mehreren Bildframes angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird.
  • Daher kann ein Umschalten von einem bestimmten Animationsfluss, der aus einer Mehrzahl von Schlüsselframes erzeugt wird, in einen anderen Animationsfluss reibungslos mit einem beliebigen Timing in Übereinstimmung mit einer Anweisung von einem Benutzer durchgeführt werden. Somit kann eine Animation mit einem unendlichen Muster ohne weiteres aus einem Schlüsselframe mit einer kleinen Anzahl von Mustern erzeugt werden.
  • Gemäß einem weiteren bevorzugten Aspekt ist das Computermedium dadurch gekennzeichnet, dass ferner ein darin gespeichertes Programm bereitgestellt wird, wobei das Programm angeordnet ist, um eine sequentielle Animation, die aus einer Mehrzahl von Bildframes und einer Mehrzahl von Interpolationsframes zusammengesetzt ist, durch Erzeugen der mehreren Interpolationsframes zum Interpolieren eines Abschnitts zwischen der Mehrzahl der gelieferten Bildframe zu erzeugen, wobei das Programm angeordnet ist, um die folgenden Schritte durchzuführen: Erzeugen einer ersten Animation aus einem ersten Bildframe in ein zweites Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe und der Mehrzahl der gelieferten Bildframes und dem zweiten Bildframe; Erzeugen einer zweiten Animation, die von dem angewiesenen Interpolationsframe verzweigt, durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und dem dritten Bildframe der mehreren Bildframes angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird; und Erzeugen einer dritten Animation, die von der zweiten Animation mit der ersten Animation durch Auswählen eines Interpolationsframes aus den mehreren Interpolationsframes bei der ersten Animation verbunden wird, wenn eine Verzweigung von der ersten Animation angewiesen wird, und durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem ausgewählten Interpolationsframe.
  • Somit kann ein Umschalten von einem bestimmten Animationsfluss, der aus einer Mehrzahl von Schlüsselframes erzeugt wird, in einen anderen Animationsfluss reibungslos mit beliebigem Timing in Übereinstimmung mit einer Anweisung von einem Benutzer durchgeführt werden. Somit kann eine Animation mit einem unendlichen Muster ohne weiteres aus einem Schlüsselframe mit einer kleinen Anzahl von Mustern erzeugt werden.
  • Gemäß einem weiteren bevorzugten Aspekt liefert die Erfindung ein Animationserzeugungsverfahren zum Erzeugen einer Animation, die durch ein Schlüsselframebild gebildet wird, das aus einem oder mehreren Strokes zusammengesetzt ist, und eines Interpolationsframebilds, das aus Interpolationsstrokes zusammengesetzt ist, die durch Interpolieren eines Abschnitts zwischen den Strokes jedes Schlüsselframebilds erzeugt werden, wobei das Animationserzeugungsverfahren den Schritt eines Erzeugens von Interpolationsstrokes für Interpolationsabschnitte zwischen einem oder mehreren Strokes umfasst, die von einem Benutzer in das Schlüsselframe eingegeben werden.
  • Die Erfindung kann vollständiger aus der folgenden ausführlichen Beschreibung in Verbindung mit den begleitenden Zeichnungen verstanden werden, in denen zeigen:
  • 1A und 1B Diagramme, die die Erzeugung einer Animation mittels Warping zeigen, das durch eine herkömmliche Animationserzeugungsvorrichtung durchgeführt wird;
  • 2 ein Diagramm, das ein Beispiel einer durch Warping erzeugten Animation zeigt;
  • 3A und 3B Diagramme, die die Erzeugung einer Animation durch Morphing zeigen, das durch die herkömmliche Animationserzeugungsvorrichtung durchgeführt wird;
  • 4 ein Diagramm, das schematisch ein Beispiel einer Animationserzeugungsvorrichtung gemäß einer ersten Ausführungsform der Erfindung zeigt;
  • 5A und 5B Ablaufdiagramme, die den Gesamtprozess der in 1 gezeigten Animationserzeugungsvorrichtung zeigen;
  • 6 ein Diagramm, das ein Beispiel eines von einem Benutzer durch eine Benutzerschnittstelle eines Eingabemittels eingegebenen Skeletts zeigt;
  • 7A und 7B Diagramme, die die Quantisierung eines Einheitsvektors eines Einheitsvektors eines Skeletts (eines Strokes) zeigen;
  • 8 ein Diagramm, das ein Beispiel eines Speichers in einem Einheitsvektorspeichermittel zeigt;
  • 9 ein Diagramm, das ein Beispiel einer Anzeige zeigt, die durchgeführt wird, wenn ein Skelett zusätzlich zu einem durch die Benutzerschnittstelle des Eingabemittels eingegebenen Skeletts eingegeben wird;
  • 10A und 10B Diagramme, die die Quantisierung eines Skeletts an einem Schlüsselframes zeigen;
  • 11 ein Diagramm, das ein Beispiel der Speicherung in einem Einheitsvektorspeichermittel zum Speichern der Korrespondenz zwischen einem Skeletal-Skelett und einem Einheitsvektor eines Skeletts zeigt, das die geänderte Form angibt;
  • 12 ein Diagramm, das schematisch die Manipulation jedes der in 4 gezeigten Mittel zeigt, die durchgeführt wird, wenn ein Interpolationsframe aus zwei unterschiedlichen Schlüsselframes erzeugt wird;
  • 13A und 13B Diagramme, die das Prinzip eines Verfahrens zum Erzeugen eines Interpolationsvektors zeigen;
  • 14 ein Diagramm eines spezifischen Beispiels einer Animation, die durch Erzeugen eines Interpolationsvektors erzeugt wurde;
  • 15 ein Diagramm, das ein spezifisches Beispiel einer durch Erzeugen eines Interpolationsvektors erzeugten Animation zeigt;
  • 16 ein Diagramm, das ein spezifisches Beispiel einer durch Erzeugen eines Interpolationsvektors erzeugten Animation zeigt;
  • 17 ein Diagramm, das ein spezifisches Beispiel einer durch Erzeugen eines Interpolationsvektors erzeugten Animation zeigt;
  • 18 ein Diagramm, das ein Beispiel einer Anwendung einer durch Erzeugen eines Interpolationsvektors erzeugten Animation zeigt;
  • 19 ein Diagramm, das ein Beispiel einer Anwendung eines durch Erzeugen eines Interpolationsvektors erzeugten Animation zeigt;
  • 20 ein Diagramm, das ein Beispiel einer Anwendung einer durch Erzeugen einer Interpolationsvektors erzeugten Animation zeigt;
  • 21 ein Diagramm, das ein weiteres Beispiel einer durch Erzeugen eines Interpolationsvektors erzeugten Animation zeigt;
  • 22 ein Diagramm, das ein weiteres Beispiel einer durch Erzeugen eines Interpolationsvektors erzeugten Animation zeigt;
  • 23 ein Diagramm, das schematisch ein Beispiel einer Animationserzeugungsvorrichtung gemäß einer zweiten Ausführungsform der Erfindung zeigt;
  • 24A und 24B sind Ablaufdiagramme, die eine Manipulation der in 21 gezeigten Animationserzeugungsvorrichtung zeigen;
  • 25 ein Diagramm, das ein spezifisches Beispiel eines in ein ursprüngliches Bild eingegebenen Skeletal-Skeletts zeigt;
  • 26A, 26B und 26C Diagramme, die die Quantisierung eines Skeletts und eines einem Einheitsvektor entsprechenden Chunks zeigen;
  • 27 ein Diagramm, das die Extraktion eines Chunks aus einem ursprünglichen Bild und die zwischen dem extrahierten Chunk und einem Einheitsvektor hergestellte Korrespondenz zeigt;
  • 28 ein Diagramm, das einen Fall zeigt, bei dem Daten eines Einheitsvektors und Daten eines Chunks dazu gebracht werden, einander zu entsprechen;
  • 29 ein Diagramm, das ein Beispiel der Speicherung in dem Einheitsvektorspeichermittel zeigt;
  • 30 ein Diagramm, das ein spezifisches Beispiel eines Skeletts zeigt, das eine geänderte Form eines Skeletal-Skeletts zeigt;
  • 31 ein Diagramm, das einen Prozess zum Erzeugen eines Interpolationsframes zum Interpolieren eines Abschnitts zwischen zwei Schlüsselframes von den beiden Schlüsselframes zeigt, in die ein Skelett eingegeben wurde;
  • 32A bis 32C Richtungen, die die Bewegung eines einem Einheitsvektor entsprechenden Chunks zeigen;
  • 33 ein Diagramm, das Speicherdaten eines Einheitsvektors und Daten eines Chunks zeigt, die dazu gebracht wurden, einander zu entsprechen;
  • 34A bis 34D Diagramme, die ein Problem in einem Verbindungsabschnitt zwischen benachbarten Chunks zeigt, das entsteht, wenn ein einem ursprünglichen Vektor entsprechender Chunk in Übereinstimmung mit dem entsprechenden Interpolationsvektor gedreht und bewegt wird;
  • 35 ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer dritten Ausführungsform der Erfindung zeigt;
  • 36 ein Diagramm, das ein Beispiel der Speicherung von Daten bezüglich einer Verformungsberechnung eines Chunks auf eine solche Art und Weise zeigt, dass es dazu gebracht wird, einem entsprechenden Interpolationsvektor zu entsprechen;
  • 37 ein Diagramm, das ein Beispiel der Speicherung von Daten bezüglich einer Verformungsberechnung eines Chunks zeigt, bei dem eine Verformungsberechnung mittels eines Vorspannwerts durchgeführt wurde;
  • 38 ein Diagramm, das ein Beispiel eines Chunks zeigt, das einer Verformungsberechnung mittels eines Vorspannungswerts unterzogen wird;
  • 39 ist Diagramm, das ein weiteres Beispiel von Berechnungen zum Verformen eines Chunks zeigt, bei dem ein Chunk erzeugt wird, der durch Erweitern eines jedem Interpolationsvektor entsprechenden Chunks in einer Richtung eines Vektors gebildet wird, um zu überlappen;
  • 40 ein Diagramm, das ein weiteres Beispiel von Berechnungen zum Verformen eines Chunks zeigt, bei dem der Chunk in ein Trapezoid verformt wird, um eine Lücke zwischen benachbarten Chunks zu verhindern;
  • 41 ein Diagramm, das einen Prozess zum Verformen eines Chunks in ein Trapezoid zeigt, um eine Lücke zwischen benachbarten Chunks zu verhindern;
  • 42A bis 42D ein Diagramm, das einen Effekt zeigt, der erhalten wird, wenn der Chunk in ein Trapezoid verformt wird;
  • 43 ein Diagramm, das ein Beispiel der Speicherung von Daten bezüglich Berechnungen zum Verformen eines Chunks zeigt, bei denen Berechnungen zum Verformen des Chunks in ein Trapezoid durchgeführt werden;
  • 44 ein spezifisches Beispiel der Form eines Chunks, das einen Verbindungsabschnitt mit einem benachbarten Chunk aufweist, in einer kreisförmigen Bogenform;
  • 45e eine Richtung, die die Aufteilung eines Einheitsvektors zeigt, und die eines Chunks, die durchgeführt wird, wenn die Aufteilung des Einheitsvektors durchgeführt wird;
  • 46 ein Diagramm, das ein Beispiel einer Speicherung eines Einheitsvektors zeigt, die durchgeführt wird, wenn ein Einheitsvektor aufgeteilt wird;
  • 47 ein Diagramm, das die Aufteilung eines Einheitsvektors zeigt;
  • 48 ein Diagramm, das ein Beispiel einer Speicherung eines Einheitsvektors zeigt, die durchgeführt wird, wenn der Einheitsvektor aufgeteilt wird;
  • 49 ein Diagramm, das die Normierung eines Chunks zeigt;
  • 50A und 50B Diagramme, die einen Prozess zeigen, dem ein leerer Bereich, der an einer Position auf einem neuen Bildframe erzeugt wird, aufgrund der Bewegung eines Einheitsvektors und eines dem Einheitsvektor entsprechender Chunk unterzogen wird;
  • 51A und 51B Diagramme, die die Erzeugung eines Bilds (Vermischen eines Hintergrund-Bildbereichs) zum Interpolieren des in 49 gezeigten leeren Abschnitts zeigt,
  • 52 ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer vierten Ausführungsform der Erfindung zeigt;
  • 53 ein Ablaufdiagramm des in 5B gezeigten Schritts S17;
  • 54 ein Ablaufdiagramm das den in 5B gezeigten Schritts S18 zeigt;
  • 55 ein Diagramm, das ein Beispiel einer Anzeige zeigt, die durchgeführt wird, wenn ein Stroke eingegeben wird, der eine geänderte Form eines durch eine Benutzerschnittstelle des Eingabemittels eingegebenen Strokes angibt;
  • 56 ein Diagramm, das ein Beispiel einer Anzeige zeigt, die durchgeführt wird, wenn ein Stroke, der eine geänderte Form eines durch eine Benutzerschnittstelle des Eingabemittels eingegebenen Stroke angibt, eingegeben wird;
  • 57 ein Diagramm, das ein Beispiel der Manipulation zeigt, die durchgeführt wird, wenn ein Stroke, der eine geänderte Form des durch die Benutzerschnittstelle eingegebenen Strokes angibt, eingegeben wird, um dem Stroke zu entsprechen;
  • 58 ein Diagramm, das die Quantisierung eines Strokes in einem Fall zeigt, in dem die Anzahl entsprechender Stroke unterschiedlich ist;
  • 59 ein Diagramm, das eine unabhängige Interpolation zum Erzeugen eines Interpolationsvektors auf eine solche Art und Weise zeigt, dass ein Paar von entsprechenden Einheitsvektoren dazu gebracht werden, unabhängig zu sein;
  • 60A und 60B Diagramme, die ein Beispiel der Speicherung eines Einheitsvektors zwischen entsprechenden Strokes in einem Einheitsvektorspeichermittel zeigen;
  • 61A und 61B Diagramme, die ein weiteres Beispiel der Speicherung eines Einheitsvektors zwischen entsprechenden Strokes in dem Einheitsvektorspeichermittel zeigen;
  • 62 ein Diagramm, das ein Verfahren zum Erzeugen eines Interpolationsvektors auf eine solche Art und Weise zeigt, dass die Kombination entsprechender Einheitsvektoren geändert wird, um der Anzahl von in dem Stroke aufgenommener Einheitsvektoren zu entsprechen;
  • 63 ein Diagramm, das ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer fünften Ausführungsform der Erfindung zeigt;
  • 64 ein Diagramm, das die Aufteilung eines Einheitsvektors und die eines Einheitsbilds zeigt, die durchgeführt wird, wenn der Einheitsvektor aufgeteilt wird;
  • 65 ein Diagramm, das ein Beispiel einer Speicherung eines Einheitsvektors zeigt, die durchgeführt wird, wenn der Einheitsvektor aufgeteilt wird;
  • 66 ein Diagramm, das die Aufteilung des Einheitsvektors zeigt;
  • 67 ein Diagramm, das ein Beispiel der Speicherung eines Einheitsvektors zeigt, die durchgeführt wird, wenn der Einheitsvektor aufgeteilt wird;
  • 68 ein Diagramm, das die Normierung eines Einheitsbilds zeigt;
  • 69 ein Diagramm, das schematisch ein Beispiel der Struktur eine Animationserzeugungsvorrichtung gemäß einer sechsten Ausführungsform der Erfindung zeigt;
  • 70 ein Ablaufdiagramm der Manipulationen eines Einheitsbilderzeugungsmittels und eines Einheitsbildnormierungsmittels zeigt;
  • 71A bis 71D Diagramme, die ein Verfahren zum Normieren eines Einheitsbilds, das eine unregelmäßige Form aufweist, in eine quadratische oder rechteckige Form zeigen;
  • 72A bis 72D Diagramme, die einen Normierungsprozess entlang einer Abtastlinie eines Einheitsbilds zeigen, der durchgeführt wird, wenn das Einheitsbild normiert wird;
  • 73A bis 73D Diagramme, die ein Verfahren zum Normieren eines Einheitsbilds, das eine unregelmäßige Form aufweist, in ein rechtwinkliges Dreieck zeigen;
  • 74 ein Blockdiagramm, das ein Beispiel einer Animationserzeugungsvorrichtung gemäß einer Modifikation der sechsten Ausführungsform zeigt;
  • 75A bis 78 Diagramme, die vier Zeichenfälle zum Erläutern eines Verfahrens zeigen, das zum Durchführen einer Verformung und zum Zeichnen geeignet ist, wenn Scheitelpunkte nicht in Uhrzeigerrichtung positioniert sind;
  • 79 ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer siebten Ausführungsform der Erfindung zeigt;
  • 80 eine schematische Ansicht, die die Korrespondenz zeigt, die zwischen einem aus einem ursprünglichen Bild extrahierten Einheitsbild und Berechnungsdaten für einen Spezialeffekt hergestellt wurde;
  • 81 ein Diagramm, das ein Beispiel der Speicherung eines Einheitsvektors, eines Einheitsbilds und Daten zum Berechnen eines Spezialeffekts zeigt;
  • 82 ein Diagramm, das ein weiteres Beispiel der Speicherung eines Einheitsvektors, eines Einheitsbilds und Daten zum Berechnen eines Spezialeffekts zeigt;
  • 83 ein Diagramm, das ein Beispiel der Anzeige eines Menüfensters zeigt, mit dem die Art des Spezialeffektes ausgewählt wird;
  • 84 ein Diagramm, das ein Beispiel einer Animation zeigt, in die ein Spezialeffekt eingefügt wurde;
  • 85 ein Diagramm, das ein erfindungsgemäßes Beispiel der Struktur eines Computersystems zum Ausführen eines Programms zum Erzeugen der Animation zeigt;
  • 86 ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer neunten Ausführungsform der Erfindung zeigt;
  • 87A bis 87D Ablaufdiagramme des Prozesses, der durch die in 86 gezeigte Animationserzeugungsvorrichtung durchgeführt wird, in der 87 ein Ablaufdiagramm des Gesamtprozesses und 87B ein Ablaufdiagramm einer Manipulation zum Eingeben eines Schlüsselstrokes ist;
  • 87C ein Ablaufdiagramm der Manipulation zum Eingeben eines Begrenzungsstrokes;
  • 87D ein Ablaufdiagramm der Manipulation zum Reproduzieren einer Animation;
  • 88A bis 88C Diagramme, die einen Prozess zum Erzeugen eines Begrenzungsstrokes aus dem Begrenzungsstroke und einem Schlüsselstroke zeigen;
  • 89 ein Diagramm, das ein Verfahren zum Erzeugen eines Interpolationsvektors durch Mischen von Einheitsvektoren zeigt;
  • 90 ein Diagramm, das ein Verfahren zum Erzeugen eines Interpolationsstrokes aus dem erzeugten Interpolationsvektor zeigt;
  • 91 ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer zehnten Ausführungsform der Erfindung zeigt;
  • 92A und 92B Diagramme, die einen Prozess einer Näherung eines Schlüsselstrokes mit einer vorbestimmten Parameterkurve zeigen;
  • 93 ein Diagramm, das ein Beispiel der Speicherung von Steuerpunkten eines Schlüsselstrokes zeigt, die durch ein Schlüsselstroke-Verwaltungsmittel durchgeführt wird;
  • 94 ein Diagramm, das ein Beispiel der Speicherung einer Begrenzungsfunktion in einem Begrenzungsfunktionsverwaltungsmittel zeigt;
  • 95A bis 97C Diagramme, die ein Verfahren zum Erzeugen eines Interpolationsstroke durch Verformen und Mischen eines Schlüsselstrokes in Übereinstimmung mit der Interpolationsposition zeigt, bei der der Schlüsselstroke interpoliert wird;
  • 96A und 96B Diagramme, die ein Verfahren zum Verformen des Schlüsselstrokes zeigen;
  • 97 ein Diagramm, das ein Beispiel der Struktur einer Animationserzeugungsvorrichtung zum Erzeugen eines Interpolationsstroke in Übereinstimmung mit einem Begrenzungsstroke und einer Begrenzungsfunktion zeigt;
  • 98A bis 98C Diagramme, die spezifisch einen Prozess zum Erzeugen eines Interpolationsstroke in Übereinstimmung mit dem Begrenzungsstroke und der Begrenzungsfunktion zeigen;
  • 99 ein Diagramm, das ein Beispiel eines Prozesses zum Erzeugen eines Interpolationsstroke mittels einer Begrenzungsfunktion zeigt;
  • 100 ein Diagramm, das schematisch eine Animationserzeugungsvorrichtung gemäß einer elften Ausführungsform der Erfindung zeigt, bei der eine Modifikation der Animationserzeugungsvorrichtung gemäß der zehnten Ausführungsform gezeigt ist;
  • 101 ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer zwölften Ausführungsform der Erfindung zeigt;
  • 102 ein Ablaufdiagramm eines Prozesses zum Eingeben eines Schlüsselstrokes in die Animationserzeugungsvorrichtung gemäß der zwölften Ausführungsform;
  • 103 ein Diagramm, das ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer dreizehnten Ausführungsform der Erfindung zeigt, bei der eine Modifikation der Struktur der Animationserzeugungsvorrichtung gemäß der zwölften Ausführungsform gezeigt ist;
  • 104 ein Diagramm, das schematisch die Gesamtstruktur einer Animationserzeugungsvorrichtung gemäß einer vierzehnten Ausführungsform der Erfindung zeigt;
  • 105A und 105B Diagramme, die einen Prozess zum Erzeugen eines gewöhnlichen Animationsablaufes in einem Fall zeigen, in dem Verzweigung nicht angewiesen ist;
  • 106A und 106B Diagramme, die einen Prozess einer Verzweigung des Animationsflusses zeigen, wenn Verzweigung angewiesen ist;
  • 107 ein Diagramm, das ein Beispiel der Anzeige von Kandidaten von Animationsflüssen zeigt, wenn Verzweigung angewiesen ist;
  • 108 ein Ablaufdiagramm der Manipulation, die durch die in 104 gezeigte Animationserzeugungsvorrichtung durchgeführt wird;
  • 109 ein Diagramm, das ein Beispiel der Speicherung eines Schlüsselframes in einem Schlüsselframespeicherabschnitt zeigt;
  • 110 ein Diagramm, das schematisch ein Beispiel der Gesamtstruktur einer Animationserzeugungsvorrichtung gemäß einer fünfzehnten Ausführungsform der Erfindung zeigt;
  • 111A bis 111C Diagramme, die einen Prozess zum Erzeugen eines gewöhnlichen Animationsflusses zeigen, wenn Verzweigung nicht angewiesen ist;
  • 112A bis 112C Diagramme, die einen Prozess zur Verzweigung und Verbindung eines Animationsflusses zeigen, wenn eine Verzweigung angewiesen wird, bei dem ein Prozess gezeigt ist, der durchgeführt wird, wenn eine Verzweigung von einem ursprünglichen Animationsfluss zu einem neu eingestellten Zielframe durchgeführt wird;
  • 113 ein Diagramm, das ein Verfahren zum Bestimmen gelesener Daten eines Konfluenzframes zeigt;
  • 114 ein Diagramm, das ein Verfahren zum Bestimmen der Framenummer des Konfluenzframes zeigt;
  • 115A und 115B Diagramme, die einen Prozess zur Verzweigung und Verbindung eines Animationsflusses zeigen, wenn Verzweigung angewiesen ist, bei denen ein Prozess gezeigt wird, bei dem ein Animationsfluss verbunden wird, der ein neu eingestelltes Zielframe aufweist, das, wenn Verzweigung durchgeführt wird, dazu gebracht wird, ein Startframe zu sein, und wobei ein Konfluenzframe in dem ursprünglichen Animationsfluss dazu gebracht wird, ein Zielframe zu sein;
  • 116 ein Ablaufdiagramm der Manipulation, die von der in 110 gezeigten Animationserzeugungsvorrichtung durchgeführt wird;
  • 117 ein Diagramm, das schematisch ein Beispiel der Gesamtstruktur einer Animationserzeugungsvorrichtung gemäß einer sechzehnten Ausführungsform der Erfindung zeigt;
  • 118 ein Diagramm, das ein Beispiel der Speicherung eines Startframes, eines Zielframes und eines Morphing-Schritts zum Erzeugen eines Animationsflusses in einem Multi-Schlüsselframenspeicherabschnitt zeigt;
  • 119 ein Diagramm, das einen Prozess zum Erzeugen eines Animationsflusses zum Aufnehmen einer Eingabe einer Anweisung für die Hinzufügung und Einfügung eines Flusses, Hinzufügen und Einfügen eines neuen Animationsflusses in einen anfänglichen Animationsfluss, der reproduziert wird, und zum gleichzeitigen Reproduzieren der Animationsflüsse zeigt; und
  • 120 ein Ablaufdiagramm der Manipulation der in 117 gezeigten Animationserzeugungsvorrichtung.
  • Ausführungsformen der Erfindung werden nun mit Bezug auf die Zeichnungen beschrieben.
  • Erste Ausführungsform
  • Ein Prozess zum Erzeugen einer aus Linienzeichnungen zusammengesetzten Animation (ein aus einer Mehrzahl von Liniensegmenten zusammengesetztes Bild, die aus Strokes zusammengesetzt sind und manchmal Schlüsselframes genannt werden) wird nun beschrieben.
  • 4 ist ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer ersten Ausführungsform der Erfindung zeigt. Wie in 4 gezeigt ist, umfasst die Animationserzeugungsvorrichtung ein Eingabemittel 1 zum Eingeben von Linienzeichnungen oder dergleichen, wobei die Linienzeichnungen durch das Eingabemittel 1 eingegeben werden, ein Bilddarstellungsmittel 13 zum Anzeigen von Animation oder dergleichen, die auf der Grundlage der gelieferten Linienzeichnungen erzeugt wurden, ein Vektorquantisierungsmittel 4 zum Zerlegen von Strokes in der Linienzeichnung in eine Mehrzahl von Einheitsvektoren, die je eine vorbestimmte Länge aufweisen, ein Einheitsvektorspeichermittel 5 zum Speichern der erzeugten Einheitsvektoren, ein Interpolationsmittel 6 zum Erzeugen eines Interpolationsvektors zwischen den beiden Strokes und ein Animationssteuermittel 9 zum Erzeugen einer sequentiellen Animation durch Durchführen einer Steuerung, um die oben erwähnten Mittel zu synchronisieren.
  • Die Struktur ist ausgebildet, wie oben beschrieben. Wenn eine Mehrzahl von Linienzeichnungen, die eine Änderung in der Form der Stroke angeben, von einem Benutzer an die Animationserzeugungsvorrichtung durch das Eingabemittel 1 geliefert wurden, quantisiert das Vektorquantisierungsmittel 4 jeden der entsprechenden Stroke zwischen der Mehrzahl der gelieferten Zeilenzeichnungen in Einheitsvektoren, die jeweils die vorbestimmte Länge aufweisen. Das Interpolationsmittel 6 erzeugt Interpolationsframes zwischen den mehreren Linienzeichnungen auf der Grundlage der Änderung in dem Betrag zwischen entsprechenden Einheitsvektoren zwischen den mehreren Linienzeichnungen und der Anzahl von Interpolationsframes. Somit wird Animation erzeugt.
  • Begriffe, die hier nachstehend verwendet werden, werden hier beschrieben.
  • Ein Begriff "Schlüsselframe" bedeutet eine Linienzeichnung, die aus einem (gekrümmten Segment) oder einem Liniensegment einer Änderung der Bewegung zusammengesetzt ist, die beispielsweise von einem Benutzer mittels des Eingabemittels 1 eingegeben wurde.
  • Ein Begriff "Skelett" umfasst ein Konzept, das im Wesentlichen das gleiche wie das des die Linienzeichnung bildenden Strokes ist.
  • Der Begriff "Interpolationsframe" bedeutet ein zwischen Schlüsselframes interpoliertes Framebild, wobei die Anzahl der Framebilder vorher von dem Benutzer als die Anzahl von Interpolationen angewiesenen wurde.
  • Ein Begriff "Reproduktionsintervall" bedeutet ein Reproduktionszeitintervall zwischen den Interpolationsframes.
  • Die Manipulation der in 4 gezeigten Animationserzeugungsvorrichtung wird nun mit Bezug auf 5A und 5B beschrieben.
  • 5A und 5B sind Ablaufdiagramme, die die gesamte Verarbeitungsmanipulation der in 4 gezeigten Animationserzeugungsvorrichtung zeigen.
  • Anfangs wird die Schlüsselframenummer i (i = 0 bis n), die Anzahl f von Interpolationsframes und das Reproduktionsintervall t initialisiert (Schritt S1). Dann wird ein Zustand realisiert, bei dem auf eine Eingabe gewartet wird (Schritt S2). Zu dieser Zeit ist ein Benutzer imstande, eine Anweisung zur Eingabe eines Skeletts durchzuführen (das manchmal ein "Stroke" genannt wird) (Schritt S5), eine Anweisung, die Animation zu reproduzieren (Schritt S21), eine Anweisung der Anzahl f von Interpolationsframes (Schritt S23), eine Anweisung des Reproduktionsintervalls t (Schritt S24), beispielsweise die Anweisung einer Aufzeichnung eines Films, die imstande ist, als ein ursprüngliches Bild zu dienen (Schritt S25), eine Anweisung des Abschlusses (Schritt S26) und eine weitere Anweisung (Schritt S27).
  • Wenn der Benutzer angewiesen hat, ein Skelett einzugeben (Schritt S5), und ein Schlüsselframe, das eine 0-te Framenummer aufweist, angewiesen wird (Schritt S6), wird ein Skelett mit der Nummer j initialisiert (Schritt S7). Die Skelettnummer wird verwendet, um eine Mehrzahl von Skeletten zu identifizieren, die von dem Benutzer eingegeben werden.
  • Der Benutzer gibt sequentiell erforderliche Skelette durch eine Benutzerschnittstelle des Eingabemittels 1 an, das eine Struktur aufweist, wie zum Beispiel in 1 gezeigt ist. Zu diesem Zeitpunkt wird jedem Skelett die Skelettnummer gegeben (Schritt S8).
  • Wenn Skelette in ein Frame eingegeben wurden (Schritt S9), zerlegt (quantisiert) das Vektorquantisierungsmittel 4 jedes der gelieferten Skelette in einen Einheitsvektor (Schritt S10). Ein beispielhafter Fall, in dem ein von dem Benutzer gezeichnetes Skelett (das in diesem Fall eine gerade Linie ist), wie in 7A gezeigt ist, in den Einheitsvektor quantisiert wird, wird in 7B gezeigt. Der Einheitsvektor ist ein Vektor mit einer vorbestimmten Länge (zum Beispiel "1").
  • Der Einheitsvektor ist in dem Einheitsvektorspeichermittel 5 gespeichert ((Schritt S11).
  • 8 zeigt ein Beispiel gespeicherten Einheitsvektoren in dem Einheitsvektorspeichermittel 5. Wie in 8 gezeigt ist, speichert das Einheitsvektorspeichermittel 5 die Werte einer Mehrzahl von Einheitsvektoren, die durch Quantisieren der mehreren Skelette (zum Beispiel Skelette mit den Nummern 1 bis 6) erhalten wurden, die auf dem Schlüsselframe mit der Nummer "0" gezeichnet wurden. Es sei bemerkt, dass eine Tatsache, dass kein aufeinander folgender Vektor existiert, mit "NULL" in 8 angegeben wird.
  • Wenn Skelette in Frames eingegeben werden, die die Schlüsselframenummer von "0" aufweisen (Schritt S6), das heißt, wenn Skelette zum Ändern der Skelette auf dem Schlüsselframenummer "0" gezeichnet werden, wird die Skelettnummer k initialisiert, und die Schlüsselframenummer i wird auf eine solche Art und Weise aktualisiert, dass beispielsweise i = 1 ist (Schritt S13). Ein Schlüsselframe, das ein Schlüsselframe vorher ist (beispielsweise das Schlüsselframe mit der Schlüsselframenummer "0") wird auf einer vorbestimmten Anzeigeeinheit angezeigt. Zu dieser Zeit ist vorzuziehen, dass die Farbe des vorher auf dem Schlüsselframe gezeichneten Skeletts in Übereinstimmung mit der Skelettnummer geändert wird, oder dass veranlasst wird, dass das Skelett blinkt, wie in 8 gezeigt ist, um es dem Benutzer zu ermöglichen, ohne weiteres ein nächstes Skelett zu zeichnen.
  • 9 zeigt einen Fall, in dem der Kopf eines Hundes in einem Schlüsselframe mit der Schlüsselframenummer "0" gezeigt ist. Wenn der Benutzer ein k-tes Skelett eingibt, um beispielsweise das linke Ohr des Hundes zu verformen ((Schritt S15), wird der Wert von k aktualisiert (Schritt S16). Das Vektorquantisierungsmittel 4 teilt das gelieferte Skelett (ein k-1-tes Skelett) in Einheitsvektoren auf, die dann in dem Einheitsvektorspeichermittel 5 gespeichert werden (Schritt S17).
  • Wie in 10A gezeigt ist, wird eine Annahme durchgeführt, das ein Skelett 52 existiert, das von einem Benutzer auf eine solche Art und Weise gezeichnet wird, dass das Skelett in einem nächsten Schlüsselframe einem auf einem Schlüsselframe mit einer Schlüsselframenummer i = 0 gezeichneten Skelett 51 entspricht und, wie in 10B gezeigt ist, das Skelett 51 in Einheitsvektoren 51a, 51b und 51c quantisiert wird, während das Skelett 52 in Einheitsvektoren 52a, 52b und 52C quantisiert wird. Geänderte Daten werden in dem Schlüsselframe mit der Schlüsselframenummer "1" werden zu dem Skelett 51 (beispielsweise wird die Skelettnummer dazu gebracht, "1" zu sein) auf dem Frame mit der Schlüsselframenummer i = 0 hinzugefügt. Daher wird die Adresse (beispielsweise p1) in dem Einheitsvektorspeichermittel 5, zu dem die Bewegung, wie in 8 gezeigt ist, durchgeführt wird, in der Position "NULL" gespeichert, die die Schlüsselframenummer i = 0 aufweist, wie in 11 gezeigt ist. Daten in dem Schlüsselframe mit der Nummer i = 0 der Skelettnummer k = 1, das heißt, der Wert des Einheitsvektors des in 10A gezeigten Skeletts 51 wird gespeichert.
  • In Übereinstimmung mit der Anzahl f von Interpolationen, die bei dem in 5A gezeigten Schritt S23 mitgeteilt wurden, erzeugt das Interpolationsmittel 6 einen Interpolationsvektor zwischen Schlüsselframes mit den Schlüsselframenummern "0" und "1", wobei der erzeugte Interpolationsvektor dann gespeichert wird (Schritt S18).
  • 12 zeigt schematisch die Manipulation jedes in 4 gezeigten Mittels, die durchgeführt wird, wenn ein Interpolationsframe aus zwei unterschiedlichen Schlüsselframes erzeugt wird. Es sei bemerkt, dass ein Fall veranschaulicht wird, bei dem die Anzahl von Interpolationen f = 1 ist, das heißt, ein Interpolationsframe wird zwischen zwei Schlüsselframes erzeugt.
  • Wie in 12 gezeigt ist, erhält in Übereinstimmung mit Daten von Einheitsvektoren 61a bis 61d, die durch Quantisieren von Skeletten auf dem Schlüsselframe (dem ersten Schlüsselframe) mit der Schlüsselframenummer i = 0 erhalten wurden, die in dem Einheitsvektorspeichermittel 5 gespeichert sind, und Daten (wobei jedes von ihnen eine eindeutige Kennung (ID) gegeben und dann gespeichert wird) von Einheitsvektoren 62a bis 62d, die durch Quantisieren von Skeletten auf den Schlüsselframes (dem zweiten Schlüsselframes) mit der Schlüsselframenummer i = 1 erhalten wurden, die den Skeletten auf dem ersten Schlüsselframe entsprechen, das Interpolationsmittel 6 Interpolationsvektoren 63a bis 63d zwischen den beiden Schlüsselframes. Das Bild, bei dem das aus den Interpolationsvektoren 63a bis 63d zusammengesetzte Skelett gezeichnet ist, ist der Interpolationsvektor zwischen dem ersten Schlüsselframe und dem zweiten Schlüsselframe.
  • Das Prinzip des Verfahrens zum Erzeugen des Interpolationsvektors wird nun mit Bezug auf 13A und 13B beschrieben. In diesem Fall ist die Anzahl von Interpolationen f = 2, das heißt zwei Interpolationsvektoren werden erzeugt.
  • Wie in 13A gezeigt ist, werden, wenn ein Interpolationsvektor zwischen Einheitsvektoren 71a bis 71c durch Quantisieren eines Skeletts auf dem ersten Schlüsselframe und Einheitsvektoren 72a bis 72c auf dem zweiten Schlüsselframe, die dem ersten Schlüsselframe entsprechen, erhalten wird, die entsprechenden Einheitsvektoren miteinander verbunden. Dann wird der Abstand durch (f + 1) geteilt, um der Anzahl f (f = 2 in diesem Fall) von Interpolationsframes zu entsprechen, so dass Interpolationspunkte 75a, 76b, 76a, 76b, 77a und 77b erhalten werden. Dann werden die Interpolationspunkte miteinander verbunden, so dass Interpolationsvektoren 73a bis 73c und 74a bis 74c erzeugt werden, wie in 13B gezeigt ist.
  • Mit Rückbezug auf 5B werden die Prozesse bei den Schritten S14 bis S28 wiederholt, bis der Benutzer die Eingabe von neuen Skeletten abschließt, die die Bewegung zu dem gewünschten Skelett angeben, das auf dem Schlüsselframe mit der Schlüsselframenummer i = 0 gezeichnet wird (Schritt S20).
  • Ein spezifisches Beispiel einer durch Erzeugen des oben erwähnten Interpolationsvektors realisierten Animation wird in den 14 bis 17 gezeigt.
  • 14 zeigt eine Linienzeichnung, die aus einer Mehrzahl von Skeletten zusammengesetzt ist, die auf einem Schlüsselframe mit der Schlüsselframenummer i = 0 gezeichnet sind.
  • Der Benutzer zeichnet das Skelett G1 in dem Schlüsselframe mit der Schlüsselframenummer "1", wie in 15 gezeigt ist. Zu dieser Zeit wird ein Skelett 60, das ein Schlüsselframe vorher ist, auf eine solche Art und Weise angezeigt, dass beispielsweise die Farbe des Schlüsselframes geändert wird, um identifiziert zu werden.
  • Dann wird das Skelett G2 in dem Schlüsselframe mit der Schlüsselframenummer "2" gezeichnet, wie in 16 gezeigt ist. Zu dieser Zeit wird das Skelett G1, das ein Schlüsselframe vorher ist, auf eine solche Art und Weise angezeigt, dass beispielsweise die Farbe des Schlüsselframes geändert wird, um identifiziert zu werden.
  • Dann wird das Skelett G3 in dem Schlüsselframe mit der Schlüsselframenummer "3" gezeichnet, wie in 17 gezeigt ist. Zu dieser Zeit wird das Skelett G2, das ein Schlüsselframe vorher ist, auf eine solche Art und Weise angezeigt, dass beispielsweise die Farbe des Schlüsselframes geändert wird, um identifiziert zu werden.
  • Dann werden die auf den Schlüsselframes gezeichneten Skelette G0 bis G3, wie in 14 bis 17 gezeigt ist, in Einheitsvektoren quantisiert, wie oben beschrieben. Dann werden Interpolationsvektoren in Übereinstimmung mit der Anzahl f von vorher von dem Benutzer angewiesenen Interpolationen erzeugt, so dass Interpolationsframes erzeugt werden. Als Ergebnis wird eine sequentielle Animation erzeugt.
  • Ein Beispiel der Anwendung einer durch Erzeugen von Interpolationsvektoren erzeugten Animation wird nun beschrieben.
  • Eine Benutzerschnittstelle, wie in 18 gezeigt ist, wird auf der Anzeigeeinheit angezeigt. Ein Fenster 101 zum Anzeigen einer Mehrzahl von Animationselementen, die mittels der oben erwähnten Interpolationsvektoren erzeugt werden, wird in dem linken Abschnitt der Benutzerschnittstelle angezeigt, um von einem Benutzer ausgewählt zu werden.
  • Eine Annahme wird durchgeführt, dass der Benutzer die Animation einer Katze an der obersten Position in dem Fenster 101 ausgewählt hat. Zu dieser Zeit kann ein Verfahren, wie beispielsweise in der japanischen Patentanmeldung Nr. H8-275949 offenbart ist, benutzt werden, mit dem die Geste der Hand des Benutzers durch einen Erkennungsabschnitt 102 erkannt wird, um zu bestimmen, dass die Animation der Katze ausgewählt wurde.
  • Als Ergebnis wird ein erstes Schlüsselframe einer Animation der Katze auf dem Fenster 103 angezeigt, wie in 19 gezeigt ist. Wenn der Benutzer eine Geste auf eine solche Art und Weise durchführt, dass der Benutzer seine Hand über den Kopf der Katze führt, erkennt der Erkennungsabschnitt 102 die Geste. Somit wird die Reproduktion der Animation entsprechend der Geste gestartet. Das heißt, eine Animation, dass die Katze an dem Benutzer buckelt, während sie miaut, wird reproduziert. Die Bewegung der Katze und die Schallgeschwindigkeit werden auf eine solche Art und Weise verarbeitet, dass das Reproduktionszeitintervall t geeignet ausgewählt wird, um der Bewegungsgeschwindigkeit der Hand zu entsprechen, so dass Schlüsselframes und Interpolationsframes angezeigt werden. Wenn der Benutzer eine Geste durchführt, dass der Benutzer den Kopf der Katze streichelt, erkennt der Erkennungsabschnitt 102 die vorhergehende Geste, so dass die Reproduktion der Animation entsprechend der Geste gestartet wird.
  • 21 und 22 zeigen ein weiteres Beispiel der durch Erzeugen von Interpolationsvektoren erzeugten Animation. Wie oben beschrieben, ist die erste Ausführungsform auf eine solche Art und Weise ausgestaltet, dass wenn eine Mehrzahl von Linienzeichnungen, die geänderten Formen der Stroke angeben, von einem Benutzer eingegeben wurden, jede der entsprechenden Stroke zwischen der Mehrzahl der eingegebenen Linienzeichnungen in Einheitsvektoren quantisiert wird, die jeweils eine vorbestimmte Länge aufweisen. Außerdem werden Interpolationsvektoren in Übereinstimmung mit dem Änderungsbetrag zwischen den Einheitsvektoren zwischen der Mehrzahl der Linienzeichnungen und der Anzahl von Interpolationsframes erhalten, die vorher angewiesen wurden. Somit werden Interpolationsframes zwischen der Mehrzahl der Linienzeichnungen erzeugt. Somit kann eine Animation, die sich sequentiell bewegt, wie von dem Benutzer gefordert, ohne weiteres mit einer einfachen Struktur erzeugt werden.
  • Zweite Ausführungsform
  • Ein Prozess zum Erzeugen einer Animation in Übereinstimmung mit einem ursprünglichen Bild, das einen allgemeinen Bereich aufweist, wird nun beschrieben.
  • 23 ist ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer zweiten Ausführungsform der Erfindung zeigt. Wie in 23 gezeigt ist, umfasst die Animationserzeugungsvorrichtung ein Bildspeichermittel 2 zum Speichern von Bilddaten, die als ein ursprüngliches Bild dienen (in einem Fall, in dem das ursprüngliche Bild in Form einer Sprite-Struktur ist, wird eine Mehrzahl von Sprite-Bilddaten als ein Satz gespeichert); ein Bilddarstellungsmittel 3 zum Anzeigen auf einer vorbestimmten Anzeigeeinheit von in dem Bildspeichermittel 2 gespeicherten Bilddaten und Animation oder dergleichen, die in Übereinstimmung mit Bilddaten erzeugt werden; ein Eingabemittel 1 zum Eingeben eines Strokes in einen Abschnitt des durch das Bilddarstellungsmittel 3 dargestellten Bilds und von dem verlangt wird, das es Bewegung aufweist; ein Vektorquantisierungsmittel 4 zum Zerlegen des durch das Eingabemittel 1 eingegebenen Stroke in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; ein Einheitsvektorspeichermittel 5 zum Speichern der erzeugten Einheitsvektoren; ein Interpolationsmittel 6 zum Erzeugen eines Interpolationsvektors zwischen zwei Strokes in Übereinstimmung mit den Einheitsvektoren der beiden entsprechenden Stroke und zum Korrigieren (beispielsweise Zerlegen und/oder Überlagern des Einheitsvektors, um erneut den Einheitsvektor zu bilden, um die Anzahl von Einheitsvektoren in dem entsprechenden Stroke zwischen den mehreren Bildern gleich zu machen) der Einheitsvektoren, falls notwendig, zur Zeit des Erzeugens des Interpolationsvektors; ein Chunk-Erzeugungsmittel 7 zum fragmentartigen Schneiden eines Bildbereichs (eines Chunks) von in dem Bildspeichermittel 2 gespeicherten Bilddaten in Übereinstimmung mit der Länge und Richtung des erzeugten Einheitsvektors; ein Chunk-Speichermittel 8, bei dem der erzeugte Chunk gespeichert ist; und ein Animationssteuermittel 9 zum Erzeugen einer sequentiellen Animation durch Durchführen einer Steuerung, um das oben erwähnte Mittel zu synchronisieren.
  • Hier wird nachstehend ein skelettartiger Stroke, der in das ursprüngliche Bild durch einen Benutzer als ein Abschnitt eingegeben wird, von dem verlangt wird, dass er Bewegung aufweist, und seine geänderte Form manchmal ein "Skelett" genannt.
  • Die Animationserzeugungsvorrichtung gemäß der zweiten Ausführungsform weist die oben erwähnte Struktur auf. Wenn die Animationserzeugungsvorrichtung mit einem Skeletal-Skelett des ursprünglichen Bilds und einem Skelett, das seine geänderte Form angibt, von einem Benutzer durch das Eingabemittel 1 zugeführt wird, quantisiert das Vektorquantisierungsmittel 4 das skelettartige Skelett und das Skelett, das seine geänderte Form angibt, in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen. Dann berechnet das Interpolationsmittel 6 Interpolationsvektoren in Übereinstimmung mit dem Änderungsbetrag zwischen entsprechenden Einheitsvektoren der beiden Skelette und der Anzahl von Interpolationsframe, die angewiesen wurden. Das Chunk-Erzeugungsmittel 7 extrahiert ein Bildbereich (einen Chunk) entlang jedem Einheitsvektor des Skeletal-Skeletts, und die eine vorbestimmte Größe aufweist, aus dem ursprünglichen Bild. Das Animationssteuermittel 9 bewegt jeden Chunk in Übereinstimmung mit dem entsprechenden Einheitsvektor und dem Interpolationsvektor, um jeden Chunk zu dem ursprünglichen Bild hinzuzufügen. Als Ergebnis wird eine Mehrzahl von Bildframes erzeugt, so dass die Animation erzeugt wird.
  • Begriffe, die hier nachstehend verwendet werden, werden nun beschrieben.
  • Der Begriff "Schlüsselframe" bedeutet ein ursprüngliches Bild oder ein ursprüngliches Bild, an dem eine Änderung der Bewegung mittels eines Benutzers durch das Eingabemittel 1 eingegeben wurde.
  • Ein Begriff "Skelett" weist im Wesentlichen das gleiche Konzept wie das des Strokes auf, und bedeutet einen Skeletal-Abschnitt eines Bildabschnitts, der von dem Benutzer in einen Abschnitt des ursprünglichen Bilds eingegeben wird, von dem verlangt wird, eine Veränderung in der Bewegung und eine geändert Form des Skeletal-Skeletts aufzuweisen.
  • Der Begriff "Interpolationsframe" bedeutet ein Interpolationsframebild zwischen den Schlüsselframes, wobei die Anzahl der Interpolationsframes vorher von dem Benutzer als die Zahl von Interpolationen angewiesen wurde.
  • Ein Begriff "Reproduktionsintervall" ist das Intervall zwischen den Interpolationsframes hinsichtlich Zeit.
  • Die Manipulation der in 23 gezeigten Animationserzeugungsvorrichtung wird nun mit Bezug auf 24A und 24B beschrieben.
  • 24A und 24B sind Ablaufdiagramme der Gesamtmanipulation der in 23 gezeigten Animationserzeugungsvorrichtung. Den gleichen Elementen wie den in 5A und 5B gezeigten werden die gleichen Bezugsziffern gegeben.
  • Die Struktur gemäß dieser Ausführungsform unterscheidet sich in 5A und 5B gezeigten darin, dass die Verwendung erlaubt ist, bei Lesen eines Bilds anzuweisen, dass als ein ursprüngliches Bild in einem Zustand dient, indem auf eine Eingabe bei Schritt S2 gewartet wird (Schritt S3). In Übereinstimmung mit der Anweisung werden erforderliche Bilddaten, die vorher von einem Scanner oder einer externen Einheit eingegeben und in dem Bildspeichermittel 2 gespeichert wurden, gelesen, um auf einer vorbestimmten Anzeigeeinheit durch das Bilddarstellungsmittel 3 angezeigt zu werden (Schritt S4).
  • Wenn der Benutzer anweist, ein Skelett einzugeben (Schritt S5), gibt der Benutzer ein skelettartiges Skelett für den Abschnitt des Bilds ein, der eine Bewegung aufweisen muss, in dem das angezeigte Bild als das Schlüsselframe verwendet wird (Schritte S8 und S9).
  • Genauer gesagt, sind die Skeletal-Skelette 201 bis 206, wie in 25 gezeigt ist.
  • Das skelettartige Skelett wird in Einheitsvektoren quantisiert, um in dem Einheitsvektorspeichermittel 5 gespeichert zu werden. Das Chunk-Erzeugungsmittel 7 extrahiert von dem Schlüsselframe ein Bildbereich (einen Chunk) zusammen mit jedem Einheitsvektor ursprünglich dem Skeletal-Skelett und mit vorbestimmter Größe. Der Bildbereich (der Chunk) wird in dem Chunk-Speichermittel 8 gespeichert (Schritte S10 bis S12).
  • Ein skelettartiges Skelett 201, das in dem Bildbereich des rechten Arms eines Kindes, in dem in 25 gezeigten ursprünglichen Bild gezeichnet ist, wird als ein Beispiel genommen, um die Quantisierung des Skeletts und die Extraktion des Chunk spezifisch zu beschreiben.
  • 26 zeigt das Skelett 201. 26B zeigt den Fall, in dem das Skelett 201 in Einheitsvektoren 211a bis 211c quantisiert wurden, die jeweils eine Länge von "1" ähnlich der ersten Ausführungsform aufweisen.
  • 26 zeigt ein Beispiel eines Bildbereichs (einen Chunk) entlang jedem der Einheitsvektoren 211a bis 211c des Skeletal-Skeletts und mit einer vorbestimmten Größe.
  • Die Extraktion eines Chunks aus einem ursprünglichen Bild und die zwischen dem extrahierten Chunk und den Einheitsvektoren hergestellte Korrespondenz werden nun mit Bezug auf 27 beschrieben.
  • Wenn ein Benutzer ein skelettartiges Skelett in einen Abschnitt des ursprünglichen Bilds eingegeben hat, das von Bilddarstellungsmittel 3 angezeigt wird, und eine Bewegung aufweisen muss, wie in 27 gezeigt ist, quantisiert das Vektorquantisierungsmittel das Skelett, dass eine Einheitsvektorspalte erzeugt wird. Daten des Einheitsvektors sind, wie gespeichert, oder ein Zeiger für einen Speicherbereich für Daten jedes Einheitsvektors wieder gespeichert.
  • Das Chunk-Erzeugungsmittel 7 schneidet von dem ursprünglichen Bild einen Bildbereich benachbart jedes Einheitsvektors des Skeletal-Skeletts und führt dann eine Drehung (affine Transformation) und Normierung durch, um die Chunks zu erzeugen. Jedem der somit erzeugten Chunks wird eine eindeutige Kennung gegeben. Bilddaten des Chunks sind wie sie in dem Chunk-Speichermittel 8 gespeichert sind, oder ein Zeiger für den Speicherbereich für Bildbereich des Chunks wird in demselben auf eine solche Art und Weise gespeichert, dass die Korrespondenz mit der eindeutigen Kennung hergestellt wird. Außerdem wird die jedem Chunk gegebene eindeutige Kennung in dem Einheitsvektorspeichermittel 5 auf eine solche Art und Weise gespeichert, dass die Korrespondenz mit Daten des Einheitsvektors entsprechend dem Chunk hergestellt wird.
  • Es sei bemerkt, dass die Notwendigkeit, das Einheitsvektorspeichermittel 5 und das Chunk-Speichermittel 8 individuell bereitzustellen, beseitigt werden kann. Beispielsweise kann eine Struktur benutzt werden, bei der Daten des Einheitsvektors und Daten des Chunks auf eine solche Art und Weise gespeichert sind, dass sie dazu gebracht werden, der eindeutigen Kennung zu entsprechen.
  • Jeder Einheitsvektor wird, wie in 29 gezeigt ist, auf eine solche Art und Weise gespeichert, dass die Korrespondenz mit dem von dem Benutzer geschriebenen sequentiellen Skelettnummern und der Schlüsselframenummer des ursprünglichen Bilds hergestellt wird.
  • Nachdem die Skeletal-Skelette in das ursprüngliche Bild eingegeben wurden, leitet die Manipulation von Schritt S6 zu Schritt S13, so dass Skelette, die die geänderte Form des Skeletal-Skeletts angeben, eingegeben werden. Die Schlüsselframenummer des Bilds, in das das Skelett eingegeben wurde, wird ebenfalls aktualisiert. In diesem Fall ist die Schlüsselframenummer "1".
  • Wenn das Skelett, das die geänderte Form des Skeletal-Skeletts angibt, eingegeben wird, wird ein Prozess ähnlich dem gemäß der ersten Ausführungsform durchgeführt. Das heißt, wie in 10 gezeigt ist, dass ermöglicht wird, dass das angezeigte erste Skelett blinken kann oder die Farbe desselben geändert wird, um die Eingabe des Skeletts mit der geänderten Form entsprechend dem Skelett 201 zu veranlassen (der Abschnitt des rechten Arms des Kindes), erste Eingabe (das heißt, in der sequentiellen Reihenfolge der Skelettnummern) in dem Schlüsselframe mit der Schlüsselframenummer "0". Wenn der Anwender das Skelett 221 dementsprechend eingibt, dass die geändert Form des Skeletts 201 angibt, wird die Skelettnummer dem neu eingegebenen Skelett gegeben, und dann wird das Skelett in Einheitsvektoren quantisiert. (Schritte S14 bis S17).
  • Die Quantisierung des Skeletts und die Speicherung der Einheitsvektoren werden auf ähnliche Art und Weise zu der gemäß der ersten Ausführungsform durchgeführt und in 10A, 10B und 11 gezeigt.
  • Dann wird das Interpolationsframe zum Interpolieren des Abschnitts zwischen den beiden eingegebenen Schlüsselframes des Skeletts aus den beiden Schlüsselframes erzeugt (Schritte S18 und S19). Der vorhergehende Prozess wird nun mit Bezug auf 31 beschrieben. In diesem Fall ist die Anzahl von Interpolationen f = 1, das heißt, ein Interpolationsframe wird zwischen den beiden Schlüsselframes erzeugt.
  • Wie in 31 gezeigt ist, in Übereinstimmung mit Einheitsvektoren 231a bis 231d, die durch Quantisieren von Skeletten auf einem Schlüsselframe (einem ersten Schlüsselframe) erhalten wurden, die die Schlüsselframenummer "0" aufweisen, die in dem Einheitsvektorspeichermittel 5 gespeichert sind, und Daten der Einheitsvektoren 241a bis 241d, die durch Quantisieren von Skeletten auf einem Schlüsselframe (einem zweiten Schlüsselframe mit der Schlüsselframenummer "1") erhalten wurden, werden auf ähnliche Weise in dem Einheitsvektorspeichermittel gespeichert und entsprechend den Skeletten in dem ersten Schlüsselframe erhält das Interpolationsmittel 6 die Interpolationsvektoren 251a bis 251d zwischen den Einheitsvektoren. Der Prozess zum Erhalten der Interpolationsvektoren ist ähnlich dem mit Bezug auf 13A und 13B beschriebenen.
  • Das Chunk-Erzeugungsmittel 7 dreht (affine Transformation) die Chunks entsprechend den Einheitsvektoren des Skeletal-Skeletts des ursprünglichen Bilds, das in dem Chunk-Speichermittel 8 in Übereinstimmung mit den Interpolationsvektoren 251a bis 251d entsprechend den Einheitsvektoren der Skeletal-Skelette gespeichert wurden. Dann addiert das Chunk-Erzeugungsmittel 7 die bewegten Chunks zu dem ursprünglichen Bild, so dass ein Interpolationsframe zwischen dem ersten Schlüsselframe und dem zweiten Schlüsselframe erzeugt wird.
  • Mit Bezug auf 32A bis 32D wird die Bewegung der Chunks, die den Einheitsvektoren entsprechen, nun beschrieben. In 32A bis 32C gezeigte Elemente, die dieselben wie die in 13A und 13B gezeigt sind, werden die gleichen Bezugsziffern gegeben. Wie in 32A gezeigt ist, wird eine Annahme durchgeführt, dass ein Einheitsvektor (ein ursprünglicher Vektor) 71a des Skeletal-Skeletts in dem ursprünglichen Bild und ein entsprechender Interpolationsvektor 73b sich voneinander um einen Winkelgrad von α unterscheiden. Zu dieser Zeit wird ein dem ursprünglichen Vektor 71a entsprechender Chunk 271 gedreht (affin gedreht) und um den Winkelgrad von α bewegt, um zu dem ursprünglichen Bild hinzugefügt zu werden. somit wird ein erstes Interpolationsframe erzeugt.
  • Wie in 32B gezeigt ist, wird eine Annahme durchgeführt, dass sie wie ein Interpolationsvektor 73a und ein Interpolationsvektor 74a voneinander um einen Winkelgrad von β unterscheiden. Zu dieser Zeit wird ein dem ursprünglichen Vektor 71a entsprechender Chunk 271 gedreht (affin gedreht) und um den Winkelgrad von β bewegt, um zu dem ursprünglichen Bild hinzugefügt zu werden. Somit wird ein zweites Interpolationsframe erzeugt.
  • Dann werden ähnliche Prozesse durchgeführt, so dass der dem ursprünglichen Vektor entsprechende Chunk in Übereinstimmung mit dem geänderten Winkel von dem Interpolationsvektor gedreht und bewegt wird, um zu dem ursprünglichen Bild hinzugefügt zu werden. Somit werden die Interpolationsframes erzeugt.
  • 33 zeigt ein weiteres Beispiel der Speicherung von Einheitsvektoren und Chunks. 33 zeigt Daten von Einheitsvektoren und Daten von Chunks werden auf eine solche Art und Weise gespeichert, dass sie dazu gebracht werden, auf ähnliche Weise der Struktur zu entsprechen, wie in 28 gezeigt ist. Das heißt, die Einheitsvektoren (ursprüngliche Vektoren) des Skeletal-Skeletts in den ersten und zweiten Strokes, die durch Quantisierung erhalten wurden, ein Interpolationsvektor zum Interpolieren des Bereichs zwischen den Einheitsvektoren wird berechnet. Ein Bildbereich benachbart jedem Einheitsvektor des von dem ursprünglichen Bild extrahierten ersten Stroke wird in Übereinstimmung mit dem Einheitsvektor des entsprechenden zweiten Stroke von dem erwähnten Interpolationsvektor bewegt, um zu dem ursprünglichen Bild hinzugefügt zu werden. somit wird eine Mehrzahl von Bildframes erzeugt. Als Ergebnis kann eine Animation, die sich sequentiell bewegt, wie von einem Benutzer verlangt, ohne weiteres mit einer einfachen Manipulation erzeugt werden.
  • Dritte Ausführungsform
  • Bei der zweiten Ausführungsform trifft der Prozess, bei dem der dem ursprünglichen Vektor entsprechende Chunk in Übereinstimmung mit dem entsprechenden Interpolationsvektor gedreht und bewegt wird, manchmal auf einen in 34A bis 34D gezeigten Zustand. Wenn der Änderungsbetrag des Skeletts, der eine geänderte Form eines in dem ursprünglichen Bild gezeichneten Skeletal-Skeletts angibt, groß ist, entsteht ein Problem dadurch, nachdem sich jeder Chunk in dem ursprünglichen Bild bewegt hat, dass ein leerer Abschnitt in einem Verbindungsabschnitt zwischen benachbarten Chunks erzeugt wird, wie beispielsweise in 34D gezeigt ist.
  • Demgemäß umfasst eine Animationserzeugungsvorrichtung gemäß einer dritten Ausführungsform ferner ein Chunk-Korrekturmittel 10 zum Korrigieren der Verbindung zwischen benachbarten Chunks, nachdem der Chunk bewegt wurde.
  • 35 ist ein Diagramm, das eine schematische Struktur der Animationserzeugungsvorrichtung gemäß der dritten Ausführungsform zeigt. Den gleichen Elementen wie den in 23 gezeigten werden die gleichen Bezugsziffern gegeben. Der Unterschied besteht darin, dass das Chunk-Korrekturmittel 10 hinzugefügt ist.
  • Das Chunk-Korrekturmittel ist angeordnet, um die Verformung des ursprünglichen Chunks in Übereinstimmung mit einem Interpolationsvektor zu berechnen, wenn der Chunk (der ursprüngliche Chunk) des ursprünglichen Vektors in dem ursprünglichen Bild bewegt wird. Daten für den Gebrauch, um die Verformung des Chunks zu berechnen, werden gespeichert, um dem entsprechenden Interpolationsvektor zu entsprechen, wie beispielsweise in 36 gezeigt ist. Es sei bemerkt, dass die Adresse eines Bereichs, bei dem Daten bezüglich der Berechnung für die Verformung gespeichert werden, in der in 36 gezeigten Struktur gespeichert.
  • Die Berechnung für die Verformung des Chunks wird nun beschrieben.
  • Es sei angenommen, dass vier Scheitelpunkte m1 bis m4 eines ursprünglichen Chunks, wie in 38 gezeigt ist, in m'1 bis m'4 verformt werden. Jeder der vier Scheitelpunkte m1 bis m4 wird um den Drehwinkel (beispielsweise α) gedreht, der mit Bezug auf 32A bis 32 C beschrieben wird. Außerdem wird eine entsprechende Vorspannung (u/v) entsprechend dem Zustand des Verbindens zwischen den benachbarten Interpolationsvektoren hinzugefügt, so dass m'1 bis m'4 berechnet werden (siehe Gleichung (1)).
  • Figure 00580001
  • Wenn Daten (der Drehwinkel und der Vorspannwert) bezogen auf die Verformungsberechnung des Chunks zwischen einer Mehrzahl von Interpolationsframes verwendet werden, wie beispielsweise in 37 gezeigt ist, ist es vorzuziehen, dass Daten kontinuierlich mit einer "Fortsetzungsadresse" gespeichert werden. Die in 37 gezeigten Adressen koinzidieren mit den Adressen für die Verformungsberechnung. Daten bezüglich der Verformungsberechnung der Chunks werden ebenfalls dazu gebracht, Einheitsvektoren (einschließlich Interpolationsvektoren), Bilddaten der Chunks, Skelettnummern und Schlüsselframenummern zu entsprechen.
  • Ein weiteres Beispiel der Verformungsberechnung wird in 39 gezeigt. Bei diesem Beispiel wird die Erzeugung eines Abstands zwischen benachbarten Chunks auf dem gleichen Interpolationsframe, nach dem der Chunk bewegt wurde, durch Erweitern des jedem Interpolationsvektor entsprechenden Chunks in der Richtung des Vektors verhindert, dass überlappte Chunks erzeugt werden.
  • Ein weiteres Verfahren wird in 40 gezeigt, bei dem die Erzeugung eines Abstands zwischen benachbarten Chunks auf dem gleichen Interpolationsframe, nach dem der Chunk bewegt wurde, durch Verformen des dem Interpolationsvektor entsprechenden Chunks in ein Trapez verhindert wird.
  • Ein Verfahren zum Bilden des Chunks in das Trapez wird nun beschrieben.
  • Wie in 40 gezeigt ist, werden Interpolationsvektoren zwischen den Einheitsvektoren (ursprünglichen Vektoren) 311a bis 311c von Skeletal-Skeletten und Einheitsvektoren 314a bis 314c von Skeletten, die die geänderten Formen angeben, erhalten. Das heißt, dass ein Verfahren ähnlich dem gemäß der ersten Ausführungsform, das mit Bezug auf 13A und 13B beschrieben wurde, benutzt wird, so dass entsprechende Einheitsvektoren miteinander verbunden werden (durch Verbindungsvektoren 315, 316 und 317). Dann wird der Abstand durch (f + 1) mit Bezug auf die Anzahl f (f = 2 bei diesem Beispiel) von Interpolationsframes geteilt, so dass Interpolationspunkte erhalten werden. Die Interpolationspunkte werden miteinander verbunden, so dass Interpolationsvektoren 312a bis 312c und 313a bis 313c erzeugt werden.
  • Die Beschreibung wird auf eine solche Art und Weise durchgeführt, dass ein Einheitsvektor 311a des Skeletal-Skeletts und sein Chunk (ein ursprünglicher Chunk) 321 bezeichnet werden. Es sei angenommen, dass α der Verschiebungswinkel des Interpolationsvektors 312a ist, der dem Einheitsvektor 311a entspricht, und der Chunk 321a um einen dem Winkel α entsprechenden Grad gedreht (affin transformiert) wird. Dann werden Schnittpunkte A und B der oberen und unteren Seiten des gedrehten Chunks und des Verbindungsvektors 311 erhalten (der Chunk 322). In Übereinstimmung mit den Schnittpunkten A und B kann eine Annahme durchgeführt werden, dass die Form des Chunks 322 ein Trapez ist, das obere und untere parallele Seiten mit Längen "11" bzw. "12" aufweist. In Übereinstimmung mit den Längen wird der ursprüngliche Chunk 321 verformt.
  • Als Ergebnis wird jedes Chunk an den zweiten bis dritten Bildframe, das durch Drehen und Bewegen des ursprünglichen Chunks erhalten wird, wie in 42A gezeigt ist, in das Trapez verformt. Somit können benachbarte Chunks an dem gleichen Frame zufrieden stellend miteinander verbunden werden, wie in 42B bis 42D gezeigt ist.
  • Es ist vorzuziehen, dass Daten (beispielsweise Koordinaten von vier Punkten des als ein Ergebnis der Verformung realisierten Chunks) über die Verformungsberechnung des ursprünglichen Chunks kontinuierlich mit den "kontinuierlichen Adressen" in einem Fall gespeichert werden, in dem obige Daten zwischen einer Mehrzahl von Interpolationsframes verwendet werden. Es sei bemerkt, dass die in 43 gezeigten Adressen mit den Adressen für die in 36 gezeigte Verformungsberechnung koinzidieren. Daten bezüglich der Verformungsberechnung des Chunks werden ebenfalls dazu gebracht werden, den Einheitsvektoren (einschließlich Interpolationsvektoren), Bilddaten der Chunks, Skelettnummern und Schlüsselframenummern zu entsprechen.
  • Hinsichtlich der ursprünglichen Form des Chunks kann eine Erzeugung eines Abstands zwischen benachbarten Chunks verhindert werden, wenn der Verbindungsabschnitt zwischen den benachbarten Chunks in einen kreisförmigen Bogen gebildet wird, wie in 44 gezeigt ist.
  • Skelette und durch Quantisieren der Skelette erhaltene Einheitsvektoren entsprechen nicht einander abhängig von den Längen der Skelette an der ursprünglichen Position und der von dem Benutzer eingegebenen bewegten Position. Wenn das Skelett an der ursprünglichen Position etwas kürzer als das Skelett an der bewegten Position ist, ist die Anzahl der Einheitsvektoren des Skeletts an der ursprünglichen Position kleiner als die Anzahl von Einheitsvektoren des Skeletts an der bewegten Position. In diesem Fall entspricht ein Einheitsvektor des Skeletts an der bewegten Position einer Mehrzahl von Einheitsvektoren an dem Skelett an der bewegten Position. Daher muss Korrespondenz zwischen den Einheitsvektoren berücksichtigt werden, wenn der Chunk gedreht und bewegt wird.
  • In diesem Fall sucht, wie in 45 gezeigt ist, das Vektorquantisierungsmittel 4 den Innenabschnitt des Einheitsvektorspeichermittels 5 und teilt einen Einheitsvektor auf, um dem Frame mit einer größeren Anzahl von Einheitsvektoren für ein Skelett zu entsprechen, wie in 45 gezeigt ist. Die Anzahl von Einheitsvektoren wird in Skeletteinheiten zwischen dem ersten Frame (dem ursprünglichen Bild) und dem zweiten Frame verglichen. Wenn die Anzahl von Einheitsvektoren an dem zweiten Frame für ein bestimmtes Skelett vier und die Anzahl von Einheitsvektoren an dem ersten Frame zwei ist (Einheitsvektoren 501 und 502) (siehe 46), wird jeder Einheitsvektor des ersten Frames in zwei geteilt. Somit werden Einheitsvektoren 501a, 501b, 502a und 502b erzeugt, um in dem Einheitsvektorspeichermittel 5 gespeichert zu werden (siehe 46). Außerdem werden entsprechende Chunks aufgeteilt, so dass Chunks entsprechend den Einheitsvektoren 501a, 501b, 502a und 502b erzeugt werden. Somit werden Daten des Einheitsvektors in vier Einheiten in dem zweiten Frame, das vorher in dem Einheitsvektorspeichermittel gespeichert wurde, und vier Einheitsvektoren des ersten Frames, die durch die Aufteilungsmanipulation erhalten wurden, dazu gebracht, einander zu entsprechen (siehe 46). Die zwischen den Einheitsvektoren aufgeteilten Chunks werden gedreht, bewegt und überlagert, so dass Interpolationsframes erzeugt werden. 46 zeigt schematisch ein Beispiel der Speicherung in dem Einheitsvektorspeichermittel 5 in dem Fall, in dem die Einheitsvektoren aufgeteilt sind.
  • Wenn das Skelett an der ursprünglichen Position etwas länger als das Skelett an der bewegten Position ist, ist die Anzahl von Einheitsvektoren des Skeletts an der ursprünglichen Position größer als die Anzahl derjenigen des Skeletts an der bewegten Position. In diesem Fall entspricht ein Einheitsvektor des Skeletts an der bewegten Position einer Mehrzahl von Einheitsvektoren an dem Skelett an der ursprünglichen Position. Daher muss eine Korrespondenz zwischen den Einheitsvektoren berücksichtigt werden, wenn der Chunk gedreht und bewegt wird.
  • In diesem Fall sucht das Vektorquantisierungsmittel 4 den Innenabschnitt des Einheitsvektorspeichermittels 5 und teilt einen Einheitsvektor, um dem Frame mit einer größeren Anzahl von Einheitsvektoren für ein Skelett zu entsprechen, wie in 47 gezeigt ist. Die Anzahl von Einheitsvektoren wird in Skeletteinheiten zwischen dem ersten Frame (dem ursprünglichen Bild) und dem zweiten Frame verglichen. Wenn die Anzahl von Einheitsvektoren an dem ersten Frame für ein Skelett vier und die Anzahl von Einheitsvektoren an dem zweiten Frame zwei beträgt (zwei Vektoren 511 und 512) (siehe 48), wird jeder Einheitsvektor des zweiten Frames in zwei geteilt. Somit werden Einheitsvektoren 511a, 511b, 512a und 512b erzeugt, um in dem Einheitsvektorspeichermittel 5 gespeichert zu werden (siehe 48). Somit werden Daten eines Einheitsvektors in vier Einheiten in dem ersten Frame, die vorher in dem Einheitsvektorspeichermittel 5 gespeichert wurden, und vier Einheitsvektoren des zweiten Frames, die durch die Teilungsmanipulation erhalten werden, dazu gebracht, einander zu entsprechen (siehe 48). Die Chunks an dem ersten Frame werden gedreht, bewegt und überlagert zwischen den Einheitsvektoren, so dass Interpolationsframes erzeugt werden. 48 zeigt schematisch ein Beispiel der Speicherung in dem Einheitsvektorspeichermittel 5 in dem Fall, in dem die Einheitsvektoren aufgeteilt sind.
  • Ein Prozess, der durch das Chunk-Erzeugungsmittel 7 durchgeführt wird, wird nun beschrieben.
  • Wie in 49 gezeigt ist, schneidet das Chunk-Erzeugungsmittel 7 von dem in dem Bildspeichermittel 2 gespeicherten ursprünglichen Bild Chunks, die den Einheitsvektoren entsprechen. Unter der Annahme, dass die Länge des Einheitsvektors l und der Winkel des aus der horizontalen Richtung hergestellten Bilds θ ist, wird ein Bildbereich 603, die eine Länge l aufweist und einen quadratischen Chunk umfasst, der eine Länge von l entlang des Einheitsvektors 601 aufweist, geschnitten. Zu dieser Zeit werden Koordinaten (x, y) eines Punktes (ein oberer linker Punkt), der als ein Bezug für die Länge l und den Bildbereich 603 dient, durch die folgenden Gleichung (2) ausgedrückt.
  • Figure 00640001
  • Dann wird der durch die schneidende Manipulation erhaltene Bildbereich 603 um den Winkel θ gedreht, so dass ein größerer Bildbereich 604 erzeugt wird.
  • Nur ein dem Einheitsvektor 601 entsprechender Chunk 602 wird von dem Bild 604 abgeschnitten. Ein Bezugspunkt (der obere linke Scheitelpunkt) des Chunks 601, der von dem Bildbereich 604 abgeschnitten wird, wird durch die folgende Gleichung (3) ausgedrückt, wenn der obere linke Scheitelpunkt des Bildbereichs 604 zu einem Bezugspunkt (0, 0) gemacht wird.
  • Figure 00640002
  • Der aus dem Bildbereich 604 geschnittene Chunk 602 wird der bewegten Position überlagert.
  • Wie oben beschrieben, schneidet das Chunk-Erzeugungsmittel 7 einen größeren Bildbereich einschließlich des Chunks ab, wenn der Chunk von dem ursprünglichen Bild abgeschnitten wird. Wenn der Bildbereich gedreht wird, um überlagert zu werden, wird ein normierter Chunk mit einer Größe (einem Quadrat, wobei jede Seite desselben eine Länge von "1" aufweist) entsprechend des Einheitsvektors aus einem größeren Bereich geschnitten, und dann wird der geschnittene Chunk auf das ursprüngliche Bild überlagert.
  • Ein Prozess zum Erzeugen eines Hintergrundbilds zum Abdecken eines leeren Abschnitts in dem ursprünglichen Bereich für den Chunk, der erzeugt wird, auf ein neues Bildframe, das durch die Drehung und Bewegung des Chunks erzeugt wird, wird nun beschrieben.
  • Wie in 50A gezeigt ist, werden leere Bereiche 711 und 712 in der ursprünglichen Position für Chunks 701 und 702 auf einem neuen Bildframe erzeugt, das durch Bewegungen von Einheitsvektoren und entsprechenden Chunks 701 und 702 erzeugt wurde. Um die leeren Bereiche abzudecken, erzeugt das Chunk-Erzeugungsmittel 7 Interpolationsbilder aus Hintergrundbildbereichen 703 bis 705 benachbart den Chunks, die bewegt werden (siehe 50B).
  • Insbesondere werden die Hintergrundbildbereiche 704 und 705 vermischt, um den leeren Bereiche 711 abzudecken, wie beispielsweise in 51A und 51B gezeigt ist. Ein erhaltenes, vermischtes Bild kann in dem leeren Bereiche 711 platziert werden.
  • Wie oben beschrieben wird gemäß der dritten Ausführungsform ein Bildbereich (ein Chunk) benachbart jedem Einheitsvektor eines Skeletal-Skeletts in einem ursprünglichen Bild verformt (in beispielsweise ein Trapez), um den Formen des Skeletal-Skeletts und dem Interpolationsstroke zu entsprechen, um auf dem ursprünglichen Bild überlagert zu werden. Somit kann ein in dem Verbindungsabschnitt zwischen dem benachbarten Chunks erzeugter leerer Abschnitt modifiziert werden, wenn die Chunks bewegt werden.
  • Außerdem werden entsprechende Einheitsvektoren und Interpolationsvektoren zwischen den Einheitsvektoren des Skeletal-Skeletts in dem ursprünglichen Bild und Skelette, die die geänderte Form angeben, aufgeteilt, um der Form des Skeletts zu entsprechen. In Übereinstimmung mit den aufgeteilten Einheitsvektoren und Interpolationsvektoren werden der Chunk jedes Einheitsvektors des Skeletal-Skeletts oder der Chunks, die aufgeteilt sind, um den aufgeteilten Einheitsvektoren zu entsprechen, bewegt, um auf dem ursprünglichen Bild überlagert zu werden. Somit kann der Bildabschnitt, der dazu gebracht wurde, den Strokes durch den Unterschied in den Stroke-Längen zu entsprechen, ohne weiteres expandiert/kontrahiert werden.
  • Das Chunk-Erzeugungsmittel 7 schneidet einen Chunk von einem ursprünglichen Bild auf eine solche Art und Weise ab, dass ein größerer Bildbereich mit dem Chunk abgeschnitten wird. Wenn der geschnittene Bildbereich gedreht und überlagert wird, wird ein normierter Chunk mit einer Größe (ein Quadrat mit Seiten, die jeweils eine Länge von "1" aufweisen) entsprechend dem Einheitsvektor geschnitten und dann auf dem ursprünglichen Bild überlagert. Außerdem werden vermischte Bilder, die in Übereinstimmung mit dem Hintergrundbild benachbart dem Chunk ausgebildet werden, in dem leeren Bereich an der ursprünglichen Position für den Chunk angeordnet. Als Ergebnis kann nur ein angewiesener Abschnitt in dem ursprünglichen Bild ohne irgendeinen Einfluss auf ein Bild in einem anderen Abschnitt überlagert werden. Daher kann eine Animation, die sich sequentiell bewegt, wie von einem Benutzer gefordert, ohne weiteres durch einfache Manipulation erzeugt werden.
  • Vierte Ausführungsform
  • 52 ist ein Diagramm, das schematisch eine Animationserzeugungsvorrichtung gemäß einer vierten Ausführungsform der Erfindung zeigt. In 52 werden den gleichen Elementen wie den in 4 gezeigten die gleichen Bezugsziffern gegeben, und die gleichen Elemente werden von der Beschreibung weggelassen. Diese Ausführungsform weist eine Struktur auf, die auf eine solche Art und Weise gebildet ist, dass ein Strokekorrespondenz-Verwaltungsmittel 11 zu der Struktur gemäß der in 4 gezeigten Ausführungsform hinzugefügt wird. Das Strokekorrespondenz-Verwaltungsmittel 11 bestimmt die Korrespondenz zwischen Strokes zwischen zwei Schlüsselframes, die durch das Eingabemittel 1 eingegeben wurden, und die Korrespondenz zwischen Einheitsvektoren der entsprechenden Stroke.
  • Obwohl die ersten bis dritten Ausführungsformen die Struktur aufweisen, dass die Anzahl von Strokes die gleiche zwischen den Schlüsselframes ist, kann die Anzahl von Strokes zwischen den Schlüsselframes verändert werden.
  • Wie oben mit Bezug auf 5a und 5B beschrieben, wenn eine Stroke von Schlüsselframes mit Schlüsselframenummern nicht kleiner als i = 0 eingegeben wird (Schritt S6), das heißt, wenn ein Stroke zum Verformen jedes Strokes auf dem Schlüsselframe mit der Nummer i = 0 gezeichnet ist, wird die Strokeangabenummer k initialisiert (Schritt S13). Dann wird ein Schlüsselframe (in diesem Fall, ein Schlüsselframe mit einer Schlüsselframenummer von beispielsweise "0") mit einer Schlüsselframenummer (i – 1), die ein Schlüsselframe vorher ist, auf einer vorbestimmten Anzeigeeinheit angezeigt. Zu dieser Zeit, wenn ein Stroke auf einem i-ten Schlüsselframe, der dem Stroke mit der Strokeangabenummer k auf einem (i – 1)-ten Schlüsselframe entspricht, auf eine solche Art und Weise eingegeben wird, dass die Strokenummer, die jedem auf dem vorhergehenden Schlüsselframe gezeichneten Stroke entspricht, dazu gebracht wird, die Strokeangabenummer k zu sein, ist es vorzuziehen, dass die Anzeigefarbe des k-ten Stroke geändert oder dem k-ten Stroke ermöglicht wird, zu blinken (55 zeigt den k-ten Stroke mit einer dünnen durchgezogenen Linie). wie in 55 gezeigt ist. Somit ist der Benutzer imstande, ohne weiteres den entsprechenden Stroke dank der vorhergehenden Verbesserung zu zeichnen.
  • 55 zeigt einen Fall, in dem der Kopf eines Hundes in einem Schlüsselframe mit der Schlüsselframenummer "0" gezeichnet ist. In dem vorhergehenden Zustand gibt ein Benutzer einen Stroke auf dem Schlüsselframe mit der Schlüsselframenummer "1" entsprechend dem Stroke mit der Strokenummer k ein, um das linke Ohr mit der Strokeangabenummer k in dem Schlüsselframe mit der Schlüsselframenummer "0" zu verformen. Dem eingegebenen Stroke wird die Strokenummer j gegeben (Schritt S15). Nachdem der Stroke eingegeben wurde, wird der Prozess des Strokes, der eine nächste Strokeangabenummer auf dem (i – 1)-ten Schlüsselframe aufweist, auf eine solche Art und Weise durchgeführt, dass ein Benutzer eine "NEXT" angebende Menüschaltfläche B1 anklickt, die auf dem in 55 gezeigten Anzeigeframe angeordnet ist, in dem eine Maus oder dergleichen verwendet wird, um "NEXT" auszuwählen (Schritt S16). Hiermit wird die Strokeangabenummer k um Eins erhöht, so dass der Stroke mit einer nächsten Strokeangabenummer an dem (i – 1)-ten Schlüsselframe veranlasst wird, den Stroke des oberen Kopfabschnitts des Hundes zu verstärken und anzuzeigen, wie beispielsweise in 56 gezeigt ist (Schritt S17).
  • Wenn eine Mehrzahl von Strokes an dem i-ten Schlüsselframe, das dem k-ten Stroke an dem (i – 1)-ten Schlüsselframe entspricht, existiert, ist erforderlich, dass die Menüschaltfläche B1, die "NEXT" angibt, ausgewählt wird, nachdem alle der mehreren Strokes eingegeben wurden (Schritt S16).
  • Wenn ein nächster Stroke auf dem (i – 1)-ten Schlüsselframe bei Schritt S17 verstärkt und angezeigt wird, wie beispielsweise in 56 gezeigt ist, wird der Stroke des i-ten Schlüsselframes, der eingegeben wurde, um dem Stroke mit der vorhergehenden Strokenummer zu entsprechen (das heißt dem (k – 1)-ten Stroke), in Einheitsvektoren durch das Bilddarstellungsmittel 3 aufgeteilt, um in dem Einheitsvektorspeichermittel 5 gespeichert zu werden (Schritt S18).
  • Der folgende Prozess wird in Abschnitt (A) beschrieben, bei dem die Anzahl von Strokes in dem i-ten Schlüsselframe, die eingegeben wurden, um der Strokeangabenummer k des (i – 1)-ten Schlüsselframes zu entsprechen, dieselbe ist, das heißt, wenn die Anzahl der k-ten Strokes an dem Schlüsselframe mit der Schlüsselframenummer i = 0 und die Anzahl der Strokes an dem Schlüsselframe mit der Schlüsselframenummer von i = 1 Eins ist, wie in 58 gezeigt ist. Dann wird der Abschnitt (B) beschrieben, bei dem die Anzahl von Strokes des i-ten Schlüsselframes, das eingegeben wurde, um der Strokeangabenummer k des (i – 1)-ten Schlüsselframes zu entsprechen, unterschiedlich ist, das heißt, dass der k-te Stroke an dem Schlüsselframe mit der Schlüsselframenummer von i = 0 Eins ist, und die Anzahl von Strokes an dem Schlüsselframe, die dem vorhergehenden Stroke entsprechen und die Schlüsselframenummer von i = 1 aufweisen, zwei ist, wie in 57 gezeigt ist. Hier ist die Strokeangabenummer k eine Zahl, bevor sie bei Schritt S17 erhöht wird.
  • (A) In diesem Fall ist die Anzahl von Strokes in dem i-ten Schlüsselframe, die eingegeben wurden, um dem k-ten Stroke in dem (i – 1)-ten Schlüsselframe zu entsprechen, die gleiche.
  • Ein bei Schritt S18 in 5B gezeigter Prozess wird nun mit Bezug auf ein in 53 gezeigtes Ablaufdiagramm beschrieben.
  • Der Stroke in dem i-ten Schlüsselframe, das eingegeben wurde, um der Strokeangabenummer k des (i – 1)-ten Schlüsselframes zu entsprechen, wird in Einheitsvektoren aufgeteilt (Schritt S51). Wenn ein auf dem Schlüsselframe (einem zweiten Schlüsselframe) gezeichneter Stroke 52, der die Schlüsselframenummer "1" aufteilt, um dem auf dem Schlüsselframe (einem ersten Schlüsselframe) mit der Schlüsselframenummer "0" gezeichneten Stroke 51 zu entsprechen, existiert, wie beispielsweise in 10A gezeigt ist, wurde der Stroke 51 in Einheitsvektoren 51a, 51b und 51c quantisiert, wie in 10B gezeigt (in diesem Fall wurde die Quantisierung bei Schritt S39 durchgeführt). Der Stroke 52 wird in Einheitsvektoren 52a, 52b und 52c bei Schritt S49 quantisiert.
  • Wenn die Anzahl von Einheitsvektoren zwischen den beiden Strokes unterschiedlich ist, kann die Länge des Einheitsvektors geändert werden, so dass der Stroke einer der beiden Schlüsselframes erneut quantisiert wird, um der größeren Anzahl der Einheitsvektoren zu entsprechen. Somit wird die Anzahl von Einheitsvektoren dazu gebracht, zwischen den beiden Strokes gleich zu sein. Wenn die Anzahl von Einheitsvektoren in dem Stroke 52 größer als die in dem Stroke 51 ist, nachdem der Stroke 52 in Einheitsvektoren zerlegt wurde, die jeweils eine vorbestimmte Länge aufweisen, kann die Länge des Einheitsvektors verkürzt werden, um den Stroke 51 erneut zu quantisieren, um die Anzahl von Einheitsvektoren des Strokes 51 die gleiche wie die größere Anzahl zu machen.
  • Das Strokekorrespondenz-Verwaltungsmittel 11 fährt mit der Manipulation zu Schritt S57 fort, da die Anzahl von Strokes des i-ten Schlüsselframes, die eingegeben wurden, um der Strokeangabenummer k des (i – 1)-ten Schlüsselframes zu entsprechen, die gleiche ist (Schritt S53). Somit bringt das Strokekorrespondenz-Verwaltungsmittel die Einheitsvektoren der beiden Stroke zwischen den beiden Schlüsselframes dazu, einander zu entsprechen und speichert die Einheitsvektoren in dem Einheitsvektorspeichermittel 5.
  • In Übereinstimmung mit der Anzahl f von Interpolationen, die bei dem in 5A gezeigten Schritt S23 eingegeben wurden, erzeugt das Interpolationsmittel 6 einen Interpolationsvektor zwischen Schlüsselframes mit den Schlüsselframenummern von beispielsweise "0" und "1" aufweisen, wobei der Interpolationsvektor gespeichert wird (Schritt S19).
  • Wie in 12 gezeigt ist, umfasst das Einheitsvektorspeichermittel 5 Daten von Einheitsvektoren 61a bis 61d, die durch Quantisieren von Strokes an dem Schlüsselframe (dem ersten Schlüsselframe) mit der Schlüsselframenummer "0" erhalten wurden, und Daten von Einheitsvektoren 62a bis 62d, die durch Quantisieren von Strokes an dem Schlüsselframe (dem zweiten Schlüsselframe) erhalten wurden, die den Strokes an dem ersten Schlüsselframe entsprechen, und die die Schlüsselframenummer "1" auf eine solche Art und Weise aufweist, dass Datenelementen eindeutige Kennungen (ID) gegeben werden. Das Interpolationsmittel 6 erhält Interpolationsvektoren 63a bis 63d zwischen Einheitsvektoren des entsprechenden Stroke zwischen zwei Schlüsselframes. Ein Bildframe, bei dem der aus den Interpolationsvektoren 63a bis 63d zusammengesetzte Stroke gezeichnet wird, ist das Interpolationsframe zwischen dem ersten Schlüsselframe und dem zweiten Schlüsselframe.
  • Das Prinzip des Verfahrens zum Erzeugen des Interpolationsvektors wurde mit Bezug auf 10A und 10B beschrieben.
  • Mit Rückbezug auf 5B werden alle Stroke-Nummern j, die auf dem Schlüsselframe mit der Schlüsselframenummer i = 0 gezeichnet wurden, den Prozessen bei Schritten S43 bis S19 unterworfen (Schritt S21).
  • (B) In diesem Fall ist die Anzahl von Strokes in dem i- ten Schlüsselframe, die eingegeben wurden, um der Strokeangabenummer k des (i – 1)-ten Schlüsselframes zu entsprechen, unterschiedlich.
  • Der in 5B bei Schritt S18 gezeigte Prozess wird nun mit Bezug auf ein in 53 gezeigtes Ablaufdiagramm beschrieben.
  • Der Stroke in dem i-ten Schlüsselframe, der eingegeben wurde, um der Strokeangabenummer k des (i – 1)-ten Schlüsselframes zu entsprechen, wird in Einheitsvektoren aufgeteilt (Schritt S51). Wenn von einem Benutzer gezeichnete Strokes 82 und 83 auf einem Schlüsselframe (einem zweiten Schlüsselframe) mit der Schlüsselframenummer "1" existieren, um den auf dem Schlüsselframe (einem ersten Schlüsselframe) mit der Schlüsselframenummer "0" gezeichneten Stroke 81 zu entsprechen, und eine Strokeangabenummer k aufweist, wie beispielsweise in 58 gezeigt ist, wurde der Stroke 81 in Einheitsvektoren 81a, 81b und 81c quantisiert (in diesem Fall wurde der Stroke 81 bei Schritt S10 quantisiert). Andererseits wird der Stroke 82 in einen Einheitsvektor 82 bei Schritt S18 quantisiert. Der Stroke 83 wird in Einheitsvektoren 83a und 83b quantisiert. In 58 ist die Anzahl l der Einheitsvektoren des Strokes 81 in dem ersten Schlüsselframe "3", die Anzahl m1 und m2 der Einheitsvektoren des Strokes 82 des zweiten Schlüsselframes, der dem Stroke 81 und dem zweiten Stroke 83 entspricht, "1" bzw. "2".
  • Da die Anzahl von Strokes des i-ten Schlüsselframes, die eingegeben wurden, um dem Stroke der Strokeangabenummer k des (i – 1)-ten Schlüsselframes zu entsprechen, unterschiedlich ist (Schritt S53), fährt das Strokekorrespondenz-Verwaltungsmittel 11 mit der Manipulation zu Schritt S55 fort. Somit verteilt das Strokekorrespondenz-Verwaltungsmittel 11 Einheitsvektoren des k-ten Strokes, in dem (i – 1)-ten Schlüsselframe zu dem k-ten Schlüsselframe, um die Korrespondenz zwischen dem k-ten Stroke in dem (i – 1)-ten Schlüsselframe und dem Stroke in dem i-ten Schlüsselframe zu bestimmen.
  • Eine Annahme wird durchgeführt, dass die Anzahl von Einheitsvektoren des k-ten Strokes dem (i – 1)-ten Schlüsselframe gleich l(i – 1) und die Anzahl von Einheitsvektoren in jedem Stroke (durch die Strokenummer j identifiziert) in dem i-ten Schlüsselframe entsprechend dem k-ten Stroke in dem (i – 1)-ten Schlüsselframe gleich mij ist. Der j-te Stroke in dem i-ten Schlüsselframe wird mit proportional verteilten Einheitsvektoren des k-ten Strokes in dem (i – 1)-ten Schlüsselframe entsprechend der Anzahl von Einheitsvektoren in den j-ten Stroke beliefert. Das heißt, die Anzahl l(i – 1)j in dem k-ten Stroke in dem (i – 1)-ten Schlüsselframe, das an den j-ten Stroke in dem i-ten Schlüsselframe verteilt wird, durch die Gleichung (4) ausgedrückt: l(i – 1)j = l(i – 1)·mij/Σ jmij (4)
  • Bei einem in 58 gezeigten Beispiel beträgt die Anzahl l(1) von Einheitsvektoren des Strokes 81 in dem ersten Schlüsselframe gleich "3", die Anzahl m21 der Einheitsvektoren in dem Stroke 82 in dem zweiten Schlüsselframe gleich "1" und die Anzahl m22 der Einheitsvektoren in dem Stroke 83 in dem zweiten Schlüsselframe gleich "2". Daher ist die Anzahl l(1)1 der Einheitsvektoren des Strokes 81 in dem ersten Schlüsselframe, das dem Stroke 82 zugeteilt ist, "1". Außerdem ist die Anzahl l(1)2 der Einheitsvektoren des Strokes 81 in dem dem Stroke 83 zugeteilten ersten Schlüsselframe gleich "2".
  • Wenn die Anzahl l(1) der Einheitsvektoren des Strokes 81 in dem ersten Schlüsselframe von der Gesamtanzahl von Einheitsvektoren der ersten und zweiten Strokes 82 und 83 in dem zweiten Schlüsselframe unterschiedlich ist, das heißt m21 + m22, können die Strokes von jedem der beiden Schlüsselframes erneut quantisiert werden, um dem größeren Wert zu entsprechen, um l(1) und m21 + m22 zwischen den beiden Schlüsselframes gleich zu machen. Wenn die ersten und zweiten Strokes 82 und 83 in Einheitsvektoren zerlegt werden, die jeweils eine vorbestimmte Länge aufweisen, und die Gesamtzahl der Einheitsvektoren der ersten und zweiten Strokes 82 und 83 größer als die Anzahl von Einheitsvektoren des Strokes 81 ist, kann der Stroke 81 erneut quantisiert werden, um die Anzahl der Einheitsvektoren des Strokes 81 gleich wie die größere Zahl zu machen.
  • Dann schreitet die Manipulation zu Schritt S57 fort, so dass Einheitsvektoren der entsprechenden Strokes zwischen den beiden Schlüsselframes in dem Einheitsvektorspeichermittel 5 auf eine solche Art und Weise gespeichert werden, dass die Korrespondenz hergestellt wird.
  • In Übereinstimmung mit der Anzahl f von Interpolationen, die bei dem in 5A gezeigten Schritt S23 eingegeben wurden, erzeugt das Interpolationsmittel 6 einen Interpolationsvektor zwischen den Schlüsselframes mit Schlüsselframenummern von beispielsweise "0" und "1", um den Interpolationsvektor zu speichern (Schritt S19).
  • Das Prinzip zum Erzeugen des Interpolationsvektors wird nun mit Bezug auf 59 beschrieben. 59 zeigt einen Fall, in dem die Anzahl der Interpolationen f = 2 ist, das heißt, die Anzahl von Interpolationsframes ist zwei. Das Verfahren zum Erzeugen des in 59 gezeigten Interpolationsvektors ist eine unabhängige Interpolation, bei der Einheitsvektoren eines Paars von entsprechenden Einheitsvektoren unabhängig verwendet werden, um Interpolationsvektoren zu erzeugen.
  • Wenn Interpolationsvektoren zwischen Einheitsvektoren 91a bis 91c, die durch Quantisieren von Strokes an dem ersten Schlüsselframes und ein Einheitsvektors 92a des ersten Strokes an dem entsprechenden zweiten Schlüsselframes erhalten wurden, und Einheitsvektoren 91b und 91c des zweiten Strokes erhalten werden, wie in 59 gezeigt ist, werden Startpunkte und Endpunkte des entsprechenden Paars der Einheitsvektoren miteinander verbunden. Dann wird eine gleiche Aufteilung mit (f + 1) mit Bezug auf die Anzahl f (die f = 2 in diesem Fall ist) der Frames zum Interpolieren der Einheitsvektoren durchgeführt, so dass Interpolationspunkte erhalten werden. Interpolationspunkte 92a bis 93b und 93c und 93d werden für das paar der Einheitsvektoren 91a und 92a erhalten. Interpolationspunkte 93e und 93f und 93g und 93h werden für das Paar der Einheitsvektoren 91b und 92b erhalten. Interpolationspunkte 93e und 93f und 93i und 93j werden für das Paar der Einheitsvektoren 91c und 92c erhalten. Wie in 59 gezeigt ist, werden die Interpolationspunkte miteinander verbunden, so dass Interpolationsvektoren 94a bis 94c und 95a bis 95c erzeugt werden. Das heißt, dass ein Interpolationsvektor 94a aus dem Paar von Einheitsvektoren 91a und 92a durch Verbinden der Interpolationspunkte 93a und 93c miteinander erzeugt wird. Außerdem wird ein Interpolationsvektor 95a durch Verbinden der Interpolationspunkte 93b und 93d miteinander erzeugt. Ein Interpolationsvektor 99b wird aus dem Paar der Einheitsvektoren 91b und 92b erzeugt, in dem die Interpolationspunkte 93e und 93g miteinander verbunden werden. Außerdem wird ein Interpolationsvektor 95b durch Verbinden der Interpolationspunkte 93f und 93h miteinander erzeugt. Ein Interpolationsvektor 94c wird aus dem Paar von Einheitsvektoren 91c und 92c durch Verbinden der Interpolationspunkte 93g und 93e miteinander erzeugt. Außerdem wird ein Interpolationsvektor 95c durch Verbinden der Interpolationspunkte 93h und 93j miteinander erzeugt.
  • 60A und 60B zeigen ein Beispiel von Einheitsvektoren zwischen den in dem Einheitsvektorspeichermittel gespeicherten entsprechenden Strokes. 60A und 60B zeigen einen Fall, in dem eine einzelne Tabelle für jedes Schlüsselframe erstellt wird, so dass die Korrespondenz zwischen entsprechenden Einheitsvektoren gespeichert und in jeder Tabelle in Einheiten von Vektoreinheiten verwaltet wird.
  • Wie in 60 gezeigt ist, ist die Tabelle des ersten Schlüsselframes angeordnet, um Daten des Einheitsvektors oder einen Zeiger für einen Speicherbereich zu speichern, bei dem der Einheitsvektor gespeichert ist. Außerdem werden eindeutige Kennungs-Identifizierer eines Einheitsvektors an einem zweiten Schlüsselframe entsprechend des Einheitsvektors oder ein Zeiger für einen Speicherbereich, bei der Daten des Einheitsvektors gespeichert sind, gespeichert, um der eindeutigen Kennung (Identifizierer) zu entsprechen, die dem Einheitsvektor von einem oder mehreren auf dem Schlüsselframe gezeichneten Strokes gegeben wird. Wie 60B zeigt, ist die Tabelle des zweiten Schlüsselframes ebenfalls angeordnet, um Daten des Einheitsvektors, oder einen Zeiger für einen Speicherbereich, bei der der Einheitsvektoren gespeichert ist, zu speichern. Außerdem wird ein eindeutiger Kennungs-Identifizierer eines Einheitsvektors an einem dritten Schlüsselframe, der dem Einheitsvektor oder einem Zeiger für einen Speicherbereich entspricht, in dem Daten des Einheitsvektors gespeichert sind, gespeichert, um der eindeutigen Kennung (Identifizierer) zu entsprechen, die dem Einheitsvektor von einen oder mehreren Strokes gegeben wurde, die auf dem zweiten Schlüsselframe gezeichnet sind.
  • 61A und 81B zeigen ein weiteres Beispiel der Speicherung des Einheitsvektors zwischen entsprechenden Strokes in dem Vektorquantisierungsmittel 4. 61A und 61B zeigen einen Fall, in dem eine einzelne Tabelle für jedes Schlüsselframe erstellt wird, um die Korrespondenz zwischen Einheitsvektoren an den entsprechenden Schlüsselframes in jeder Tabelle und in der Einheitsvektorgruppe zu speichern und zu verwalten. Als ein Beispiel des Gruppierens der Einheitsvektoren wird eine Gruppierung für jeden der entsprechenden Strokes jedes Schlüsselframes durchgeführt. Da ein Einheitsvektor 91a an dem ersten Schlüsselframe und der Einheitsvektor 92a des ersten Strokes an dem zweiten Schlüsselframe einander bei einem in 59 gezeigten beispielhaften Fall entsprechen, gehören sie zu der gleichen Gruppe. Da Einheitsvektoren 91b und 91c an dem ersten Schlüsselframe und Einheitsvektoren 92b und 92c des zweiten Strokes an dem zweiten Schlüsselframe einander entsprechen, gehören sie zu der gleichen Gruppe.
  • Wie zum Beispiel in 61A gezeigt ist, ist die Tabelle des ersten Schlüsselframes angeordnet, um Daten des. Einheitsvektors oder eines Zeigers für einen Speicherbereich zu speichern, in dem der Einheitsvektor gespeichert ist. Außerdem wird Information (ein Identifizierer für die Gruppe oder ein Zeiger für einen Speicherbereich, in dem Daten des zu der Gruppe gehörenden entsprechenden Einheitsvektors sind) zum Verknüpfen mit der Gruppe, zu der der Einheitsvektor gehört, gespeichert, um der eindeutigen Kennung (Identifizierer) zu entsprechen, die jedem Einheitsvektor von einem oder mehreren an dem Schlüsselframe gezeichneten Strokes gegeben werden. Wie in 61B gezeigt ist, ist die Tabelle des zweiten Schlüsselframes angeordnet, um Daten des Einheitsvektors oder eines Zeigers für einen Speicherbereich zu speichern, in dem der Einheitsvektor gespeichert ist, und Information (ein Identifizierer für die Gruppe oder einen Zeiger für eine Speicherbereich, in dem Daten des zu der Gruppe gehörenden entsprechenden Einheitsvektors) zum Verknüpfen mit der Gruppe, zu der der Einheitsvektor gehört, um der eindeutigen Kennung (Identifizierer) zu entsprechen, die jedem Einheitsvektor von einem oder mehreren an dem Schlüsselframe gezeichneten Strokes gegeben werden. Bei den in 61A und 61B gezeigten Beispielen gehören Einheitsvektoren des ersten Schlüsselframes, die die Einheitskennung "1-1" und "1-2" gegeben werden, und Einheitsvektoren des zweiten Schlüsselframes, die eindeutige Kennung "2-1", "2-2" und "2-3" gegeben werden, zur "Gruppe 1". Daher entsprechen Einheitsvektoren des zweiten Schlüsselframes, denen eine eindeutige Kennung "2-1" "2-2" und "2-3" gegeben werden, den Einheitsvektoren des ersten Schlüsselframes, denen eine eindeutige Kennung "1-1" und "1-2" gegeben werden.
  • Mit Rückbezug auf 5B werden alle Stroke-Nummern j, die auf dem Schlüsselframe mit der Schlüsselframenummer i = 0 gezeichnet werden, den Prozessen bei Schritten S14, S15, S16, S17, S18 und S19 unterworfen (Schritt S21).
  • Ein weiteres Verfahren zum Erzeugen eines Interpolationsvektors, der an das Interpolationsvektorerzeugungsmittel angepasst ist und angeordnet ist, um bei in 5B gezeigtem Schritt S19 durchgeführt zu werden, wird nun beschrieben. Die unabhängige Interpolation (das erste Interpolationsverfahren) zum Erzeugen des Interpolationsvektors für jeden eines Paars entsprechender Einheitsvektoren wurde mit Bezug auf 59 beschrieben. Bei diesem Beispiel werden Kombinationen entsprechender Einheitsvektoren in einer vorbestimmten Anzahl f von Interpolationsframes geändert, um der Anzahl von Einheitsvektoren zu entsprechen, die in den Strokes enthalten sind, um Interpolationsvektoren zu erzeugen. Interpolationsvektoren für die Interpolationsframes zur Verwendung bei dem letzteren Prozess werden durch die unabhängige Interpolation (ein zweites Interpolationsverfahren) erzeugt.
  • Ein in 54 gezeigtes Ablaufdiagramm zeigt einen ausführlichen Prozess, bei dem in 5B gezeigten Schritt S19. Entweder das erste Interpolationsverfahren oder das zweite Interpolationsverfahren kann in Übereinstimmung mit einer Anweisung von einem Benutzer oder ein vorhergehenden Bestimmung ausgewählt werden. Wenn die unabhängige Interpolation, die das erste Interpolationsverfahren ist, angewiesen oder eingestellt wurde (Schritt S61), rückt die Manipulation zu Schritt S69 vor, so dass die unabhängige Interpolation durchgeführt wird, wie mit Bezug auf 59 beschrieben. Wenn das Interpolationsverfahren angewiesen oder eingestellt wurde (Schritt S61), rückt die Manipulation zu Schritt S63 vor, so dass die Anzahl F der Interpolationsframes oder die Anzahl f von Interpolationen, mit denen die unabhängig Interpolation gestartet wird, bestimmt wird. Die Anzahl F kann beispielsweise durch F = f·2/3 erhalten werden. Dann rückt die Manipulation zu Schritt S65 vor, so dass die Kombination von Einheitsvektoren, die die entsprechende Beziehung der ersten bis (F – 1)-ten Interpolationsframes aufweisen, geändert wird, um der Anzahl der in den Strokes enthaltenen Einheitsvektoren zu entsprechen. Somit werden die Interpolationsvektoren erzeugt. Das Prinzip der Erzeugung wird kurz beschrieben. Die Nummer l(i – 1)j' des k-ten Strokes in dem (i – 1)-ten Schlüsselframe, die an den j-ten Stroke in dem i-ten Schlüsselframe verteilt werden, die eingegeben wurden, um dem k-ten Stroke in dem (i – 1)-ten Schlüsselframe zu entsprechen, kann durch Gleichung (5) ausgedrückt werden: l(i – 1)j = {l(i – 1)·mij/Σ jmij + 1 (5)
  • Das heißt, die Einheitsvektoren des k-ten Strokes in dem (i – 1)-ten Schlüsselframe werden durch die Nummer l(i – 1)j' anstatt der Nummer l(i – 1)j des j-ten Strokes des i-ten Schlüsselframes verteilt. Die Korrespondenz zwischen den im dem j-ten Stroke in dem i-ten Schlüsselframe enthaltenen Einheitsvektoren und den an den j-ten Stroke verteilten Einheitsvektoren wird verwendet, um die Interpolationsvektoren zu erzeugen.
  • Mit Bezug auf 62 wird nun das Verfahren zum Erzeugen der Interpolationsvektoren durch Ändern der Kombinationen der entsprechenden Einheitsvektoren, um der Anzahl der in dem Stroke enthaltenen Einheitsvektoren zu entsprechen, beschrieben. In diesem Fall werden zwei Interpolationsframes erzeugt. Wie in 62 gezeigt ist, werden Interpolationsvektoren zwischen Einheitsvektoren 91a bis 91c, die durch Quantisieren des Strokes an dem ersten Schlüsselframe erhalten wurden, ein Einheitsvektor 92a des ersten Strokes an dem entsprechenden zweiten Schlüsselframe und Einheitsvektoren 92b und 92c des zweiten Strokes erhalten. Die Anzahl von Einheitsvektoren des ersten Schlüsselframes, die dem ersten Stroke des zweiten Schlüsselframes zugeteilt sind, beträgt zu dieser Zeit "2" aufgrund von Gleichung (5), die Einheitsvektoren 91a und 91b sind. Die Anzahl von Einheitsvektoren des ersten Schlüsselframes, die dem zweiten Stroke des zweiten Schlüsselframes zugeteilt sind, beträgt "3" aufgrund von Gleichung (5), die Einheitsvektoren 91a, 91b und 91c sind. Daher werden in der entsprechenden Beziehung zwischen den Einheitsvektoren Startpunkte und Endpunkte der entsprechenden Einheitsvektoren miteinander ähnlich dem in 59 gezeigten Verfahren miteinander verbunden. Der verbundene Bereich wird gleichmäßig durch die Anzahl aufgeteilt, die der Anzahl von zu interpolierender Frames entspricht, das heißt in diesem Fall durch 3. In Übereinstimmung mit der Korrespondenz zwischen den Einheitsvektoren 91a, 91b und 92a werden Interpolationsvektoren 97a, 97b, 98a und 98b erzeugt. In Übereinstimmung mit der Korrespondenz zwischen dem Einheitsvektor 91b, 91c, 92b und 92c werden Interpolationsvektoren 99a bis 99c und 100a bis 100c erzeugt.
  • Dann rückt die Manipulation zu Schritt S67 vor, so dass Interpolationsvektoren für die F-ten bis f-ten Interpolationsframes durch die in 59 gezeigte unabhängige Interpolation erzeugt werden. Zu dieser Zeit werden Einheitsvektoren des k-ten Strokes in dem (i – 1)-ten Schlüsselframe durch die Anzahl l(i – 1)j zu dem j-ten Stroke des i-ten Schlüsselframes verteilt, so dass Interpolationsvektoren in Übereinstimmung mit der Korrespondenz zwischen den Einheitsvektoren erzeugt werden, die in dem j-ten Stroke in dem i-ten Schlüsselframe enthalten sind und den an den j-ten Stroke verteilten Einheitsvektoren.
  • Fünfte Ausführungsform
  • Ein Prozess zum Erzeugen von Animation in Übereinstimmung mit einem ursprünglichen Bild, das einen allgemeinen Bereich umfasst; wird nun beschrieben.
  • 63 ist ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer fünften Ausführungsform der Erfindung zeigt. Elementen, die in 53 gezeigt und dieselben wie die in 52 gezeigten sind, werden die gleichen Bezugsziffern gegeben. Wie in 63 gezeigt ist, umfasst die Animationserzeugungsvorrichtung ein Bildspeichermittel 8 zum Speichern von Bilddaten, die als ein ursprüngliches Bild dienen (in einem Fall, in dem das ursprüngliche Bild in der Form einer Sprite-Struktur ist, wird eine Mehrzahl von Sprite-Bilddaten als ein Satz gespeichert); ein Bilddarstellungsmittel 3 zum Anzeigen auf einer vorbestimmten Anzeigeeinheit von in dem Bildspeichermittel 8 gespeicherter Bilddaten und Animation oder dergleichen, die in Übereinstimmung mit Bilddaten erzeugt wurden; ein Eingabemittel 1 zum Eingeben eines Strokes in einen Abschnitt des durch das Bilddarstellungsmittel 3 angezeigten Bilds, das Bewegung aufweisen muss; ein Vektorquantisierungsmittel 4 zum Zerlegen des durch das Eingabemittel 1 eingegebenen Strokes in den Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; ein Einheitsvektorspeichermittel 15 zum Speichern der erzeugten Einheitsvektoren; ein Interpolationsvektorerzeugungsmittel 6 zum Erzeugen eines Interpolationsvektors zwischen den beiden Strokes in Übereinstimmung mit Einheitsvektoren der entsprechenden beiden Strokes; ein Strokekorrespondenz-Verwaltungsmittel 11 zum Bestimmen der Korrespondenz zwischen den durch das Eingabemittel 1 eingegebenen Strokes und der Korrespondenz zwischen den Einheitsvektoren der entsprechenden Strokes; ein Einheitsbilderzeugungsmittel 13 zum Abschneiden eines Bruchteils eines Bildbereichs, um ein Einheitsbild in Übereinstimmung mit der Länge und Richtung des erzeugten Einheitsvektors zu erzeugen; ein Einheitsbildspeichermittel 15 zum Speichern der erzeugten Einheitsbilder; und ein Animationssteuermittel 9 zum Erzeugen sequentieller Animation durch Durchführen einer Steuerung, um die oben erwähnten Mittel zu synchronisieren.
  • Die Animationserzeugungsvorrichtung gemäß der fünften Ausführungsform weist die oben erwähnte Struktur auf. Wenn die Animationserzeugungsvorrichtung mit einem Skeletal-Stroke des ursprünglichen Bilds und einem Stroke, der seine geänderte Form mit Bezug auf das in dem Bildspeichermittel 8 gespeicherten ursprünglichen Bilds angibt, beliefert wird, bestimmt das Strokekorrespondenz-Verwaltungsmittel 11 die Korrespondenz zwischen den Strokes. Das Vektorquantisierungsmittel 4 quantisiert die Skeletal-Strokes und Strokes, die die geänderte Form angeben, in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen. In Übereinstimmung mit der Anzahl von Einheitsvektoren jedes entsprechenden Strokes bestimmt das Strokekorrespondenz-Verwaltungsmittel 11 die Korrespondenz zwischen den Einheitsvektoren zwischen den entsprechenden Strokes. Das Interpolationsmittel 6 erzeugt Interpolationsvektoren in Übereinstimmung mit dem Änderungsbetrag zwischen den entsprechenden Einheitsvektoren des entsprechenden Strokes s und einer vorbestimmten Anzahl von Interpolationsframes. Das Einheitsbilderzeugungsmittel 13 extrahiert aus dem ursprünglichen Bild einen Bildbereich (ein Einheitsbild), der eine vorbestimmte Größe entlang jedes Einheitsvektors des Skeletal-Strokes aufweist. Das Animationssteuermittel bewegt jedes Einheitsbild in Übereinstimmung mit dem entsprechenden Einheitsvektor und dem Interpolationsvektor, um auf dem ursprünglichen Bild überlagert zu werden, so dass eine Mehrzahl von Bildframes erzeugt wird. Somit wird Animation erzeugt. Da die Manipulation, die durch die in 63 gezeigte Animationserzeugungsvorrichtung durchgeführt wird, der mit Bezug auf 24A, 24B und 25 beschriebenen ähnlich ist, wird die Manipulation von der Beschreibung weggelassen.
  • Ein Ablaufdiagramm der gesamten Manipulation der in 63 gezeigten Animationserzeugungsvorrichtung wird in 24A und 24B gezeigt.
  • Das die Extraktion des Einheitsbilds von dem ursprünglichen Bild und die Herstellung der Korrespondenz zwischen den extrahierten Einheitsbildern und den Einheitsvektoren ähnlich zu den mit Bezug auf 27 beschriebenen sind, werden sie von der Beschreibung weggelassen.
  • Da die Bewegung des dem Einheitsvektor entsprechenden Einheitsbilds ähnlich der ist, die mit Bezug auf 32A bis 32C beschrieben wurde, wird die Bewegung von der Beschreibung weggelassen.
  • Der Benutzer wird veranlasst, den Stroke der geänderten Form mit Bezug auf den in das ursprüngliche Bild eingegebenen Skeletal-Stroke einzugeben. Dann wird beispielsweise ein Prozess für die Schlüsselframenummer "1" abgeschlossen (Schritte S13 bis S21).
  • Dann rückt die Manipulation zu Schritt S6 vor, so dass die Schlüsselframenummer aktualisiert wird, um den Stroke der weiter geänderten Form einzugeben (Schritt S13). Dann werden die oben erwähnten Schritte S14 bis S21 wiederholt, so dass die aus den Schlüsselframes und ihren Interpolationsframes zusammengesetzte sequentielle Animation erzeugt wird. Falls notwendig, kann ein erforderliches ursprüngliches Bild aus dem Bildspeichermittel 8 bei Schritten S3 und S4 gelesen werden, um es als das Schlüsselframe ähnlich den oben erwähnten Prozessen zu verwenden (Schritte S5, S6 und S13 bis S21).
  • Wenn die Darstellung der erzeugten Animation durchgeführt wird, werden die Interpolationsvektoren aus dem Einheitsvektorspeichermittel 5 und die entsprechenden Einheitsbilder aus dem Einheitsbildspeichermittel 5 gelesen. Dann werden sie durch das Bilddarstellungsmittel 3 gezeichnet, um auf der vorbestimmten Anzeigeeinheit angezeigt zu werden.
  • Wie bei der vierten Ausführungsform beschrieben, entsprechen die entsprechenden Strokes und entsprechenden Einheitsvektoren nicht immer miteinander. Das heißt, die Anzahl entsprechender Einheitsvektoren zwischen den entsprechenden Strokes sind nicht die gleichen. Wenn der Stroke an der ursprünglichen Position des Einheitsbilds etwas kürzer als der Stroke an der bewegten Position ist, ist die Anzahl von Einheitsvektoren des Strokes an der ursprünglichen Position kleiner als die Anzahl von Strokes an der bewegten Position. In diesem Fall entspricht ein Einheitsvektor des Strokes an der ursprünglichen Position einer Mehrzahl von Einheitsvektoren an dem Stroke an der bewegten Position. Somit muss die Korrespondenz berücksichtigt werden, wenn ein Einheitsbild gedreht und bewegt wird.
  • In diesem Fall sucht das Vektorquantisierungsmittel 4 den inneren Abschnitt des Einheitsvektorspeichermittels 5 und teilt einen Einheitsvektor auf, um dem Frame mit einer größeren Anzahl von Einheitsvektoren für einen Stroke zu entsprechen, wie in 64 gezeigt ist. Die Anzahl von Einheitsvektoren wird in Stroke-Einheiten zwischen dem ersten Frame (dem ursprünglichen Bild) und dem zweiten Frame verglichen. Wenn die Anzahl von Einheitsvektoren an dem zweiten Frame für einen bestimmte Stroke vier und die Anzahl von Einheitsvektoren an dem ersten Frame zwei ist (Einheitsvektoren 501 und 502) (siehe 65), wird jeder Einheitsvektor des ersten Frames in zwei aufgeteilt. Somit werden Einheitsvektoren 501a, 501b, 502a und 502b erzeugt, um in dem Einheitsvektorspeichermittel 5 gespeichert zu werden (siehe 65). Außerdem werden entsprechende Einheitsbilder aufgeteilt, so dass Einheitsbilder entsprechend den Einheitsvektoren 501a, 501b, 502a und 502b erzeugt werden. Somit werden Daten von vier Einheitsvektoren in dem zweiten Frame, die vorher in dem Einheitsvektorspeichermittel 5 gespeichert wurden, und vier Einheitsvektoren des ersten Frames, die durch Aufteilungsmanipulationen erhalten wurden, dazu gebracht, einander zu entsprechen (siehe 65). Der zwischen den Einheitsvektoren aufgeteilte Chunk wird gedreht, bewegt und überlagert, so dass Interpolationsframes erzeugt werden. 65 zeigt schematisch ein Beispiel der Speicherung, in dem Einheitsvektorspeichermittel 5 in dem Fall, in dem die Einheitsvektoren aufgeteilt sind.
  • Wenn der Stroke an der ursprünglichen Position etwas länger als der Stroke an der bewegten Position ist, ist die Anzahl von Einheitsvektoren des Strokes an der ursprünglichen Position größer als die Anzahl derjenigen des Strokes an der bewegten Position. In diesem Fall entspricht ein Einheitsvektor des Strokes an der bewegten Position einer Mehrzahl von Einheitsvektoren an dem Stroke an der ursprünglichen Position. Daher muss die Korrespondenz zwischen den Einheitsvektoren berücksichtigt werden, wenn das Einheitsbild gedreht und bewegt wird.
  • In diesem Fall sucht das Vektorquantisierungsmittel 4 den Innenabschnitt des Einheitsvektorspeichermittels und teilt einen Einheitsvektor auf, um dem Frame mit einer größeren Anzahl von Einheitsvektoren für einen Stroke zu entsprechen, wie in 66 gezeigt ist. Die Anzahl von Einheitsvektoren wird in Strokeeinheiten zwischen dem ersten Frame (dem ursprünglichen Bild) und dem zweiten Frame verglichen. Wenn die Anzahl von Einheitsvektoren an dem ersten Frame für einen bestimmten Stroke vier und die Anzahl von Einheitsvektoren an dem zweiten Frame zwei ist (Einheitsvektoren 511 und 512) (siehe 67), wird jeder Einheitsvektor des zweiten Frames in zwei aufgeteilt. Somit werden Einheitsvektoren 511a, 511b, 512a und 512b erzeugt, um in dem Einheitsvektorspeichermittel 5 gespeichert zu werden (siehe 67). Somit werden Daten des Einheitsvektors in vier Einheiten in dem ersten Frame, das vorher in dem Einheitsvektorspeichermittel 5 gespeichert wurde, und vier Einheitsvektoren des zweiten Frames, die durch Aufteilungsmanipulationen erhalten wurden, dazu gebracht, einander zu entsprechen (siehe 67). Die vier Einheitsbilder an dem ersten Frame werden gedreht, bewegt und überlagert zwischen den Einheitsvektoren, so dass Interpolationsframes erzeugt werden. 67 zeigt schematisch ein Beispiel der Speicherung in dem Einheitsvektorspeichermittel 5 in dem Fall, in dem die Einheitsvektoren aufgeteilt sind.
  • Ein Prozess, der durch das Einheitsbilderzeugungsmittel 13 durchgeführt wird, wird nun beschrieben.
  • Wie in 68 gezeigt ist, schneidet das Einheitsbilderzeugungsmittel 13 von dem in dem Bildspeichermittel 8 gespeicherten ursprünglichen Bild ein dem Einheitsvektor entsprechendes Einheitsbild ab. Unter der Annahme, dass die Länge des Einheitsvektors l und der Winkel des von horizontalen Richtung gemachten Bilds θ ist, wird ein Bildbereich 603, der eine Länge l aufweist und ein quadratisches Einheitsbild umfasst, das eine Länge von l entlang des Vektors 601 aufweist, abgeschnitten. Zu dieser Zeit werden Koordinaten (X, Y) eines Punkts (eines oberen linken Punkts), der als ein Bezug für die Länge l dient, und der Bildbereich 603 durch die oben erwähnte Gleichung (2) ausgedrückt.
  • Der abgeschnittene Bildbereich 603 wird um einen Winkelgrad von θ gedreht, so dass ein größerer Bildbereich 604 erzeugt wird.
  • Dann wird lediglich ein dem Einheitsvektor 601 entsprechendes Einheitsbild 602 von dem Bildbereich 604 abgeschnitten. Der Bezugspunkt (der obere linke Scheitelpunkt (nx, ny)) des Einheitsbilds 602, das aus dem Bildbereich 604 geschnitten wird, wird durch die oben erwähnte Gleichung (3) ausgedrückt, wenn der obere linke Scheitelpunkt des Bildbereichs 604 gleich (0, 0) gemacht wird.
  • Das von dem Bildbereich 604 abgeschnittene Einheitsbild 602 wird auf das Bild an der bewegten Position überlagert.
  • Wie oben beschrieben ist, schneidet das Einheitsbilderzeugungsmittel 13 ein Einheitsbild von einem ursprünglichen Bild auf eine solche Art und Weise ab, dass ein größerer Bildbereich einschließlich des Einheitsbilds abgeschnitten wird. Außerdem wird ein Einheitsbild, das dem Einheitsvektor entspricht und eine normierte Größe aufweist (ein Quadrat mit Seiten "1") von dem oben erwähnten größeren Bildbereich geschnitten, um in dem Einheitsbildspeichermittel 15 gespeichert zu werden.
  • Sechste Ausführungsform
  • Bei der fünften Ausführungsform wurde ein Prozess, der ausgeführt wird, wenn die Form des geschnittenen Einheitsbilds eine quadratische Form aufweist, beschrieben. Bei der sechsten Ausführungsform wird ein Prozess beschrieben, der durchgeführt wird, wenn das geschnittene Einheitsbild nicht in ein Quadrat oder ein Rechteck ausgebildet wird und das angeordnet ist, um das Einheitsbild in ein Quadrat oder ein Rechteck auszubilden und zu normieren.
  • Bis jetzt wurde das Schneiden und Zeichnen eines Bilds benachbart eines Strokes auf einen Block in Einheiten von Rechtecken begrenzt. Das Zeichnen eines Bilds wurde auf die Drehung, Vergrößerung und Kontraktion und Verformung in ein Trapez eines geschnittenen rechteckigen Blockes begrenzt. Daher weist ein Animationsbild, das erzeugt werden kann, einige Grenzen auf. Das heißt, dass die von einem Abschnitt benachbart dem Stroke abgeschnittener Bildbereich nicht immer ein Rechteck ist. Bei dem oben erwähnten Fall muss ein zu schneidender Bildbereich in eine Vielzahl von Rechtecken mit unterschiedlicher Größe aufgeteilt werden. Es entsteht ein Problem in diesem Fall, weil eine große Datenmenge verarbeitet werden muss. Sogar wenn der Bildbereich in Rechtecke aufgeteilt und diese geschnitten werden, kann der Bereich nicht vollständig abgedeckt werden, wenn der Bildbereich auf dem Interpolationsframe überlagert wird. Somit entsteht ein Problem, weil ein Fehler nicht verhindert werden kann. Daher ist es vorzuziehen, dass der zu schneidende Bildbereich eine Form entlang des Strokes aufweist.
  • 69 ist ein Diagramm, das ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer sechsten Ausführungsform der Erfindung zeigt. Wie in 69 gezeigt ist, umfasst die Animationserzeugungsvorrichtung ein Bildspeichermittel 8 zum Speichern von Bilddaten, die als ein ursprüngliches Bild dienen (in einem Fall, in dem das ursprüngliche Bild in der Form einer Sprite-Struktur ist, wird eine Mehrzahl von Sprite-Bilddaten als ein Satz gespeichert); ein Bilddarstellungsmittel 3 zum Anzeigen auf einer vorbestimmten Anzeigeeinheit von in dem Bildspeichermittel 8 gespeicherter Bilddaten und Animation oder dergleichen, die in Übereinstimmung mit Bilddaten erzeugt werden; ein Eingabemittel 1 zum Eingeben eines Strokes in einen Abschnitt des Bilds, das durch das Bilddarstellungsmittel 3 angezeigt wird und Bewegung aufweisen muss; ein Vektorquantisierungsmittel 4 zum Zerlegen des durch das Eingabemittel 1 eingegebenen Strokes in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; ein Einheitsvektorspeichermittel 5 zum Speichern der erzeugten Einheitsvektoren; ein Interpolationsvektorerzeugungsmittel 6 zum Erzeugen eines Interpolationsvektors zwischen den beiden Strokes in Übereinstimmung mit Einheitsvektoren der entsprechenden beiden Strokes; ein Strokekorrespondenz-Verwaltungsmittel 11 zum Bestimmen der Korrespondenz zwischen den Strokes, die durch das Eingabemittel 1 eingegeben wurden, und der Korrespondenz zwischen den Einheitsvektoren der entsprechenden Strokes; ein Einheitsbilderzeugungsmittel 13 zum Abschneiden eines Teilbildbereichs, um ein Einheitsbild in Übereinstimmung mit der Länge und Richtung des erzeugten Einheitsvektors zu erzeugen; ein Einheitsbildspeichermittel 15 zum Speichern der erzeugten Einheitsbilder; ein Einheitsbildnormierungsmittel 12 zum Formen eines Einheitsbilds in eine regelmäßige Form, wie beispielsweise ein Quadrat, wenn das von dem Einheitsbilderzeugungsmittel 13 erzeugte Einheitsbild keine regelmäßige Form, wie beispielsweise ein Quadrat und ein Rechteck ist; und ein Animationssteuermittel 9 zum Erzeugen einer sequentiellen Animation durch Durchführen einer Steuerung, um die oben erwähnten Mittel zu synchronisieren. Es sei bemerkt, dass den gleichen Elemente wie den in 52 und 53 gezeigten die gleichen Bezugsziffern gegeben werden.
  • Ein Abschnitt, der sich von der fünften Ausführungsform unterscheidet, wird nun beschrieben. Wenn ein Einheitsbild durch das Einheitsbilderzeugungsmittel 13 erzeugt wird, ist es manchmal vorzuziehen, dass das Einheitsbild in der Form eines Rechtecks mit Ausnahme eines Quadrats und eines Rechtecks geschnitten wird, aufgrund der Beziehung mit dem benachbarten Einheitsbild in einem Fall, indem der Bildbereich beispielsweise ein gebogener Ellenbogen ist, wie in 68 gezeigt ist. Einheitsbilder mit unregelmäßiger Form mit Ausnahme für die vorbestimmte Form, wie beispielsweise das Quadrat und Rechteck, erfordern einen komplizierten Prozess, wenn das Einheitsbild in dem Einheitsbildspeichermittel 15 gespeichert ist, das einen Speicher, wie beispielsweise ein RAM, umfasst. Daher formt das Einheitsbildnormierungsmittel 12 ein Einheitsbild, das kein Quadrat oder Rechteck ist, in eine regelmäßige Form, wie beispielsweise ein Quadrat oder ein Rechteck, wenn das Einheitsbild in dem Einheitsbildspeichermittel 15 gespeichert ist (Normierung eines Einheitsbilds). Dann wird das normierte Einheitsbild in dem Einheitsbildspeichermittel 15 gespeichert. Wenn eine Darstellung der erzeugten Animation durchgeführt wird, liest das Bilddarstellungsmittel 3 Interpolationsvektoren aus dem Einheitsvektorspeichermittel 5 und liest den interpolierten Vektoren entsprechende Einheitsbilder aus dem Einheitsbildspeichermittel 15. Wenn die gelesenen Einheitsbilder normierte Einheitsbilder sind, stellt das Bilddarstellungsmittel 5 die Form in die ursprüngliche Form wieder her und führt dann ein Zeichnen durch und zeigt das gezeichnete Bild auf der vorbestimmten Anzeigeeinheiten.
  • Mit Bezug auf ein in 70 gezeigtes Ablaufdiagramm werden nun die Manipulationen des Einheitsbilderzeugungsmittels 13 und des Einheitsbildnormierungsmittels 12 beschrieben. Die "Normierung" ist eine Manipulation zum senkrechten und horizontalen Expandieren eines Einheitsbilds in ein Quadrat oder Rechteck. Ein normiertes Einheitsbild, das ausgezeichnete "Preserbility" (ausgezeichnete Genauigkeit bei der Normierung) von Bilddaten aufweist, kann im Verhältnis zu der Feinheit sich erstreckender Linien des ursprünglichen Einheitsbilds erhalten werden.
  • Anfangs wird eine Genauigkeit eingestellt, mit der ein viereckiges Einheitsbild mit Ausnahme eines Quadrats oder eines Rechtecks normiert wird, eingestellt. Die Genauigkeit kann beispielsweise durch einen Benutzer angewiesen werden (Schritt S51). Die Anzahl L von Verlängerungslinien, die der Genauigkeit bei der angewiesenen Normierung entspricht, wird eingestellt (Schritt S52).
  • Dann schneiden, wie in 71A gezeigt ist, die Einheitsbilderzeugungsmittel 13 von einem in dem Bildspeichermittel gespeicherten ursprünglichen Bild einen Bereich 702 ab, der ein Einheitsbild umgibt (ein durch Punkte P1, P2, P3 und P4 umgebenes Viereck) 701, das den Einheitsvektoren entspricht (Schritt S53). Wie in 71B gezeigt ist, wird ein das Einheitsbild umschreibender rechteckiger Bereich 703 geschnitten (Schritt S54). Wie in 71C gezeigt ist, werden die rechten und linken Seiten des Einheitsbilds 701 gleichmäßig im L Abschnitte aufgeteilt, und entsprechende aufgeteilte Punkte an den rechten und linken Seiten werden miteinander verbunden, so dass Abtastlinien 704a bis 704e erzeugt werden. Außerdem werden die oberen und unteren Seiten des Einheitsbilds 701 gleichmäßig mit einer vorbestimmten Anzahl von Aufteilungen aufgeteilt, beispielsweise "2", die einer Normierungsgenauigkeit entsprechen, die angewiesen wurde. Dann werden die aufgeteilten Punkte der oberen und unteren Seiten miteinander verbunden, so dass eine Abtastlinie 704 erzeugt wird (Schritt S54). Wie in 71C gezeigt ist, werden die erzeugten Abtastlinien 704a bis 704f gedreht und/oder bewegt, um sich dem umschreibenden Rechteck 703 anzupassen, so dass die Abtastlinien normiert werden (Schritt S56). Wie in 71D gezeigt ist, werden Bilddaten benachbart den Abtastlinien gedreht und/oder bewegt, um den normierten Abtastlinien zu entsprechen, so dass ein normiertes Einheitsbild erzeugt wird (Schritt S7). Dieser Prozess kann beispielsweise durch ein Verfahren genannt "Bilinear Warping" durchgeführt werden. Das Verfahren wurde in Modern Image Processing; Warping, Morphing, and Classical Techniques (Academic Press, Seiten 102 bis 108) offenbart.
  • Ein Prozess zum Normieren von Abtastlinien, der bei den in 70 gezeigten Schritt S57 durchgeführt wird, wird nun mit Bezug auf 72A bis 72C beschrieben.
  • Eine Annahme wird durchgeführt, dass die Koordinaten von Start- und Endpunkten einer Abtastlinie 711, bevor sie normiert wird, gleich (x1, y1) bzw. (x2, y2) sind, wie in 72A gezeigt ist. Eine weitere Annahme wird durchgeführt, dass die Koordinaten von Start- und Endpunkten der normierten Abtastlinie 712a (X1, Y1) bzw. (X2, Y2) sind, wie in 72B gezeigt ist. Zu dieser Zeit kann das Verhältnis r der Länge der normierten Abtastlinie 712 mit Bezug auf die Länge l der Abtastlinie 711 vor der Normierung und der Winkel der beiden Abtastlinien, das heißt der Drehwinkel θ, aus Gleichung (6) erhalten werden. Somit kann die Interpolation des Bildes entlang der Abtastlinie mittels r und θ durchgeführt werden. l = |(x2, y2) – (x1, y1)| r = |(x2, y2) – (x1, y1)|/l θ = θ2 – θ1 = cos–1((x2 – x1)/lr) – cos–1(x2 – x1)/l) (6)
  • Das Verfahren zum Normieren eines in 71A bis 71D gezeigten Einheitsbilds ist angeordnet, um ein viereckiges Einheitsbild zu normieren. Ein Verfahren zum Normieren eines dreieckigen Einheitsbilds, das ein Verfahren zum Normierung eines dreieckigen Einheitsbilds in ein regelmäßiges Dreieck ist, wie beispielsweise in ein rechtwinkliges Dreieck, rechtwinkelige und gleichschenkliges Dreieck, wird nun mit Bezug auf 73A bis 73D beschrieben.
  • Wie in 73A gezeigt ist, schneidet das Einheitsbilderzeugungsmittel 13 aus einem in dem Bildspeichermittel 8 gespeicherten ursprünglichen Bild einen Bereich 772 ab, der ein Einheitsbild umgibt (ein von Punkten P1, P2 und P3 umgebenes Dreieck) 721, entsprechend einem Einheitsvektor (Schritt S53). Dann wird ein das Einheitsbild 721 umschreibender rechteckiger Bereich 723 von dem oben erwähnten abgeschnittenen Bereich abgeschnitten, wie in 73B gezeigt ist (Schritt S54). Wie in 73C gezeigt ist, werden die rechten und linken Seiten des Einheitsbilds 721 gleichmäßig in L Abschnitte aufgeteilt. Dann werden die entsprechenden aufgeteilten Punkte an den rechten und linken Seiten miteinander verbunden, so dass Abtastlinien 724a bis 724d erzeugt werden (Schritt S55). Dann werden, wie in 73C gezeigt ist, die erzeugten Abtastlinien 724a bis 724d bewegt, um sich einem rechten Winkel des umschreibenden Rechtecks 723 anzupassen, so dass die Abtastlinien normiert werden (Schritt S56). Wie in 73D gezeigt ist, werden Bilddaten benachbart den Abtastlinien gedreht und/oder bewegt, um den normierten Abtastlinien zu entsprechen, so dass ein normiertes Einheitsbild erzeugt wird (Schritt S57). Der Prozess kann beispielsweise durch ein "Bilinear Warping" genanntes Verfahren durchgeführt werden. Das Verfahren wurde im Modern Image Processing: Warping, Morphing, and Classical Techniques (Academic Press, Seiten 102–108) offenbart. Der Prozess zum Normieren der Abtastlinien wird auf ähnliche Weise zu dem in 72A bis 72C gezeigten Verfahren durchgeführt.
  • Modifikation der sechsten Ausführungsform
  • 74 bis 78 zeigen eine Modifikation der sechsten Ausführungsform. Die sechste Ausführungsform ist auf eine solche Art und Weise angeordnet, dass ein Einheitsbild in das ursprüngliche Bild wiederhergestellt und dann überlagert wird. Wenn der Stroke verformt ist, sind die Scheitelpunkte nicht immer in Uhrzeigerrichtung angeordnet. Diese Modifikation ermöglicht, dass Verformung, Zeichnung und Überlagerung durchgeführt werden kann, wenn die Scheitelpunkte nicht in Uhrzeigerrichtung angeordnet sind.
  • 74 ist ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß der Modifikation der sechsten Ausführungsform zeigt. Wie in 74 gezeigt ist, umfasst die Animationserzeugungsvorrichtung gemäß dieser Modifikation ein Bildspeichermittel 8 zum Speichern von Bilddaten, die als ein ursprüngliches Bild dienen (in einem Fall, in dem das ursprüngliche Bild in der Form einer Sprite-Struktur ist, wird eine Mehrzahl von Sprite-Bilddaten als ein Satz gespeichert); ein Bilddarstellungsmittel 3 zum Anzeigen auf einer vorbestimmten Anzeigeeinheit von in dem Bildspeichermittel 8 gespeicherter Bilddaten und Animation oder dergleichen, die in Übereinstimmung mit Bilddaten erzeugt wurden; ein Eingabemittel 1 zum Eingeben eines Strokes in einen Abschnitt des durch das Bilddarstellungsmittel 3 angezeigten Bilds, das Bewegung aufweisen muss; ein Vektorquantisierungsmittel 4 zum Zerlegen des durch das Eingabemittel 1 eingegebenen Strokes in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; ein Einheitsvektorspeichermittel 5 zum Speichern der erzeugten Einheitsvektoren; ein Interpolationsvektorerzeugungsmittel 6 zum Erzeugen eines Interpolationsvektors zwischen den beiden Strokes in Übereinstimmung mit Einheitsvektoren der entsprechenden beiden Strokes; ein Strokekorrespondenz-Verwaltungsmittel 11 zum Bestimmen der Korrespondenz zwischen den durch das Eingabemittel 1 eingegebenen Strokes und der Korrespondenz zwischen den Einheitsvektoren der entsprechenden Strokes; ein Einheitsbilderzeugungsmittel 13 zum Schneiden eines Teilbildbereichs, um ein Einheitsbild in Übereinstimmung mit der Länge und Richtung des erzeugten Einheitsvektors zu erzeugen; ein Einheitsbildspeichermittel 15 zum Speichern der erzeugten Einheitsbilder; ein Einheitsbildnormierungsmittel 12 zum Formen eines Einheitsbilds in der Form eines Vierecks mit Ausnahme eines Quadrats oder eines Rechtecks in eine vorbestimmte regelmäßige Form; ein Scheitelpunktanpassungsmittel 16 zum Ermöglichen, dass ein normierter Chunk verformt, gezeichnet und überlagert werden kann, wenn die Scheitelpunkte nicht in Uhrzeigerrichtung angeordnet sind; und ein Animationssteuermittel 9 zum Erzeugen von sequentieller Animation durch Durchführen einer Steuerung, um die oben erwähnten Mittel zu synchronisieren. Es sei bemerkt, dass den gleichen Elemente wie den in 52, 63 und 69 gezeigten die gleichen Bezugsziffern gegeben werden. Die hier folgende Beschreibung wird über unterschiedliche Abschnitte durchgeführt.
  • Wenn ein normierter Chunk (ein regelmäßiger Chunk) verformt und gezeichnet wird, sind die Scheitelpunkte nicht immer in Uhrzeigerrichtung angeordnet. 75A, 75B und 78 zeigen ein Verfahren, das ermöglicht, dass ein Chunk verformt und gezeichnet werden kann, sogar wenn die Scheitelpunkte nicht in Uhrzeigerrichtung angeordnet sind.
  • 75A und 75B zeigen vier Zeichenfälle. Die Korrespondenz zwischen einem Fall (T1), bei dem Scheitelpunkte in Uhrzeigerrichtung angeordnet sind, und einem Fall (T1 umgekehrt), der ein umgekehrter Fall von T1 ist, wird gezeigt. Außerdem wird die Korrespondenz zwischen einem Fall (T1 Kreuz 1), in dem die oberen und unteren eine verdrehte Beziehung aufweisen, und einem Fall (T1 Kreuz 1 umgekehrt) gezeigt. Die Auswahl der Korrespondenz wird auf eine solche Art und Weise gezeigt, dass vier Abtastlinien als ein Beispiel genommen werden.
  • 76 zeigt die Korrespondenz zwischen einem Fall (T1 Kreuz 2), in dem die rechten und linken Seiten eine verdrehte Beziehung aufweisen, und einem Fall (T1 Kreuz 2 umgekehrt), der ein umgekehrter Fall des Falls (T1 Kreuz 2) ist. In diesem Fall wird die Verformung in Übereinstimmung mit Abtastlinien in der vertikalen Richtung anstatt der horizontalen Abtastlinien durchgeführt.
  • 77 zeigt die Korrespondenz von Abtastlinien (konvex 1), in dem die Gesamtform bezogen auf die Seite 1-3 verdreht ist, einen Fall (konvex 2), in dem die Gesamtform bezogen auf die Seite 2-4 verdreht ist, und einen Fall (konvex), in dem die Gesamtform bezogen auf die Seite 1-2 verdreht ist. 78 zeigt die Korrespondenz von Abtastlinien in einem Fall (konvex 4), in dem die Gesamtform bezogen auf die Seite 1-4 verdreht ist, einen Fall (konvex 5), in dem die Gesamtform bezogen auf Seite 3-2 verdreht ist, und einen Fall (konvex 6), in dem die Gesamtform bezogen auf die Seite 3-4 verdreht ist.
  • Da die Korrespondenzen der Abtastlinien, wie in 75A bis 77 gezeigt ist, durchgeführt werden, kann eine Anpassung an die Verformung, bei der die Chunks umgekehrt werden, durchgeführt werden.
  • Der Chunk muss in jeder topologischen Form eines spezifizierten Chunk-Scheitelpunkts mit einer Abtastregel gezeichnet werden, die nur eine Abtastlinienbildinformation zwischen einem regelmäßige Chunk-Bild und dem Ziel-Chunk-Bild beibehält. Beispiele der Abtastregel zum Erzeugen von Chunks und zum Zeichnen von Chunks werden in 81A bis 84 gezeigt. Es ist bedeutsam, das Abbilden auf jedes Chunk-Scheitelpunkt-Topologiemuster zu ermöglichen.
  • Siebente Ausführungsform
  • 79 ist ein Diagramm, das schematisch ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer siebten Ausführungsform der Erfindung zeigt. Wie in 79 gezeigt ist, umfasst die Animationserzeugungsvorrichtung gemäß dieser Ausführungsform ein Bildspeichermittel 8 zum Speichern von Bilddaten, die als ein ursprüngliches Bild dienen (in einem Fall, in dem das ursprüngliche Bild in der Form einer Sprite-Struktur ist, wird eine Mehrzahl von Sprite-Bilddaten als ein Satz gespeichert); ein Bilddarstellungsmittel 2 zum Anzeigen auf einer vorbestimmten Anzeigeeinheit von in dem Bildspeichermittel 8 gespeicherter Bilddaten und Animation oder dergleichen, die in Übereinstimmung mit Bilddaten erzeugt werden; ein Eingabemittel 1 zum Eingeben eines Strokes in einem Abschnitt des Bilds, das durch das Bilddarstellungsmittel 2 angezeigten wird und Bewegung aufweisen muss; ein Vektorquantisierungsmittel 4 zum Zerlegen des durch das Eingabemittel 1 eingegebenen Strokes in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; ein Einheitsvektorspeichermittel 5 zum Speichern der erzeugten Einheitsvektoren; ein Interpolationsvektorerzeugungsmittel 6 zum Erzeugen eines Interpolationsvektors zwischen den beiden Strokes in Übereinstimmung mit Einheitsvektoren der entsprechenden beiden Strokes; ein Strokekorrespondenz-Verwaltungsmittel 11 zum Bestimmen der Korrespondenz zwischen den Strokes, die durch das Eingabemittel 1 eingegeben wurden, und der Korrespondenz zwischen den Einheitsvektoren der entsprechenden Strokes; ein Einheitsbilderzeugungsmittel 13 zum Abschneiden eines Teilbildbereichs, um ein Einheitsbild in Übereinstimmung mit der Länge und Richtung des erzeugten Einheitsvektors zu erzeugen; ein Einheitsbildspeichermittel 15 zum Speichern der erzeugten Einheitsbilder; ein Einheitsbildnormierungsmittel 12 zum Formen eines Einheitsbilds in der Form eines Vierecks mit Ausnahme eines Quadrats oder eines Rechteck in eine vorbestimmte regelmäßige Form; ein Spezialeffekterzeugungsmittel 17 zum Durchführen eines Spezialeffekts, wie beispielsweise Farbinversion, Farbschwund und Farbumwandlung von rechts nach links des Bildschirms oder von links nach rechts oder in einer radialen Richtung; und ein Animationssteuermittel 9 zum Erzeugen sequentieller Animation durch Durchführen einer Steuerung, um die oben erwähnten Mittel zu synchronisieren, um sequentielle Animation zu erzeugen. Es sei bemerkt, dass den gleichen Elementen wie die in 52, 63 und 69 gezeigten die gleichen Bezugsziffern gegeben werden. Die hier folgende Beschreibung wird über unterschiedliche Abschnitte durchgeführt.
  • Das Spezialeffekterzeugungsmittel 17 führt einen vorbestimmten Berechnungsprozess zum Verwirklichen eines Spezialeffekts durch, das beispielsweise von einem Benutzer angewiesen wird. Somit wird die Korrespondenz einer Position, in die der Spezialeffekt in ein Einheitsbild in der erzeugten Animation eingefügt wird, berechnet. Daten zum Berechnen des Spezialeffekts werden eine solche Art und Weise gespeichert, dass Daten dazu gebracht werden, dem berechneten Einheitsbild zu entsprechen, so dass Daten in eine Position in die von einem Benutzer angewiesenen Animation eingeführt werden.
  • 80 zeigt schematische die Korrespondenz, die zwischen dem von einem ursprünglichen Bild extrahierten Einheitsbild und Daten zum Berechnen eines Spezialeffekts hergestellt wurde. Einem durch das Einheitsbilderzeugungsmittel 13 erzeugtes Einheitsbild wird eine eindeutige Kennung gegeben. Bilddaten des Einheitsbilds oder ein Zeiger für einen Bereich, in dem Bilddaten des Einheitsbilds gespeichert sind, werden in dem Einheitsbildspeichermittel 15 auf eine solche Art und Weise gespeichert, dass eine Korrespondenz mit der eindeutigen Kennung hergestellt wird. Die jedem Einheitsbild gegebene eindeutige Kennung wird in dem Einheitsvektorspeichermittel 4 auf eine solche Art und Weise gespeichert, dass die Korrespondenz mit Daten des dem Einheitsbild entsprechenden Einheitsvektors hergestellt wird. Zu dieser Zeit werden Daten zum Berechnen des Spezialeffekts oder der Zeiger für den Bereich, in dem Daten zum Berechnen des Spezialeffekts sind, die eindeutige Kennung des Einheitsbilds des Frames gegeben, das der Position in der erzeugten Animation entspricht, die von dem Benutzer angewiesen wurde. Der Zeiger mit der eindeutigen Kennung wird beispielsweise in dem Einheitsbildspeichermittel 15 gespeichert.
  • Es wird nicht gestattet, dass das Einheitsvektorspeichermittel 5 und das Einheitsbildspeichermittel 15 einzeln bereitgestellt werden, und sie werden in die Tabelle in dem gleichen Speicherbereich gebildet, um Daten des Einheitsvektors und Daten des Einheitsbilds auf eine solche Art und Weise zu speichern, dass sie dazu gebracht werden, einer eindeutigen Kennung zu entsprechen. In diesem Fall ist es erforderlich, dass ein Feld in der gleichen Tabelle bereitgestellt wird, um Daten zum Berechnen des Spezialeffekts zu schreiben.
  • Wenn die Darstellung der Animation, in die der Spezialeffekt eingefügt wurde, durchgeführt wird, liest das Bilddarstellungsmittel 2 den Interpolationsvektor aus dem Einheitsvektorspeichermittel 5 und liest ein das dem Interpolationsvektor entsprechendes Einheitsbild und Daten zum Berechnen des Spezialeffekts aus dem Einheitsbildspeichermittel 15. Dann unterzieht das Bilddarstellungsmittel 2 das gelesene Einheitsbild dem Spezialeffekt in Übereinstimmung mit Daten für die Berechnung und zeichnet dann ein Bild, um es auf der vorbestimmten Anzeigeeinheit anzuzeigen.
  • Wenn der Spezialeffekt in die Animation eingefügt wird, wird ein Abschnitt in einem Frame dem Spezialeffekt unterworfen (das heißt, jedes Einheitsbild wird dem Spezialeffekt unterworfen) oder das gesamte Frame wird dem Spezialeffekt unterworfen. Wenn der Gesamtabschnitt eines Frame dem Spezialeffekt unterworfen wird, wenn das Einheitsbild und Daten zum Berechnen des Spezialeffekts dazu gebracht werden, einander zu entsprechen, wie in 81 gezeigt ist, kann ein Code, beispielsweise "REPEAT", dazu gebracht werden, jedem Einheitsbild zu entsprechen, um gespeichert zu werden, anstatt Daten zum Berechnen des Spezialeffekts zu erstellen, um jedem aller Einheitsbilder in dem Frame vor der Speicherung zu entsprechen. Wenn der Gesamtabschnitt eines Frame dem gleichen Spezialeffekt in einer zeitsequentiellen Art und Weise unterworfen wird, kann beispielsweise die Manipulationsgeschwindigkeit "v1" dazu gebracht werden, jedem Einheitsbild zusammen mit dem Code "REPEAT" zu entsprechen, wenn die Speicherung durchgeführt wird. Wenn ein Einheitsbild und Daten zum Berechnen des Spezialeffekts dazu gebracht werden, einander zu entsprechen, um gespeichert zu werden, und jedes Einheitsbild einem unterschiedlichen Spezialeffekt unterworfen wird, wie in 82 gezeigt ist, wird die Korrespondenz mit Daten zum Berechnen des Spezialeffekts, die sich für jedes Einheitsbild unterscheiden, oder einen Zeiger an einem Speicherbereich für Daten für die Berechnung erstellt, wenn die Speicherung durchgeführt wird.
  • 81 und 82 zeigen einen Zustand, bei dem das Einheitsvektorspeichermittel 5 und das Einheitsbildspeichermittel 15 nicht einzeln bereitgestellt und in einer Tabelle in dem gleichen Speicherbereich ausgebildet werden, um Daten von Einheitsvektoren, Daten von Einheitsbildern und Daten zum Berechnen des Spezialeffekts zu speichern, während sie dazu gebracht werden, einer eindeutigen Kennung zu entsprechen.
  • Ein spezifisches Beispiel der Einführung eines Spezialeffekts in eine Animation wird nun beschrieben. Wenn beispielsweise die Darstellung der erzeugten Animation durch das Bilddarstellungsmittel 3 durchgeführt wurde, kann der Spezialeffekt auf eine solche Art und Weise eingeführt werden, dass ein Benutzer eine Maus oder dergleichen verwendet, um eine Position bei der dargestellten Animation anzuweisen, bei der der Spezialeffekt eingefügt wird. Zu dieser Zeit kann ein Menüfenster zum Auswählen eines Spezialeffekts aus einer Mehrzahl von Effekten durch das Bilddarstellungsmittel 2 angezeigt werden, wie in 83 gezeigt ist.
  • 84 zeigt ein Beispiel einer Animation, in die ein Spezialeffekt eingeführt wurde, wenn "COLOR INVERSION" aus dem Menüfenster ausgewählt und die Wiederholung von "COLOR INVERSION" angewiesen wird.
  • Achte Ausführungsform
  • Die Verfahren zum Erzeugen von Animation gemäß der vierten bis siebten Ausführungsformen können in ein Programm gebildet werden, das von einem Computer ausgeführt und in einem Aufzeichnungsmedium, wie beispielsweise einer Floppy Disk, einer Festplatte, einer CD-ROM oder einem Halbleiterspeicher gespeichert werden kann, um verteilt zu werden.
  • 85 zeigt die Struktur eines Computersystems zum Durchführen des erfindungsgemäßen Animationserzeugungsverfahrens. Das Computersystem umfasst beispielsweise einen Personal-Computer mit einer CPU 1001 zum Durchführen von Berechnungen, einen Eingabeabschnitt 102, wie beispielsweise eine Tastatur, eine Zeigevorrichtung oder eine Maus, einen Ausgabeabschnitt 1003, wie beispielsweise eine Anzeige und eine Lautsprechereinheit, ein ROM 1004 und RAM 1005, die als Hauptspeicherabschnitte dienen, ein Festplattenlaufwerk 1006, das als eine externe Speichereinheit dient, ein Floppydisk-Laufwerk 1007 und eine optische Platteneinheit 1008, die miteinander durch einen Bus 1009 verbunden sind.
  • Ein Programm zum Ausführen des Animationserzeugungsverfahrens gemäß der vorhergehenden Ausführungsformen und Bilddaten werden in einem beliebigen der Aufzeichnungsmedien, wie beispielsweise dem Festplattenlaufwerk 1006, dem Floppydisk-Laufwerk 1007 und der optische Platteneinheit 1008, gespeichert. In Übereinstimmung mit dem Programm werden Bilddaten, wie beispielsweise der Stroke und die Anweisung eines Spezialeffekts, die von dem Aufzeichnungsmedium gelesen wurden, einen Animationsverarbeitungsprozess in der CPU 1003 unterworfen. Die erzeugte Animation wird dann von dem Ausgabeabschnitt 1003 übertragen. Als Ergebnis kann die erfindungsgemäße Animationsverarbeitungsmanipulation mittels eines gewöhnlichen Personal-Computers durchgeführt werden.
  • Neunte Ausführungsform
  • Eine neunte Ausführungsform der Erfindung wird nun beschrieben. Obwohl die Interpolation linear bei den ersten bis achten Ausführungsformen durchgeführt wird, ist diese Ausführungsform auf eine solche Art und Weise angeordnet, dass die Information zum Begrenzen der geänderten Form des Strokes eingegeben und ein Interpolationsstroke in Übereinstimmung mit der eingegebenen Information erzeugt wird. Den gleichen Elementen wie den in 63 gezeigten werden die gleichen Bezugsziffern gegeben.
  • 86 ist ein Diagramm, das schematisch ein Beispiel der Struktur eine Animationserzeugungsvorrichtung gemäß einer neunten Ausführungsform der Erfindung zeigt. Wie in 86 gezeigt ist, umfasst die Animationserzeugungsvorrichtung gemäß dieser Ausführungsform ein Schlüsselstroke-Eingabemittel 1 zum Eingeben von Strokes oder dergleichen, die an dem Schlüsselframe registriert werden müssen; ein Schlüsselstroke-Quantisierungsmittel 4 zum Zerlegen (Quantisierung) des Strokes in Einheitsvektoren, die jeweils eine beliebige Länge aufweisen; ein Einheitsvektorspeichermittel 5 zum Speichern der Einheitsvektoren; ein Begrenzungsstrokeingabemittel 21 zum Eingeben von Begrenzungsstrokes für Begrenzungs-Verformung von Interpolationsstrokes, die zum Interpolieren der Schlüsselstrokes erzeugt werden, die von dem Schlüsselstroke-Eingabemittel 1 zwischen Schlüsselframes eingegeben werden; ein Interpolationsframenanzahleingabemittel 25 zum Eingeben der Anzahl von Interpolationsframes zum Interpolieren zwischen Schlüsselframes; ein Begrenzungsstroke-Quantisierungsmittel zum Zerlegen (Quantisieren) des Begrenzungsstrokes in Einheitsvektoren, deren Anzahl die gleiche wie die Anzahl der Interpolationsframes ist; ein Interpolationsvektorerzeugungsmittel 6 zum Erzeugen von Interpolationsvektoren zum Interpolieren zwischen Schlüsselframes in Übereinstimmung mit den Einheitsvektoren der Schlüsselstrokes und den Einheitsvektoren der Begrenzungsstrokes; und ein Bilddarstellungsmittel 3 zum Anzeigen der erzeugten Animation oder dergleichen auf einer vorbestimmten Anzeigeeinheit.
  • Die Manipulation der in 86 gezeigten Animationserzeugungsvorrichtung wird nun mit Bezug auf 87A bis 87D beschrieben.
  • 87A bis 87D sind Ablaufdiagramme, die die Gesamtmanipulation der in 86 gezeigten Animationserzeugungsvorrichtung zeigen.
  • Anfangs werden die Schlüsselframenummer i (i = 0 ... n), die Anzahl n von Interpolationsframes und das Reproduktionsintervall t initialisiert (Schritt S1), so dass ein Zustand zum Warten auf die Eingabe verwirklicht wird (Schritt S2). Zu dieser Zeit ist der Benutzer imstande, das Lesen eines Bilds (Schritt S3), die Eingabe von Schlüsselstrokes (Schritt S4), die Eingabe von Begrenzungsstrokes (Schritt S5), die Reproduktion von Animation (Schritt S6), die Anzahl f von Interpolationsframes durch das Interpolationsframe-Nummereingabemittel 5 (Schritt S7), die Beendigung (Schritt S8) und einen weiteren Prozess (Schritt S9) zu verwirklichen.
  • Eine Manipulation wird nun mit Bezug auf einen in 87B gezeigtes Ablaufdiagramm beschrieben, die durchgeführt wird, wenn ein Benutzer die Eingabe von Schlüsselstrokes anweist (Schritt S4).
  • Wenn eine Anweisung an den i = 0-ten Schlüsselframe durchgeführt wird (Schritt S91), wird der Strokenummer j, die in das Schlüsselframe eingegeben wird, initialisiert (Schritt S93). Die Strokenummer ist eine Identifizierer zum Identifizieren einer Mehrzahl von dem Benutzer eingegebenen Strokes.
  • Der Benutzer verwendet eine Maus oder ein Tablett durch eine Benutzerschnittstelle des Schlüsselstroke-Eingabemittels 1, um Strokes (Kurven) zu zeichnen, die als Skelett in einem Abschnitt eines vorbereiteten Bitmap-Bilds dienen, bei dem Animation erforderlich ist, um erforderliche Strokes sequentiell einzugeben. Wann immer eine Eingabe durchgeführt wird, wird jedem Stroke eine Strokenummer gegeben (Schritte S94 bis S97).
  • Nachdem Schlüsselstrokes für ein Schlüsselframe eingegeben wurden (Schritt S97), wird jeder eingegebene Schlüsselstroke in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen, durch das Schlüsselstroke-Quantisierungsmittel 4 zerlegt (quantisiert) (Schritt S99). Wenn beispielsweise ein in dem Schlüsselframe (einem ersten Schlüsselframe) registrierter Schlüsselstroke 21 mit einer Schlüsselframenummer i = 0 durch das Schlüsselstroke-Quantisierungsmittel 4 quantisiert wird, wie in 10A gezeigt ist, werden Einheitsvektoren 23a bis 23c erzeugt, wie in 10B gezeigt ist.
  • Die Einheitsvektoren des durch das Schlüsselstroke-Quantisierungsmittel 4 erzeugten Schlüsselstrokes werden in dem Einheitsvektorspeichermittel 5 gespeichert (Schritt S101). Bei dem Einheitsvektorspeichermittel 5 werden gespeichert: eine Sequenz, deren Elemente Schlüsselframenummern (i) sind, die Identifizierer für die Schlüsselframes sind, Strokenummer (j), die Identifizierer der in den Schlüsselframes eingegebenen Strokes sind, und Identifizierer (Vjhi, h = 1, 2, 3, ...,) der Einheitsvektoren der Strokes, wie beispielsweise in 11 gezeigt ist. Die Identifizierer für die Einheitsvektoren werden Nummern (h = 1, 2, 3, ...,) gegeben, die von einem Punkt starten, bei dem das Zeichnen der Strokes gestartet wird.
  • Wenn die Eingabe von Strokes für Schlüsselframes nach der Schlüsselframenummer i = 0 durchgeführt wird (Schritt S91), das heißt, wenn Schlüsselstrokes zum Verformen jedes Schlüsselstrokes, die in der Schlüsselframenummer i = 0 registriert sind, eingegeben werden, wird die Strokeangabenummer k initialisiert. Außerdem wird die Schlüsselframenummer i um Eins erhöht, so dass auf die Eingabe eines Schlüsselstrokes des Schlüsselframes (ein zweites Schlüsselframe) mit der Schlüsselframenummer i = 1 gewartet wird (Schritt S103). Dann wird ein Schlüsselframe (in diesem Fall, ein Schlüsselframe (ein erstes Schlüsselframe) mit der Schlüsselframenummer i = 0), die die Schlüsselframenummer (i – 1) aufweist, das eine vorherige Schlüsselframenummer ist, auf der vorbestimmten Anzeigeeinheit angezeigt. Zu dieser Zeit wird die Strokenummer, die jedem bei dem ersten Schlüsselframe gezeichneten Stroke gegeben wird, dazu gebracht, die Strokeangabenummer k zu sein. Wenn die Schlüsselstrokes an dem Schlüsselframe, die den Schlüsselstrokes entsprechen, die die Strokeangabenummer k an dem ersten Schlüsselframe aufweisen, eingegeben werden, wird die Anzeigefarbe des k-ten Schlüsselstrokes geändert oder es wird dem k-ten Schlüsselstroke ermöglicht, zu blinken, um einen Benutzer zu veranlassen, den Stroke des zweiten Schlüsselframes entsprechend des k-ten Schlüsselstrokes des ersten Schlüsselframes einzugeben (Schritt S105). Somit gibt der Benutzer einen Schlüsselstroke 52 des zweiten Schlüsselframes ein, der dem Schlüsselstroke 51 des ersten Schlüsselframes entspricht (Schritt 101), wie beispielsweise in 10A gezeigt ist. Zu dieser Zeit kann eine Mehrzahl von Schlüsselstrokes des zweiten Schlüsselframes entsprechend dem k-ten Schlüsselstroke des ersten Schlüsselframes existieren. Wenn der Benutzer die Beendigung des zweiten Schlüsselframes der Eingabe der Schlüsselstrokes entsprechend dem k-ten Schlüsselstrokes des ersten Schlüsselframes angewiesen hat (Schritt S109), wird der Schlüsselstroke mit der Angabenummer k + 1 an dem ersten Schlüsselframe verstärkt und angezeigt. Somit wird der Benutzer veranlasst, den Schlüsselstrokes des zweiten Schlüsselframes entsprechend dem k + 1-ten Schlüsselstroke des ersten Schlüsselframes einzugeben. Außerdem wird der Schlüsselstroke des zweiten Schlüsselframes, der eingegeben wurde, um dem Schlüsselstroke des vorhergehenden Schlüsselstrokes (das heißt, dem k-ten Stroke) zu entsprechen, in Einheitsvektoren durch das Schlüsselstroke-Quantisierungsmittel 4 aufgeteilt (siehe 10B), um in dem Einheitsvektorspeichermittel 5 gespeichert zu werden (Schritt S111).
  • Hinsichtlich der Einheitsvektoren der Schlüsselstrokes des zweiten Schlüsselframes, die den Schlüsselstrokes des ersten Schlüsselframes entsprechen, wird eine Sprungzieladresse "p1" zu dem nachlaufenden Ende der Sequenz des Einheitsvektors des Schlüsselstrokes mit der Nummer j = 1 in das ersten Schlüsselframe hinzugefügt, wie in 11 gezeigt ist. Somit wird eine Sequenz in der Form mit Elementen, die die Adresse "p1", die Schlüsselframenummer (i = 1), die Strokenummer (j = 1) und der Einheitsvektoridentifizierer (Vjhi, h = 1, 2, 3, ...,) sind, gespeichert.
  • Alle die an dem ersten Schlüsselframe bezeichneten Schlüsselstrokes werden den Prozessen bei Schritten S105 bis 5111 unterworfen (Schritt S113).
  • Ein Prozess, der durchgeführt wird, wenn der Benutzer die Eingabe des Begrenzungsstrokes angewiesen hat (Schritt S69), wird nun mit Bezug auf ein in 87C gezeigtes Ablaufdiagramm beschrieben.
  • Das Begrenzungsstroke-Eingabemittel 21 wird verwendet, um Begrenzungsstrokes einzugeben, wenn der mittels des Schlüsselstroke-Eingabemittels 1 eingegebene Schlüsselstroke verformt ist. Die Strokes werden durch Zeichnen von Strokes auf einem Bitmap-Bild entlang einer Route eingegeben, entlang der erforderlich ist, dass die Endpunkte der Schlüsselstrokes gezeichnet werden.
  • Wenn nur ein Schlüsselframe existiert, wird ein Schlüsselstroke, der die Eingabe des Begrenzungsstrokes (i = 0) angibt und in dem ersten Schlüsselframe registriert ist, auf der vorbestimmten Anzeigeeinheit angezeigt, so dass auf die Eingabe des Begrenzungsstrokes gewartet wird (Schritt S121). Wann immer der Begrenzungsstroke eingegeben wird, wird die Begrenzungsstrokenummer g jedem Begrenzungsstroke gegeben (Schritte S123 bis S125). Somit wird g um Eins erhöht, so dass die nächsten Schlüsselstrokes sequentiell verstärkt und angezeigt werden, um die Eingabe des Begrenzungsstroke zu veranlassen. Wenn die Beendigung der Eingabe des Begrenzungsstroke für alle Schlüsselstrokes angewiesen wurde, quantisiert das Begrenzungsstroke-Quantisierungsmittel 23 jeden Begrenzungsstroke in Einheitsvektoren, deren Anzahl die gleiche wie die Anzahl f der Interpolationsframes ist, die durch das Interpolationsframenummereingabemittel 25 angewiesen wurde, und speichert die Einheitsvektoren der Begrenzungsstrokes (Schritte S127 bis S129).
  • Wenn eine Mehrzahl von Schlüsselframes existiert, wird die Eingabe des Begrenzungsstroke angegeben (Schritt S121). Die Strokeangabenummer k wird initialisiert (Schritt S131). Dann wird ein Schlüsselstroke des vorliegenden Schlüsselframes mit der ersten Korrespondenzbeziehung mit dem vorhergehenden Schlüsselframe auf der vorbestimmten Anzeigeeinheit angezeigt. Dann wird auf die Eingabe des Begrenzungsstrokes zu dem angezeigten Schlüsselstroke mit der oben erwähnten Korrespondenzbeziehung gewartet (Schritt S133). Wenn der Benutzer den Begrenzungsstroke mit dem Schlüsselstroke, der die erste Korrespondenzbeziehung aufweist, eingegeben hat, wird k um Eins erhöht. Somit werden Schlüsselstrokes, die die nächste Korrespondenzbeziehung aufweisen, sequentiell verstärkt und angezeigt, um die Eingabe des Begrenzungsstrokes in den vorhergehenden Schlüsselstroke zu veranlassen (Schritte S135 bis S137). Wenn die Eingabe der Begrenzungsstrokes in die Schlüsselstrokes, die alle Korrespondenzbeziehungen aufweisen, angewiesen wurde, quantisiert das Begrenzungsstroke-Quantisierungsmittel 23 jeden Begrenzungsstroke in Einheitsvektoren, deren Anzahl die gleiche wie die Anzahl f von Interpolationsframes ist, die durch das Interpolationsframenummereingabemittel 25 angewiesen wurden, so dass die Einheitsvektoren der Begrenzungsstrokes gespeichert werden (Schritt S139).
  • Ein Prozess, der durchgeführt wird, wenn der Benutzer angewiesen hat, die Animation zu reproduzieren (Schritt S71), das heißt, die Erzeugung der Interpolationsframes, wird nun mit Bezug auf ein in 87D gezeigtes Ablaufdiagramm beschrieben.
  • Die Nummer s des Schlüsselframes zur Verwendung, um das Interpolationsframe zu erzeugen, die Nummer t des Interpolationsframes des Subjekts, das erzeugt werden muss, und die Nummer des Benutzers des Schlüsselstrokes des Subjekts, das verarbeitet werden muss, werden initialisiert (Schritt S141). Auf ähnliche Weise zu dem vorhergehenden Beispiel werden Einheitsvektoren des Schlüsselstrokes, die die Korrespondenzbeziehung aufweisen und an den ersten und zweiten Schlüsselframes registriert sind, von dem Einheitsvektorspeichermittel 5 in der absteigenden Reihenfolge der Schlüsselstrokenummer herausgenommen, so dass Interpolationsvektorstrokes sequentiell erzeugt werden (Schritt S143).
  • Ein Prozess des Interpolationsvektorerzeugungsmittels 6 zum Erzeugen von Interpolationsvektoren in einem Fall, in dem der Begrenzungsstroke definiert ist, der Ort der Enden des Schlüsselstrokes zu sein, der während des Animationsprozesses von dem ersten Schlüsselframe zu dem zweiten Schlüsselframe läuft, wird nun Bezug auf 88A bis 88C und 89 beschrieben.
  • Eine Annahme, wie in 88A gezeigt, wird durchgeführt, dass ein Schlüsselstroke (ein erster Schlüsselstroke) 31 des ersten Schlüsselframes und ein Schlüsselstroke (ein zweiter Schlüsselstroke) 32 des zweiten Schlüsselframes, das dem ersten Schlüsselframe entspricht, entspricht, existieren, und Begrenzungsstrokes zur Verwendung, um Interpolationsstrokes für die Schlüsselstrokes 31 und 32 zu erzeugen, werden mit Begrenzungsstrokes 33 und 34 angegeben, die die Endpunkte miteinander verbinden.
  • Zu dieser Zeit werden die von dem Interpolationsvektorerzeugungsmittel 6 erzeugten Begrenzungsstrokeeinheitsvektoren sequentiell von den Enden der ersten und zweiten Schlüsselstrokes verbunden, so dass die Position des Endes des Interpolationsstrokes definiert ist (Schritt S145). Wenn die Anzahl f der durch das Interpolationsframenummereingabemittel 25 eingegebenen Interpolationsframes gleich "2" ist, wie in 88B gezeigt ist, wird der Abstand zwischen den Enden der Begrenzungsstrokes 33 und 34 in f + 1 = 3 Abschnitte aufgeteilt, so dass die Begrenzungsstrokes quantisiert sind. Endpunkte des ersten Interpolationsstrokes der beiden Interpolationsstrokes sind Punkte 35a und 36a, die die Begrenzungsstrokes 33 und 34 von dem Endpunkt des Schlüsselstrokes 31 mit 1 : 2 innen aufteilen. Endpunkte des zweiten Interpolationsstrokes sind Punkte 35b und 36b, die die Begrenzungsstrokes 33 und 34 von dem Endpunkt des ersten Schlüsselstrokes 31 mit 2 : 1 innen aufteilen. Dann werden die Start- und Endpunkte des ersten Schlüsselstrokes 31 miteinander verbunden, so dass eine Grundlinie 37 des ersten Schlüsselstrokes gebildet wird. Die Endpunkte 35a und 36a des ersten Interpolationsstrokes werden miteinander verbunden, so dass eine Grundlinie des ersten Interpolationsstrokes gebildet wird. Außerdem werden Endpunkte 35b und 36b des zweiten Interpolationsstrokes miteinander verbunden, so dass eine Grundlinie des zweiten Interpolationsstrokes gebildet wird. Die Start- und Endpunkte des zweiten Schlüsselstrokes 32 werden miteinander verbunden, so dass eine Grundlinie des zweiten Schlüsselstrokes gebildet wird.
  • Dann werden Einheitsvektoren, die den Schlüsselstroke (den ersten Schlüsselstroke) des ersten Schlüsselframes bilden, der durch das Schlüsselstroke-Quantisierungsmittel 4 erhalten wird, und der Schlüsselstroke (der zweite Schlüsselstroke) des zweiten Schlüsselframes, das dem ersten Schlüsselframe entspricht, kombiniert. Die Kombination von Einheitsvektoren wird mit einem Verhältnis durchgeführt, das der Position des Interpolationsframes entspricht, das das Subjekt unter Berücksichtigung des ersten Schlüsselstrokes, des zweiten Schlüsselstrokes und der Länge der die Enden der Interpolationsstrokes verbindenden Grundlinie ist. Somit wird ein Interpolationsvektor erhalten. Ein spezifisches Beispiel wird in 89 gezeigt. Eine Annahme wird durchgeführt, dass der Einheitsvektor Vs des ersten Schlüsselstrokes 51 und der Einheitsvektor Ve des zweiten Schlüsselstrokes 53, der dem ersten Schlüsselstroke 51 entspricht, existieren. Ein Prozess, der durchgeführt wird, um den zweiten Interpolationsstroke 54 zu erzeugen, wenn die angewiesene Nummer des Interpolationsframes gleich "2" ist, wird nun beschrieben. Anfangs wird der Abstand zwischen den Enden der Begrenzungsstrokes 57 und 58 in f + 1 = 3 Abschnitte aufgeteilt, so dass die Endpunkte 59a und 59b des zweiten Interpolationsstrokes erhalten werden. Dann werden die Grundlinie 52 des ersten Schlüsselstrokes, die Grundlinie 54 des zweiten Schlüsselstrokes und die Grundlinie 56 des zweiten Interpolationsstrokes erhalten. Zu dieser Zeit ist das Verhältnis S, das der Position des zweiten Interpolationsstrokes entspricht, S = 2/3.
  • Anfangs werden der Einheitsvektor Vs des ersten Schlüsselstrokes, die Länge Ls der Grundlinie 52 des ersten Schlüsselstrokes, die Länge Ls der Grundlinie 56 des zweiten Interpolationsstrokes und das Verhältnis S verwendet, so dass der Einheitsvektor Vs' in Übereinstimmung mit Gleichung (7) erhalten wird: Vs' = (1 – S)·(Lx/Ls)·Vs (7)
  • Dann werden der Einheitsvektor Ve des zweiten Schlüsselstrokes, die Länge Le der Grundlinie 54 des zweiten k, die Länge Lx der Grundlinie 56 des zweiten Interpolationsstrokes und das Verhältnis S verwendet, so dass der Einheitsvektor Ve' in Übereinstimmung mit Gleichung (8) erhalten wird: Ve' = S·(Lx/Le)·Ve (8)
  • Der Einheitsvektor Vx des zweiten Interpolationsstrokes 55 kann durch Kombinieren der Einheitsvektoren Vs' und Ve' erhalten werden, das heißt in Übereinstimmung mit Gleichung (9): Vx = Vs' + Ve (9)
  • Wenn die Anzahl von Einheitsvektoren, die den ersten Schlüsselstroke bilden, und die Anzahl von Einheitsvektoren, die den zweiten Schlüsselstroke bilden, nicht die gleichen sind, teilt das Schlüsselstroke-Quantisierungsmittel 4 den Schlüsselstroke erneut auf, um die Anzahl der Einheitsvektoren gleich zu machen. Dann wird die Information des in dem Einheitsvektorspeichermittel 5 gespeicherten Einheitsvektors aktualisiert.
  • Der Einheitsvektor Vx des zweiten Interpolationsstrokes, der durch das in 89 gezeigte Verfahren erhalten werden kann, werden in der aufsteigenden Reihenfolge der Identifizierer der Einheitsvektoren von der Position des Endpunkts des Interpolationsstrokes kombiniert, so dass der Interpolationsstroke 55 erzeugt wird (siehe 90).
  • Die zwischen den Schlüsselstrokes erzeugten Interpolationsstrokes, die alle Korrespondenzbeziehungen der ersten und zweiten Schlüsselframes aufweisen, werden durch das Bilddarstellungsmittel 3 angezeigt. Die Anzeige wird um die Anzahl f der Interpolationsframes wiederholt. Außerdem wird die vorhergehenden Manipulation zwischen allen den Schlüsselframes (zwischen dem zweiten (i = 1) und dritten (i = 2) Schlüsselframe und zwischen dem dritten (i = 2) und vierten (i = 3) Schlüsselframe) wiederholt, so dass Animation erzeugt wird (Schritte S147 bis S157).
  • Bei der oben erwähnten Ausführungsform wird der Begrenzungsstroke verwendet, um die Position der beiden Endpunkte des Interpolationsstrokes zu regeln, der erzeugt werden muss. Der Begrenzungsstroke ist nicht darauf begrenzt. Der Begrenzungsstroke kann verwendet werden, um die Position der zentralen Position des Interpolationsstrokes zu regeln. In diesem Fall ist erforderlich, wenn die Erzeugung mit der Grundlinie des in 88A bis 88C gezeigten Interpolationsstrokes durchgeführt wird, dass die gleichmäßig aufteilenden Punkte in Übereinstimmung mit der Anzahl f der Interpolationsframes erhalten werden, die die beiden Endpunkte der entsprechenden beiden Schlüsselstrokes der ersten und zweiten Schlüsselframes verbinden. Außerdem ist erforderlich, dass die Grundlinie jedes Interpolationsstrokes in Übereinstimmung mit der Position des Begrenzungsstrokes zum Regeln der zentralen Position des Interpolationsstrokes erhalten wird.
  • Wie oben beschrieben wird gemäß der neunten Ausführungsform ein Begrenzungsstroke (der speziell die Position der beiden Endpunkte des Interpolationsstrokes begrenzt, der erzeugt wird) zum Begrenzen der geänderten Form des Strokes, wenn der eine oder mehrere Schlüsselstrokes zwischen einer Mehrzahl von Schlüsselframebildern, die interpoliert werden, angeordnet, um eingegeben zu werden. Somit wird ein Interpolationsstroke in Übereinstimmung mit der Interpolationsposition, dem Begrenzungsstroke und dem Schlüsselstroke erzeugt, wenn der Stroke zwischen der Mehrzahl der Schlüsselframebilder interpoliert wird. Somit wird der Interpolationsstroke zwischen den eingegebenen Schlüsselstroke in Übereinstimmung mit dem Begrenzungsstroke zum Begrenzen der Position der beiden Endpunkte des Interpolationsstrokes erzeugt. Daher kann Animation, die imstande ist, sich natürlich zu bewegen, ohne weiteres erzeugt werden, während die Gesamtform des Schlüsselstrokes und benachbarter Abschnitte beibehalten wird.
  • Zehnte Ausführungsform
  • 91 ist ein Diagramm, das schematisch die Struktur einer Animationserzeugungsvorrichtung gemäß einer zehnten Ausführungsform der Erfindung zeigt. Den gleichen Elementen wie den in 86 gezeigten werden die gleichen Bezugsziffern gegeben, und nur unterschiedliche Abschnitte werden nun beschrieben.
  • Die in 91 gezeigte Animationserzeugungsvorrichtung umfasst ein Schlüsselstroke-Eingabemittel 1, ein Schlüsselstroke-Verwaltungsmittel 24, ein Stroke-Form-Verformungsmittel 26, ein Interpolationsframenummereingabemittel 25, ein Begrenzungsfunktionseingabemittel 20, ein, Begrenzungsfunktionsverwaltungsmittel 22, ein Interpolationsstroke-Erzeugungsmittel 28 und ein Bilddarstellungsmittel 3.
  • Das Schlüsselstroke-Eingabemittel 1 wird verwendet, um eine Mehrzahl von Schlüsselstrokes einzugeben, die in dem Schlüsselframe der Animation registriert werden müssen. Eine Maus, ein Tablett oder dergleichen wird verwendet, um einen Stroke (eine Kurve) zu zeichnen, die als ein Skelett in einem Abschnitt an dem erstellten Bitmap-Bild dient, bei dem Animation erforderlich ist, so dass Schlüsselstrokes eingegeben werden. Eine Annahme wird durchgeführt, dass ein Schlüsselstroke 65 an dem ersten Schlüsselframe und ein Schlüsselstroke 66 entsprechend einem zweiten Schlüsselframe registriert wurde, wie in 92A gezeigt ist. Von dem Schlüsselstroke-Eingabemittel 1 eingegebene Schlüsselstrokes 65 und 66 werden, wie in 92B gezeigt ist, durch eine Parameterkurve, wie beispielsweise eine Bezierkurve oder eine B-Spline-Kurve, genähert. Information von Steuerpunkten (Steuerpunkte 67a, 67b und 67c für den Schlüsselstroke 61 und jene 68a, 68b und 68c für den Schlüsselstroke 66) sind zusammen mit den Identifizierern für die Strokes an dem Schlüsselstroke-Verwaltungsmittel 24 registriert. Wie oben beschrieben wird angenommen, dass die eingegebenen Schlüsselstrokes ein Satz von Punkten sind, die durch Durchführen einer Näherung durch die vorhergehende Parameterkurve erhalten werden, um verwaltet zu werden. Somit können Berechnungen der Verformung, Überlagerung und Steuerfunktion, die später zu beschreiben sind, ohne weiteres durchgeführt werden.
  • Bei dem Schlüsselstroke-Verwaltungsmittel 24 werden eine Sequenz, deren Elemente Schlüsselframenummern (i) sind, die Identifizierer für die Schlüsselframes sind, Stroke-Nummern (j), die Identifizierer der in die Schlüsselframes eingegebenen Strokes sind, und Identifizierer (Vjhi, h = 1, 2, 3, ...,) der Steuerpunktvektoren der Strokes, wie beispielsweise in 93 gezeigt. Den Identifizierern für die Steuerpunktvektoren werden Nummern h (= 1, 2, 3, ...,) beginnend von einem Punkt gegeben, bei dem das Zeichnen der Strokes gestartet wird.
  • Wenn der Schlüsselstroke des zweiten Schlüsselframes, der dem Schlüsselstroke des ersten Schlüsselframes entspricht, eingegeben wurde, wird ein Sprungzieladresse, beispielsweise "p1", zu dem nachlaufenden Ende der Sequenz der Steuerpunktvektoren des Schlüsselstrokes mit der Schlüsselstrokenummer j = 1 des ersten Schlüsselframes hinzugefügt, wie in 93 gezeigt ist. Somit wird eine Sequenz mit Elementen, die die Adresse "p1", die Schlüsselframenummer (i = 1), die Strokenummer (j = 1) und der Steuerpunktvektoridentifizierer (Vjhi, h = 1, 2, 3, ...,) sind, gespeichert.
  • Das Begrenzungsfunktionseingabemittel 20 wird verwendet, um eine Begrenzungsfunktion zum Begrenzen der Verformung des Interpolationsstrokes einzugeben, der zum Interpolieren des von dem Schlüsselstroke-Eingabemittel 1 eingegebenen Schlüsselstrokes zwischen den Schlüsselframes erzeugt wird. Die Begrenzungsfunktion wird in einem 1D-Parameter beschrieben, der der Position t des Interpolationsframes und der Strokeposition s entspricht. Die Begrenzungsfunktion umfasst eine Bezier-Kurve und eine B-Spline-Kurve. Eine ausgewählte Näherungskurve wird von dem Einheitsbilderzeugungsmittel 13 angewiesen. Somit kann eine Begrenzungsfunktion der erforderlichen Näherungskurve erhalten werden, die den Steuerpunkten des Schlüsselstrokes mit Parametern entspricht, die die Position t des Interpolationsframes und die Strokeposition s sind, die der Anzahl der Interpolationsframes entspricht, die von dem Interpolationsframenummereingabemittel 25 eingegeben wurde. Die Begrenzungsfunktion kann verwendet werden, wenn versucht wird, dass die Bewegung des Strokes Geschwindigkeit aufweist.
  • Wie in 94 gezeigt ist, werden bei dem Begrenzungsfunktionsverwaltungsmittel 22 eine Sequenz gespeichert, deren Elemente für jedes Schlüsselframe die Schlüsselframenummer (i), die ein Identifizierer für das Schlüsselframe ist, die Strokenummer (j), die ein Identifizierer des in den Schlüsselframe eingegebenen Strokes ist, und Zeiger (Fjhi(s, t), h = 1, 2, 3, ..., für die Materialsubstanz Begrenzungsfunktion in Übereinstimmung mit der Position s des Strokes und der Position t des Interpolationsframes.
  • Wenn eine weitere Begrenzungsfunktion aufgrund einer Eingabe eines Schlüsselstrokes des zweiten Schlüsselframes, der dem Schlüsselstroke des erstens Schlüsselframes entspricht, erforderlich ist, wird beispielsweise eine Sprungzieladresse "p1" zu dem nachlaufenden Ende der Sequenz des Zeigers zu der Begrenzungsfunktion des Schlüsselstrokes hinzugefügt, der die Schlüsselstrokenummer j = 1 des ersten Schlüsselframes aufweist. Somit wird eine Sequenz, deren Elemente die Adresse "p1", die Schlüsselframenummer (i = 1), die Strokenummer (j = 1) und der Zeiger (Fjhi(s, t), h = 1, 2, 3, ...,) zu der Begrenzungsfunktion sind, gespeichert.
  • Hinsichtlich der Begrenzungsfunktion, die durch das Begrenzungsfunktionseingabemittel 20 eingegeben wird, wird der Begrenzungsstroke, wie bei der ersten Ausführungsform beschrieben, eingegeben und dann durch eine Parameterkurve, wie beispielsweise die Bezier-Kurve oder die B-Spline-Kurve, angenähert, und dann wird eine Begrenzungsfunktion in Übereinstimmung mit den Steuerpunkten in dem Begrenzungsfunktionsverwaltungsmittel 22 registriert.
  • Das Stroke-Form-Verformungsmittel 26 verformt die Form des Schlüsselstrokes in Übereinstimmung mit der Position des Interpolationsframes. Das Interpolationsstroke-Erzeugungsmittel 28 erzeugt einen Interpolationsstroke aus dem verformten Schlüsselstroke. Dann wird die in dem Begrenzungsfunktionsverwaltungsmittel 22 gespeicherte Begrenzungsfunktion auf den erzeugten Interpolationsstroke angewendet, wie in 94 gezeigt ist, um einen Interpolationsstroke zu erzeugen.
  • Ein Prozess zum Erzeugen des Interpolationsstrokes wird nun mit Bezug auf 95A bis 96B beschrieben. Eine Beschreibung wird über ein Beispiel ausgeführt, bei dem ein Schlüsselstroke 111 des ersten Schlüsselframes und ein Schlüsselstroke 113 des zweiten Schlüsselframes, das dem ersten Schlüsselstroke 111 entspricht, existieren. Außerdem ist die Anzahl f von Interpolationsframes gleich zwei, und die aus vier Frames einschließlich des ersten Schlüsselframes und des zweiten Schlüsselframes zusammengesetzte Animation wird erzeugt. In diesem Fall wird ein Interpolationsstroke für das zweite Frame der vier Frames, das heißt die Frameposition t = 2, erzeugt.
  • Anfangs umfassen die Liniensegmente, die durch Verbinden von Endpunkten 115a und 115b des Schlüsselstrokes 111 und der Endpunkte 117a und 117b des Schlüsselstrokes 113 miteinander erhalten werden, wobei die Anzahl f von Interpolationsframes, die von Interpolationsframenummereingabemittel 25 eingegeben wurden, gleich zwei ist. Daher wird jeder Abstand zwischen Enden der Schlüsselstrokes 111 und 113 in f + 1 = 3 Abschnitte aufgeteilt. Punkte 119a und 119b, die die Abstände zwischen den Endpunkten 115a und 115b des Schlüsselstrokes 111 mit 1 : 2 innen aufteilen, sind Endpunkte des Interpolationsstrokes (des ersten Interpolationsstrokes) an der Frameposition t = 2. Der Endpunkt des zweiten Interpolationsstrokes an der Frameposition t = 3 ist ein Punkt, der den Abstand von den Endpunkten 115a und 115b des Schlüsselstrokes 111 mit 2 : 1 innen aufteilt. Die Start- und Endpunkte des ersten Schlüsselstrokes 111 werden miteinander verbunden, so dass eine Grundlinie 121 des ersten Schlüsselstrokes gebildet wird. Endpunkte 119a und 119b des ersten Interpolationsstrokes werden miteinander verbunden, so dass eine Grundlinie 123 des ersten Interpolationsstrokes gebildet wird. Start- und Endpunkte des zweiten Schlüsselstrokes 113 werden miteinander verbunden, so dass eine Grundlinie 125 des zweiten Schlüsselstrokes gebildet wird.
  • Wie in 95B gezeigt ist, unterzieht das Stroke-Form-Verformungsmittel 26 den ersten Schlüsselstroke 111 und den zweiten Schlüsselstroke 113 einem Rotationsprozess auf eine solche Art und Weise, dass die Grundlinie 121 des ersten Schlüsselstrokes und die Grundlinie 125 des zweiten Schlüsselstrokes mit der Grundlinie 123 des ersten Interpolationsstrokes koinzidieren. Um den Abstand zwischen Enden der Schlüsselstrokes 111 und 113 gleich wie die Abstände zwischen den Enden 119a und 119b des Interpolationsstrokes zu machen, werden die Schlüsselstrokes 111 und 113 einem Vergrößerungsprozess, einem Kontraktionsprozess und dergleichen unterworfen. Das Verfahren kann eines der beiden folgenden Verfahren sein:
    • (1) Eine Annahme wird durchgeführt, wie in 96a gezeigt ist, dass die Länge der Grundlinie 123 des Interpolationsstrokes a und die Länge der Grundlinie des Schlüsselstrokes b ist. Ein Verfahren wird benutzt, bei dem der Schlüsselstrokes mit b/a in der Richtung (Richtung x) der Grundlinie des Interpolationsstrokes und einer Richtung (Richtung y) senkrecht zu der Grundlinienrichtung multipliziert wird, um der Länge der Grundlinie des Interpolationsstrokes zu entsprechen, um eine genäherte vergrößernde/kontrahierende Verformung durchzuführen.
    • (2) Ein Verfahren, das wie in 96B gezeigt angeordnet ist, bei dem der Schlüsselstroke mit b/a in lediglich der Richtung der Grundlinie (der Richtung x) des Interpolationsstrokes multipliziert wird, um der Länge der Grundlinie des Interpolationsstrokes zu entsprechen, um eine vergrößernde/kontrahierende Verformung durchzuführen.
  • Das Interpolationsstroke-Erzeugungsmittel 28 addiert den Amplitudenwert von jedem Schlüsselstroke des ersten Schlüsselframes und dem Schlüsselstroke des zweiten Schlüsselframes, nachdem die Verformung in einer Richtung entlang der Grundlinie 123 des Interpolationsstrokes mit einem Verhältnis durchgeführt wurde, das der Frameposition t = 2 des Interpolationsframes entspricht. Somit wird der Interpolationsstroke erzeugt. Das heißt, dass erforderlich ist, wie in 95C gezeigt, dass die Amplitudenwerte mit einem Verhältnis hinzugefügt werden, dass der Schlüsselstroke des ersten Schlüsselframes "2" und der Schlüsselstroke des zweiten Schlüsselframes "1" ist. Dann wird die Position t(= 2) des Interpolationsframes, das aktuell verarbeitet werden muss, der Begrenzungsfunktion gegeben, die an dem Begrenzungsfunktionsverwaltungsmittel 22 registriert ist. Die Begrenzungsfunktion wird an den oben erwähnten, erhaltenen Interpolationsstroke angelegt, so dass ein verformter Interpolationsstroke erzeugt wird.
  • Die Anzeige der Interpolationsstrokes, die zwischen den Schlüsselstrokes erzeugt wurden, die alle Korrespondenzbeziehungen der ersten und zweiten Schlüsselframes an dem Bilddarstellungsmittel 3 aufweisen, wird um die Anzahl f der Interpolationsframes wiederholt. Außerdem wird die Anzeige zwischen allen Schlüsselframes (zwischen zweiten (i = 1) und dritten (i = 2) Schlüsselframes, zwischen dritten (i = 2) und vierten (i = 3) Schlüsselframes, ...,) wiederholt, so dass Animation erzeugt wird.
  • Wie in 97 gezeigt ist, können das Stroke-Eingabemittel 29 und ein Begrenzungsstroke-Quantisierungsmittel 30 gemäß der neunten Ausführungsform zu der in 91 gezeigten Struktur hinzugefügt werden, um die Animationserzeugungsvarrichtung zu bilden. In diesem Fall werden, wie in 98A gezeigt ist, Begrenzungsstrokes 83a und 83b, die Grenzen eingeben, wenn der Schlüsselstroke 81 zwischen dem ersten Schlüsselframe und dem zweiten Schlüsselframe verformt ist, von dem Begrenzungsstroke-Eingabemittel 29 entlang einer Route eingegeben, bei der erforderlich ist, das der Endpunkt des Schlüsselstrokes 81 angeordnet ist. Dann quantisiert das Begrenzungsstroke-Quantisierungsmittel 30 den Begrenzungsstroke ähnlich dem mit Bezug auf 88A bis 88C beschriebenen Verfahren, so dass Enden und die Grundlinien des Interpolationsstrokes erhalten werden. Das heißt, dass der Begrenzungsstroke verwendet wird, um die Grundlinie des Interpolationsstrokes zu erhalten. Dann verformt das Stroke-Form-Verformungsmittel 26 die Formen des Strokes 81 des ersten Schlüsselframes und des Schlüsselstrokes 82 des zweiten Schlüsselframes. Dann addiert das Interpolationsstroke-Erzeugungsmittel 28 die Amplitudenwerte des Schlüsselstrokes des ersten Schlüsselframes und die des Schlüsselstrokes des zweiten Schlüsselframes nachdem die Verformung entlang der Grundlinie des Interpolationsstrokes durchgeführt wurde, mit dem Verhältnis, das der Frameposition t des Interpolationsframes entspricht, so dass ein Interpolationsstroke erzeugt wird.
  • 98B zeigt einen Prozess, bei dem die Schlüsselstrokes 81 und 82 auf ähnliche Weise in der Richtung der Grundlinie des Interpolationsstrokes und einer Richtung senkrecht zu der Richtung der Grundlinie vergrößert/kontrahiert werden, um der Länge der Grundlinie des Interpolationsstrokes zu entsprechen. Außerdem werden die verformten Schlüsselstrokes überlagert, so dass Interpolationsstrokes 84a und 84b erzeugt werden.
  • 98C zeigt einen Prozess, bei dem die Schlüsselstrokes 81 und 82 lediglich in der Richtung der Grundlinie des Interpolationsstrokes vergrößert/kontrahiert werden, um der Länge der Grundlinie des Interpolationsstrokes zu entsprechen. Die verformten Schlüsselstrokes werden überlagert, so dass Interpolationsstrokes 85a und 85b erzeugt werden.
  • Ein weiteres Beispiel des Verfahrens zum Anwenden der Begrenzungsfunktion wird nun Bezug auf 99 beschrieben.
  • In dem in 99 gezeigten Fall sind der Schlüsselstroke 131 des ersten Schlüsselframes und der Schlüsselstroke 133 des zweiten Schlüsselframes parallel miteinander und weisen die gleiche Länge auf. Daher ist der erzeugte Interpolationsstroke parallel mit beiden Schlüsselstrokes 131 und 133 und weist die gleiche Länge auf (Referenz-Interpolationsstrokes 135a, 135b, 135c, 135d und 135e). Zu dieser Zeit wird die Begrenzungsfunktion (F(s, t) auf der Grundlage der Sinus-Funktion mit Parametern, die die Position t (gibt die sequentielle Nummer des Interpolationsframes unter allen erzeugten Interpolationsframes an) des Interpolationsframes und der Abstand s von der Position von einem der Endpunkte des Interpolationsstrokes sind, beispielsweise durch die folgenden Gleichung (10) definiert: F(s, t) = (Lf/2)sin(2(f – t)π)·sin((Ls – s)π) (10)wobei
    f: Anzahl von Interpolationsframes
    Lf: Abstand zwischen Schlüsselstroke des ersten Schlüsselframes und dem des zweiten Schlüsselframes,
    Ls: Länge des Schlüsselframes
  • Die aus Gleichung (10) erhaltene Begrenzungsfunktion wird von dem Begrenzungsfunktionseingabemittel 20 angewiesen, zu den erhaltenen Referenz-Interpolationsstrokes 135a bis 135e hinzugefügt zu werden, so dass die Referenz-Interpolationsstrokes verformt werden, und somit die Interpolationsstrokes 137a bis 137e erzeugt werden.
  • Hinsichtlich der Wirkung der Addition kann eine ähnliche Verformungswirkung erhalten werden, wenn eine Begrenzungsfunktion an einen Steuerpunkt (einen Kurvensteuerparameter) angelegt wird, der die Form eines in dem Schlüsselstroke-Verwaltungsmittel 24 gespeicherten Schlüsselstrokes ausdrückt. Als ein Ergebnis der oben erwähnten Verformung wird eine Animation mit einer Wirkung beobachtet, als ob ein Bild durch eine Fischaugenlinse beobachtet wird.
  • Wenn der erzeugte Interpolationsstroke an dem Bilddarstellungsmittel durch die Gesamtzahl von Interpolationsframes angezeigt wird, wird Animation erzeugt.
  • Elfte Ausführungsform
  • 100 ist ein Diagramm, das ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer elften Ausführungsform der Erfindung zeigt. Den gleichen Elementen wie den in 86 gezeigten werden die gleichen Bezugsziffern gegeben, und eine Beschreibung wird über unterschiedliche Abschnitte durchgeführt. Die in 100 gezeigte Animationserzeugungsvorrichtung weist zusätzlich zu den Elementen der in 86 gezeigten Animationserzeugungsvorrichtung das Begrenzungsfunktionseingabemittel 20 und das Begrenzungsfunktionsverwaltungsmittel 22 gemäß der zehnten Ausführungsform. Wenn das Interpolationsstroke-Erzeugungsmittel 28 einen Interpolationsstroke erzeugt, der den Interpolationsstroke bildet, wird eine Begrenzungsfunktion, die der Anzahl der Aufteilungen der Einheitsvektoren des Schlüsselstrokes entspricht, an den erzeugten Interpolationsvektor angelegt. Dann wird die Verformung durchgeführt, und dann werden sie kombiniert, so dass ein Interpolationsstroke erzeugt wird.
  • Wie oben beschrieben ist, wird gemäß der zehnten und elften Ausführungsform, wenn eine Begrenzungsfunktion zum Begrenzen der geänderten Form eines Strokes zur Verwendung, um eine oder mehrere Schlüsselstrokes zu interpolieren, die in ein Schlüsselframe zwischen einer Mehrzahl von Schlüsselframebildern eingegeben wurden, wird ein Interpolationsstroke in Übereinstimmung mit der Interpolationsposition, der Begrenzungsfunktion und dem Schlüsselstroke zur Verwendung erzeugt, um den Stroke zwischen den mehreren Schlüsselframebildern zu interpolieren. Somit wird der erzeugte Interpolationsstroke mittels einer Begrenzungsfunktion verformt. Als Ergebnis kann eine Animation mit visuellem 3D-Effekt einschließlich Konvexität und Unregelmäßigkeit ohne weiteres erzeugt werden.
  • Zwölfte Ausführungsform
  • Ein Prozess zum Erzeugen von Animation in Übereinstimmung mit einem ursprünglichen Bild mit einem allgemeinen Bereich.
  • 101 ist ein Diagramm, das ein Beispiel der Struktur einer Animationserzeugungsvorrichtung gemäß einer zwölften Ausführungsform der Erfindung zeigt. Den gleichen Elementen wie den in 86 gezeigten werden die gleichen Bezugsziffern gegeben, und nur unterschiedliche Abschnitte werden nun beschrieben. Das heißt, dass ein Bild-Chunk-Speichermittel 41 und ein Bild-Chunk-Erzeugungsmittel 43 zu der in 86 gezeigten Animationserzeugungsvorrichtung hinzugefügt werden.
  • Das Schlüsselstroke-Eingabemittel 1 ermöglicht, dass eine Mehrzahl von Schlüsselstrokes eingegeben wird, die an dem Schlüsselframe der Animation registriert werden müssen. Eine Maus oder ein Tablett wird verwendet, um einen Stroke (eine Kurve) zu zeichnen, die das als das Skelett bei einem Abschnitt an einem erstellten Bitmap-Bild dient, bei dem Animation erforderlich ist.
  • Eine Mehrzahl von der durch das Schlüsselstroke-Eingabemittel 1 eingegebener Schlüsselstrokes werden durch das Schlüsselstroke-Quantisierungsmittel 4 in Einheitsvektoren zerlegt, die jeweils eine vorbestimmte Länge aufweisen, um an einem Einheitsvektorspeichermittel registriert zu werden. Gleichzeitig wird ein Bild benachbart dem Einheitsvektor geschnitten, um an dem Bild-Chunk-Speichermittel 41 als ein Bild-Chunk bei dem in 102 gezeigten Schritt S173 gespeichert zu werden.
  • Der Stroke und der Bild-Chunk wird extrahiert, wie mit Bezug auf 26A bis 26C und 27 gezeigt ist.
  • Ein Interpolationsframe zum Interpolieren von zwei Schlüsselframes, in die der Schlüsselstroke eingegeben wurde, wird erzeugt, wie mit Bezug auf 31 beschrieben ist.
  • Dreizehnte Ausführungsform
  • Wie in 103 gezeigt ist, können das Bild-Chunk-Erzeugungsmittel 43 und das Bild-Chunk-Speichermittel 41 gemäß der zwölften Ausführungsform zu der in 97 gezeigten Struktur addiert werden, um eine Animationserzeugungsvorrichtung zu bilden. Wenn ein Bildbereich benachbart dem Schlüsselstroke als ein Bild-Chunk abgeschnitten wird, wird der Bild-Chunk dazu gebracht, dem in dem Schlüsselstroke-Verwaltungsmittel 24 registrierten Schlüsselstroke zu entsprechen, um in dem Bild-Chunk-Speichermittel 41 registriert zu sein. Wenn die Form des Strokes durch das Stroke-Form-Verformungsmittel 26 geändert wird, oder wenn der Interpolationsstroke durch das Interpolationsstroke-Erzeugungsmittel 28 erzeugt wird, liest das Bild-Chunk-Erzeugungsmittel 43 den entsprechenden Bild-Chunk aus dem Bild-Chunk-Speichermittel 41. Dann bewegt und/oder verformt sich das Bild-Chunk-Speichermittel 43, um sich mit dem Schlüsselframebild zu vereinigen, um ein Interpolationsframe zu erzeugen.
  • Das Bild-Chunk-Erzeugungsmittel 43 und das Bild-Chunk-Speichermittel 41 gemäß der zwölften Ausführungsform können zu der in 100 gezeigten Struktur hinzugefügt werden, um eine Animationserzeugungsvorrichtung zu bilden. Eine andere Kombination kann erlaubt sein.
  • Die zwölften und dreizehnten Ausführungsformen werden gebildet, wie oben beschrieben ist. Wenn ein Begrenzungsstroke und/oder, eine Begrenzungsfunktion zum Begrenzen der geänderten Form des Strokes eingegeben wird, wenn einer oder mehrere in das Schlüsselframe eingegebene Schlüsselstrokes zwischen einer Mehrzahl von Schlüsselframes interpoliert werden, wird ein Interpolationsstroke in Übereinstimmung mit der Interpolationsposition, dem Begrenzungsstroke und/oder der Begrenzungsfunktion und dem Schlüsselstroke zum Interpolieren des Strokes zwischen einer Mehrzahl von Schlüsselframebildern erzeugt. Das Bild benachbart dem Schlüsselstroke wird bewegt und/oder verformt in Übereinstimmung mit der Position und Form des erzeugten Interpolationsstrokes, um es mit dem Schlüsselframe zu kombinieren. Somit wird ein Interpolationsframebild zum Interpolieren von zwei Schlüsselframes erzeugt. Somit wird der Interpolationsstroke zwischen den eingegebenen Schlüsselstrokes in Übereinstimmung mit dem Begrenzungsstroke zum Begrenzen der Positionen der beiden Endpunkte erzeugt. Als Ergebnis kann eine Animation, die imstande ist, sich natürlich zu bewegen, ohne weiteres erzeugt werden, während die Gesamtform benachbart den Schlüsselstrokes beibehalten wird. Außerdem wird der erzeugte Interpolationsstroke mittels der Begrenzungsfunktion verformt, so dass die Animation mit visuellem 3D-Effekt, wie beispielsweise Konvexität und Unregelmäßigkeit, ohne weiteres erzeugt wird. Ein in den Interpolationsstroke abzubildendes Bild wird einem Schattierungsprozess in Übereinstimmung mit der Winkelgeschwindigkeit des Einheitsvektors zum Bilden des Interpolationsstrokes unterworfen. Somit kann eine zügige Animationserzeugungsvorrichtung, die einen Bildeffekt ähnlich der Bewegungsunschärfe aufweist, ohne weiteres erzeugt werden.
  • Vierzehnte Ausführungsform
  • 104 ist ein Diagramm, das ein Beispiel der Gesamtstruktur einer Animationserzeugungsvorrichtung gemäß einer vierzehnten Ausführungsform der Erfindung zeigt.
  • Mit Bezug auf 104 umfasst die Animationserzeugungsvorrichtung gemäß dieser Ausführungsform einen Schlüsselframespeicherabschnitt 41, bei dem eine Länge von Schlüsselframebilder, die vorher durch einen Benutzer erzeugt und aus mindestens einem Stroke zusammengesetzt sind; einen Interpolationsframeerzeugungsabschnitt 143 zum Erzeugen eines Interpolationsframes zwischen Start- und Zielframes, die vorher von dem Benutzer eingestellt wurden; einen Framereproduktionsabschnitt 145 zum sequentiellen Reproduzieren von Frames, die von dem Interpolationsframeerzeugungsabschnitt 143 und dem Schlüsselframe auf einer vorher bereitgestellten Anzeigeeinheit erzeugt wurden; einen Eingabeabschnitt 147, durch den eine externe Eingabe, wie beispielsweise eine Anweisung, eine Verzweigung durchzuführen, von dem Benutzer eingegeben wird; und einen Schlüsselframeeinstellabschnitt 140 zum Einstellen von Start- und Zielframes in Übereinstimmung mit der Anweisung von dem Benutzer, die durch den Eingabeabschnitt 147 empfangen wurde.
  • Wenn die in dem Schlüsselframespeicherabschnitt 141 gespeicherten Schlüsselframes auf dem Schlüsselframeeinstellabschnitt 149 auf eine solche Art und Weise eingestellt werden, dass eines der Schlüsselframes als ein Startframe und ein anderes als ein Zielframe eingestellt ist, interpoliert der Interpolationsframeerzeugungsabschnitt 143 einen Bereich zwischen den Strokes in den Bildern des Startframe und des Zielframe beispielsweise durch eine Morphing-Technik. Somit wird eine Mehrzahl von Interpolationsframes erzeugt. Das heißt, ein Steuerpunkt wird für jedes der Bitmap-Bilder bereitgestellt, das als zwei Schlüsselframes dient, um die Positionsbeziehung zwischen den beiden Bitmap-Bildern anzugeben. Außerdem kann ein Interpolationsframe an dem innen aufteilenden Punkt erzeugt werden, der auf einer die entsprechenden Steuerpunkte verbindenden Geraden durch Ändern der Steuerpunkte erzeugt werden.
  • Mit Bezug auf 105A und 105B wird nun ein Prozess zum Erzeugen eines gewöhnlichen (wenn keine Anweisung, eine Verzweigung durchzuführen, durch den Eingabeabschnitt 147 ausgeführt wird) Animationsflusses beschrieben. 105A zeigt ein Beispiel einer Animation, die erzeugt wird. 105B zeigt ein Beispiel einer Speicherung in einem aktuellen Datencache 151. Zwei vorher in dem Schlüsselframespeicherabschnitt 141 gespeicherte Schlüsselframes werden als Start- bzw. Zielframes verwendet. Sequentielle Animation wird reproduziert, während Interpolationsframes erzeugt werden. Anfangs liest der Schlüsselframeeinstellabschnitt 149 aus dem Schlüsselframespeicherabschnitt 140 das Schlüsselframe FrameA, das als das Startframe, und das Schlüsselframe FrameB, das als das Zielframe dient. Wie in 105B gezeigt ist, werden die gelesenen Schlüsselframes auf den aktuellen Datencache eingestellt. Zu dieser Zeit können reelle Daten von Schlüsselframes FrameA und FrameB in dem aktuellen Datencache 151 gespeichert werden, oder Information mit Ausnahme der reeller Daten, wie beispielsweise die Speicheradressen in dem Schlüsselframespeicherabschnitt 141, können gespeichert werden.
  • Die Anzahl von Interpolationsframes, die zwischen dem Startframe und dem Zielframe zu erzeugen ist, wird gewöhnlicherweise vorher eingestellt. Eine Änderung in der erforderlichen Anzahl der Interpolationsframes kann für den Benutzer durch den Eingabeabschnitt 147 erlaubt werden. Da eine Sekunde eines gewöhnlichen Films aus 30 Frames zusammengesetzt ist, wird ein Standardwert der Anzahl der Interpolationsframes dazu gebracht, 30 – 1 = 29 bei dieser Ausführungsform zu sein. Der Interpolationsframeerzeugungsabschnitt 143 erzeugt sequentiell 29 Interpolationsframes in Intervallen von 1/30 Sekunden zwischen den Schlüsselframes FrameA und FrameB.
  • Die sequentielle Reihenfolge des Frames, das durch den Interpolationsframeerzeugungsabschnitt 143 erzeugt wird, wird durch einen Wert eines Morphing-Schritts angegeben. Da der Morphing-Schritt in dem in 105 gezeigten Fall "n" ist, wird das Interpolationsframe, das durch den Interpolationsframeerzeugungsabschnitt 143 erzeugt wird, als Interpolationsframe (aktuelles Frame, das ein Interpolationsframe ist, das gegenwärtig erzeugt wird) FrameABn angegeben, wie in 105A gezeigt ist. Mit Bezug auf 106A und 106B wird nun ein Verzweigungsprozess des Animationsflusses, der durchgeführt wird, wenn eine Anweisung, eine Verzweigung durchzuführen, durch den Eingabeabschnitt 147 gemacht wurde, nun beschrieben.
  • Wenn eine Anweisung, eine Verzweigung durchzuführen, von dem Benutzer durch den Eingabeabschnitt 147 während der Erzeugung oder Reproduktion des in 105A gezeigten aktuellen Frames FrameABn ausgeführt wird, werden die Kandidaten-Schlüsselframes für das vorher in dem Schlüsselframespeicherabschnitt 151 gespeicherten Zielframe angezeigt, wie in 107 gezeigt ist. Wenn der Benutzer ein Schlüsselframe mittels der Eingabevorrichtung, wie beispielsweise einer für den Eingabeabschnitt 147 bereitgestellten Maus, auswählt, überschreibt der Schlüsselframeeinstellabschnitt 149 Daten in dem aktuellen Datencache 151 auf eine solche Art und Weise, dass das FrameABn, das Startframe zu sein, und das ausgewählte Schlüsselframe (beispielsweise Schlüsselframe FrameC) dazu gebracht wird, ein neues Zielframe zu sein. Als Ergebnis wird der Inhalt des in 105B gezeigten aktuellen Datencaches 151 geändert, wie in 105B gezeigt ist. Da das Interpolationsframe FrameABn das n-te Interpolationsframe ist, ist die Anzahl von Interpolationen an dem neuen Zielframe FrameC gleich "29 – n". Der Interpolationsframeerzeugungsabschnitt 143 und der Framereproduktionsabschnitt 145 erzeugen/reproduzieren sequentiell Interpolationsframes zum Interpolieren des Bereichs zwischen den neuen Start- und Zielframes, die auf den aktuellen Datencache 151 eingestellt sind. Das heißt, dass der Animationsfluss verzweigt wird. Wie in 106B gezeigt ist, wird das k-te Interpolationsframe an dem verzweigten Fluss, das von dem Startframe FrameABn gezählt wird, dazu gebracht, FrameABnCk durch das Interpolationsframe 143 zu sein. Es sei bemerkt, dass der Verzweigungsprozess rekursiv durchgeführt werden kann.
  • Mit Bezug auf ein in 108 gezeigtes Ablaufdiagramm wird nun die Gesamtmanipulation der in 104 gezeigten Animationserzeugungsvorrichtung beschrieben.
  • Start- und Zielframes zum Erzeugen sequentieller Animation, die von einem Benutzer durch beispielsweise den Eingabeabschnitt 147 angewiesen wird, werden aus dem Schlüsselframespeicherabschnitt 141 gelesen, um auf dem aktuellen Datencache 151 eingestellt zu werden. Zu diesem Zeitpunkt wird der Morphing-Schritt ebenfalls auf "0" initialisiert (Schritt S191).
  • Eine Mehrzahl von Schlüsselframes wird in dem Schlüsselframespeicherabschnitt 141 gespeichert, wie in 109 gezeigt ist. Außerdem werden Daten eines Zeigers für Daten in dem Schlüsselframespeicherabschnitt 141 oder kopierte Daten von reellen Daten in dem aktuellen Datencache 151 gespeichert.
  • Dann wird eine Eingabe einer Anweisung (externe Eingabe) von dem Benutzer empfangen (Schritt S193). Wenn eine Anweisung, eine Verzweigung durchzuführen, eingegeben wird (Schritt S195), werden die angewiesenen Start- und Zielframes erneut auf den aktuellen Datencache 151 eingestellt, wie oben beschrieben (Schritt S197). Der Morphing-Schritt wird ebenfalls auf "0" initialisiert. Außerdem wird ein Interpolationsframe zwischen den neuen Start- und Zielframes erzeugt (Schritt S199). Dann wird der Abschnitt von dem Startframe zu dem Zielframe durch den Framereproduktionsabschnitt 145 reproduziert (Schritt S201). Während des Reproduktionsprozesses wird die Anzahl der Morphing-Schritte erhöht. Ob ein Beendigungsbefehl von dem Benutzer durch den Eingabeabschnitt 147 ausgegeben wurde oder nicht, wird bestimmt. Wenn der Befehl nicht ausgegeben ist, kehrt die Manipulation zu Schritt S193 zurück, so dass die folgenden Manipulationen fortgesetzt werden.
  • Wenn keine Anweisung, eine Verzweigung durchzuführen, bei Schritt S195 ausgegeben wird, wird bestimmt, ob eine Erzeugung und Reproduktion der Interpolationsframes an dem vorher eingestellten Zielframe abgeschlossen wurde oder nicht, das heißt, es wird bestimmt, ob die Morphing-Schritte die vorbestimmte Anzahl der Interpolationsframes erreicht haben oder nicht (Schritt S205). Wenn die Erzeugung und Reproduktion abgeschlossen wurden, werden Start- und Zielframes zum Starten der Animation aus dem Schlüsselframespeicherabschnitt 141 auf ähnliche Weise wie Schritt S191 gelesen, um in dem aktuellen Datencache 151 eingestellt zu sein. Zu dieser Zeit wird der Morphing-Schritt ebenfalls auf "0" initialisiert. Dann wird das Interpolationsframe erzeugt (Schritt S197) und reproduziert (Schritt S201). Wenn die Reproduktion bei Schritt S205 nicht abgeschlossen ist, wird ein nächstes Interpolationsframe erzeugt (Schritt S199) und dann reproduziert (Schritt S201).
  • Wie oben beschrieben ist, werden gemäß der vierzehnten Ausführungsform erste und zweite angewiesene Schlüsselframes unter dem in dem Schlüsselframespeicherabschnitt 141 gespeicherten Schlüsselframes dazu gebracht, Start- und Zielframes zu sein. Eine Mehrzahl von Interpolationsframes zum Interpolieren des Abschnitts zwischen den Start- und Zielframes wird erzeugt, so dass ein erster Animationsfluss von dem Startframe zu dem Zielframe erzeugt wird. Wenn mindestens ein Interpolationsframe unter den mehreren Interpolationsframes bei dem ersten Animationsfluss und dem bei dem Schlüsselframespeicherabschnitt 141 gespeicherten dritten Schlüsselframe angewiesen wurden, und somit eine Anweisung, eine Verzweigung von dem ersten Animationsfluss durchzuführen, ausgeführt wurde, wird eine Mehrzahl von Interpolationsframes zum Interpolieren zwischen dem angewiesenen Interpolationsframe bei dem ersten Animationsfluss und dem dritten Schlüsselframe erzeugt. Somit wird ein zweiter Animationsfluss, der von dem angewiesenen Interpolationsframe verzweigt wurde, erzeugt. Somit erzeugt der Benutzer Framedaten von mehreren Mustern durch ein Verfahren zum Erzeugen eines Schlüsselframes und Animation. Das erzeugte Schlüsselframe ist vorher in dem Schlüsselframespeicherabschnitt 141 gespeichert, und dann werden die anfänglichen Start- und Zielframes eingestellt. Somit ist der Benutzer imstande, den Animationsfluss mit der erforderlichen Zeitsteuerung reibungslos zu ändern (verzweigen), während die Animation reproduziert wird. Das heißt, dass eine Vielfalt von Bewegungen ohne weiteres zusätzlich zu einer vorbestimmten Erzeugung erzeugt werden kann.
  • Obwohl der aktuelle Datencache 151 gemäß der vierzehnten Ausführungsform für den Schlüsselframeeinstellabschnitt 149 bereitgestellt wird, wie in 104 gezeigt ist, ist die Struktur nicht darauf begrenzt.
  • Anweisungsdaten und dergleichen, die durch den Eingabeabschnitt 147 eingegeben werden, können Daten, wie beispielsweise ein Ergebnis einer Rhythmusanalyse von Musikdaten und Dateidaten sein, die nicht direkt eingegeben werden, so wie auch Daten, die direkt durch eine Eingabevorrichtung, wie beispielsweise die Tastatur, Maus, Kamera, Mikrophon, Datenhandschuh und MIDI-Vorrichtung eingegeben werden, sein.
  • Fünfzehnte Ausführungsform
  • 110 ist ein Diagramm, das ein Beispiel der Gesamtstruktur einer Animationserzeugungsvorrichtung gemäß einer fünfzehnten Ausführungsform der Erfindung zeigt.
  • Mit Bezug auf 110 umfasst die Animationserzeugungsvorrichtung gemäß dieser Ausführungsform einen Schlüsselframespeicherabschnitt 151, bei dem eine Mehrzahl von Schlüsselframebildern mindestens ein Stroke vorher von einem Benutzer erzeugt wird. Außerdem umfasst die Vorrichtung einen Interpolationsframeerzeugungsabschnitt 153 zum Erzeugen eines Interpolationsframes zwischen dem Startframe und dem Zielframe, das beispielsweise von dem Benutzer beispielsweise durch Morphing eingestellt wird; einen Framereproduktionsabschnitt 155 zum sequentiellen Reproduzieren von Frames und Schlüsselframes, die durch den Interpolationsframeerzeugungsabschnitt 153 erzeugt werden; einen Eingabeabschnitt 157 zum Empfangen einer externen Eingabe, wie beispielsweise einer Anweisung, eine Verzweigung durchzuführen, die von dem Benutzer ausgegeben wurde; einen Schlüsselframeeinstellabschnitt 159 zum Einstellen von Start- und Zielframes in Übereinstimmung mit der Anweisung, die von dem Eingabeabschnitt 157 empfangen und von dem Benutzer ausgegeben wurde; einen Konfluenzframe-Berechnungsabschnitt 161 zum Berechnen eines Frame zur Verwendung, wenn das Animationsablaufdiagramm, das in Übereinstimmung mit einer Anweisung verzweigt wurde, um eine Verzweigung durchzuführen, von dem Eingabeabschnitt 151 empfangen und von dem Benutzer ausgegeben wurde, erneut mit dem angewiesenen Animationsfluss verbunden wird; und einen Framestapel 163, bei dem das durch den Konfluenzframe-Berechnungsabschnitt 161 berechnete Konfluenzframe und das Zielframe des verbundenen Animationsflusses vorübergehend gespeichert werden.
  • Eine Mehrzahl von Schlüsselframes wird in dem Schlüsselframespeicherabschnitt 151 gespeichert, wie in 109 gezeigt ist. Ein Datenstück eines Zeigers für Daten in dem Schlüsselframespeicherabschnitt 151 oder kopierte Daten von reellen Daten werden in dem aktuellen Datencache 165 gespeichert.
  • Mit Bezug auf 111A bis 111C wird nun ein Prozess zum Erzeugen eines gewöhnlichen (wenn keine Anweisung, eine Verzweigung durchzuführen, durch den Eingabeabschnitt 147 ausgeführt wird) Animationsflusses beschrieben. 111A zeigt ein Beispiel einer Animation, die erzeugt wird. 111B zeigt ein Beispiel der Speicherung in einem aktuellen Datencache 165. 111C zeigt ein Beispiel der Speicherung in dem Framestapel 163. Die Manipulationen sind den in 105A und 105B gezeigten ähnlich. Der Framestapel 163 bezieht sich nicht auf die Manipulationen.
  • Zwei vorher in dem Schlüsselframespeicherabschnitt 151 gespeicherten Schlüsselframes werden als Start- bzw. Zielframes verwendet. Eine sequentielle Animation wird reproduziert, während Interpolationsframes erzeugt werden. Anfangs liest der Schlüsselframeeinstellabschnitt 159 aus dem Schlüsselframespeicherabschnitt 150 das Schlüsselframe FrameA, das als das Startframe dient, und das Schlüsselframe FrameB, das als das Zielframe dient. Wie in 111B gezeigt ist, werden die gelesenen Schlüsselframes auf den aktuellen Datencache 165 eingestellt. Zu dieser Zeit können die reellen Daten von Schlüsselframes FrameA und FrameB in dem aktuellen Datencache 165 gespeichert sein, oder Information mit Ausnahme der reellen Daten, wie beispielsweise die Speicheradressen in dem Schlüsselframespeicherabschnitt 151, können gespeichert sein.
  • Die Anzahl von Interpolationsframes, die zwischen dem Startframe und dem Zielframe zu erzeugen ist, wird gewöhnlicherweise vorher eingestellt. Eine Änderung in der erforderlichen Anzahl der Interpolationsframes kann für den Benutzer durch den Eingabeabschnitt 157 erlaubt sein. Da eine Sekunde eines gewöhnlichen Films aus 30 Frames zusammengesetzt ist, wird ein Standardwert der Anzahl der Interpolationsframes dazu gebracht 30 – 1 = 29 bei dieser Ausführungsform zu sein. Der Interpolationsframeerzeugungsabschnitt 153 erzeugt sequentiell 29 Interpolationsframes in Intervallen von 1/30 Sekunde zwischen den Schlüsselframes FrameA und FrameB.
  • Die sequentielle Reihenfolge des Frames, das durch den Interpolationsframeerzeugungsabschnitt 153 erzeugt wird, wird durch einen Wert eines Morphing-Schritts angegeben. Da der Morphing-Schritt in dem in 111B gezeigten Fall "n" ist, wird das Interpolationsframe, das durch den Interpolationsframeerzeugungsabschnitt 153 erzeugt wird, als Interpolationsframe (aktuelles Frame, das ein Interpolationsframe ist, das gegenwärtig erzeugt wird) FrameABn angegeben, wie in 111A gezeigt ist.
  • Mit Bezug auf 112A und 112C werden nun Verzweigungs- und Konfluenz-Prozesse des Animationsflusses, die durchgeführt werden, in einer Anweisung, eine Verzweigung durchzuführen, durch den Eingabeabschnitt 157 ausgeführt wurde, beschrieben.
  • 112A zeigt einen Prozess, der durchgeführt wird, wenn eine Anweisung, eine Verzweigung durchzuführen, von einem Benutzer durch den Eingabeabschnitt 157 während der Erzeugung/Reproduktion des aktuellen Frames FrameABn eingegeben wird, wie in 111A gezeigt ist. Somit wird eine Verzweigung zu dem Animationsfluss des Schlüsselframe FrameC durchgeführt, und dann wird die Manipulation zu dem Animationsfluss des Schlüsselframe FrameB durch das Konfluenzframe zurückgegeben.
  • Die Manipulation, die durchgeführt wird, wenn eine Verzweigung von dem aktuellen Frame FrameABn zu dem Schlüsselframe FrameC durchgeführt wird, wird nun beschrieben.
  • FrameABn, das ein Reproduktionsframe ist, wird, wenn die Anweisung, eine Verzweigung durchzuführen, ausgegeben wurde, in dem aktuellen Datencache 165 als ein Startframe eingestellt, und das Schlüsselframe FrameC, das angewiesen wird, wenn die Anweisung, eine Verzweigung durchzuführen, ausgegeben wurde, wird in dem aktuellen Datencache 165 als ein neues Zielframe eingestellt, wie in 112B gezeigt ist. Wie in 112C gezeigt ist, wird das Schlüsselframe FrameB des vorhergehenden Zielframes in dem Framestapel 163 gespeichert. Wie in 112 gezeigt ist, wird das Konfluenzframe FrameABn + M zu dem ursprünglichen Animationsfluss, das durch den Konfluenzframeberechnungsabschnitt 161 berechnet wird, in dem Framestapel 163 gespeichert, während es in der Form von beispielsweise FILO (First-In-Last-Out) überlagert wird.
  • Somit wird die Animation verzweigt. Es sei bemerkt, dass der Verzweigungsprozess rekursiv durchgeführt werden kann.
  • Ein Verfahren zum Bestimmen eines Konfluenzframes, das von dem Konfluenzframeberechnungsabschnitt 161 benutzt wird, wird nun beschrieben. Der Konfluenzframeberechnungsabschnitt 161 ist angeordnet, um die Framenummer des Konfluenzframes in dem gesamten Animationsfluss einschließlich reeller Daten des Konfluenzframes und des verzweigten Flusses zu berechnen.
  • Anfangs werden reelle Daten des Konfluenzframes bestimmt. Wie in 113 gezeigt ist, werden reelle Daten eines M-ten Interpolationsframes, wobei M die angewiesene Nummer der Frames an dem Animationsfluss von dem Startframe (FrameABn in dem in 112A bis 112C gezeigten Fall) zu dem Schlüsselframe FrameB ist, als reelle Daten des Konfluenzframes bestimmt. Das heißt, reelle Daten des Interpolationsframes FrameABn + M, die an der M-ten (M ist eine Zahl, die eingestellt wird, die Anzahl von Interpolationsframes nicht zu überschreiten, die an dem Animationsfluss von dem Schlüsselframe FrameA zu dem Schlüsselframe FrameB eingestellt wurde) Morphing-Manipulation erzeugt werden, werden als reelle Daten bestimmt.
  • Dann wird die Framenummer des Konfluenzframes in dem gesamten Animationsfluss einschließlich des verzweigten Flusses bestimmt. Das heißt, die Framenummer des Konfluenzframes wird bestimmt, die gleiche wie die Nummer L (beispielsweise 30 Frames je Sekunde) der gesamten Frames an dem Animationsfluss von dem Startframe FrameA zu dem Zielframe FrameB in einem Fall zu sein, wo die Anweisung, eine Verzweigung durchzuführen, nicht ausgegeben wird, wie in 114 gezeigt ist. Da die Anzahl der Frames von dem Frame FrameA zu dem Frame FrameABn n ist, wird das Konfluenzframe bestimmt, ein (n + j + k)-tes Frame zu sein, das von Frame FrameA unter der Annahme gezählt wird, dass die Anzahl der Frames an dem verzweigten Fluss von dem FrameABn zu dem FrameC gleich j, die Anzahl der Frames von dem Frame FrameC zu dem Konfluenzframe gleich k und die Anzahl der Frames von dem Konfluenzframe zu dem Frame FrameB gleich L – (n + j + k) ist. In dem in 114 gezeigten Fall wird das Konfluenzframe ausgedrückt als FrameAB (n + j + k). Es sei bemerkt, dass die Werte von j und k geeignete ganze Zahlen sind, die n + j + k = L erfüllen.
  • Einen Prozess zur erneuten Verbindung mit dem ursprünglichen Animationsfluss durch das Konfluenzframe von dem Schlüsselframe FrameC, das das Zielframe ist, nachdem der in 112A bis 112C gezeigte Animationsfluss durchgeführt wurde, wird nun beschrieben. Nachdem die Reproduktion zu dem Zielframe FrameC in dem verzweigten Fluss abgeschlossen wurde, wird ein letztes Datenelement (das heißt, das Konfluenzframe FrameABn + M) von dem Framestapel 163 mittels des Frames FrameC als ein neues Startframe extrahiert, wie in 115B gezeigt ist, um in dem aktuellen Datencache 165 als ein neues Zielframe eingestellt zu werden. Dann wird die Erzeugung und Reproduktion eines Interpolationsframes von dem Startframe FrameC zu dem Zielframe FrameABn + n gestartet. Nachdem die vorhergehenden Prozesse abgeschlossen wurden, wird das FrameABn + + M" zu einem neuen Startframe gemacht, und ein letztes Datenelement (das heißt Frame B) wird aus dem Framestapel 163 zu dem aktuellen Datencache 165 genommen, um zu einem neuen Zielframe gemacht zu werden. Dann wird die Erzeugung der Reproduktion der Interpolationsframes in dem vorgegebenen Bereich durchgeführt. Somit wird die Verbindung des verzweigten Animationsflusses zu dem ursprünglichen Animationsfluss durchgeführt.
  • Mit Bezug auf ein in 116 gezeigtes Ablaufdiagramm wird nun die Gesamtmanipulation der in 110 gezeigten Animationserzeugungsvorrichtung beschrieben.
  • Beispielsweise werden Start- und Zielframes zum Erzeugen einer sequentiellen Animation, die durch den Benutzer beispielsweise durch den Eingabeabschnitt 157 angewiesen wurde, aus dem Schlüsselframespeicherabschnitt 151 gelesen, um auf dem aktuellen Datencache 165 eingestellt zu werden. Zu dieser Zeit wird der Morphing-Schritt ebenfalls auf "0" initialisiert (Schritt S211).
  • Dann wird eine Eingabeanweisung (eine externe Eingabe) von dem Benutzer empfangen (Schritt S213). Wenn eine Anweisung, eine Verzweigung durchzuführen, eingegeben wird (Schritt S215), wird ein Konfluenzframe (genauer gesagt, gelesene Daten des Framebilds und der Framenummer, wie oben mit Bezug auf 113 und 114 beschrieben) berechnet, das mit dem ursprünglichen Animationsfluss zu verbinden sind, nachdem eine Verzweigung in einem Fall durchgeführt wurde, in dem das angewiesene Schlüsselframe in dem Schlüsselframespeicherabschnitt 151 das Zielframe ist (Schritt S217). Dann wird das aktuelle Frame, wenn die Anweisung, eine Verzweigung durchzuführen, ausgegeben wurde, erneut auf den aktuellen Datencache 165 als das Startframe eingestellt. Außerdem wird das Schlüsselframe, das mit der Anweisung angewiesen wurde, eine Verzweigung durchzuführen, erneut als das Zielframe auf den aktuellen Datencache 165 eingestellt. Dann wird das vorhergehende Zielframe in dem Framestapel 163 gespeichert. Das bei Schritt S217 berechnete Konfluenzframe wird ebenfalls in dem Framestapel 163 gespeichert (Schritt S219). Dann wird ein Interpolationsframe zwischen den Start- und Zielframes durch den Konfluenzframeberechnungsabschnitt 161 erzeugt (Schritt S221). Dann wird der Abschnitt von dem Startframe zu dem Zielframe durch den Framereproduktionsabschnitt 155 reproduziert (Schritt S223). Währenddessen wird die Anzahl der Morphing-Schritte erhöht. Ob eine Anweisung, den Prozess zu beenden, von dem Benutzer durch den Eingabeabschnitt 157 ausgegeben wurde oder nicht, wird bestimmt (Schritt S225). Wenn die Anweisung nicht ausgegeben wurde, wird die Manipulation zu Schritt S213 zurückgegeben, so dass die folgenden Manipulationen fortgesetzt werden.
  • Wenn die Anweisung, eine Verzweigung durchzuführen, bei Schritt S215 nicht eingegeben wird, wird bestimmt, ob die Reproduktion zu dem Zielframe abgeschlossen wurde oder nicht, das heißt, ob der Morphing-Schritt die vorbestimmte Anzahl der Interpolationsframes erreicht hat oder nicht, wird bestimmt (Schritt S227). Wenn die Reproduktion nicht abgeschlossen wurde, wird der Morphing-Schritt, so wie er ist, erhöht. Dann wird ein nächstes Interpolationsframe erzeugt (Schritt S221) und dann reproduziert (Schritt S223). Wenn die Reproduktion nicht abgeschlossen wurde, wird bestimmt, ob Daten in den Framestapel 163 existieren oder nicht (Schritt S229). Wenn Daten existieren, wird ein Datenelement unter den in dem Framestapel 163 gestapelten Datenelementen, das das neueste Element ist, extrahiert. Dann werden neue Start- und Zielframes auf den aktuellen Datencache 165 eingestellt. Der Morphing-Schritt wird ebenfalls auf "0" initialisiert (Schritt S219). Wenn keine Daten in dem Framestapel 163 existieren, werden Start- und Zielframes zum Starten der Animation aus dem Schlüsselframespeicherabschnitt 151 ähnlich zum Schritt 211 gelesen, um auf den aktuellen Datencache 165 eingestellt zu werden. Der Morphing-Schritt wird ebenfalls auf "0" initialisiert. Dann werden Interpolationsframes während des vorhergehenden Prozesses erzeugt (Schritt S221) und dann reproduziert (Schritt 223).
  • Wie oben beschrieben ist, werden gemäß der fünfzehnten Ausführungsform angewiesene erste und zweite Schlüsselframes unter den in dem Schlüsselframespeicherabschnitt 151 gespeicherten Schlüsselframes als Start- und Zielframes verwendet. Eine Mehrzahl von Interpolationsframes zum Interpolieren zwischen den Start- und Zielframes wird erzeugt. Somit wird ein erster Animationsfluss von dem Startframe zu dem Zielframe erzeugt. Mindestens ein Interpolationsframe unter der Mehrzahl der Interpolationsframes in dem ersten Animationsfluss und der in dem Schlüsselframespeicherabschnitt 151 gespeicherte dritten Schlüsselframe werden angewiesen. Wenn eine Verzweigung von dem ersten Animationsfluss angewiesen wurde, wird eine Mehrzahl von Interpolationsframes zum Interpolieren des Abschnitts zwischen dem angewiesenen Interpolationsframe bei dem ersten Animationsfluss und dem dritten Schlüsselframe erzeugt. Somit wird ein Animationsfluss, der von dem angewiesenen Interpolationsframe verzweigt wurde, erzeugt. Wenn eine Verzweigung von dem ersten Animationsfluss angewiesen wurde, wird ein Interpolationsframe aus den mehreren Interpolationsframes bei dem ersten Animationsfluss ausgewählt. Dann wird eine Mehrzahl von Interpolationsframes zum Interpolieren des Abschnitts zwischen dem dritten Schlüsselframe und dem ausgewählten Interpolationsframe erzeugt, so dass ein dritter Animationsfluss, der von dem zweiten Animationsfluss zu dem ersten Animationsfluss verbunden wird, erzeugt wird. Zu dieser Zeit wird die Anzahl von Interpolationsframes zum Interpolieren eines Abschnitts von dem angewiesenen Interpolationsframe in dem ersten Animationsfluss zu dem dritten Schlüsselframe und die Anzahl von Interpolationsframes zum Interpolieren des dritten Schlüsselframes und des ausgewählten Interpolationsframes in dem ersten Animationsfluss in Übereinstimmung mit der vorbestimmten Anzahl von Interpolationsframes zwischen dem ersten Schlüsselframe und dem zweiten Schlüsselframe berechnet. Somit ist der Benutzer imstande, die Prozedur zum Erstellen eines Schlüsselframes und die Animation, um Framedaten in einer Mehrzahl von Mustern zu erzeugen, zu benutzen. Das erzeugte Schlüsselframe wird vorher in dem Schlüsselframespeicherabschnitt 151 gespeichert, und die anfänglichen Start- und Zielframes werden eingestellt. Somit wird der Benutzer reibungslos das Schlüsselframe mit der erforderlichen Zeitsteuerung umschalten, während die Animation reproduziert wird. Das Konfluenzframe, das erneut mit dem vorhergehenden Frame verbunden wird, wird verwendet, so dass eine einmal verzweigte Animation mit dem ursprünglichen Animationsfluss verbunden wird. Somit kann die Animation, die geändert wird, um einer Anweisung (beispielsweise Rhythmus) von dem Benutzer zu folgen, beliebig erzeugt werden.
  • Obwohl die fünfzehnte Ausführungsform auf eine solche Art und Weise angeordnet ist, dass der aktuelle Datencache 165 für den Schlüsselframeeinstellabschnitt 159 bereitgestellt wird, wie in 110 gezeigt ist, ist die Struktur nicht auf die vorstehende Struktur beschränkt.
  • Anweisungsdaten und dergleichen, die durch den Eingabeabschnitt 151 eingegeben werden, können Daten sein, wie beispielsweise ein Ergebnis einer Rhythmusanalyse von Musikdaten oder Dateidaten sein, die nicht direkt eingegeben werden, so wie auch Daten sein, die direkt durch eine Eingabevorrichtung, wie beispielsweise der Tastatur, Maus, Kamera, Mikrophon, Daten-Handschuh und MIDI-Vorrichtung, eingegeben werden.
  • Sechzehnte Ausführungsform
  • 117 ist ein Diagramm, das ein Beispiel der Gesamtstruktur einer Animationserzeugungsvorrichtung gemäß einer sechzehnten Ausführungsform der Erfindung zeigt.
  • Mit Bezug auf 117 umfasst die Animationserzeugungsvorrichtung gemäß dieser Ausführungsform ein Schlüsselframespeichermittel 171, bei dem eine Mehrzahl von Schlüsselframebildern, die jeweils aus mindestens einem vorher durch einen Benutzer erzeugten Stroke zusammengesetzt sind, gespeichert sind; einen Interpolationsframeerzeugungsabschnitt 173 zum Erzeugen eines Interpolationsframe zwischen den Start- und Zielframes, die beispielsweise durch den Benutzer durch Morphing eingestellt werden; einen Framereproduktionsabschnitt 175 zum sequentiellen Reproduzieren der durch den Interpolationsframeerzeugungsabschnitt 173 und den Schlüsselframe erzeugten Frames auf einer vorbestimmten Anzeigeeinheit; einen Eingabeabschnitt 177 zum Aufnehmen einer externen Eingabe, wie beispielsweise einer Anweisung zum zusätzlichen Einführen eines Flusses von dem Benutzer; einen Schlüsselframeeinstellabschnitt 179 zum Einstellen von Start- und Zielframes in Übereinstimmung mit einer von dem Benutzer ausgegebenen Anweisung; und einen Multi-Schlüsselframe-Speicherabschnitt 181, bei dem eingestellte Daten von Starts und Zielen einer Mehrzahl von Animationsflüssen gespeichert sind.
  • Wie in 109 gezeigt ist, wird eine Mehrzahl von Schlüsselframes in dem Schlüsselframespeichermittel 171 gespeichert. Zeigerdaten für Daten in dem Schlüsselframespeichermittel 171 oder Kopierdaten von reellen Daten werden in dem Multi-Schlüsselframe-Speicherabschnitt 181 gespeichert.
  • Wie in 118 gezeigt ist, werden eingestellte Daten von Start- und Zielframes der Anfangsanimation und eingestellte Daten eines Startframes (eines aktuellen Frames, das mit einer Anweisung einer Einfügung in den anfänglichen Animationsfluss angewiesen wird) und eines Zielframes der Animation, das eingefügt wird, zusammen mit einem Morphing-Schritt (der erhöht wird, wenn der Bedarf entsteht), der die Interpolationsframenummer während der Erzeugung und Reproduktion ist, in dem Multi-Schlüsselframe-Speicherabschnitt 181 gespeichert.
  • Mit Bezug auf 119 wird nun ein Prozess zum Erzeugen eines Animationsflusses beschrieben, bei dem eine Anweisung, die eingegeben wurde, um einen Fluss einzufügen, durch den Eingabeabschnitt 177 empfangen wird, und ein neuer Animationsfluss in den anfänglichen Animationsfluss eingefügt wird, der reproduziert wurde, um dadurch beide Animationen gleichzeitig zu reproduzieren.
  • Der Interpolationsframeerzeugungsabschnitt 173 erzeugt ein Interpolationsframe für den anfänglichen Animationsfluss in Übereinstimmung mit dem Satz (in 118 und 119 ist das Startframe FrameA und das Zielframe FrameB) der Start- und Zielframes, die für den Zweck des Erzeugens des anfänglichen Animationsflusses zu dem Multischlüsselframespeicherabschnitt 183 eingestellt wurden, wie in 119 gezeigt ist. Außerdem erzeugt der Interpolationsframeerzeugungsabschnitt 173 ein Interpolationsframe für eine neue Animation mit einem Startframe, das das aktuelle Frame (FrameABi) ist, das in dem anfänglichen Animationsfluss enthalten ist, der von der Anweisung zur Einfügung angewiesen wurde und der reproduziert wird, und ein Zielframe, das das Schlüsselframe FrameC ist, das angewiesen wurde, wenn die Einfügungsanweisung ausgeführt wurde.
  • Der Framereproduktionsabschnitt 175 reproduziert gleichzeitig die Frames, die dem aktuellen Frame (FrameABi) in dem anfänglichen Animationsfluss folgen, der angewiesen wurde, wenn die Einfügung angewiesen wurde, und die in dem neuen Animationsfluss enthalten sind. Das heißt, dass, wenn die vorliegenden Werte der Morphing-Schritte des neuen Animationsflusses (das heißt, der Wert der Framenummern des aktuellen Frames FrameABn in jedem Fluss) gleich i + k, k (k = 1, 2, 3, ...,) sind, werden Interpolationsframes (FrameABi + k) des anfänglichen Animationsflusses und Interpolationsframes (FrameABiCK) des neuen Animationsflusses gleichzeitig gezeichnet, wie in 119 gezeigt ist.
  • Mit Bezug auf ein in 120 gezeigtes Ablaufdiagramm wird nun die Gesamtmanipulation der in 118 gezeigten Animationserzeugungsvorrichtung beschrieben.
  • Beispielsweise werden zwei Schlüsselframes unter den in dem Schlüsselframespeichermittel 171 gespeicherten Schlüsselframes, die von dem Benutzer durch den Eingabeabschnitt 177 angewiesen wurden, als die Start- und Zielframes zum Erzeugen des anfänglichen Animationsflusses an dem Multi-Schlüsselframe-Speicherabschnitt 181 registriert. Zu dieser Zeit wird der Wert des Morphing-Schritts ebenfalls auf "0" initialisiert (Schritt S301).
  • Dann wird eine Eingabe einer Anweisung von einem Benutzer (Eingabe von. außen) empfangen (Schritt S302). Wenn eine Anweisung einer Einfügung eingegeben wird (Schritt S303), wird eine neue Animation zusätzlich an dem Multi-Schlüsselframe-Speicherabschnitt 181 auf eine solche Art und Weise registriert, dass das Schlüsselframe, das in dem Schlüsselframespeichermittel 171 gespeichert ist und zu dieser Zeit angewiesen wird, als das Zielframe dient, und das aktuelle Frame in dem anfänglichen Animationsfluss, das reproduziert wird, als das Startframe dient (Schritt S304). Es sei bemerkt, dass eine Mehrzahl von Flüssen von neuer Animation anstatt des Registrierens nur eines Flusses registriert werden kann.
  • Dann werden Interpolationsframes in dem Interpolationsframeerzeugungsabschnitt 173 durch die Anzahl erzeugt, die die gleiche wie die Anzahl der Animationsflüsse ist, die an dem Multi-Schlüsselframe-Speicherabschnitt 181 registriert ist (Schritt S305). Alle Frames der erzeugten Animationsflüsse werden gleichzeitig reproduziert (Schritt S306). Die Anzahl von Morphing-Schritte wird ebenfalls während des vorstehenden Prozesses erhöht. Ob eine Anweisung zur Beendigung durch den Eingabeabschnitt 177 ausgegeben wurde oder nicht, wird bestimmt. Wenn die Anweisung nicht ausgegeben wurde, kehrt die Manipulation zu Schritt 302 zurück, und dann werden die folgenden Manipulationen fortgesetzt.
  • Wenn die Anweisung nicht die Anweisung für die Einfügung bei Schritt S303 ist, werden Animationsflüsse bestimmt, die an dem Multi-Schlüsselframe-Speicherabschnitt 181 registriert sind, die Interpolationsframes aufweisen, die an den Zielframes erzeugt/reproduziert wurden (Schritt S308). Die abgeschlossenen Animationsflüsse werden von dem Multi-Schlüsselframe-Speicherabschnitt 181 gelöscht (Schritt S309). Hinsichtlich eines Restabschnitts der Animationsflüsse werden Interpolationsframes erzeugt, während die Morphing-Schritte erhöht werden (Schritt S305), und dann wird der Animationsfluss reproduziert (Schritt S306).
  • Wenn die Erzeugung und Reproduktion der Interpolationsframes aller Animationsflüsse nicht bei Schritt S308 abgeschlossen sind, werden Interpolationsframes erzeugt, während die Morphing-Schritte erhöht werden (Schritt S305), und dann wird der Animationsfluss reproduziert (Schritt S306).
  • Wie oben beschrieben ist, werden gemäß der sechzehnten Ausführungsform die ersten und zweiten Schlüsselframes unter den in dem Schlüsselframespeichermittel 171 gespeicherten Schlüsselframes als Start- und Zielframes verwendet. Dann wird eine Mehrzahl von Interpolationsframes zum Interpolieren der beiden Frames erzeugt, so dass ein erster Animationsfluss von dem Startframe zu dem Zielframe erzeugt wird. Mindestens ein Interpolationsframe unter der Mehrzahl der Interpolationsframes des ersten Animationsflusses und ein oder mehrere dritte Schlüsselframes, die in dem Schlüsselframespeichermittel 171 gespeichert sind, werden angewiesen. Außerdem wird die Einfügung einer oder mehrerer zweiter Animationsflüsse, die sich von dem ersten Animationsfluss unterscheiden, in den ersten Animationsfluss angewiesen. In dem vorstehenden Fall wird der zweite Animationsfluss in den ersten Animationsfluss nach dem angewiesenen Interpolationsframe eingefügt, wobei der zweite Animationsfluss aus dem angewiesenen Interpolationsframe gebildet wird, das durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren des Abschnitts von dem angewiesenen Interpolationsframe in dem ersten Animationsfluss zu dem dritten Schlüsselframe gebildet wird. Somit ist der Benutzer imstande, die Prozedur zum Erzeugen eines Schlüsselframes und Animation, um Framedaten in einer Mehrzahl von Mustern zu erzeugen, zu benutzen. Das erzeugte Schlüsselframe wird vorher in dem Schlüsselframespeicherabschnitt 171 gespeichert. Dann stellt der Benutzer die anfänglichen Start- und Zielframes ein, so dass eine Mehrzahl von Animationsflüssen eingefügt und gleichzeitig mit der erforderlichen Zeitsteuerung reproduziert werden, während die Animation reproduziert wird. Als Ergebnis kann eine Animation, die beispielsweise eine Szene ausdrückt, bei der Blumenblätter gestreut werden, ohne weiteres erzeugt werden.
  • Anweisungsdaten und dergleichen, die durch den Eingabeabschnitt 177 eingegeben werden, können Daten, wie beispielsweise ein Ergebnis einer Rhythmusanalyse von Musikdaten oder Dateidaten, die nicht direkt eingegeben werden, so wie auch Daten sein, die direkt durch eine Eingabevorrichtung, wie beispielsweise der Tastatur, Maus, Kamera, Mikrophon, Daten-Handschuh und MIDI-Vorrichtung, eingegeben werden.
  • Wie oben beschrieben, ist es gemäß der vierzehnten bis sechzehnten Ausführungsformen für den Benutzer nur erforderlich, Framedaten einer kleinen Anzahl von Mustern durch das Verfahren zum Erzeugen einer Schlüsselframe/Animation zu erzeugen und anfängliche Start- und Zielframes einzustellen, um Animation in einer unendlichen Anzahl von Mustern zu erzeugen. Außerdem kann die Animation interaktiv und reibungslos umgeschaltet werden, während die Animation reproduziert wird. Außerdem kann eine neue Animation durch ihre Hinzufügung zu dem ursprünglichen Fluss erzeugt werden sowie auch Umschalten erlaubt sein.
  • Die Verfahren gemäß den ersten bis sechzehnten Ausführungsformen kann in einem Programm ausgebildet sein, das von einem Computer ausgeführt und auf einem Aufzeichnungsmedium, wie beispielsweise einer Floppy-Disk, einer Festplatte, einer CD-ROM oder einem Halbleiterspeicher, die verteilt werden können, gespeichert werden kann.

Claims (56)

  1. Animationserzeugungsvorrichtung zum Erzeugen einer Animation, die Schlüsselframebilder, die aus einem oder mehreren Strokes zusammengesetzt sind, und ein Interpolationsframebild, das aus Interpolationsstrokes zusammengesetzt ist, die durch Interpolieren eines Abschnitts zwischen den Strokes jedes Schlüsselframebildes erzeugt werden, aufweist, wobei die Animationserzeugungsvorrichtung umfasst ein Eingabemittel (1) zum Eingeben eines oder mehrerer Strokes in jedes Schlüsselframe; ein Quantisierungsmittel (4) zum Quantisieren jedes durch das Eingabemittel in jedes Schlüsselframe eingegebenen Strokes in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; und ein Erzeugungsmittel (6) zum Erzeugen eines Interpolationsvektors zum Interpolieren zwischen den entsprechenden Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag zwischen den entsprechenden Einheitsvektoren der Schlüsselframes.
  2. Animationserzeugungsvorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, dass das Quantisierungsmittel (4) den Stroke in Einheitsvektoren in Übereinstimmung mit der Beziehung zwischen den Längen der beiden entsprechenden Strokes, die zu benachbarten Schlüsselframes gehören, aufteilt.
  3. Animationserzeugungsvorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, dass das Eingabemittel (1) zweite und folgende Linienzeichnungen auf eine solche Art und Weise eingibt, dass eine vorher eingegebene Linienzeichnung dargestellt wird.
  4. Animationserzeugungsvorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, dass die Anzahl von Interpolationsframes zum Interpolieren des Abschnitts zwischen den mehreren Schlüsselframes und die Zeitintervalle zwischen Reproduktionen der Interpolationsframes vorher angewiesen werden.
  5. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein erstes Eingabemittel (1) zum Eingeben von einem oder mehreren Strokes in Abschnitte entlang Bildabschnitten eines ursprünglichen Bildes, die bewegt werden müssen; ein zweites Eingabemittel (1) zum Eingeben von einem oder mehreren Strokes, die die Formänderungen der Strokes angeben, die von dem ersten Eingabemittel eingegeben wurden; ein erstes Erzeugungsmittel (6) zum Erzeugen von Interpolationsstrokes zum Interpolieren von Abschnitten zwischen Strokes, die von ersten und zweiten Eingabemitteln eingegeben wurden; und ein zweites Erzeugungsmittel (7, 8, 9, 10) zum Erzeugen einer Mehrzahl von Bildframes durch Verformung und/oder Bewegen von Bildbereichen benachbart zu den Strokes, die von dem ersten Eingabemittel eingegeben wurden, in Übereinstimmung mit den Positionen und Formen der Strokes, die von dem zweiten Eingabemittel eingegeben wurden, und den Interpolationsstrokes und durch Kombinieren der Bildbereiche mit dem ursprünglichen Bild.
  6. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein erstes Eingabemittel (1) zum Eingeben von einem oder mehreren Strokes in Abschnitte entlang des Bildabschnitts eines ursprünglichen Bildes, die bewegt werden müssen; ein zweites Eingabemittel (1) zum Eingeben von einem oder mehreren Strokes, die die Formen der Änderungen der Strokes angeben, die von dem ersten Eingabemittel eingegeben wurden; ein Quantisierungsmittel (4) zum Quantisieren der Strokes, die von dem ersten und zweiten Eingabemittel eingegeben wurden, in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; ein erstes Erzeugungsmittel (6) zum Erzeugen von Interpolationsvektoren zum Interpolieren von Abschnitten zwischen Einheitsvektoren, die durch die quantisierende Manipulation erhalten wurden, die von dem Quantisierungsmittel durchgeführt wurde, und entsprechend den Strokes, die von dem ersten und zweiten Eingabemittel eingegeben wurden; und ein zweites Erzeugungsmittel (7, 8, 9) zum Erzeugen einer Mehrzahl von Bildframes durch Bewegen und/oder Verformen von Bildbereichen benachbart zu den Einheitsvektoren, die durch Quantisieren durch das Quantisierungsmittel der Strokes erhalten wurden, die von dem ersten Eingabemittel eingegeben wurden, in Übereinstimmung mit den Einheitsvektoren, die durch Quantisieren durch das Quantisierungsmittel der Strokes erhalten wurden, die von dem zweiten Eingabemittel eingegeben wurden, und den Interpolationsvektoren und durch Kombinieren der Bildbereiche mit den ursprünglichen Bildern.
  7. Animationserzeugungsvorrichtung gemäß Anspruch 5 oder 6, dadurch gekennzeichnet, dass das zweite Eingabemittel (1) einen Stroke auf eine solche Art und Weise eingibt, dass ein in einem vorhergehenden Frame eingegebener Stroke dargestellt wird.
  8. Animationserzeugungsvorrichtung gemäß Anspruch 5 oder 6, dadurch gekennzeichnet, dass die Anzahl der erzeugten Bildframes und die Zeitintervalle zwischen Reproduktionen der Bildframes vorher angewiesen werden.
  9. Animationserzeugungsvorrichtung gemäß Anspruch 7, dadurch gekennzeichnet, dass das zweite Erzeugungsmittel (7, 8, 9) eine Mehrzahl von Bildframes durch Bewegen und/oder Verformen von Bildbereichen benachbart den Einheitsvektoren erzeugt, die durch Quantisieren durch das Quantisierungsmittel (4) der Strokes erhalten werden, die von dem ersten Eingabemittel (1) eingegeben wurden, in Übereinstimmung mit der Beziehung der Verbindung zwischen den entsprechenden Einheitsvektoren, die durch Quantisieren durch das Quantisierungsmittel (4) der Strokes erhalten wurden, die von dem zweiten Eingabemittel (1) erhalten wurden, und den Interpolationsvektoren und durch Kombinieren der Bildbereiche mit den ursprünglichen Bildern.
  10. Animationserzeugungsvorrichtung gemäß Anspruch 6, dadurch gekennzeichnet, dass das Quantisierungsmittel (4) die Strokes in Einheitsvektoren in Übereinstimmung mit der Beziehung der Längen der beiden entsprechenden Strokes aufteilt, die zu benachbarten Frames gehören.
  11. Animationserzeugungsvorrichtung gemäß Anspruch 6, dadurch gekennzeichnet, dass das zweite Erzeugungsmittel (7, 8, 9) Bildbereiche entlang Einheitsvektoren schneidet, die durch Quantisieren durch das Quantisierungsmittel der von dem zweiten Eingabemittel eingegebenen Strokes erhalten wurden und eine vorbestimmte Größe aufweisen, und die geschnittenen Bildbereiche in Übereinstimmung mit den Einheitsvektoren, die durch Quantisieren durch das Quantisierungsmittel des von dem zweiten Eingabemittel eingegebenen Strokes erhalten wurden, und den Interpolationsvektoren bewegt und/oder verformt, und die Bildbereiche mit den ursprünglichen Bildern kombiniert.
  12. Animationserzeugungsvorrichtung gemäß Anspruch 6, dadurch gekennzeichnet, dass das zweite Erzeugungsmittel (7, 8, 9) Bildbereiche entlang Einheitsvektoren schneidet, die durch Quantisieren durch das Quantisierungsmittel der von dem ersten Eingabemittel eingegebenen Strokes erhalten wurden und eine bestimmten Größe aufweisen, und die geschnittenen Bildbereiche in Übereinstimmung mit den Einheitsvektoren, die durch Quantisieren durch das Quantisierungsmittel des von dem zweiten Eingabemittel eingegebenen Strokes erhalten wurden, und den Interpolationsvektoren bewegt und/oder verformt, und die Bildbereiche mit dem ursprünglichen Bildern kombiniert, und Interpolationsbilder, die in Übereinstimmung mit einem Hintergrundbild erzeugt wurden, benachbart den geschnittenen Bildbereichen in einen näheren Bereich platziert, der erzeugt wurde, da die Bildbereiche mit den vorbestimmten Größen geschnitten werden.
  13. Animationserzeugungsverfahren zum Erzeugen einer Animation, die Schlüsselframebilder, die aus einem oder mehreren Strokes zusammengesetzt sind, und ein Interpolationsframebild, das aus Interpolationsstrokes zusammengesetzt ist, die durch Interpolieren eines Abschnitts zwischen den Strokes jedes Schlüsselframebildes erzeugt werden, umfasst, wobei das Animationserzeugungsverfahren folgende Schritte umfasst: Quantisieren eines oder mehrerer, von einem Benutzer in jedes Schlüsselframe eingegeben Strokes in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; und Erzeugen eines Interpolationsvektors zum Interpolieren zwischen den entsprechenden Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag zwischen den entsprechenden Einheitsvektoren der Schlüsselframes (Schritte S17, S18).
  14. Animationserzeugungsverfahren gemäß Anspruch 13, ferner gekennzeichnet durch: Erzeugen eines oder mehrerer, von einem Benutzer eingegebener Strokes entlang eines Bildabschnitts eines ursprünglichen Bildes, der bewegt werden muss, und Interpolieren von Strokes zum Interpolieren eines Abschnitts zwischen einem oder mehreren Änderungsstrokes, die die Formänderungen der Strokes angeben; und Bewegen und/oder Verformen von Bildbereichen benachbart zu einem oder mehreren Strokes entlang des Bildabschnitts des ursprünglichen Bilds, der bewegt werden muss, in Übereinstimmung mit Positionen und Formen der Änderungsstrokes und Interpolationsstrokes, um mit den ursprünglichen Bildern kombiniert zu werden, so dass eine Mehrzahl von Bildframe erzeugt wird (Schritte S18, S19).
  15. Animationserzeugungsverfahren gemäß Anspruch 13, ferner gekennzeichnet durch: Quantisieren eines oder mehrerer von einem Benutzer eingegebener Strokes und entlang eines Bildabschnitts eines ursprünglichen Bildes, der bewegt werden muss, und eines oder mehrerer Änderungsstrokes, die die Formänderungen der Strokes angeben, in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; Erzeugen von Interpolationsvektoren zum Interpolieren von Abschnitten zwischen den Strokes und Einheitsvektoren in Übereinstimmung mit Beträgen von Änderungen zwischen einem oder mehreren Strokes entlang des Bildabschnitts der ursprünglichen Bilder, die bewegt werden müssen, und den Einheitsvektoren, denen die Änderungsstrokes entsprechen; und Bewegen und/oder Verformen von Bildbereichen benachbart jedem der Einheitsvektoren der einen oder mehreren Strokes entlang der Bildabschnitte der ursprünglichen Bilder, die bewegt werden müssen, in Übereinstimmung mit den Einheitsvektoren der entsprechenden Änderungsstrokes und den Interpolationsvektoren, so dass eine Mehrzahl von Bildframes erzeugt werden (Schritte S17, S18, S19).
  16. Aufzeichnungsmedium mit einem computernutzbaren Medium, das darin aufgenommene computerlesbare Codemittel aufweist, um zu veranlassen, dass eine Animation erzeugt wird, mit Schlüsselframebildern, die durch eine oder eine Mehrzahl von Strokes gebildet werden, und einem Interpolationsframebild, das durch durch Interpolieren von Strokes jedes Schlüsselframebildes erzeugte Interpolationsstrokes gebildet wird, wobei das computerlesbare Programmcodemittel in dem Aufzeichnungsmedium umfasst: ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, einen oder eine Mehrzahl von Strokes in jeden der Schlüsselframe einzugeben; ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, einen oder eine Mehrzahl von von einem Benutzer eingegebener Strokes in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen, zu quantisieren; und ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, interpolierte Vektoren zu erzeugen, die die entsprechenden Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag zwischen den entsprechenden Einheitsvektoren der Schlüsselframes interpolieren.
  17. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch Umfassen eines computernutzbaren Mediums, das computerlesbare Programmcodemittel aufweist, die darin aufgenommen sind, um zu veranlassen, dass eine Animation erzeugt wird, die aus einer Mehrzahl von Bildframes basierend auf einem oder einer Mehrzahl von ursprünglichen Bildern zusammengesetzt ist, wobei das computerlesbare Programmcodemittel umfasst: ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, einen oder eine Mehrzahl von von einem Benutzer eingegebener Strokes entlang eines gewünschten Bildabschnitts in einem ursprünglichen Bild, auf den eine Bewegung anzuwenden ist, und interpolierte Strokes, die einen oder eine Mehrzahl von geänderten Strokes interpolieren, die den geänderten Zustand der Strokes angeben, zu erzeugen; und ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, eine Mehrzahl von Bildframes durch Bewegen, Modifizieren oder Bewegen und Modifizieren eines Abschnitts, der benachbart zu dem einen oder einer Mehrzahl von Strokes entlang des gewünschten Bildabschnitts in dem ursprünglichen Bild ist, auf den die Bewegung in Übereinstimmung mit einer Position und einer Form der geänderten Strokes und der Interpolationsstrokes angewendet werden soll, und durch Mischen des resultierenden Chunks und des ursprünglichen Bildes zu erzeugen.
  18. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch ein computerlesbares Medium mit computerlesbaren Programmcodemitteln, die darin aufgenommen sind, um zu veranlassen, dass eine Animation erzeugt wird, aufgebaut aus einer Mehrzahl von Bildframes basierend auf einem oder einer Mehrzahl von ursprünglichen Bildern, wobei das computerlesbare Programmcodemittel umfasst: ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, einen oder eine Mehrzahl von von einem Benutzer eingegeben Strokes entlang eines gewünschten Bildabschnitts in dem ursprünglichen Bild, auf das eine Bewegung anzuwenden ist, und einen oder eine Mehrzahl von geänderten Strokes, die geänderte Zustände der Strokes angeben, in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen, zu quantisieren; ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, interpolierte Vektoren zu erzeugen, die die Einheitsvektoren basierend auf dem geänderten Betrag der entsprechenden Einheitsvektoren des einen oder einer Mehrzahl von Strokes entlang des Bildabschnitts, auf den die Bewegung angewendet wird und der von dem ursprünglichen Bild extrahiert ist, und auf den geänderten Strokes interpolieren; und ein computerlesbares Programmcodemittel, um einen Computer zu veranlassen, eine Mehrzahl von Bildframes durch Bewegen, Modifizieren oder Bewegen und Modifizieren eines Chunk, der benachbart dem einen oder der Mehrzahl von Strokes angeordnet ist, entlang des gewünschten Bildabschnitts in dem ursprünglichen Bild, auf das die Bewegung anzuwenden ist, in Übereinstimmung mit einer Position und einer Form der geänderten Strokes und der Interpolationsstrokes, und durch Mischen des resultierenden Chunks und des ursprünglichen Bildes zu erzeugen.
  19. Bilderzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein Eingabemittel (1) zum Eingeben eines oder einer Mehrzahl von Strokes in jedes der Framebilder; ein Korrespondenzherstellungsmittel (11), um die von dem Eingabemittel eingegebenen Strokes dazu zu bringen, einander zwischen den mehreren Framebildern zu entsprechen; und ein Erzeugungsmittel (6) zum Erzeugen eines Interpolationsstrokes zum Interpolieren eines Abschnitts zwischen den Strokes, die durch das Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen.
  20. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein Eingabemittel (1) zum Eingeben eines oder einer Mehrzahl von Strokes in jedes der Framebilder; ein erstes Korrespondenzherstellungsmittel (11), um die von dem Eingabemittel eingegebenen Strokes dazu zu bringen, zwischen den mehreren Framebildern einander zu entsprechen; ein Quantisierungsmittel (4) zum Quantisieren der Strokes in Einheitsvektoren, die jeweils eine beliebige Länge aufweisen; ein zweites Korrespondenzherstellungsmittel (11), um die Einheitsvektoren dazu zu bringen, einander zwischen den Strokes zu entsprechen, die dazu gebracht wurden, einander mit der Anzahl von Einheitsvektoren jeder der Strokes zu entsprechen, die durch das Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen; und ein Erzeugungsmittel (6) zum Erzeugen eines Interpolationsvektors zum Interpolieren eines Abschnitts zwischen den Einheitsvektoren in Übereinstimmung mit dem Änderungsbetrag zwischen den Einheitsvektoren, die durch das zweite Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen.
  21. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein erstes Eingabemittel (1) zum Eingeben eines oder einer Mehrzahl von ersten Strokes entlang eines Bildabschnitts; ein zweites Eingabemittel (1) zum Eingeben eines oder einer Mehrzahl von Strokes, die die Formänderungen der von den ersten Eingabemitteln eingegebenen ersten Strokes angeben; ein Korrespondenzherstellungsmittel (11), um die ersten und zweiten Strokes dazu zu bringen, einander zu entsprechen; ein erstes Erzeugungsmittel (6) zum Erzeugen eines Interpolationsstrokes zum Interpolieren eines Abschnitts zwischen den ersten und zweiten Strokes, die durch das Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen; ein zweites Erzeugungsmittel (13) zum Bewegen oder Verformen oder Bewegen und Verformen eines dem ersten Stroke benachbarten Bildbereichs in Übereinstimmung mit der Position und Form des zweites Strokes, der dazu gebracht wurde, dem ersten Stroke zu entsprechen, und denjenigen des Interpolationsstrokes, um ein Einheitsbild zu erzeugen, das jedem zweiten Stroke und Interpolationsstroke entspricht; und ein drittes Erzeugungsmittel (9) zum Erzeugen eines Framebildes durch Mischen des Einheitsbildes in dem ursprünglichen Bild in Übereinstimmung mit dem zweiten Stroke oder dem Interpolationsstroke.
  22. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein erstes Eingabemittel (1) zum Eingeben eines oder einer Mehrzahl von ersten Strokes entlang eines Bildabschnitts; ein zweites Eingabemittel (1) zum Eingeben eines oder einer Mehrzahl von zweiten Strokes, die die Formänderungen der durch das erste Eingabemittel eingegebenen ersten Strokes angeben; ein erstes Korrespondenzherstellungsmittel (11), um die ersten und zweiten Strokes dazu zu bringen, einander zu entsprechen; ein Quantisierungsmittel (4) zum Quantisieren der ersten und zweiten Strokes in Einheitsvektoren, die jeweils eine beliebige Länge aufweisen; ein zweites Korrespondenzherstellungsmittel (11), um durch das erste Korrespondenzherstellungsmittel die Einheitsvektoren zwischen den ersten und zweiten Strokes dazu zu bringen, einander zu entsprechen, in Übereinstimmung mit der Anzahl der Einheitsvektoren der ersten und zweiten Strokes; ein erstes Erzeugungsmittel (6) zum Erzeugen eines Interpolationsvektors zum Interpolieren eines Abschnitts zwischen den Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag zwischen den Einheitsvektoren, die durch das zweite Korrespondenzherstellungsmittel dazu gebracht wurden, einander zu entsprechen; ein zweites Erzeugungsmittel (13) zum Erzeugen eines Einheitsbildes, das dem Einheitsvektor des zweiten Strokes und dem Interpolationsvektor entspricht, durch Bewegen oder Verformen oder Bewegen und Verformen eines Bildbereichs, der benachbart zu jedem Einheitsvektor des ersten Strokes ist, in Übereinstimmung mit der Position und der Form des zweiten Strokes, der jedem der Einheitsvektoren entspricht, und dem Interpolationsvektor; und ein drittes Erzeugungsmittel (9) zum Erzeugen eines Framebildes durch Mischen des Einheitsbildes in das ursprünglichen Bild in Übereinstimmung mit dem Einheitsvektor des zweiten Strokes oder des Interpolationsvektors.
  23. Animationserzeugungsvorrichtung gemäß Anspruch 22, ferner gekennzeichnet durch ein zweites Quantisierungsmittel (4) zum Quantisieren jedes der Strokes, die dazu gebracht wurden, einander zu entsprechen, in Einheitsvektoren, die jeweils eine beliebige Länge in Übereinstimmung mit der Anzahl der von dem Quantisierungsmittel erzeugten Einheitsvektoren aufweisen.
  24. Animationserzeugungsvorrichtung gemäß Anspruch 20 oder 22, ferner gekennzeichnet durch ein Speichermittel (12) zum Formen des Einheitsbildes in eine regelmäßige Form und Speichern des geformten Einheitsbildes, wobei, wenn das Framebild erzeugt wird, das in dem Speichermittel gespeicherte Einheitsbild in die ursprüngliche Form wiederhergestellt und in das ursprüngliche Bild gemischt wird.
  25. Animationserzeugungsvorrichtung gemäß Anspruch 21 oder 22, ferner gekennzeichnet durch Umfassen eines Speichermittels (17), um verarbeitete Daten für einen angewiesenen Spezialeffekt dazu zu bringen, dem Einheitsbild zu entsprechen und die verarbeiteten Daten zu speichern, wobei, wenn das Framebild erzeugt wird, das in dem Speichermittel gespeicherte Einheitsbild dem Spezialeffekt in Übereinstimmung mit den verarbeiteten Daten unterworfen wird, um in das ursprüngliche Bild gemischt zu werden.
  26. Animationserzeugungsvorrichtung gemäß Anspruch 21 oder 22, ferner gekennzeichnet durch Umfassen von Speichermitteln zum vorhergehenden Formen des Einheitsbildes in eine regelmäßige Form und Speichern des Einheitsbildes, wobei, wenn das Framebild erzeugt wird, die verformten Scheitelpunkte des in dem Speichermittel gespeicherten Einheitsbildes dazu gebracht werden, einander zu entsprechen, und dann gemischt werden (16).
  27. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch: ein darauf aufgezeichnetes Programm, wobei das Programm angeordnet ist, zu manipulieren; ein Mittel (11), um einen oder eine Mehrzahl von Strokes dazu zu bringen, einander zwischen der Mehrzahl von Framebildern zu entsprechen, wenn ein oder die Mehrzahl von Strokes in jedes der Framebilder eingegeben wurden; und ein Mittel (6) zum Erzeugen eines Interpolationsstrokes zum Interpolieren eines Abschnitts zwischen den entsprechenden Strokes.
  28. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch: ein darauf aufgezeichnetes Programm, wobei das Programm angeordnet ist, zu manipulieren; ein Mittel (11), um einen oder eine Mehrzahl von Strokes dazu zu bringen, einander zwischen der Mehrzahl von Framebildern zu entsprechen, wenn ein oder die Mehrzahl von Strokes in jedes der Framebilder eingegeben wurde; ein Mittel (4) zum Quantisieren der Strokes in Einheitsvektoren, die jeweils eine beliebige Länge aufweisen; ein Mittel (11), um die Einheitsvektoren dazu zu bringen, einander zwischen den Strokes zu entsprechen, die dazu gebracht wurden, einander in Übereinstimmung mit der Anzahl der Einheitsvektoren jeder der Strokes zu entsprechen, die dazu gebracht wurden, einander zu entsprechen; und ein Mittel (6), um eine Interpolationsvektor zum Interpolieren eines Abschnitts zwischen den Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag zwischen den Einheitsvektoren zu erzeugen, die dazu gebracht wurden, einander zu entsprechen.
  29. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch: ein darauf aufgezeichnetes Programm, wobei das Programm angeordnet ist, zu manipulieren; ein Mittel (11), um die ersten und zweiten Strokes dazu zu bringen, einander zu entsprechen, wenn ein oder eine Mehrzahl von ersten Strokes entlang eines Bildabschnitts eines ursprünglichen Bildes, der bewegt werden muss, und ein oder eine Mehrzahl von zweiten Strokes, die die geänderten Formen der ersten Strokes angeben, eingegeben wurden; ein Mittel (6) zum Erzeugen eines Interpolationsstrokes zum Interpolieren eines Abschnitts zwischen den ersten und zweiten Strokes, die dazu gebracht wurden, einander zu entsprechen; ein Mittel (131) zum Erzeugen eines Einheitsbildes, das dem zweiten Stroke und dem Interpolationsstroke entspricht, durch Bewegen oder Verformen oder Bewegen und Verformen eines dem ersten Stroke benachbarten Bildbereiches in Übereinstimmung mit den Positionen und Formen des zweiten Strokes, der dem ersten Stroke und dem Interpolationsstroke entspricht; und ein Mittel (9) zum Erzeugen eines Framebildes durch Mischen des Einheitsbildes in das ursprüngliche Bild in Übereinstimmung mit der zweiten Struktur, die dem Einheitsbild entspricht, oder dem Interpolationsstroke.
  30. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch: ein darauf aufgezeichnetes computerlesbares Programmcodemittel, wobei das computerlesbare Programmcodemittel angeordnet ist, um den Computer zum Laufen zu veranlassen; ein Mittel (11), um den ersten Stroke und den zweiten Stroke dazu zu bringen, einander zu entsprechen, wenn ein oder eine Mehrzahl des ersten Strokes entlang eines Bildabschnitts eines ursprünglichen Bildes, der bewegt werden muss, und ein oder eine Mehrzahl der zweiten Strokes, die die geänderten Formen der ersten Strokes angeben, eingegeben wurden; ein Mittel (4) zum Quantisieren der ersten und zweiten Strokes in Einheitsvektoren, die jeweils eine beliebige Länge aufweisen; ein Mittel (11), um Einheitsvektoren dazu zu bringen, einander zwischen dem ersten und zweiten Stroke zu entsprechen, die dazu gebracht wurden, einander in Übereinstimmung mit der Anzahl von Einheitsvektoren der ersten und zweiten Strokes zu entsprechen; ein Mittel (5) zum Erzeugen eines Interpolationsvektors zum Interpolieren eines Abschnitts zwischen den Einheitsvektoren in Übereinstimmung mit einem Änderungsbetrag in einem Abschnitt zwischen den Einheitsvektoren, die dazu gebracht wurden, einander zu entsprechen; ein Mittel (13) zum Erzeugen eines Einheitsbildes, das jedem der Einheitsvektoren des zweiten Strokes und dem Interpolationsvektor entspricht, durch Bewegen oder Verformen oder Bewegen und Verformen eines jedem der Einheitsvektoren des ersten Strokes benachbarten Bildbereichs in Übereinstimmung mit dem Positionen und Formen des Einheitsvektors des zweiten Strokes, der jedem der Einheitsvektoren und dem Interpolationsvektor entspricht; und ein Mittel (9) zum Erzeugen eines Framebildes durch Mischen des Einheitsbildes in das ursprüngliche Bild in Übereinstimmung mit dem Einheitsvektor des zweiten Strokes oder dem Interpolationsvektor.
  31. Aufzeichnungsmedium gemäß Anspruch 29 oder 30, ferner gekennzeichnet durch: ein darauf aufgezeichnetes computerlesbares Programmcodemittel, wobei das computerlesbare Programmcodemittel angeordnet ist, um Mittel (4) zum Quantisieren jedes der Strokes, die dazu gebracht wurden, einander zu entsprechen, in Einheitsvektoren auszuführen, die jeweils eine beliebige Länge in Übereinstimmung mit der Anzahl der Einheitsvektoren des Strokes aufweisen.
  32. Aufzeichnungsmedium gemäß Anspruch 29 oder 30, ferner gekennzeichnet durch: ein darauf aufgezeichnetes computerlesbares Programmcodemittel, wobei das computerlesbare Programmcodemittel angeordnet ist, um den Computer zum Laufen zu veranlassen; ein Mittel (12) zum Formen des Einheitsbildes in eine regelmäßige Form und zum Speichern des Einheitsbildes; und ein Mittel zum Lesen des geformten Einheitsbilds, um die ursprüngliche Form wiederherzustellen, wenn das Framebild erzeugt wird.
  33. Aufzeichnungsmedium gemäß Anspruch 29 oder 30, ferner gekennzeichnet durch: ein darauf aufgezeichnetes computerlesbares Programmcodemittel, wobei das computerlesbare Programmcodemittel angeordnet ist, um den Computer zum Laufen zu veranlassen; ein Mittel (17), um die verarbeiteten Daten eines angewiesenen Spezialeffekts dazu zu bringen, dem Einheitsbild zu entsprechen; und ein Mittel zum Lesen des Einheitsbildes und der verarbeiteten Daten des dem Einheitsbild entsprechenden Spezialeffekts, um das Einheitsbild dem Spezialeffekt basierend auf den verarbeiteten Daten zu unterziehen.
  34. Aufzeichnungsmedium gemäß Anspruch 29 oder 30, ferner gekennzeichnet durch ein darauf aufgezeichnetes computerlesbares Programmcodemittel, wobei das computerlesbare Programmcodemittel angeordnet ist, das in dem Speichermittel gespeicherte Einheitsbild auf eine solche Art und Weise zu mischen, dass die verformten Scheitelpunkte dazu gebracht werden, einander zu entsprechen.
  35. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein erstes Eingabemittel (1) zum Eingeben eines oder einer Mehrzahl von Strokes in jedes der Framebilder; ein zweites Eingabemittel (21) zum Eingeben von Begrenzungsinformationen der geänderten Form des Strokes, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen der Mehrzahl der Framebilder interpoliert wird; und ein Erzeugungsmittel (6) zum Erzeugen eines Interpolationsstrokes in Übereinstimmung mit der Interpolationsposition, bei der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebilder interpoliert wird, der Begrenzungsinformation und dem von dem ersten Eingabemittel eingegebenen Stroke.
  36. Animationserzeugungsvorrichtung gemäß Anspruch 35, dadurch gekennzeichnet, dass die Begrenzungsinformation ein begrenzender Stroke zum Begrenzen der geänderten Form des Strokes ist, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebildern interpoliert wird.
  37. Animationserzeugungsvorrichtung gemäß Anspruch 35, dadurch gekennzeichnet, dass die Begrenzungsinformation eine Begrenzungsfunktion zum Begrenzen der geänderten Form des Strokes ist, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebildern interpoliert wird.
  38. Animationserzeugungsvorrichtung gemäß Anspruch 35, dadurch gekennzeichnet, dass die Begrenzungsinformation ein Begrenzungsstroke und eine Begrenzungsfunktion zum Begrenzen der geänderten Form des Strokes ist, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebildern interpoliert wird.
  39. Animationserzeugungsvorrichtung gemäß einem der Ansprüche 35 bis 38, dadurch gekennzeichnet, dass das Erzeugungsmittel den Interpolationsstroke durch Verformen und Verbinden des von dem ersten Eingabemittel eingegebenen Strokes in Übereinstimmung mit der Interpolationsposition, bei der ein Abschnitt zwischen den Strokes interpoliert wird, und der Begrenzungsinformation erzeugt.
  40. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein erstes Eingabemittel (1) zum Eingeben eines oder einer Mehrzahl von Strokes in jedes der ersten Framebilder; ein Quantisierungsmittel (4) zum Quantisieren jedes der Strokes, die dazu gebracht wurden, einander zwischen den mehreren Framebildern und zu entsprechen, und die von dem ersten Eingabemittel eingegeben wurden, in Einheitsvektoren, die jeweils eine vorbestimmte Länge aufweisen; ein zweites Eingabemittel (20) zum Eingeben eines Begrenzungszustands zum Begrenzen einer geänderten Form des Strokes, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebilder interpoliert wird; und ein Erzeugungsmittel (6) zum Erzeugen eines Interpolationsvektors in Übereinstimmung mit der Interpolationsposition, bei der ein Abschnitt zwischen den Strokes, die dazu gebracht wurden, einander zu entsprechen, interpoliert wird, wobei die Begrenzungsinformation und die entsprechenden Einheitsvektoren der Strokes dazu gebracht werden, einander zu entsprechen, und eines Interpolationsstrokes zum Interpolieren eines Abschnitts zwischen den Strokes, die dazu gebracht wurden, einander zu entsprechen, in Übereinstimmung mit dem erzeugten Interpolationsvektor.
  41. Animationserzeugungsvorrichtung gemäß Anspruch 40, dadurch gekennzeichnet, dass die Begrenzungsinformation ein Begrenzungsstroke zum Begrenzen der geänderten Form des Strokes ist, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebildern interpoliert wird.
  42. Animationserzeugungsvorrichtung gemäß Anspruch 40, dadurch gekennzeichnet, dass die Begrenzungsinformation eine Begrenzungsinformation zum Begrenzen der geänderten Form des Strokes ist, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebildern interpoliert wird.
  43. Animationserzeugungsvorrichtung gemäß Anspruch 40, dadurch gekennzeichnet, dass die Begrenzungsinformation ein Begrenzungsstroke und eine Begrenzungsfunktion zum Begrenzen der geänderten Form des Strokes ist, wenn der von dem ersten Eingabemittel eingegebene Stroke zwischen den mehreren Framebildern interpoliert wird.
  44. Animationserzeugungsvorrichtung gemäß Anspruch 35 oder 40, ferner gekennzeichnet durch Umfassen eines Interpolationsbilderzeugungsmittels (43) zum Erzeugen eines Bildes zum Interpolieren eines Abschnitts zwischen den Framebildern durch Bewegen oder Verformen oder Bewegen und Verformen eines Bildes, das dem von dem ersten Eingabemittel eingegebenen Stroke benachbart ist, in Übereinstimmung mit der Position und Form des von dem Erzeugungsmittel erzeugten Interpolationsstrokes.
  45. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch: ein darauf aufgezeichnetes Programm, wobei das Programm angeordnet ist, zu manipulieren; und ein Erzeugungsmittel (28) zum Erzeugen eines Interpolationsstrokes in Übereinstimmung mit der Interpolationsposition, bei der der Stroke zwischen den mehreren Framebildern interpoliert wird, der Begrenzungsinformation und dem Stroke, wenn die Begrenzungsinformation der geänderten Form des Strokes, wenn ein oder eine Mehrzahl von Strokes, die in jedes der Framebilder eingegeben wurde, zwischen den mehreren Framebildern interpoliert wird.
  46. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch: ein darauf aufgezeichnetes computerlesbares Programmcodemittel, wobei das computerlesbare Programmcodemittel angeordnet ist, um den Computer zum Laufen zu veranlassen; ein Quantisierungsmittel (4) zum Quantisieren jedes der Strokes, die dazu gebracht wurden, einander zwischen einer Mehrzahl von Framebildern zu entsprechen, in Einheitsvektoren, die jeweils eine Programmlänge aufweisen, wenn ein oder eine Mehrzahl von Strokes in jedes der Framebilder eingegeben wird; und ein Erzeugungsmittel (28) zum Erzeugen eines Interpolationsvektors in Übereinstimmung mit einer Interpolationsposition, bei der die Strokes, die dazu gebracht werden, einander zu entsprechen, interpoliert werden, der Begrenzungsinformation und den entsprechenden Einheitsvektoren der Strokes, die dazu gebracht werden, einander zu entsprechen, wenn ein Begrenzungszustand zum Begrenzen einer geänderten Form des Strokes, wenn der Stroke zwischen den mehreren Framebildern interpoliert wird, und zum Erzeugen eines Interpolationsstrokes zum Interpolieren eines Abschnitts zwischen den Strokes, die dazu gebracht wurden, einander zu entsprechen, in Übereinstimmung mit dem erzeugten Interpolationsvektor.
  47. Aufzeichnungsmedium gemäß Anspruch 45 oder 46, ferner gekennzeichnet durch ein darauf aufgezeichnetes Programm, wobei das Programm angeordnet ist, um ein Interpolationsbilderzeugungsmittel (43) zum Erzeugen eines Bildes zum Interpolieren eines Abschnitts zwischen den Framebildern, durch Mischen eines Bildes in einem Bereich zu dem Eingangsstroke benachbarten Bereichs in das Framebild durch Bewegen oder Verformen oder Bewegen und Verformen des Bildes zu manipulieren.
  48. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein Bildframespeichermittel (1), in dem eine Mehrzahl von Bildframes gespeichert sind; ein erstes Erzeugungsmittel (2) zum Erzeugen einer ersten Animation von einem ersten Bildframe zu einem zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes für Interpolationsabschnitte zwischen einem angewiesenen ersten Bildframe und einem zweiten Bildframe, die in dem Bildframespeichermittel gespeichert sind; und ein zweites Erzeugungsmittel (5), das auf eine solche Art und weise angeordnet ist, dass, wenn mindestens ein Interpolationsframe einer Mehrzahl von Interpolationsframes bei der ersten Animation und ein dritter Bildframe, das in dem Bildframespeichermittel gespeichert ist, angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird, das zweite Erzeugungsmittel eine Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe erzeugt, um eine zweite Animation zu erzeugen, die von dem angewiesenen Interpolationsframe verzweigt.
  49. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein Bildframespeichermittel (21) zum Speichern einer Mehrzahl von Bildframe; ein erstes Erzeugungsmittel (22) zum Erzeugen einer ersten Animation von einem ersten Bildframe zu einem zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem ersten Bildframe der Bildframe, die in dem Bildframespeichermittel gespeichert sind, und dem zweiten Bildframe; ein zweites Erzeugungsmittel (25), das auf eine solche Art und Weise angeordnet ist, dass, wenn mindestens ein Interpolationsframe einer Mehrzahl von Interpolationsframes bei der ersten Animation und ein dritter Bildframe, das in dem Bildframespeichermittel gespeichert ist, angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird, das zweite Erzeugungsmittel eine Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe erzeugt, um eine zweite Animation zu erzeugen, die von dem angewiesenen Interpolationsframe verzweigt; und ein drittes Erzeugungsmittel (26), das auf eine solche Art und Weise angeordnet ist, dass, wenn eine Verzweigung von der ersten Animation angewiesen wird, das dritte Erzeugungsmittel einen Interpolationsframe aus der Mehrzahl von Interpolationsframes bei der ersten Animation auswählt und eine Mehrzahl von Interpolationsframe zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem ausgewählten Interpolationsframe erzeugt, um eine dritte Animation zu erzeugen, die von der zweiten Animation zu der ersten Animation verbunden wird.
  50. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein Bildframespeichermittel (31), bei dem mehrere Bildframe gespeichert sind; ein erstes Erzeugungsmittel (32) zum Erzeugen einer ersten Animation von einem ersten Bildframe zu einem zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe des in dem Bildframespeichermittel gespeicherten Bildframes und dem zweiten Bildframe; ein zweites Erzeugungsmittel (35), das auf eine solche Art und Weise angeordnet ist, dass, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und ein in dem Bildframespeichermittel gespeicherter dritter Bildframe angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird, das zweite Erzeugungsmittel eine Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe erzeugt, um eine zweite Animation zu erzeugen, die von dem angewiesenen Interpolationsframe verzweigt; ein drittes Erzeugungsmittel (33) zum Erzeugen einer dritten Animation, die von der zweiten Animation mit der ersten Animation durch Auswählen eines Interpolationsframes der mehreren Interpolationsframes bei der ersten Animation, wenn eine Verzweigung von der ersten Animation angewiesen wird, und durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem zweiten Interpolationsframe verbunden wird; und ein Interpolationsframeanzahlberechnungsmittel (32) zum Berechnen der Anzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe der ersten Animation und dem dritten Bildframe und der Anzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem ausgewählten Interpolationsframe bei der ersten Animation.
  51. Animationserzeugungsvorrichtung gemäß Anspruch 1, ferner gekennzeichnet durch: ein Bildframespeichermittel (31,36), in dem eine Mehrzahl von Bildframes gespeichert werden; ein erstes Erzeugungsmittel (32) zum Erzeugen einer ersten Animation von einem ersten Bildframe zu einem zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe der in dem Bildframespeichermittel gespeicherten Bildframe und dem zweiten Bildframe; und ein Animationseinfügungsmittel (33), das auf eine solche Art und Weise angeordnet ist, dass, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und ein oder eine Mehrzahl der in dem Bildframespeichermittel gespeicherten dritten Bildframes angewiesen werden, und die Einfügung einer oder einer Mehrzahl von zweiten Animationen, die sich von der ersten Animation unterscheiden, in die erste Animation angewiesen wird, das Animationseinfügungsmittel die zweite Animation von dem angewiesenen Interpolationsframe, der durch Erzeugen der Mehrzahl der Interpolationsframe zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe gebildet wird, in die erste Animation und den dritten Bildframe zu dem dritten Bildframe in die erste Animation nach dem angewiesenen Interpolationsframe einfügt.
  52. Animationserzeugungsverfahren gemäß Anspruch 13, ferner gekennzeichnet durch: Erzeugen einer ersten Animation von einem ersten Bildframe zu einem zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe der Mehrzahl der gelieferten Bildframes und dem zweiten Bildframe; und Erzeugen einer zweiten Animation, die von dem angewiesenen Interpolationsframe verzweigt, durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und das dritte Bildframe der mehreren Bildframes angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird.
  53. Animationserzeugungsverfahren gemäß Anspruch 13, ferner gekennzeichnet durch: Erzeugen einer ersten Animation von einem ersten Bildframe zu einem zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe der Mehrzahl der gelieferten Bildframes und dem zweiten Bildframe; Erzeugen einer zweiten Animation, die von dem angewiesenen Interpolationsframe verzweigt, durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und das dritte Bildframe der mehreren Bildframes angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird; und Erzeugen einer dritten Animation, die von der zweiten Animation zu der ersten Animation verbindet, durch Auswählen eines Interpolationsframes aus den mehreren Interpolationsframes bei der ersten Animation, wenn eine Verzweigung von der ersten Animation angewiesen wird, und durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem ausgewählten Interpolationsframe.
  54. Animationserzeugungsverfahren gemäß Anspruch 13, ferner gekennzeichnet durch: Erzeugen einer ersten Animation von einem ersten Bildframe zu einem zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe der Mehrzahl der gelieferten Bildframes und dem zweiten Bildframe; und Einfügen einer zweiten Animation aus den angewiesenen Interpolationsframe, der durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe in den dritten Bildframe gebildet wird, in die erste Animation nach dem angewiesenen Interpolationsframe, wenn mindestens ein Interpolationsframe bei der ersten Animation und das dritten Bildframe der mehreren Bildframe angewiesen werden, und Einfügung einer oder einer Mehrzahl von zweiten Animationen, die sich von der ersten Animation unterscheiden, angewiesen wird.
  55. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch: Erzeugen einer ersten Animation von einem ersten Bildframe zu einen zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe und der Mehrzahl der gelieferten Bildframes und dem zweiten Bildframe; und Erzeugen einer zweiten Animation, die von dem angewiesenen Interpolationsframe verzweigt, durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und das dritten Bildframe der mehreren Bildframes angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird.
  56. Aufzeichnungsmedium gemäß Anspruch 16, ferner gekennzeichnet durch: ein darin gespeichertes Programm, wobei das Programm angeordnet ist, um eine sequentielle Animation zu erzeugen, die aus einer Mehrzahl von Bildframes und einer Mehrzahl von Interpolationsframes zusammengesetzt ist, durch Erzeugen der mehreren Interpolationsframes zum Interpolieren eines Abschnitts zwischen der Mehrzahl der gelieferten Bildframes, wobei das Programm angeordnet ist, um die folgenden Schritte durchzuführen: Erzeugen einer ersten Animation von einem ersten Bildframe zu einem zweiten Bildframe durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen ersten Bildframe der Mehrzahl der gelieferten Bildframes und dem zweiten Bildframe; Erzeugen einer zweiten Animation, die von dem angewiesenen Interpolationsframe verzweigt, durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem angewiesenen Interpolationsframe bei der ersten Animation und dem dritten Bildframe, wenn mindestens ein Interpolationsframe der mehreren Interpolationsframes bei der ersten Animation und das dritte Bildframe der mehreren Bildframes angewiesen werden und eine Verzweigung von der ersten Animation angewiesen wird; und Erzeugen einer dritten Animation; die von der zweiten Animation zu der ersten Animation verbindet, durch Auswählen eines Interpolationsframes aus den mehreren Interpolationsframes bei der ersten Animation, wenn eine Verzweigung von der ersten Animation angewiesen wird, und durch Erzeugen einer Mehrzahl von Interpolationsframes zum Interpolieren eines Abschnitts zwischen dem dritten Bildframe und dem ausgewählten Interpolationsframe.
DE69826167T 1997-03-10 1998-03-10 Verfahren und Gerät zur Graffitianimation Expired - Fee Related DE69826167T2 (de)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
JP05521797A JP3507647B2 (ja) 1997-03-10 1997-03-10 アニメーション作成装置およびアニメーション作成方法
JP5521797 1997-03-10
JP15867697 1997-06-16
JP15867697A JP3431452B2 (ja) 1997-06-16 1997-06-16 アニメーション作成装置およびアニメーション作成方法
JP21343697A JP3505360B2 (ja) 1997-08-07 1997-08-07 アニメーション作成装置および記録媒体
JP21343697 1997-08-07
JP21625897A JP3505361B2 (ja) 1997-08-11 1997-08-11 アニメーション作成装置および記録媒体
JP21625897 1997-08-11

Publications (2)

Publication Number Publication Date
DE69826167D1 DE69826167D1 (de) 2004-10-21
DE69826167T2 true DE69826167T2 (de) 2005-11-10

Family

ID=27463166

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69826167T Expired - Fee Related DE69826167T2 (de) 1997-03-10 1998-03-10 Verfahren und Gerät zur Graffitianimation

Country Status (4)

Country Link
US (1) US6208360B1 (de)
EP (1) EP0865003B1 (de)
KR (1) KR100339764B1 (de)
DE (1) DE69826167T2 (de)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6384819B1 (en) * 1997-10-15 2002-05-07 Electric Planet, Inc. System and method for generating an animatable character
KR100604588B1 (ko) * 1999-10-04 2006-07-25 주식회사 팬택앤큐리텔 3차원 애니메이션 영상 표현 장치 및 그 방법
US6448971B1 (en) * 2000-01-26 2002-09-10 Creative Technology Ltd. Audio driven texture and color deformations of computer generated graphics
JP3512711B2 (ja) * 2000-05-31 2004-03-31 シャープ株式会社 画像情報処理装置、画像情報処理方法およびその処理を記録した記録媒体
US7091975B1 (en) * 2000-07-21 2006-08-15 Microsoft Corporation Shape and animation methods and systems using examples
EP1187066A3 (de) * 2000-09-01 2004-04-21 Sony Computer Entertainment Inc. Verfahren und Anordnung zur Bildvergrösserung/-verkleinerung
US6765589B1 (en) * 2000-11-16 2004-07-20 Adobe Systems Incorporated Brush for warping and water reflection effects
JP3970102B2 (ja) * 2001-06-28 2007-09-05 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
US6900809B2 (en) * 2001-10-18 2005-05-31 Qualcomm Incorporated Method and apparatus for animation of an object on a display
JPWO2003038759A1 (ja) * 2001-10-29 2005-02-24 シャープ株式会社 携帯端末、携帯端末におけるアニメーション作成方法、コンピュータを用いてアニメーションを作成するためのプログラム、そのプログラムを記録した記録媒体およびアニメーション作成システム
US7411595B2 (en) 2001-11-28 2008-08-12 Adobe Systems Incorporated Tool for extracting and manipulating components of warping transforms
EP1359773B1 (de) * 2002-04-15 2016-08-24 Microsoft Technology Licensing, LLC Erleichterung der Interaction zwischen Videodarstellungen und Treiber einer graphischen Vorrichtung
US6950099B2 (en) * 2002-07-01 2005-09-27 Alias Systems Corp. Approximation of Catmull-Clark subdivision surfaces by Bezier patches
US6992654B2 (en) * 2002-08-21 2006-01-31 Electronic Arts Inc. System and method for providing user input to character animation
US20040174544A1 (en) * 2003-03-03 2004-09-09 Jack Cassidy Arranging images on a page
US7788605B1 (en) * 2003-05-22 2010-08-31 Apple Inc. Morphing between views of data
US7770117B1 (en) * 2003-05-22 2010-08-03 Apple Inc. Morphing between views of data
CA2575704C (en) * 2004-07-30 2014-03-04 Extreme Reality Ltd. A system and method for 3d space-dimension based image processing
US7542034B2 (en) 2004-09-23 2009-06-02 Conversion Works, Inc. System and method for processing video images
US20060232589A1 (en) * 2005-04-19 2006-10-19 Microsoft Corporation Uninterrupted execution of active animation sequences in orphaned rendering objects
WO2007090103A2 (en) * 2006-01-27 2007-08-09 Auryn Inc. Identification of occlusions in stroke-based rendering
US7969442B2 (en) * 2006-12-05 2011-06-28 Electronics And Telecommunications Research Institute Method and system of producing cartoon animation using character animation and mesh deformation
US8655052B2 (en) * 2007-01-26 2014-02-18 Intellectual Discovery Co., Ltd. Methodology for 3D scene reconstruction from 2D image sequences
US20080225042A1 (en) * 2007-03-12 2008-09-18 Conversion Works, Inc. Systems and methods for allowing a user to dynamically manipulate stereoscopic parameters
US8274530B2 (en) 2007-03-12 2012-09-25 Conversion Works, Inc. Systems and methods for filling occluded information for 2-D to 3-D conversion
US8189959B2 (en) * 2008-04-17 2012-05-29 Microsoft Corporation Image blending using multi-splines
US8620084B2 (en) 2008-06-26 2013-12-31 Microsoft Corporation Shape recognition using partial shapes
US20100073379A1 (en) * 2008-09-24 2010-03-25 Sadan Eray Berger Method and system for rendering real-time sprites
JP4752921B2 (ja) * 2009-01-28 2011-08-17 ソニー株式会社 情報処理装置、アニメーション付加方法、及びプログラム
US20100231582A1 (en) * 2009-03-10 2010-09-16 Yogurt Bilgi Teknolojileri A.S. Method and system for distributing animation sequences of 3d objects
US20100251185A1 (en) * 2009-03-31 2010-09-30 Codemasters Software Company Ltd. Virtual object appearance control
EP2646986A1 (de) * 2010-11-29 2013-10-09 Max-Planck-Gesellschaft zur Förderung der Wissenschaften e.V. Computerimplementiertes verfahren und vorrichtung zur verfolgung und neuformung einer figur mit menschlicher form bei einem digitalen video
US20130076757A1 (en) * 2011-09-27 2013-03-28 Microsoft Corporation Portioning data frame animation representations
US10809865B2 (en) * 2013-01-15 2020-10-20 Microsoft Technology Licensing, Llc Engaging presentation through freeform sketching
US9665259B2 (en) 2013-07-12 2017-05-30 Microsoft Technology Licensing, Llc Interactive digital displays
US20170236318A1 (en) * 2016-02-15 2017-08-17 Microsoft Technology Licensing, Llc Animated Digital Ink
CN107633543B (zh) * 2017-08-21 2020-12-08 浙江工商大学 考虑局部拓扑结构的线条形状对应方法
CN109903217B (zh) * 2019-01-25 2023-05-02 北京百度网讯科技有限公司 图像变形方法和装置
US11016643B2 (en) 2019-04-15 2021-05-25 Apple Inc. Movement of user interface object with user-specified content
CN111831162B (zh) * 2020-07-23 2023-10-10 吕嘉昳 基于触摸屏的毛笔笔形校正方法
CN114549712B (zh) * 2022-04-25 2022-07-12 北京搜狐新媒体信息技术有限公司 一种生成动态webp格式图片的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4189743A (en) * 1976-12-20 1980-02-19 New York Institute Of Technology Apparatus and method for automatic coloration and/or shading of images
JPH06507742A (ja) * 1991-05-21 1994-09-01 ケンブリッジ アニメーション システムズ リミテッド 動画作成装置
US5594853A (en) * 1995-01-03 1997-01-14 University Of Washington Method and system for editing the general sweep and detail of a figure with a curve

Also Published As

Publication number Publication date
DE69826167D1 (de) 2004-10-21
US6208360B1 (en) 2001-03-27
KR100339764B1 (ko) 2002-07-18
EP0865003A2 (de) 1998-09-16
EP0865003B1 (de) 2004-09-15
KR19980080319A (ko) 1998-11-25
EP0865003A3 (de) 1999-03-10

Similar Documents

Publication Publication Date Title
DE69826167T2 (de) Verfahren und Gerät zur Graffitianimation
DE112004000377B4 (de) Verfahren und Vorrichtung Bildsegmentierung in einer dreidimensionalen Arbeitsumgebung
Burtnyk et al. Interactive skeleton techniques for enhancing motion dynamics in key frame animation
DE69828974T2 (de) Verfahren und system zur veränderung und aufbereitung dreidimensionaler animationen in einer nicht-linearen editionsumgebung
US7728848B2 (en) Tools for 3D mesh and texture manipulation
DE69922898T2 (de) Verfahren zur dreidimensionalen Gesichtsmodellerzeugung aus Gesichtsbildern
US5692117A (en) Method and apparatus for producing animated drawings and in-between drawings
DE69817634T2 (de) Vorrichtung und Verfahren zur Anzeige von Fenstern
DE60026197T2 (de) Detailgerichtete hierarchische Distanzfelder in der Objektmodellierung
US5619628A (en) 3-Dimensional animation generating apparatus
DE69732663T2 (de) Verfahren zur erzeugung und änderung von 3d modellen und korrelation von solchen modellen mit 2d bildern
DE69534331T2 (de) Verfahren und Vorrichtung zur Hervorhebung der Einzelheit einer Baumstruktur
DE602004011749T2 (de) Umschlagsdeformation mittels unterteilten Oberflächen
DE69924699T2 (de) Verfahren zur Schaffung von als Oberflächenelemente dargestellten grafischen Objekten
DE3608438A1 (de) Verfahren zum berechnen von freien gekruemmten flaechen mittels computergestuetztem design cad und computergestuetzter herstellung cam und numerischer steuerung nc
JPH11345347A (ja) オブジェクトの滑らかなシェ―ディング
DE112005003003T5 (de) System, Verfahren und Programm zum Komprimieren von dreidimensionalen Bilddaten sowie Aufzeichnungsmedium hierfür
Hoch et al. Modeling and animation of facial expressions based on B-splines
DE69924230T2 (de) Verfahren zur Modellierung von durch Oberflächenelemente dargestellten grafischen Objekten
DE19807013A1 (de) Volumetrisches Vorabschneidungsverfahren, das eine minimale Anzahl von Abtastpunkten durch ein Volumen gewährleistet
DE60024514T2 (de) Aufzeichnungsmedium, Verfahren und Einrichtung zur Bildverarbeitung mit integrierten Daten zur Formmodellierung
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
DE60020234T2 (de) Verfahren und vorrichtung zur bildwiedergabe
DE60215916T2 (de) Volumenausschneidung für 3d rechnergrafik
DE60030401T2 (de) Anzeigetechniken für dreidimensionale virtuelle Realität

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee