Verbesserungen und Änderungen
Zu den Aktualisierungen für Lumberyard-Systeme und ‑Funktionalität zählen u. a.:
Vorabmitteilung über Änderungen in Lumberyard Beta 1.8
In Lumberyard Beta 1.8 werden Folgeänderungen am Verhaltenskontext eingeführt. Es wurden signifikante Verbesserungen am Lumberyard-Editor vorgenommen (inkl. Ersatz des vorhandenen Script-Kontextes durch einen neuen Reflection-Kontext). Um ein reibungsloses Upgrade sicherzustellen, stellen wir alle Informationen, Schritte und Tools im Voraus bereit. Details finden Sie in unseren Foren
.
Asset Pipeline
Die Asset Processor Job-API ermöglicht das Abrufen des Status bestimmter Compile-Jobs aus dem Editor und anderen Tools. Diese API ermöglicht jetzt das Eskalieren von Aufträgen, die zur Priorisierung erneut oben in die Build-Warteschlange eingefügt werden. Wenn Sie neue Objekte und Editoren entwickeln, können Sie diese API verwenden, um den Status Ihrer Objekte abzufragen, Protokolldateien abzurufen und Aufträge zu eskalieren.
Sie können nun in der
AssetProcessorPlatformConfig.ini
-Datei Objekt-Typen als kritisch deklarieren. Auf diese Weise können Objekt-Typen kompiliert und ganz oben in die Compile-Warteschlange eskaliert werden, bevor die Runtime oder der Editor ausgeführt werden.Dynamische Slices gelten jetzt als kritische Objekte.
Die Priorität von Kopieraufträgen in der
AssetProcessorPlatformConfig.ini
-Datei wird jetzt berücksichtigt. Auf diese Weise können Sie Aufträge der Priorität nach arrangieren (auch in der Kopierphase).
Audio
Die folgenden Audio-Komponenten-EBus-Elemente wurden aus Konsistenzgründen umbenannt:
AudioTriggerComponentRequestsBus wurde umbenannt in AudioTriggerComponentRequestBus.
AudioTriggerComponentNotificationsBus wurde umbenannt in AudioTriggerComponentNotificationBus.
AudioRtpcComponentRequestsBus wurde umbenannt in AudioRtpcComponentRequestBus.
AudioSwitchComponentRequestsBus wurde umbenannt in AudioSwitchComponentRequestBus.
AudioEnvironmentComponentRequestsBus wurde umbenannt in AudioEnvironmentComponentRequestBus.
AudioProxyComponentRequestsBus wurde umbenannt in AudioProxyComponentRequestBus.
Wenn Sie die alten EBus-Namen in Lua oder nativem C++ nutzen, müssen Sie Ihren Code für die Nutzung der neuen EBus-Namen aktualisieren. Dies gilt, wenn Sie Audio-Komponenten über den Code manipulieren oder aufrufen.
Fragmente, die für eine Komponenten-Entität (
AZ::Entity
) wiedergegeben werden, können jetzt Audio-Trigger und Partikeleffekte in ihren ProcClips auslösen.Es wurde ein grundlegender Satz Unit-Tests zu CrySoundSystem hinzugefügt (zur Verbesserung der Unit-Test-Abdeckung in Lumberyard).
Die Möglichkeit, einen Listener durch einen anderen zu überschreiben wurde verbessert. Dies umfasst keine vollständige Unterstützung für mehrere aktive Listener.
AzCodeGenerator
Ein neues Tag-Format und bereichsbezogene Anmerkungen wurden implementiert.
Das Profiling wurde für das Clang-Parsen und die Skriptausführung zum AZ Code-Generator-Tool hinzugefügt. Weitere Informationen finden Sie unter AZ Code-Generator.
AzTestScanner
Die Möglichkeit zum Festlegen mehrerer Whitelist- oder Blacklist-Dateien wurde hinzugefügt.
Ein neuer Speicherort für die Standard-Whitelist- und -Blacklist-Dateien wurde hinzugefügt. Die Standard-Blacklist-Datei ist auch im Build enthalten.
Die Möglichkeit für Whitelists über Spec-Dateien wurde entfernt. Whitelisting nicht mehr standardmäßig aktiviert.
Der Flags zum Ausschließen von Gems und Projekten in Whitelists wurden entfernt.
Cloud Canvas
Der Resource Manager validiert nun die Eingaben beim Tippen.
Der Resource Manager versucht jetzt, alle Inhalte aus S3-Buckets zu löschen, bevor diese durch einen Stack-Update-Vorgang gelöscht werden.
Die folgenden Befehle verfügen nun über eine
--confirm-resource-deletion
-Option:update-project-stack
delete-project-stack
upload-resources
Komponenten
Die Komponente Light (Licht) ist jetzt in vier Komponenten aufgeteilt, um eine präzisere Kontrolle zu ermöglichen: Point Light (Punktlicht), Area Light (Flächenlicht), Projector Light (Projektorlicht) und Environment Probe.
Die Komponente Environment Probe enthält jetzt Einstellungen für die Box-Projektion und Attenuation-Fallout.
FBX-Einstellungen
Zahlreiche Verbesserungen der Benutzeroberfläche und Workflows sind unter anderem:
Unterstützung für eine Dateiverlaufsliste im Tool.
Validierung für bestimmte Textfelder.
Automatisches Scrollen zur neusten Gruppe oder Regel hinzugefügt.
Ein Browser, der den letzten besuchten Pfad speichert.
Eine Bestätigung, wenn eine Benutzeraktion zum Verlust von Änderungen führt.
Eine Schaltfläche Reset All (Alle zurücksetzen), die Manifest auf den Standardzustand zurücksetzt.
Eine Schaltfläche Enable Update (Update aktivieren), die nur verfügbar ist, wenn geänderte Einstellungen vorhanden sind.
Wenn eine
.fbx
-Datei importiert wurde, werden ihre Asset-Prozessor-Aufträge oben in die Auftragswarteschlange eingefügt.SceneGraphChildIterator
wurde hinzugefügt und führt eine Iteration durch die untergeordneten Elemente eines Knotens durch.Die Präsentation der Fehlerprotokollierung wurde verbessert.
Flussdiagramm
Beim Starten des Flussdiagramm-Editors wird ein Dialogfeld angezeigt, das die neue, visuelle Scripting-Lösung von Lumberyard zur Integration mit dem neuen Component Entity System vorstellt. Wir empfehlen Ihnen, Lua zu nutzen. Weitere Informationen finden Sie unter Lua-Skripts.
Der Flussdiagramm-Knoten
ColorGradient
wurde zu CryAction hinzugefügt.
Geppetto
Sie können nun den Geppetto nutzen, um die folgenden Informationen in der Skeleton-Datei
.chrparams
zu bearbeiten:Skeleton-Bones werden zur Definition des Begrenzungsrahmens genutzt
Begrenzungsrahmen-Erweiterungseinstellungen
LOD-Skelett-Bone-Inclusion-Listen
Sechs IK-Definitionsabschnitte
Auf diese Weise wird der Prozess vereinfacht. Sie müssen keine manuelle Bearbeitung der
.chrparams
-Datei mehr durchführen, kennen die Dateiinformationen und können nach Joint-Namen für das Skelett suchen.Die Leistung der Funktion Live Reload (Live-Neuladen) für
.anm
,.chr
und.skin
-Dateien wurde um bis zu 50 % verbessert.
Lua-Editor
Sie können jetzt die Farbe, Schriftart und Syntaxmarkierungen anpassen.
Der Debugging-Status wird jetzt deutlicher angezeigt.
Die Classes-Referenz kürzt Zeichenfolgen jetzt von rechts.
Sie können jetzt die folgenden Tastenkombinationen verwenden:
Drücken Sie Tab mit ausgewähltem Text, um diesen blockweise einzurücken.
Drücken Sie Shift+Tab (Umschalt+Tab) (mit oder ohne ausgewählten Text), um den Einzug zu verringern.
Zuvor geöffnete Dokumente werden nun beim Öffnen des Editors wiederhergestellt.
Schreibgeschützte Dateien zeigen jetzt ein nicht blinkenden Cursor für die Texteingabe an.
Lumberyard-Editor
Wenn ein Objekt getroffen wird, wird der Objekt-Pointer gelöscht. Dieses Verhalten entspricht dem Verhalten bei einer Kollision, die näher als eine vorherige Kollision ist.
Die folgenden Komponenten haben aktualisierte Symbole:
Tag
Net Binding
Character Physics
Physics Constraint
Ragdoll
Primitive Collider
Behavior Tree
Navigation
Die XYz-Achsen sind nun im Eigenschaftsraster für die Transform-Komponentenfelder eingefärbt.
Die Visualisierung von Entitäten im Darstellungsfenster wurde für den Spacebar-Hilfsmodus verbessert.
Der Illum-Shader verfügt jetzt über die Funktion Dissolve (Auflösen).
Lumberyard-Setup-Assistent
Wenn verfügbar, werden nun zwischengespeicherte ZIP-Dateien aus früheren Downloads verwendet.
Wenn verfügbar, werden nun zwischengespeicherte Dateilisten aus Drittanbieter-SDKs verwendet.
Lumberyard-Setup-Assistent, Projektkonfiguration und
lmbr.exe
befinden sich nun im Verzeichnis\dev\tools\LmbrSetup
.Der Lumberyard-Setup-Assistent verarbeitet jetzt leere oder fehlende Manifeste beim Herunterladen des SDKs.
Der Lumberyard-Setup-Assistent verarbeitet Override-URLs mit oder ohne Schrägstriche am Ende nun besser.
Der Lumberyard-Setup-Assistent verwendet Inhalte aus der zwischengespeicherten Dateiliste jetzt nicht mehr für andere Lumberyard-Versionen. Dadurch wird verhindert, dass neue Lumberyard-Installationen, die einen älteren
3rdParty
-Ordner verwenden, die Inhalte einer falschen Lumberyard-Version nutzen.Der Projektkonfiguration verfolgt nun die ausgewählten Funktionen und verhindert, dass Sie eine Aufgabe durchführen, für die Sie noch nicht bereit sind. Beispiel: Sie können kein Projekt erstellen, bevor Sie für die Code-Kompilierung bereit sind.
Die SSL-Validierung wurde verbessert und weist mehr nicht vertrauenswürdige Verschlüsselungen ab.
Linux-Bibliotheken werden nun für Windows-Benutzer bei der Einrichtung von Linux getrennt heruntergeladen.
Metastream-Gem
Die Konsolenvariablen
metastream_serverPort
undmetastream_docroot
sind veraltet. Sie können die neue Konsolenvariablemetastream_serverOptions
nutzen, um lokale HTTP-Server-Optionen zu konfigurieren.Die Konsolenvariable
metastream_enabled
ist nun schreibgeschützt und stellt den Status des lokalen HTTP-Servers dar. 0 = deaktiviert | 1 = aktiviert.Sie können nun den lokalen HTTP-Server über die folgenden Möglichkeiten steuern:
Konsolenbefehle
metastream_start
undmetastream_stop
In C++ über den
MetastreamRequestBus
Sie können nun die zum Metastream-Cache hinzugefügten Daten besser verwalten. Weitere Informationen finden Sie unter Metastream-Gem.
Die C++ API formatiert die Daten jetzt in JSON-Zeichenfolgen. Bisher mussten die Daten manuell formatiert werden.
Mobil
Android:
Sie können nun von Benutzern erstellte
.pak
-Dateien hinzufügen (z. B. die Shader-Datei.pak
zu einem APK-Build). Auf diese Weise können Sie Spiele erstellen, die vollständig bereitstellbar sind.Es gibt eine zusätzliche Protokollierung für GPUs während des Starts. Auf diese Weise können Sie erkennen, warum ein bestimmtes Gerät einen Build nicht ausführen kann.
Navigation-Komponente
Die Navigation-Komponente kann jetzt Physics-Entitys per Physik verschieben. Unterstützte Szenarien für das Physik-basierte Verschieben sind:
Character-Physik mit Skinned-Gitter
Rigid-Body-Physik mit Skinned-Gitter und einer Kombination aus Shape- und Primitive-Collider
Statisches Gitter mit einem Gitter-Collider
Alle Entitäten können auch weiterhin ohne Physik verschoben werden.
Die Unterstützung für das Folgen von Pfaden wurde verbessert.
Veraltete Unit-Tests wurden aus dem
\dev\Code\Engine\LmbrCentral\source\Ai\NavigationComponentTest.cpp
Verzeichnis entfernt.
Netzwerk
Die Amazon GameLift-Integration nutzt nun AWS Native SDK 1.0.24.
Die IP-Adressen und Sitzungs-IDs für Clients in einer Amazon GameLift-Sitzung werden für mehr Sicherheit nicht angegeben.
Der dedizierte Server unterstützt jetzt einen Linux-Build für Linux-Server statt Windows Server. Diese Option kann günstiger und stabiler sein.
Die Möglichkeit zur Normalisierung von Daten für ein festgelegtes Budget wurde zur Network Profiler-Hauptanzeige hinzugefügt. Standardmäßig ist dies für den Replica Profiler mit der alten Voreinstellung aktiviert.
Der Network Profiler zeigt nun die Nutzung in einem Flächendiagramm statt in einem Liniendiagramm an und ist so lesbarer.
Eine neue API ermöglicht die asynchrone Authentifizierung von Spielern über neue Verbindungen.
DTLS-Cookies werden nun während des DTLS-Handshakes verwendet und verhindern IP-Spoofing-Versuche.
Es wurden Ratenbegrenzer für die Anzahl der eingehenden Pakete pro Verbindung hinzugefügt, um DoS-Angriffe zu vermeiden.
Die Online-Services wurden so überarbeitet, dass jedes Betriebssystem über einen eigenen Feature-Bus verfügt und nicht mehr durch die APIs mit dem kleinsten gemeinsamen Funktionsumfang beschränkt wird. Der LAN-Online-Service wurde entfernt, da er nicht mehr benötigt wird.
Die folgenden Änderungen gelten für die FileDataSource-Zertifikatsverwaltung:
Zertifikate müssen nun in einem Ordner mit dem Namen "Certificates" in Spiel-Objekte enthalten sein.
PEM-Dateien werden jetzt durch den Asset-Prozessor kopiert. Beispiel:
undGameProjectName
/certificates/selfsigned.cert.pemGameProjectName
/certificates/selfsigned.key.pem
Perforce-Quellcodeverwaltung
Zur Verbesserung der allgemeinen Benutzererfahrung bei Vorgängen zur Quellcodeverwaltung in Lumberyard wurden die folgenden Updates vorgenommen:
Es wurde eine SSL-Unterstützung für das Perforce-Plug-in und die Komponente hinzugefügt.
Einheitliche Einstellungen zwischen dem Perforce-Plug-in und den Komponenten.
Unterstützung für die Angabe eines Zeichensatzes im Perforce-Verbindungseinstellungen-Fenster.
Ragdoll
Ragdoll unterstützt jetzt
PhysicsComponentRequestBus
-Nachrichten fürAddImpulse
undSetVelocity
.
Scripting
Sie können jetzt Entität-Hierarchien über die
DestroyGameEntityAndDescendants
-Methode für denGameEntityContextRequestBus
entfernen.Die
DestroyGameEntity(AZ::Entity*)
-Methode wurde aus demGameEntityContextRequestBus
gelöscht. Sie müssen nun IDs zum Löschen von Entitäten verwenden.Die Komponente Character Physics (Figur-Physik) unterstützt jetzt
GetVelocity
,AddImpulse
undGetMass
über diePhysicsRequestBus
.Das
EntityLookAt
-Skript wurde hinzugefügt, um eine Entität zu einer anderen auszurichten.
Slices
Abhängige Elemente werden nun automatisch beim Duplizieren, Löschen und Übertragen von Entitäten in Slices einbezogen.
Die Unterstützung für das Übertragen von hinzugefügten und gelöschten Entitäten an Slices wurde verbessert.
Das Transform-Management in Slices wurde vereinfacht und verbessert die Stabilität und Datenpflege.
Die Rotation im Weltkoordinatensystem kann jetzt zurück zur Slice-Root-Entität übertragen werden.
Der dynamische Slice-Compiler erstellt keine leeren Container mehr für Objekte, die nicht geladen werden müssen.
Der Slice-Compiler lädt Gems, ohne deren Systemkomponenten zu erstellen.
Twitch ChatPlay
Twitch ChatPlayunterstützt jetzt die Verbindung mit dem Twitch IRC über Websockets.
Neue Konsolenvariablen wurden hinzugefügt, mit denen Sie die Verbindung von Twitch ChatPlay mit dem Twitch IRC konfigurieren können:
chatplay_IRCPorts
chatplay_IRCSSLPorts
chatplay_WebsocketPorts
chatplay_WebsocketSSLPorts
Sie können diese neuen Konsolenvariablen mit kommagetrennten
priority:port
-Paaren festlegen.
UI-Editor
Neue Callbacks und Listener-Schnittstellen für C++ wurden für alle UI-Interaktionskomponenten hinzugefügt.
Virtual Reality
Das Oculus-SDK wurde von 1.5 auf 1.9 aktualisiert. Unnötiger Dateien wurden entfernt.
Die OpenVR SDK-Version wurde von 1.0.0 auf 1.0.3 aktualisiert.
Waf Build System
Ein neues Drittanbieterbibliothek-Framework umfasst lib-Pfade und mehr. Es gibt einen konsolidierten Speicherort für Drittanbieterbibliotheken. Die Definition der Bibliotheken kann jetzt speziell für das unterstützte Betriebssystem festgelegt werden. Zuvor befand sich die Definition jeweils in der wscript-Datei. Diese Änderung bereinigt die Projektdefinitionen erheblich.
Das Drittanbieterbibliothek-Framework verarbeitet jetzt die Logik, die bestimmt, ob die statische oder dynamische Version einer Drittanbieterabhängigkeit erstellt wird. Dies hat zur Folge, dass der
BuildNativeSDKLibraryList
-Code entfernt wurde.Bestimmte Drittanbieterbibliotheken sind nun vorerstellt und werden während des Drittanbieter-Downloadprozesses bereitgestellt. Zuvor wurden diese Bibliotheken während des normalen Build-Prozesses erstellt. Dies hat zu einem Overhead bei den Abhängigkeiten und der Updateerkennung für Drittanbieter-Quelldaten und -Bibliotheken geführt.
Sie müssen beim Erstellen von nicht-monolithischen Zielen keine Projektspezifikation mehr angeben. Die Projektspezifikation ist nur erforderlich, wenn Sie monolithische Projekte und spezifische Projekte sowie für den Visual Studio Solution Generator erstellen. Wenn Sie die Erstellung im Debug- oder Profilmodus in Betriebssystemen durchführen, die nicht automatisch monolithische Builds erstellen (z. B. win_x64 und mac), müssen Sie die Projektspezifikation nicht angeben. Standardmäßig werden alle Projekte erstellt, die für das Zielbetriebssystem und die Zielkonfiguration als unterstützt markiert sind.
Damit eine genauere Steuerung möglich ist, können jetzt Sie ein
skip
-Schlüsselwort pro Betriebssystem konfigurieren. Auf diese Weise können Sie die Verarbeitung von nicht für ein bestimmtes Betriebssystem erforderlichen Komponententypen überspringen. Lumberyard nutzt Ausschlussmuster, um Dateierweiterungen zu überspringen.Das Schlüsselwort
autod
für uselibs wurde entfernt, da die Qt-Erkennung jetzt pro Betriebssystem und Konfiguration erfolgt. Zuvor wurde das Schlüsselwortautod
verwendet, da die Qt-Erkennung global durchgeführt wurde und sowohl Debug- als auch Release-Qt-Bibliotheken pro Betriebssystem konfiguriert wurden.Das
build_in_dedicated
-Schlüsselwort wurde entfernt, da die Projektbeschreibung jetzt dasconfigurations
-Schlüsselwort verwendet, um die Konfiguration zum Erstellen eines Projekts zu bestimmen. Bisher wurde das Schlüsselwortbuild_in_dedicated
verwendet, um Builds auf das jeweilige Betriebssystem zu beschränken.
Sonstiges
Das optimierte Debugging ist jetzt für Microsoft Visual Studio 2013 zur Verbesserung der Debugging-Funktionen aktiviert. Diese Option ist standardmäßig für Visual Studio 2015 aktiviert.
Pakete von Drittanbietern wurden aus den Mac- und Console-Paketen zur Konsistenz mit der PC-Paket-Funktionalität entfernt. Jedes Paket ist jetzt als einzelne ZIP-Datei verfügbar.
Ein neues Eigenschaftssteuerelement wurde für vorzeichenlose 32-Bit-CRC-Werte implementiert (8-stellige Hex-Werte). Dieses Eigenschaftssteuerelement ist beim Importieren von 32-Bit-Hex-CRC-Werten aus externen Quellen hilfreich (z. B. benutzerdefinierte Programme, die kein Teil des Lumberyard-Editors sind). Der Name des Handlers lautet CRC. Er kann für jedes vorzeichenlose 32-Bit-Integer-Feld verwendet werden.
Bin64
ist nicht mehr derBin64
-Zielordner für Windows.Lumberyard unterstützt Microsoft Visual Studio 2013- und Microsoft Visual Studio 2015-Compiler. Auch auf demselben Windows-Host unterscheiden sich die Binärdateien. Aus Konsistenzgründen entspricht nun der Zielordner dem Zielbetriebssystem für die Erstellung. Dies hat zur Folge, dass sich jeder Visual Studio-Compiler in einem anderen Standardordner befindet (
Bin64vs2013
undBin64vs2015
).Qt wurde auf Version 5.6.2 aktualisiert und umfasst die erforderlichen Fixes für Dock-Fenster.
Mit Qt-Stylesheets wurde im Lumberyard-Editor ein neues Styling implementiert. Dies umfasst Aktualisierungen der Fensterrahmen, Titelleisten und Farbschemas.
Eine neue AzQtComponents-Bibliothek mit benutzerdefinierten Lumberyard-Widgets wurde hinzugefügt. AzQtComponents kann als statische oder gemeinsame Bibliothek (DLL) genutzt werden. Andere gemeinsame Widgets werden zukünftig in dieser Bibliothek zusammengeführt.
Sie können jetzt die Funktion Convert to Editor (In Editor konvertieren) zur Konvertierung von veralteten Brush- und GeomEntity-Entitys in Komponenten-Entitys nutzen.
Die DestroySliceByEntityId-API wurde zu
GameEntityContextRequestBus
hinzugefügt. Mit dieser API können Sie komplette Slice-Instances löschen.Die Ereignisse
OnSpawnBegin
undOnSpawnEnd
wurden zur Spawner-Komponente hinzugefügt, um die EBus- und Lua-Skript-API abzubilden.TagGlobalNotificationsBus
wurde hinzugefügt, um Benachrichtigungen beim Hinzufügen oder Entfernen des Tags einer Entität (Bus-ID) zu ermöglichen.AddAngularImpulse
wurde zumPhysicsComponentBus
hinzugefügt.Die Rotation im Weltkoordinatensystem kann jetzt zurück zur Slice-Root-Entität übertragen werden.
Eingabe-Bindungen können jetzt zur Laufzeit überschrieben und im aktiven Profil gespeichert werden.
Sie können jetzt Eingabe-Bindungen durch einen Klick auf das Joystick-Symbol in der Komponente Input (Eingabe) bearbeiten.