Verbesserungen und Änderungen - Lumberyard-Versionshinweise

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 und metastream_docroot sind veraltet. Sie können die neue Konsolenvariable metastream_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 und metastream_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: GameProjectName/certificates/selfsigned.cert.pem und GameProjectName/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ür AddImpulse und SetVelocity.

Scripting
  • Sie können jetzt Entität-Hierarchien über die DestroyGameEntityAndDescendants-Methode für den GameEntityContextRequestBus entfernen.

  • Die DestroyGameEntity(AZ::Entity*)-Methode wurde aus dem GameEntityContextRequestBus 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 und GetMass über die PhysicsRequestBus.

  • 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üsselwort autod 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 das configurations-Schlüsselwort verwendet, um die Konfiguration zum Erstellen eines Projekts zu bestimmen. Bisher wurde das Schlüsselwort build_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 der Bin64-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 und Bin64vs2015).

  • 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 OnSpawnBeginund OnSpawnEnd 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 zum PhysicsComponentBus 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.