Miglioramenti e modifiche - Note di rilascio di Lumberyard

Miglioramenti e modifiche

In Lumberyard Beta 1.11 sono stati implementati miglioramenti e modifiche ai sistemi e alle funzionalità di Lumberyard. Scegli un argomento per ulteriori informazioni.

Android

In Android sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Il pacchetto gem NativeUI ti permette di visualizzare le finestre di dialogo native su Android. Queste finestre di dialogo possono contenere testo informativo e pulsanti. Quando abiliti questo pacchetto gem per un progetto in modalità di debug, verranno visualizzate le istruzioni Assert, che ti consentiranno di interrompere o ignorare l'istanza dell'istruzione Assert oppure ignorare tutte le istruzioni Assert. In passato, l'istruzione Assert veniva riportata nel log senza la visualizzazione di una richiesta.

  • Il pacchetto gem RAD Telemetry ora funziona su Android. Ora puoi ottenere una licenza per RAD Telemetry per il profiling e l'ottimizzazione delle risorse.

  • Ora puoi basare i file AAR in Waf per l'utilizzo.

  • È stato aggiunto il supporto per più file AndroidManifest.xml.

  • Un'opzione di distribuzione per dispositivi sbloccati ti consente di eseguire il push solo delle librerie native modificate da una riga di comando: --deploy-android-attempt-libs-only. Se abilitato, deploy_android_executable avrà la priorità se viene modificato. Se deploy_android_clean_device è abilitato, l'opzione viene ignorata.

  • La catena di strumenti GCC è obsoleta e verrà rimossa in una versione futura.

  • La gestione degli asset su Android ora è coerente con gli altri sistemi operativi. Ad esempio, non puoi più eseguire il push in /sdcard/<game> o /storage/sdcard/<game>. Devi Invece utilizzare il comando di distribuzione, che rileva automaticamente il percorso corretto del dispositivo. Puoi abilitare il comando di distribuzione nel file user_settings.options impostando la modalità: "--deploy-android-asset-mode <mode>" / deploy_android_asset_mode = <mode>

    • loose – Esegue il push di singoli asset compilati nel dispositivo o viene eseguito in modalità VFS, se impostata nel bootstrap.

    • paks – Genera ed esegue il push dei file Pak nel dispositivo.

    • project_settings – Utilizza le opzioni specificate nel file di gioco project.json. Il rilascio forza questa modalità.

  • Le varie correzioni e i miglioramenti implementati negli strumenti di compilazione includono messaggi di errore più dettagliati in modo da consentirti di diagnosticare la causa esatta di un evento e task specifici per Android eseguiti solo quando richiesto.

Asset Pipeline (Pipeline asset)

Nella pipeline degli asset sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Le voci relative ai prodotti sono nascoste nella finestra Asset Browser (Browser asset) se sono solo elementi figlio di un'origine e condividono lo stesso nome e la stessa estensione dell'origine.

  • Ora, i builder del file RC.exe possono emettere risultati del processo da Asset Builder (Generatore di asset) per garantire l'integrazione ottimale con il sistema di asset.

Modifiche del codice

Sono stati implementati i seguenti miglioramenti e le seguenti modifiche a livello di codice:

  • I percorsi generati dal codice ora sono indicizzati in base al tipo di build quando vengono aggiunti ai file di soluzione di Visual Studio. Ciò consente ai file .cpp e .h generati dal codice di venire utilizzati da Intellisense.

  • I file .cpp e .h generati dal codice ora dispongono di flag dei simboli di debug, che consente loro di venire sottoposti a debug con i simboli.

  • Lo shadowing delle variabili è stato eliminato nel codice di base. Gli avvisi e gli errori sono stati abilitati per ottenere moduli puliti.

  • AZStd::atomic<T> e le relative funzioni gratuite ora sono standard conformi allo standard C++ 11, in cui non viene eseguito l'aliasing di std::atomic.

  • Gli EBus ora supportano il flag LocklessDispatch nei relativi tratti. Ciò consente a un bus di non applicare un blocco durante l'invio dei messaggi e ciò può risultare in un guadagno significativo a livello di parallelizzazione. Non puoi eseguire la connessione o la disconnessione durante l'invio di tali autobus. Ciò risulta utile per i bus che sono singleton di durata applicazione; non verranno rimossi gli handler durante le normali operazioni dell'applicazione.

  • Ogni istanza di AZ::Module ora crea il proprio sistema di entità anziché fare affidamento su un'unica entità monolitica. Ciò può creare problemi se AZ::SystemEntityId viene utilizzato per gestire componenti provenienti da pacchetti gem.

  • I tentati di accodamento di una funzione, un evento o una trasmissione in un EBus con gli argomenti ref o const ref vengono intercettati in fase di compilazione. Questi parametri devono essere copiati; in questo caso devi pertanto passarli in base al valore. Se sei in grado di garantire la durata dell'argomento, utilizza un puntatore se possibile. Se sei sicuro che la durata degli argomenti passati per riferimento è gestita, aggiungi il flag EnableQueuedReferences ai tratti del bus.

  • È stata aggiunta un'istruzione Assert per intercettare i messaggi EBus inviati da più thread su un EBus senza mutex. In presenza di questa istruzione Assert, procedi in uno dei seguenti modi:

    • Aggiungi MutexType = AZStd::recursive_mutex ai tratti del bus.

    • Limita l'invio di messaggi a un unico thread.

  • La lunghezza massima di un messaggio di log è stata aumentata da 2048 a 8096.

  • L'API è stata migliorata per l'utilizzo di riquadri di visualizzazione personalizzati:

    • Lo struct delle opzioni di visualizzazione è stato spostato all'esterno del codice dell'editor e incluso in AzToolsFramework.

    • Lo struct delle opzioni di visualizzazione è stato rinominato e associato a uno spazio dei nomi.

    • Una nuova funzione con modello è stata aggiunta per eseguire il wrapping delle chiamate a EditorRequestsBus. La nuova funzione crea automaticamente la funzione factory di creazione del widget.

    • Sono stati aggiunti OpenViewPane e CloseViewPane.

    • ShowViewPane ora è stato denominato OpenViewPane.

    • I metodi globali inline sono stati aggiunti allo spazio dei nomi AzToolsFramework per eseguire il wrapping delle chiamate all'EBus.

    Questi aggiornamenti fanno sì che il codice possa essere scritto nel modo seguente:

    #include <AzFramework/API/ApplicationAPI.h> AzToolsFramework::RegisterViewPane<MyViewPaneWidget>("MyNewPane", "MyCompany's Tools"); Instead of this: #include <QtViewPane.h> #include <AzFramework/API/ApplicationAPI.h> AZStd::function<QWidget*()> windowCreationFunc = []() { return new MyViewPaneWidget(); } ; QtViewOptions options; // have to declare this, and it's not namespaced! AzToolsFramework::EditorRequests::Bus::Broadcast(&AzToolsFramework::EditorRequests::RegisterViewPane, "MyNewPane", "MyCompany's Tools", options, windowCreationFunc);

Modello ECS (Component Entity System)

In sistema entità componente sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Quando selezioni un'entità nel viewport, la gerarchia nella finestra Entity Outliner (Outliner entità) viene espansa automaticamente per visualizzare la selezione corrente.

  • Ora puoi utilizzare ConsoleRequestBus ed effettuare la chiamata a ExecuteConsoleCommand per eseguire i comandi della console da uno script.

  • Ora puoi fare clic con il pulsante destro del mouse su un riferimento di asset in Entity Inspector (Ispettore entità) e copiare e incollare riferimenti di asset tra componenti.

  • Vari miglioramenti delle prestazioni implementati nel modello ECS (Component Entity System) includono il caricamento delle sezioni, la creazione e il salvataggio delle sezioni, nonché la creazione, l'attivazione e l'eliminazione delle entità. Le prestazioni sono state migliorate per le sezioni di grandi dimensioni (migliaia di entità).

  • Entity Outliner (Outliner entità) è stato aggiornato nel modo seguente:

    • Miglioramenti in termini di prestazioni.

    • Possibilità di riordinare le entità

    • Ulteriori zone di rilascio funzionali

    • Grafica aggiornata per le entità

    • Menu contestuali più coerenti con funzionalità aggiunte

    • Icone visualizzate quando gli elementi figlio di un'entità padre sono in uno stato misto (visibile/nascosto o bloccato/sbloccato)

  • Ora puoi trascinare e rilasciare per riordinare i componenti in Entity Inspector (Ispettore entità). Le nuove opzioni del menu contestuale consentono di salvare rapidamente le sostituzioni relative a una sezione facendo clic con il pulsante destro del mouse su un'entità in una sezione.

  • Il componente Static Mesh (Mesh statica) ora è chiamato componente Mesh. Il componente Mesh fornisce mesh statiche e dinamiche ottimizzate in base alle opzioni selezionate. Per un rendering e un'elaborazione di mesh ottimizzati, puoi utilizzare una mesh con la trasformazione statica abilitata. L'opzione Deformable Mesh (Mesh deformabile) nelle mesh statiche supporta la deformazione dei vertici uniti degli asset indumenti pur rimanendo statica.

  • Al componente Area Light (Luce area) ora è stato aggiunto un campo di visualizzazione (FOV) per l'ottimizzazione della distribuzione.

  • È stato aggiunto il supporto per generare più rimbalzi nel componente Environment Probe (Sonda ambientale) e reimpostare la cubemap generata su "none" (nessuno). Il risultato dell'illuminazione diventa insignificante dopo tre rimbalzi.

Modifiche del modello vuoto

Nel modello vuoto sono state implementate le seguenti modifiche:

  • I file nel modello vuoto sono stati aggiornati in modo da utilizzare il markup ${ProjectName} per la sostituzione durante la creazione dei progetti.

  • Scripts\GameRules\DummyRules.lua è stato rimosso dal modello vuoto. Le regole di gioco non sono richieste per il funzionamento dei giochi Lumberyard.

  • I seguenti file sono stati rimossi dal modello vuoto:

    • Scripts\network\CompressionPolicy.xml

    • EntityScheduler.xml

    • Scheduler.xml

  • Scripts\GameObjectSerializationOrder.xml è stato rimosso dal modello vuoto. Un messaggio che avvisa che questo file è mancante viene spostato in un file di log. Lumberyard si allontana dal sistema GameObject verso il nuovo sistema entità componente. Se vuoi definire l'ordine di serializzazione per le estensioni GameObject, crea un file XML denominato GameObjectSerializationOrder.xml nella tua cartella degli script del progetto e includi contenuti, ad esempio:

    <?xml version="1.0"?> <!-- this defines the serialization order for game object extensions within an entity --> <!-- extensions not in the list get the lowest priority (serialized last) --> -<extensionsSerializationOrder> <Inventory/> <Interactor/> <Player/> <AnimatedCharacter/> </extensionsSerializationOrder>
  • Scripts\main.lua è stato rimosso dal modello vuoto. Ti consigliamo di scrivere gli script Lua all'interno del nuovo contesto di script Lumberyard e non nel contesto di script Cry legacy. Se desideri continuare a utilizzare il contesto di script Cry, puoi creare un file denominato main.lua nella cartella degli script. Tale file verrà caricato automaticamente da CCryAction::CompleteInit(). CryAction cercherà di chiamare OnInit durante il caricamento dello script.

  • Scripts\physics.lua è stato rimosso dal modello vuoto. Ti consigliamo di scrivere gli script Lua all'interno del nuovo contesto di script Lumberyard e non nel vecchio contesto di script Cry. Questo file in precedenza conteneva solo note commentate sul sistema di esplosione.

    -- This file is (optionally) loaded and executed on C3DEngine::LoadPhysicsData() call. -------------------------------------- -- Register explosion and crack shapes -------------------------------------- -- RegisterExposionShape params, in this order: -- 1) Boolean shape CGF name -- 2) Characteristic "size" of the shape: Ideally it should roughly represent the linear dimensions of the hole -- Whenever a carving happens, it requests a desired hole size (set in explosion params or surfacetype params), and the shape is scaled by [desired size/characteristic size] -- If several shapes are registered with the same id, the one with the size closest to the requested will be selected, and if there are several shapes with this size, one of them will be selected randomly -- 3) Breakability index (0-based): Used to identify the breakable material -- 4) Shapes relative probability: When several shapes with the same size appear as candidates for carving, they are selected with these relative probabilities -- 5) Splinters CGF: Used for trees to add splinters at the place where it broke -- 6) Splinters Scale: Splinters CGF is scaled by [break radius * splinters scale], i.e. splinters scale should be roughly [1 / most natural radius for the original CGF size] -- 7) Splinters Particle FX name: Is played when a splinters-based constraint breaks and splinters disappear -- -- RegisterExposionCrack params, in this order: -- 1) Crack shape CGF name (must have 3 helpers that mark the corners, named "1","2","3") -- 2) Breakability index (same meaning as for the explosion shapes) --[[ EXAMPLES Physics.RegisterExplosionShape("Objects/default/explosion_shape/tree_broken_shape.cgf", 7, 2, 1, "",0,""); Physics.RegisterExplosionShape("Objects/default/explosion_shape/tree_broken_shape2.cgf", 1.3, 3, 1, "",0,""); Physics.RegisterExplosionShape("Objects/default/explosion_shape/tree_broken_shape3.cgf", 1.3, 5, 1, "Objects/default/explosion_shape/trunk_splinters_a.cgf",1.6,"breakable_objects.tree_break.small"); --]]
  • .p4ignore è stato rimosso dal modello vuoto. Se utilizzi Perforce, ti consigliamo di seguire le istruzioni di configurazione di Lumberyard Perforce, che includono informazioni sulla configurazione di un file ignore di Perforce. Per ulteriori informazioni, consulta Utilizzo del plug-in Perforce con Lumberyard nella Guida per l'utente di Amazon Lumberyard.

  • Config\Input\ActionMaps.xml è stato rimosso dal modello vuoto. Raccomandiamo di utilizzare il sistema di input di Lumberyard. Se desideri continuare a usare le mappe azioni, è opportuno ricordare che ora sono obsolete. Se vuoi utilizzarle con un nuovo progetto, aggiungi un file ActionMaps.xml nella directory Config\Input folder del progetto e inizia con questi dati:

    <profile version="1"> <!-- platforms - Used to define which keys to map for each action based on the platform that is in use --> <platforms> <PC keyboard="1" x​boxpad="1" ps​3pad="0" androidkey="0"/> </platforms> <!-- default - Default action key mappings --> <actionmap name="default"> </actionmap> <actionmap name="player"> <!-- USER DEFINED --> <!-- USED INTERNALLY - DO NOT REMOVE --> <action name="moveleft" onPress="1" onRelease="1" retriggerable="1" keyboard="a"/> <action name="moveright" onPress="1" onRelease="1" retriggerable="1" keyboard="d"/> <action name="moveforward" onPress="1" onRelease="1" retriggerable="1" keyboard="w"/> <action name="moveback" onPress="1" onRelease="1" retriggerable="1" keyboard="s"/> <action name="rotateyaw" keyboard="maxis_x" /> <action name="rotatepitch" keyboard="maxis_y" /> <action name="xi_movey" x​boxpad="xi_thumbly"/> <action name="xi_movex" x​boxpad="xi_thumblx"/> <action name="xi_rotateyaw" x​boxpad="xi_thumbrx"/> <action name="xi_rotatepitch" x​boxpad="xi_thumbry"/> </actionmap> </profile>
  • Il profilo di default per il sistema di mappe azioni è stato rimosso dal modello vuoto. Al momento, non è ancora disponibile un sistema di profili di sostituzione. Pertanto, se vuoi utilizzarne uno e non desideri scriverne uno personalizzato, procedi nel seguente modo:

    1. Clonare i contenuti del pacchetto gem LegacyGameInterfaceGem in un nuovo pacchetto gem o nel progetto.

    2. In Actor.cpp, aggiornare la chiamata a SetClientActor a true per il parametro setupActionMaps.

    3. Abilitare il pacchetto gem UserLoginDefault.

    4. Aggiungere i seguenti file con questi contenuti al progetto:

      • libs\config\profiles\default\actionmaps.xml

      • libs\config\profiles\default\attributes.xml

      • libs\config\profiles\default\profile.xml

      • libs\config\defaultprofile.xml

    5. Per completare il gioco, creare un sistema di accesso finale utilizzando il pacchetto gem UserLoginDefault come modello. Ha lo scopo di essere un'interfaccia dello stub per consentire alle build di rilascio di funzionare con le mappe azioni e non rappresenta un sistema di accesso utente completo. Puoi utilizzare il progetto GameSDK come riferimento.

  • L'elenco di pacchetti gem di default è stato ridotto al minimo necessario per il caricamento di un nuovo progetto nella finestra Lumberyard Editor (Editor Lumberyard) (Editor Lumberyard) e per il programma di avvio di Windows sia nelle build (debug, profilo) non monolitiche che nelle build (rilascio) monolitiche.

    • I pacchetti gem PBSreferenceMaterials, Camera, PhysicsEntities e UiBasics non sono più abilitati per impostazione di default per i progetti che utilizzano il modello vuoto. La loro abilitazione può risultare utile, ma non si tratta di pacchetti gem obbligatori. Sono abilitati per impostazione di default nel modello semplice.

    • Il pacchetto gem UserLoginDefault Gem non è più abilitato per impostazione di default per i progetti che utilizzano il modello vuoto. Questo pacchetto gem è associato al sistema di mappe azioni obsoleto. Nelle build di rilascio dei progetti di gioco di Lumberyard che utilizzano il sistema di mappe azioni, è necessario disporre di un sistema di accesso per tenere traccia dei profili utente e della personalizzazione dei controller. Il pacchetto gem UserLoginDefault è una semplice implementazione avente lo scopo di consentire il funzionamento delle build di rilascio, ma non è un'implementazione completa di un sistema di profili utente utilizzabile. Ti consigliamo di scrivere un sistema di profili utente personalizzato anziché usare questo sistema. Se vuoi usare questo sistema, consulta le note precedentemente riportate relative al sistema di profili.

  • Per impostazione di default, i seguenti pacchetti gem sono disabilitati:

    • LegacyGameInterface – Si tratta di un nuovo pacchetto gem introdotto nella versione 1.11, contenente l'implementazione del codice boilerplate per i sistemi richiesti dal motore e dall'editor di Lumberyard per l'avvio.

    • CryLegacy – Questo pacchetto gem è necessario per inizializzare il framework del gioco e caricare il file DLL di CryAction.

    • LmbrCentral – Questo pacchetto gem contiene le interfacce dei componenti per i sistemi legacy.

    • LyShine – Questo pacchetto gem è richiesto per il funzionamento del sistema dell'interfaccia utente d Lumberyard, che a sua volta è richiesto per il caricamento di Lumberyard Editor (Editor Lumberyard).

    • Pacchetto gem del progetto – Il codice per i progetti di gioco ora è contenuto nei pacchetti gem. Il pacchetto gem del progetto ora è abilitato per impostazione di default.

  • Per ulteriori informazioni sul modello vuoto, consulta Creazione e avvio di progetti di gioco nella Guida per l'utente di Amazon Lumberyard.

FBX Settings (Impostazioni FBX)

Nella funzionalità FBX Settings (Impostazioni FBX) sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Se disponi di un file .fbx con più strutture scheletriche, non verranno creati automaticamente più gruppi di strutture scheletriche in FBX Settings (Impostazioni FBX). (solo caratteristica CryAnimation).

  • La finestra di elaborazione e report per FBX Settings (Impostazioni FBX) include un aggiornamento visivo.

  • Gli ID secondari dei prodotti dai file .fbx ora sono stabili. Gli oggetti non scompaiono più quando le impostazioni vengono aggiornate. Potrebbero verificarsi rari casi di ID secondari non compatibili con le versioni precedenti. In questi casi, devi aggiungere di nuovo i prodotti manualmente al sistema mondo.

Pacchetti gem

Nei pacchetti gem sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • I pacchetti gem ora possono contenere più tipi di codice. I pacchetti gem possono inoltre generare zero o più moduli di gioco, moduli editor, librerie statiche e generatori di asset. Per aggiungere un modulo editor, imposta EditorModule su true nel file Gem.json.

  • Un nuovo pacchetto gem di tipo tutorial illustra come estendere SceneAPI.

  • Ora puoi definire i tipi di asset e le regole di elaborazione nei pacchetti gem.

Geppetto e Mannequin

In Geppetto e Mannequin sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Per impostazione predefinita, in Lumberyard 1.11, Geppetto e Mannequin sono disabilitati, mentre Animation Editor (Editor animazione) è abilitato. Per accedere a Geppetto e Mannequin, abilita CryLegacyAnimation Gem (Pacchetto gem CryLegacyAnimation) nel Project Configurator (Configuratore progetto).

iOS

In iOS sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Il pacchetto gem NativeUI ti permette di visualizzare le finestre di dialogo native su iOS. Queste finestre di dialogo possono contenere testo informativo e pulsanti. Quando abiliti questo pacchetto gem per un progetto in modalità di debug, verranno visualizzate le istruzioni Assert, che ti consentiranno di interrompere o ignorare l'istanza dell'istruzione Assert oppure ignorare tutte le istruzioni Assert. In passato, l'istruzione Assert veniva riportata nel log senza la visualizzazione di una richiesta.

  • È stato aggiunto il supporto per le versioni beta di Xcode 9 e iOS 11.

Lumberyard Editor (Editor Lumberyard)

Nella funzionalità Lumberyard Editor (Editor Lumberyard) (Editor Lumberyard) sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • La velocità di importazione delle megatexture del terreno e di generazione delle texture del terreno è stata migliorata.

  • La schermata iniziale ora viene visualizzata fino a 12 livelli aperti più di recente.

  • Per migliorare le prestazioni dell'editor nei laptop e in computer con requisiti minimi, sys_MaxFPS è impostato su 60 nel file editor.cfg. Questa impostazione interessa solo le prestazioni dell'editor e non le prestazioni del runtime. Per riportare il comportamento dell'editor alle impostazioni predefinite, impostare sys_MaxFPS = 60 come commento nel file editor.cfg. Per impostazione predefinita, Lumberyard usa sys_MaxFPS = -1, che imposta la frequenza di frame massima su un valore illimitato.

  • È stato aggiunto l'allineamento delle finestre per supportare la gestione di più finestre nell'editor. Per allineare una finestra, spostare la finestra in prossimità di una finestra statica. L'allineamento si verifica in corrispondenza dei bordi superiore, inferiore, sinistro e destro del riquadro.

  • Ora è supportata l'illuminazione emissiva con decalcomanie differite.

Lumberyard Setup Assistant (Assistente configurazione Lumberyard)

Nella funzionalità Lumberyard Setup Assistant (Assistente configurazione Lumberyard) (Assistente configurazione Lumberyard) sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • L'eco è disattivata quando viene eseguito SetupAssistant.bat.

  • Quando passi ai seguenti software e plugin di terze parti, ora ti viene richiesto di specificare la directory e non il file: SDK Android, NDK Android e FFmpeg.

  • La descrizione dell'installazione del compilatore C++ di Visual Studio 2015 è stata aggiornata.

  • Se si cerca di chiudere Lumberyard Setup Assistant (Assistente configurazione Lumberyard) durante la generazione dei collegamenti simbolici, viene visualizzato un avviso.

  • Se si cerca di chiudere Lumberyard Setup Assistant (Assistente configurazione Lumberyard) mentre sono in corso operazioni attive, viene visualizzato un avviso.

  • Viene visualizzato un avviso nella pagina degli SDK se il workspace non è disponibile.

  • Lumberyard Setup Assistant (Assistente configurazione Lumberyard) ora è un eseguibile per macOS.

  • È possibile scaricare Qt per Linux in Lumberyard Setup Assistant (Assistente configurazione Lumberyard).

macOS

In macOS sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Il supporto per Yosemite e OpenGL è obsoleto e non sarà più disponibile in Lumberyard 1.12.

  • Metal ora è il renderer di default su macOS invece di OpenGL.

  • Il pacchetto gem NativeUI ti permette di visualizzare le finestre di dialogo native su macOS. Queste finestre di dialogo possono contenere testo informativo e pulsanti. Quando abiliti questo pacchetto gem per un progetto in modalità di debug, verranno visualizzate le istruzioni Assert, che ti consentiranno di interrompere o ignorare l'istanza dell'istruzione Assert oppure ignorare tutte le istruzioni Assert. In passato, l'istruzione Assert veniva riportata nel log senza la visualizzazione di una richiesta.

Mobile

Le build per Android e iOS ora sono di dimensioni più piccole. Le dimensioni di un progetto vuoto sono pari a ~ 20 MB per Android e ~ 25 MB per iOS.

Reti

Nella funzionalità di gestione delle reti sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • I dati di replica delle trasformazioni sono stati ottimizzati in modo da ridurre la larghezza di banda.

  • Il sistema di registrazione Driller ora può scrivere l'output del profilo in un file.

  • Le query speciali di Interest Manager (Gestore interessi) sono state ottimizzate e l'interfaccia grafica di Interest Manager (Gestore interessi) è stata migliorata. La documentazione verrà aggiunta nella versione successiva.

  • Il progetto di esempio multigiocatore usa Interest Manager (Gestore interessi) per supportare un maggior numero di asteroidi.

  • Il livello di trasporto GridMate ora dispone di un'interfaccia e di un'API di compressione.

  • Ora è possibile eseguire l'interpolazione (Posizione, Rotazione) del componente Transform (Trasformazione) sui client. Il valore di default è Linear (Lineare), ma puoi aggiungere algoritmi di interpolazione personalizzati in modo semplice e rapido.

Sistema di particelle

Nel sistema di particelle sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • I parametri per il componente Particle (Particella) ora sono esposti al sistema di visualizzazione delle tracce.

  • Quando riordini le particelle figlio nella libreria di particelle, ora viene eseguito il rendering delle particelle in base all'ordine aggiornato.

Project Configurator (Configuratore progetto)

In Project Configurator (Configuratore progetto) sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Non puoi disabilitare un pacchetto gem da cui dipende un pacchetto gem abilitato.

  • Project Configurator (Configuratore progetto) esegue la scansione della directory ProjectTemplates alla ricerca del file templatedefinition.json. Questo file contiene informazioni sul modello, ad esempio il nome visualizzato, la descrizione e il percorso dell'icona. Questo file non viene utilizzato o non è obbligatorio se crei progetti con l'SDK Lyzard o con lmbr.exe.

Twitch e Twitch ChatPlay

Il pacchetto gem Twitch dispone di due nuove API: le API Commerce e un'API per recuperare l'ID diritto Twitch.

UI Editor (Editor IU)

In UI Editor (Editor IU) sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Le modifiche apportate a UI Editor (Editor IU) includono una migliore navigazione, l'opzione per attivare automaticamente gli elementi interattivi e la possibilità di spostarsi tra elementi interattivi mediante una casella di scorrimento.

  • Il componente UiText ora include le proprietà Character Spacing (Spaziatura caratteri) e Line Spacing (Interlinea).

  • L'esempio LyShineExamplesCppExample.cpp (disponibile nella directory \Gems\LyShineExamples\Code\Source) illustra come creare un canvas dell'interfaccia utente in C++.

  • L'esempio UiCustomimageComponent.cpp (disponibile nella directory \Gems\LyShineExamples\Code\Source) illustra come creare un componente personalizzato dell'interfaccia utente in C++.

  • Ora puoi scollegare le entità e le istanze delle sezioni in UI Editor (Editor IU).

  • Il pacchetto gem LyShine ora è obbligatorio e viene abilitato automaticamente quando crei un nuovo progetto.

  • Per impostazione predefinita, la finestra di dialogo Open Canvas (Apri canvas) viene visualizzata sulla posizione in cui stato aperto o salvato l'ultimo canvas.

  • Nel riquadro Properties (Proprietà) ora viene visualizzato il nome dell'elemento selezionato.

  • Il livello del progetto Samples denominato UiFeatures sostituisce il livello FeatureTests denominato LyShineFeatures. Il livello LyShineFeatures è stato rimosso.

  • GetUiCursorPosition è stato aggiunto a UiCursorBus.

Varie

In Lumberyard sono stati implementati i seguenti miglioramenti e le seguenti modifiche:

  • Ora puoi specificare un nome di modello quando crei un progetto con lmbr.exe oppure compili un'interfaccia personalizzata con l'SDK Lyzard. Se non specifichi un modello, verrà utilizzato il modello vuoto.

  • Ora puoi utilizzare la versione di debug dei moduli Lyzard per collegare i file binari di debug.

  • prepare_dependencies.bat ora include informazioni aggiuntive quando le librerie Qt non vengono copiate correttamente.