In dieser Schnellstartanleitung führen wir Sie durch den Prozess der Einrichtung eines Unreal-Engine-Projekts, um mit einer professionellen Grafikkarte von Blackmagic Design zu arbeiten. Am Ende dieses Leitfadens:
Haben Sie Video-Input von Ihrer Blackmagic-Karte, der in Ihrem Unreal Engine-Projekt abgespielt wird.
Können Sie Kameraansichten sowohl im Editor als auch in Ihrer Laufzeitanwendung erfassen und an einen SDI-Port auf Ihrer Blackmagic-Karte senden.
Wissen Sie, was Sie tun müssen, wenn Sie erweiterte Einstellungen für Ihre Video-Inputs vornehmen möchten, z. B. die Korrektur von Linsenverzerrungen und die Anwendung von Chroma-Keying-Effekten.
Ein funktionierendes Beispiel, das viele der unten beschriebenen Elemente in der Praxis zeigt, finden Sie in der Virtual Studio-Präsentation, das im „Beispiele“-Tab des Epic Games Launchers verfügbar ist.
Voraussetzungen:
Stellen Sie sicher, dass Sie eine unterstützte Karte von Blackmagic Design besitzen und die erforderlichen Treiber und Software installiert haben. Weitere Informationen finden Sie auf der Seite Blackmagic Media Reference.
Stellen Sie sicher, dass Ihre Karte richtig funktioniert und dass mindestens einer der SDI-Ports der Karte mit Video-Input gespeist wird.
Öffnen Sie ein Unreal-Engine-Projekt, das Sie in Ihre Video-Feeds integrieren möchten. Diese Seite zeigt die Schritte in der Dritte Person-Blueprint-Vorlage, aber die gleichen Schritte funktionieren in jedem Projekt gleich gut.
Die Blackmagic-Design-Komponenten, die in diesem Handbuch verwendet werden, basieren auf dem Medien-Framework. Wir verwenden Blueprints, um den Videoaufnahmeprozess zur Laufzeit zu scripten. Vorkenntnisse zu diesen Themen sind empfehlenswert, aber nicht erforderlich.
1 – Projekt einrichten
Bevor Sie Video-Input von Ihrer Blackmagic-Karte in Ihr Unreal-Engine-Level übertragen und Output von der Unreal Engine über einen der SDI-Ports Ihrer Blackmagic-Karte senden können, müssen Sie einige grundlegende Einstellungen vornehmen, um das „Blackmagic Media Player“-Plugin in Ihrem Projekt zu aktivieren.
Wenn Sie Ihr Unreal-Engine-Projekt mit einer der Vorlagen in der Kategorie Film, Fernsehen und Live-Events gestartet haben, sind die erforderlichen Plugins möglicherweise bereits für Sie aktiviert. Wenn nicht, folgen Sie einfach den Anweisungen unten, um sie zu aktivieren.
Schritte
Öffnen Sie das Projekt, das Sie mit Blackmagic Video I/O im Unreal Editor verwenden möchten.
Wählen Sie im Hauptmenü Bearbeiten > Plugins.
Im Plugins-Fenster finden Sie das Blackmagic Media Player-Plugin in der Kategorie Media Players. Aktivieren Sie dessen Kontrollkästchen Aktiviert.
Suchen Sie das Media Framework Utilities-Plugin in der Kategorie Medien. Aktivieren Sie dessen KontrollkästchenAktiviert, falls es nicht bereits aktiviert ist.
Klicken Sie auf Jetzt neu starten, um den Unreal Editor neu zu starten und Ihr Projekt erneut zu öffnen.
Endergebnis
Ihr Projekt ist jetzt bereit, Videos von der Blackmagic-Karte entgegenzunehmen und gerenderten Output an die Karte zu senden. In den nächsten Abschnitten verbinden wir alles und starten die Video-Eingabe und -Ausgabe.
2 – Rendern von Video-Input in der Unreal Engine
In diesem Prozess machen wir den Video-Input von der Blackmagic-Karte im aktuellen Level im Unreal Editor sichtbar. Dieser Prozess verwendet ein Medien-Paket: eine Art Asset, das mehrere verschiedene Arten von Assets im Medien-Framework zusammenfasst und Ihnen die Kontrolle über einige erweiterte Funktionen wie Linsenverformung, Chroma-Keying, Farbkorrektur und mehr bietet.
Schritte
Erweitern Sie im Inhaltsbrowser das Bedienfeld Quellen-Panel. Klicken Sie mit der rechten Maustaste und wählen Sie im Kontextmenü die Option Neuer Ordner.
Benennen Sie Ihren neuen Ordner in Blackmagic um.
Öffnen Sie Ihren neuen Ordner, klicken Sie mit der rechten Maustaste in den Inhaltsbrowser und wählen Sie Medien > Medien-Paket.
Der Name Ihres neuen Assets wird automatisch im Inhaltsbrowser ausgewählt, sodass Sie ihm einen beschreibenden Namen geben können: Geben Sie einen neuen Namen ein, wie BlackmagicMediaBundle, und drücken Sie die Eingabetaste. Ein neuer Ordner mit Medien-Framework-Assets wird automatisch neben Ihrem Medien-Paket erstellt und mit dem Suffix_InnerAssets benannt. Wir schauen uns diese Assets später an.
Speichern Sie Ihre neuen Assets, indem Sie im Inhaltsbrowser auf die Schaltfläche Alle speichern klicken.
Doppelklicken Sie auf Ihr neues Medien-Paket, um die Eigenschaften zu bearbeiten. Das Medien-Paket kann Videos von jeder Medienquelle abspielen, die die Unreal Engine unterstützt. Also, sagen Sie ihm einfach, dass Sie das Video von Ihrer Blackmagic-Karte holen wollen. Wählen Sie in der Eigenschaft Medienquelle aus der Dropdown-Liste Blackmagic-Medienquelle aus.
Sobald Sie die Art der Medienquelle identifiziert haben, die das Medien-Paket verarbeiten soll, können Sie alle Konfigurationseigenschaften einrichten, die von dieser Art von Quelle angeboten werden. Sie können die Unreal Engine so einstellen, dass sie automatisch das Format und die Framerate des eingehenden Videosignals anpasst. Um die automatische Formaterkennung zu aktivieren, klicken Sie auf das Dropdown-Menü Konfiguration, aktivieren Sie Auto und klicken Sie dann auf Anwenden. Die Unreal Engine verarbeitet Änderungen jetzt nahtlos und startet automatisch neu, wenn das Signal vorübergehend verloren geht.
Die Optionen, die Sie sehen, können je nach den von Ihnen installierten Geräten variieren. Weitere Informationen zu allen Eigenschaften, die Sie für eine Blackmagic-Medienquelle festlegen können, finden Sie auf der Seite Blackmagic Media Reference.
Wenn Sie irgendeine Art der Kompensation auf das eingehende Video anwenden möchten, um die Linsenverzerrung zu berücksichtigen, können Sie die physischen Eigenschaften der Linse im Abschnitt Linsenparameter einstellen.
Diese Linsenparameter richten einfach die physikalischen Eigenschaften der Linse ein. Sie aktivieren die Linsenkorrektur später, wenn Sie die vom Medien-Paket verwendete Material-Instanz bearbeiten. Speichern und schließen Sie Ihr Medien-Paket, wenn Sie mit dem Einrichten der Eigenschaften fertig sind.
Ziehen Sie Ihr BlackmagicMediaBundle-Asset aus dem Inhaltsbrowser in den Level-Viewport.
Sie sehen eine neue Ebene, die das Video zeigt, das gerade über den für Ihr Medien-Paket konfigurierten Port abgespielt wird. Verwenden Sie die Transformationswerkzeuge in der Viewport-Werkzeugleiste, um es zu verschieben, zu drehen und die Größe zu ändern. Wenn Ihr Medien-Paket nicht automatisch abgespielt wird, wählen Sie es aus und klicken Sie dann im Details-Panel auf die Schaltfläche Medien-Paket > Medienwiedergabe anfordern.
Jetzt sehen wir uns an, wie Sie Keying- und Compositing-Effekte auf den Videostream anwenden. Zurück im Medien-Paket-Editor klicken Sie in der Werkzeugleiste auf die Schaltfläche Material-Editor öffnen, um die Material-Instanz zu bearbeiten, die dieses Medien-Paket verwendet, und den eingehenden Video-Feed auf ein Objekt im Level zu zeichnen.
Im Materialinstanz-Editor sehen Sie eine Reihe von Eigenschaften, mit denen Sie Keying, Zuschneiden und Farbkorrektur konfigurieren und die Korrektur für die Linsenverzerrung aktivieren können, die Sie im Medien-Paket eingerichtet haben.
Während Sie die Einstellungen im Materialinstanz-Editor anpassen, können Sie die Auswirkungen Ihrer Änderungen auf den Video-Feed sehen, der im Haupt-Level-Viewport abgespielt wird.
Vielleicht finden Sie es praktischer, die Auswirkungen der Änderungen, die Sie vornehmen, stattdessen im Vorschaufenster des Materialinstanz-Editors zu sehen. Um das zu tun, aktivieren Sie vorübergehend die Einstellung „IsValid und setzen Sie den Wert auf
1,0.Klicken Sie auf den Pfeil oben links in der Viewport-Werkzeugleiste und aktivieren Sie die Option Echtzeit im Menü.
Sie können die Wirkung Ihrer Änderungen leichter beurteilen, indem Sie das Vorschau-Mesh in eine Ebene oder einen Würfel ändern. Verwenden Sie die Steuerelemente am unteren Rand des Viewports:
Wenn Sie fertig sind, setzen Sie die Einstellung IsValid wieder auf den vorherigen Wert.
Wenn Sie die Eigenschaften der Material-Instanz geändert haben, klicken Sie in der Werkzeugleiste auf die Schaltfläche Speichern.
Endergebnis
An diesem Punkt sollten Sie ein Video über einen SDI-Port in Ihrem Unreal-Engine-Level sehen und wissen, wo Sie erweiterte Funktionen wie Linsenverformung und Chroma-Keying einrichten können.
Wenn Sie bereits mit dem Medien-Framework vertraut sind, können Sie auch ein Video in Ihr Level einfügen, indem Sie ein neues BlackmagicMediaSource-Asset in Ihrem Projekt erstellen und es mit den gleichen Quelleigenschaften einrichten, die Sie im obigen Verfahren im Medien-Paket eingerichtet haben. Erstellen Sie dann Ihre eigenen MediaPlayer- und MediaTexture-Assets, um die Wiedergabe dieser Quelle in Ihrem Level zu steuern. Weitere Informationen finden Sie in der Dokumentation zum Medien-Framework. Wir empfehlen jedoch, das Medien-Paket wie oben gezeigt zu verwenden, um die beste Balance zwischen Benutzerfreundlichkeit und professionellen Videofunktionen zu erzielen.
3 – Output-Aufnahmen aus dem Unreal Editor
In diesem Prozess richten Sie ein Blackmagic-Medien-Output-Objekt ein und verwenden das Medien-Aufnahmen-Panel im Unreal Editor, um die Ansicht von ausgewählten Kameras im Level auf Ihre Blackmagic-Karte auszugeben.
Schritte
Klicken Sie mit der rechten Maustaste in den Inhaltsbrowser und wählen Sie dann Medien > Blackmagic-Medien-Output.
Nennen Sie Ihr neues Asset BlackmagicMediaOutput.
Doppelklicken Sie auf Ihr neues Asset, um es zur Bearbeitung zu öffnen. Genau wie beim Erstellen Ihrer Blackmagic-Medienquelle müssen Sie die Eigenschaft Konfiguration einrichten, um die Eigenschaften des Video-Feeds zu steuern, den die Unreal Engine an Ihre Blackmagic-Karte sendet. Klicken Sie auf den Pfeil, um das Untermenü zu öffnen, wählen Sie die Optionen aus, die zu Ihrem Video-Setup passen, und klicken Sie dann im Untermenü auf Anwenden.
Die Optionen, die Sie sehen, können je nach den von Ihnen installierten Geräten variieren. Weitere Informationen zu allen Eigenschaften, die Sie im Blackmagic-Medien-Output festlegen können, finden Sie auf der Seite Blackmagic Media Reference. Speichern und schließen Sie Ihren Medien-Output, wenn Sie fertig sind.
Jetzt platzieren wir zwei Kameras im Level, um uns Perspektiven für den Output zu geben, die wir an die Blackmagic-Karte senden. Öffnen Sie im Actors platzieren-Panel den Filmsequenz-Tab und ziehen Sie zwei Instanzen des Filmkamera-Actors in den Viewport.
Platzieren Sie die Kameras im Level, wo Sie sie haben möchten, damit sie verschiedene Perspektiven auf die Szene zeigen.
Das Steuern der Kamera ist eine schnelle und einfache Möglichkeit, den Blickwinkel genau so einzustellen, wie Sie es möchten. Siehe Actors im Viewport steuern.
Wählen Sie im Hauptmenü Fenster > Virtuelle Produktion > Medienaufnahme. Mit dem Fenster Medienaufnahme steuern Sie, wann der Editor die Ausgabe an Ihr Blackmagic-Gerät sendet und welche Kamera im Level verwendet werden soll.
Im Bereich Medien-Viewport-Aufnahme finden Sie das Steuerelement Viewport-Aufnahmen. Klicken Sie auf die Schaltfläche Hinzufügen (+), um dieser Liste eine neue Aufnahme hinzuzufügen.
Erweitern Sie den neuen Eintrag. Zuerst fügen wir die Kameras hinzu, von denen wir Aufnahmen machen wollen. Klicken Sie im Steuerelement Gesperrte Kamera-Actors auf die Schaltfläche Hinzufügen (+), um einen neuen Eintrag hinzuzufügen.
Wählen Sie dann aus der Dropdown-Liste eine der Kameras aus, die Sie im Level platziert haben.
Wiederholen Sie die gleichen Schritte, um die andere Kamera zur Liste hinzuzufügen.
Richten Sie jetzt den Output ein, den Sie mit diesen Kameras aufnehmen möchten. Stellen Sie das Steuerelement Medien-Output so ein, dass es auf das neue Blackmagic-Medien-Output-Asset zeigt, das Sie oben erstellt haben. Sie können dies tun, indem Sie ihn in der Dropdown-Liste auswählen oder Ihr Blackmagic-Medien-Output-Asset aus dem Inhaltsbrowser in diesen Slot ziehen.
Klicken Sie oben im Fenster auf die Schaltfläche Aufnehmen.
Unten im Fenster sehen Sie einen neuen Rahmen, der eine Vorschau des Outputs zeigt, der an die Blackmagic-Karte gesendet wird. Wenn dieser Port mit einem anderen nachgelagerten Gerät verbunden ist, sollten Sie sehen, wie der Output durchkommt.
Jede Kamera, die Sie der Liste der gesperrten Kamera-Actors für diese Viewport-Aufnahme hinzugefügt haben, wird durch eine entsprechende Schaltfläche über der Videovorschau dargestellt. Klicken Sie auf die Schaltflächen, um die Aufnahme zwischen den beiden Ansichten hin und her zu schalten.
Endergebnis
Jetzt haben Sie den Unreal Editor so eingerichtet, dass der Output von Kameras in Ihrem Level an einen Port auf Ihrer Blackmagic-Karte gestreamt wird. Als Nächstes sehen wir uns an, wie Sie mit Blueprint-Scripting dasselbe in einem laufenden Unreal-Engine-Projekt tun können.
4 – Aufnahmen zur Laufzeit ausgeben
Das Fenster Medienaufnahme, das Sie im letzten Abschnitt verwendet haben, ist eine praktische und einfache Möglichkeit, Aufnahmen an die Blackmagic-Karte zu senden. Aber es funktioniert nur im Unreal Editor. Um dasselbe zu tun, wenn Sie Ihr Projekt als eigenständige Anwendung ausführen, müssen Sie die vom Medien-Output bereitgestellte Blueprint-API verwenden. In diesem Verfahren richten wir einen einfachen Umschalter im Level-Blueprint ein, der die Aufnahme startet und stoppt, wenn der Spieler eine Taste auf der Tastatur drückt.
Die Virtual Studio-Präsentation, die auf dem Beispiele-Tab des Epic Games Launchers verfügbar ist, enthält ein UMG-Interface-Widget, das zeigt, wie Sie die Aufnahme über eine Benutzeroberfläche auf dem Bildschirm steuern können.
Schritte
Wählen Sie in der Haupt-Werkzeugleiste im Unreal Editor Blueprints > Level-Blueprint öffnen aus.
Wir müssen mit dem von Ihnen erstellten Blackmagic-Medien-Output-Asset beginnen, in dem Sie den Port identifizieren, an den Sie ausgeben möchten. Klicken Sie in der Liste der Variablen im Bereich Mein Blueprint auf die Schaltfläche Hinzufügen (+), um eine neue Variable hinzuzufügen.
Legen Sie im Details-Panel den Variablennamen auf BlackmagicMediaOutput fest und verwenden Sie die Dropdown-Liste Variablentyp, um ihn zu einer Blackmagic-Medien-Output-Objektreferenz zu machen.
Aktivieren Sie die Einstellung Instanz bearbeitbar (1) und kompilieren Sie den Blueprint. Stellen Sie dann im Abschnitt Standardwert die Variable so ein, dass sie auf das Blackmagic-Medien-Output-Asset verweist, das Sie in Ihrem Inhaltsbrowser (2) erstellt haben.
Drücken Sie Strg und ziehen Sie den BlackmagicMediaOutput aus der Variablenliste im Panel Mein Blueprint in den Event Graph.
Klicken und ziehen Sie vom Output-Port des BlackmagicMediaOutput-Variablenknotens und wählen Sie Medien > Ausgabe > Medienaufnahme erstellen.
Verbinden Sie Ihre Knoten mit dem Ereignis BeginPlay-Knoten, wie unten gezeigt:
Dadurch wird ein neues Medienaufnahme-Objekt aus Ihrem Blackmagic-Medien-Output erstellt. Die Medienaufnahme bietet zwei Hauptfunktionen, mit denen wir die Aufnahme steuern: Aktiven Szenen-Viewport aufnehmen und Aufnahme stoppen.
Zuerst speichern wir das neue Medienaufnahme-Objekt in seiner eigenen Variable, damit wir es später wieder nutzen können. Klicken und ziehen Sie vom Output-Port des Knotens Medienaufnahme erstellen und wählen Sie Beförderung zu Variable.
Benennen Sie die neue Variable MediaCapture in der Variablen-Liste im Panel Mein Blueprint um.
Hier ist es wichtig, die Medienaufnahme in einer Variable zu speichern. Wenn Sie das nicht tun, zerstört der Garbage Collector der Unreal Engine sie automatisch, bevor Sie damit fertig sind.
Drücken Sie Strg und ziehen Sie die MediaCapture-Variable in den Event Graph.
Klicken und ziehen Sie vom Output-Port des MediaCapture-Variablenknotens und wählen Sie Medien > Output > Aktiven Szenen-Viewport aufnehmen. Machen Sie das noch einmal und wählen Sie Medien > Output > Aufnahme stoppen.
Klicken Sie mit der rechten Maustaste im Event Graph und wählen Sie Input > Tastatur-Events > P aus. Klicken und ziehen Sie vom Gedrückt-Output des P-Knotens und wählen Sie Flusssteuerung > FlipFlop.
Verbinden Sie den A-Output des FlipFlop-Knotens mit dem Input-Ereignis des Knotens Aktiven Szenen-Viewport aufnehmen und den B-Output des FlipFlop-Knotens mit dem Input-Ereignis des Knotens Erfassung stoppen, wie unten gezeigt:
Kompilieren und speichern Sie den Blueprint und versuchen Sie, Ihr Projekt zu spielen. Klicken Sie auf den Pfeil neben der Spielen-Schaltfläche in der Haupt-Symbolleiste und wählen Sie entweder die Option Option Neues Editor-Fenster (PIE) oder Eigenständiges Spiel.
Die Videoaufnahme aus dem Editor funktioniert nur, wenn Sie Ihr Projekt in einem neuen Editorfenster (PIE) oder einem eigenständigen Spiel spielen. Es funktioniert nicht im Standardmodus Ausgewählter Viewport oder im Simulationsmodus. Außerdem muss die Viewport-Auflösung Ihres Projekts (also die Größe des gerenderten Bildes, das die Unreal Engine für jeden Frame erzeugt) mit der im aktiven Medienprofil festgelegten Output-Auflösung übereinstimmen, damit sie die richtige Größe für den ausgegebenen Videofeed hat.
Nachdem Ihr Projekt gestartet wurde, sollten Sie die P-Taste auf Ihrer Tastatur drücken können, um den Sendevorgang des Outputs von der Unreal Engine zur Blackmagic-Karte umzuschalten.
Endergebnis
Jetzt sollten Sie eine grundlegende Vorstellung davon haben, wie Sie mit Blackmagic-Medienquellen, Medien-Paketen und dem Medienaufnahme-System arbeiten. Sie sollten auch verstehen, wie all diese Elemente zusammenwirken, um professionelle Videos in die Unreal Engine zu importieren und daraus zu exportieren.
Du bist am Zug
Jetzt, da Sie die Grundlagen kennen, wie Sie ein neues Projekt mit einer Blackmagic-Karte zum Austausch von Video-Input und -Output einrichten, können Sie selbstständig weiterlernen:
Entdecken Sie die In-Engine-Keying-Lösung in der Material-Instanz, die von Ihrem Medien-Paket erstellt wurde. Versuchen Sie, ein Greenscreen-Video in den Input-Port Ihrer Karte zu übertragen, und verwenden Sie die Keying-Steuerelemente in der Material-Instanz, um den Hintergrund zu entfernen.
Schauen Sie sich das
Virtual Studio an, um zu sehen, was es zu diesem grundlegenden Setup beiträgt, wie zum Beispiel die Bildschirm-UI, die Kameras wechselt und die Videoaufnahme zur Laufzeit steuert.