Audio und Media Files. Was beachten?

  • Zum einen wüste ich gerne ob die Länge einer Wave Datei Auswirkungen auf die Performance hat.
    Kurze Loops oder auch ein ganzes Musikstück?
    Bei Video Files wüste ich gerne was zu beachten ist, außer dem Format.
    Länge? Größe? HD oder PAL?
    „While there is currently a Startup Movie Player system in UE4, it can only be used for playing startup movies while the Engine loads up. It cannot be used to play movies in-game, say for instance as part of a UI element or perhaps on a Static Mesh in your level like a movie playing on a TV .“
    Ist diese Aussage noch aktuell oder lässt sich ein Video ins laufende Spiel einbinden? z.b TV Gerät. Falls nicht, ist da was in Aussicht?
    Besten Dank.

  • Ich kann dir leider nur zu Audiodateien etwas sagen.
    Die Leistungsanforderung ergibt sich aus der Frequenz und der Bitrate der Audiospur.
    Meist sind jedoch die Codec-Formate auf konstante Werte fest eingestellt.
    Z.B. Wave-Datei mit dem Standard 16 Bit / 44,1 khz.
    Das heißt, ob eine Wavedatei 10 Sekunden oder 10 Minuten geht ist für die Zeit des Abspielens egal.
    Die Länge spielt maximal für den Speicher eine Rolle, der sich - je nach Qualität und Länge - natürlich nicht zu unterschätzen füllen kann.
    Das gilt für Plattenplatz als auch für den RAM.
    Der Loop-Sprung ansich ist im Performanceverlust zu vernachlässigen.
    Wenn der Loopsprung aber so kurz ist, dass das mehrmals die Sekunde geschieht könnte man schon einen Abfall erwarten.
    Im Übrigen übernimmt in den meisten Fällen der Audio-Chip deines Mainboards oder die Soundkarte die Rechenarbeit, was die CPU entlastet.


    UE4 hat zwar auf den ersten Blick ein recht komplexes Audiosystem - es kann aber im Grunde fast gar nichts.
    Die Echtzeiteffekte beziehen sich auf 1 Hall und ein LowPassfilter.
    Und leider hat man dazu auch noch das Limit, dass wirklich nur ein Hall für alle Audiofiles gültig ist.
    Ändert man den Hall - zb. Halllänge - gilt dies für alle Audiofiles mit.
    Mit einigem Tricksen und etwas Aufwand kann man höchstens erreichen, dass verschiedene Sounds diesen Reverb verschieden laut abspielen.
    Es gibt auch keine wirkliche Plugin-Lösung, da auch in C++ nur auf das Audiosystem der Engine zugegriffen werden kann.
    Das heißt z.B. das Plugin FMOD bietet zwar mit ihrem eigenen Studio die Möglichkeit eigene Projektfiles einzubinden, was aber - ähnlich wie Substance für Materialien - im Grunde kein Funktionsmehrwert darstellt sondern die Arbeit erleichtert.
    Vermutlich glaubt Epic-Games, dass die Audio-Hardware der meisten Clienten eher mager ausfällt und es deshalb rechnerisch zu Problemen führen könnte.
    So bleibt nur sich die Hallfahnen extra mit anderer Software vorzuproduzieren und dann als eigene Audiofiles dynamisch hinzuzumischen.

  • Besten Dank.
    Ich verwende nur Wave-Dateien mit 16 bit und 44,1 khz.
    Reverb oder ähnliches verwende ich nicht. So etwas würde ich vorher in Cubase erledigen.
    Füllt sich der RAM wen die Datei abgespielt wird (würde Sinn machen) oder werden alle Audio Files gleich am Anfang in den Speicher gepackt?
    Also darauf achten wie viel insgesamt im Projekt/Level ist?
    Bei den Video Files habe ich es einmal in der 4.7 Version ausprobiert. Da kam aber ziemlicher Murks heraus.
    Ich probiere einfach mal aus.

  • Die Engine wandelt alle Audiofiles grundsätzlich in ein eigenes Asset-Format.
    Somit ist ein gleichbleibender Stream garantiert.
    Ob du die Audiofiles vorladen, streamen oder erst beim Abspielen laden möchtest kannst du in den Stream-Einstellungen im Projekt-Seutp einstellen.
    Da kann ich dir aber nicht wirklich helfen - ich lass die Streameinstellungen eigentlich immer auf Default.
    Mit einem "Trick" könnte man Assets in den Ram "zwingen" indem man sie schon beim Spielstart einmal kurz mit Lautstärke 0 abspielt.
    Ich habe nämlich schon erlebt, dass der erste Schuss aus einer Waffe immer mal wieder das Spiel kurz hängen lässt, weil der Ladevorgang erst mit dem Schuss geschieht und eben eine Zeit braucht.
    Ähnliche Dinge mache ich z.B. mit Objekten, dessen Textur nicht erst beim Spawn nachladen soll.
    Das sieht dann immer etwas unschön aus.