Ich möchte einen Flammeneffekt wie den folgenden aus dem Logo auf dem Titelbildschirm des N64-Spiels "Die Legende von Zelda: Ocarina of Time" nachbilden:
Ein kurzer Blick auf die im ROM verwendeten Texturen liefert eine einzelne 32x32-Textur, die dem Effekt ähnelt, aber ich weiß nicht, wie dieses Bild (vorausgesetzt, es ist das richtige) in den Effekt umgewandelt wird, der auf dem Logo zu sehen ist.
Wie kann ich etwas ähnliches implementieren?
graphic-effects
nathanburns
quelle
quelle
Antworten:
Machen Sie zuerst eine Weiß-auf-Schwarz-Maske aus Ihrem Logo / Text und verwischen Sie sie.
Erstellen Sie dann eine sich wiederholende (tileable) Solid Noise-Textur (hier wird GIMP verwendet).
Verwenden Sie den Filter Map-> Tile ..., um ein 3x3-Kachelmuster (in diesem Beispiel 128x128 x 3 = 384x384) für den nächsten Schritt zu erstellen, um sicherzustellen, dass unsere Textur immer noch wiederholbar ist. Wir behalten nur den mittleren Teil bei.
Verwenden Sie "Weichzeichnen"> "Bewegungsunschärfe", um die Textur nach oben zu verwischen und nur das mittlere Drittel beizubehalten (zurück auf 128 x 128).
Multiplizieren Sie beide Texturen auf der GPU und verwenden Sie diese für die Deckkraft.
Animieren Sie es dann, indem Sie die Mustertextur nach oben über die Maskentextur bewegen:
Fertig für den Animationsteil.
Dann können Sie eine Verlaufskarte (schwarz -> rot -> gelb -> weiß) anwenden , um ihr Feuerfarben zu verleihen:
Andere Farben können verwendet werden, um ein furchtbar blaues Feuer, ein hellgelbes Aura-Feld, einen rauchigeren Effekt usw. zu erzeugen.
Wenn Sie dies als Additiv über Ihrem Logo und dem 3D-Rendering kombinieren , erhalten Sie den gewünschten Effekt:
+ + =
Der Effekt kann abgedunkelt werden, indem die Masken- und / oder Musterhelligkeit und / oder die Scheitelpunktfarbe und / oder die Verlaufsfarbabbildung auf das gewünschte Niveau eingestellt werden.
Sie können sogar zwei strukturierte Muster (Maske * Feuermuster * Feuermuster) mit unterschiedlichen Geschwindigkeiten und Richtungen verwenden, um einen komplexeren Feuereffekt zu erzielen.
Auf dem N64 haben sie möglicherweise eine Näherung der Maske mit einem Dreiecksnetz und einer Scheitelpunktfarbe anstelle der Maskentextur erstellt, da die Hardware des N64 hinsichtlich der Texturen eingeschränkt ist. Das Endergebnis ist jedoch dasselbe ((Scheitelpunktfarbe * Musterstruktur) vs ( Maskenstruktur * Musterstruktur)).
Wir können die Vertex-Farbe weiterhin verwenden, aber 20 Jahre später können wir unser Leben einfacher gestalten und nur zwei oder mehr Texturen verwenden. Selbst die heutigen mobilen GPUs können problemlos mit einer zusätzlichen Textur von 256 x 128 Grau umgehen.
quelle
Es gibt ein paar Möglichkeiten, wie Sie es tun könnten, aber aus meinem Kopf heraus,
1) Lassen Sie die Flammen + das Logo in einem Bild zusammenfügen und animieren Sie es im Wesentlichen mit einem Sprite Sheet.
2) Rendern Sie das Logo auf einer UI-Ebene und platzieren Sie einige Partikeleffekte auf der UI-Ebene.
Nach dem Aussehen dieses Bildes sieht es so aus, als gäbe es drei Schichten Schild und Schwert, Flammen und Text (von hinten nach vorne sortiert).
Es gibt viele Möglichkeiten, einen ähnlichen Effekt zu erzielen. Dies hängt davon ab, in welcher Engine Sie entwickeln und was Sie implementieren können.
quelle
Wenn die ROMs eine kleine Flammentextur enthalten, würde ich vermuten, dass dies mit einer Art Partikeleffekt geschieht.
Dies geschieht, indem zuerst ein Sprite für den Titel und das Logo auf den Bildschirm gelegt wird. Platzieren Sie anschließend eine Reihe von Partikelemittern, die einen Flammeneffekt hinter dem Titel-Sprite erzeugen. Das heißt, ihre Z / Screen-Tiefe ist so, dass sie hinter dem Titel gerendert werden.
Hier ist ein Beispiel für die Verwendung von GameMaker-Partikeleffekten, um Flammen zu erzeugen, die Ihnen einige Gedanken über das Potenzial dieses Ansatzes geben könnten ...
http://martincrownover.com/gamemaker-examples-tutorials/particles-fire/
quelle