Miglioramenti - Note di rilascio di Lumberyard

Miglioramenti

Lumberyard Beta 1.23 fornisce una serie di miglioramenti richiesti dal cliente, in particolare per quanto riguarda la fisica e la gestione delle sezioni. Controllali!

Gestione degli asset (sezioni)

Abbiamo apportato alcune modifiche al formato dei file di asset di sezione e creato una pipeline di aggiornamento delle sezioni che, una volta abilitata, consente ad Asset Processor (Elaboratore asset) di convertire automaticamente le sezioni nel nuovo formato. Questo nuovo formato di file di sezione consente una gestione più granulare degli asset del componente nella sezione.

Vuoi provare il nuovo formato dei file di sezione? Continua a leggere!

  • Come di utilizza la pipeline di aggiornamento delle sezioni?

    1. Assicurati che il file di sezione di origine sia impostato come scrivibile nel file system locale.

    2. (Se stai usando git, puoi ignorare questa fase.) Se utilizzi Perforce, controlla ricorsivamente tutti i file di sezione che desideri aggiornare eseguendo il seguente comando Perforce:

      p4 edit ...\*.slice

      Se disponi di sezioni di sola lettura non monitorate da Perforce, devi modificarle in sezioni di lettura-scrittura manualmente.

    3. Abilita Deep Slice Resaving nel file delle impostazioni di Slice Builder (Builder di sezioni) . Il file delle impostazioni è SliceBuilderSettings.json. Si trova nella directory /dev della radice di installazione. Apri il file e modifica l'impostazione EnableSliceConversion in true. Per impostazione predefinita, questa opzione è disabilitata.

    4. Se ha già eseguito l'elaboratore asset v1.23 prima di apportare questa modifica, riavvia l'applicazione Asset Processor (Elaboratore asset) . Questa operazione attiva una nuova scansione completa degli asset dalla scheda Tools (Strumenti) di Asset Processor (Elaboratore risorse).

  • Quando si utilizza la pipeline di aggiornamento delle sezioni? Utilizzarla quando:

    • Si aggiunge una sezione salvata utilizzando una versione precedente del formato di file di sezione.

    • Si installa una nuova versione o build di Lumberyard che apporta modifiche al formato di file di sezione.

    • I log di Asset Processor (Elaboratore asset) indicano che il progetto contiene sezioni che richiedono un aggiornamento. In tal caso, nel log viene visualizzato un avviso simile al seguente:

      This slice file is out of date: {slice-file-path-here} To enable automatic upgrades: In the settings file SliceBuilderSettings.json, Set EnableSliceConversion to true and restart the Asset Processor
    Nota

    Questa pipeline non deve essere attualmente utilizzata per aggiornare le sezioni quando si modifica la serializzazione del componente. Per ottenere tale aggiornamento, utilizza il comando Resave All Slice (Salva nuovamente tutte le sezioni) nel menu File di Lumberyard Editor.

Scopri di più sul funzionamento del nuovo formato di sezione, su come utilizzare il nuovo formato per la funzione Versioni multiple dei componenti di sezione e su come aggiornare il progetto per utilizzarlo.

Editor

  • Lumberyard utilizza ora Qt 5.12. Questo include numerosissime correzioni e miglioramenti alle funzionalità e alle prestazioni generali dell'interfaccia utente in tutto l'editor.

EMFX (Animazione)

Abbiamo aggiornato EMFX con i seguenti miglioramenti:

  • Ottimizzazioni generali: sono state eseguite diverse ottimizzazioni all'interno del runtime EMotion FX come parte di un processo continuativo di miglioramento delle prestazioni.

    Come parte di questo processo, al posto del quaternion interno di EMotion FX utilizziamo ora il tipo AZ::Quaternion pubblico, che usa le istruzioni SIMD della CPU per l'accelerazione. Ciò significa che anche alcuni codici di animazione potrebbero richiedere modifiche, perché per le rotazioni utilizzeranno ora AZ::Quaternion anziché il tipo quaternion interno e gli algoritmi.

    Abbiamo anche apportato ottimizzazioni alla classe Pose e al sistema grafico di animazione stesso. Non è necessario modificare il codice per visualizzare questi vantaggi in termini di prestazioni.

  • Ottimizzazione dello scheletro: abbiamo aggiunto un nuovo modificatore delle impostazioni FBX per attori, che esamina le informazioni di skinning dei dati della mesh e determina il set minimo di articolazioni che deve essere abilitato per eseguire correttamente lo skin del personaggio. Ciò significa che se si esegui lo skin dei livelli LOD inferiori a meno articolazioni (ad esempio, senza articolazioni delle dita), vengono generati automaticamente livelli LOD dello scheletro dove tali articolazioni sono disabilitate. Nota che con il modificatore puoi ancora selezionare un elenco di articolazioni critiche, che è sempre abilitato. Il modificatore consente inoltre di rimuovere automaticamente le articolazioni per gli scheletri del server. Vengono esaminate le articolazioni a cui sono collegati i collider e in base a ciò verrà determinato il set minimo di articolazioni richieste. Ciò consente di generare rapidamente asset server ottimizzati con un numero di articolazioni altamente ridotto. Proprio come i livelli di dettaglio dell'attore, lo scheletro del server automatico include anche le articolazioni che si trovano nell'elenco di ossa critico.

    Al momento, assicurati che i grafici di animazione non facciano riferimento alle articolazioni che vengono disabilitate dal livello di dettaglio dello scheletro.

Dispositivi mobili (Grafico)

Abbiamo migliorato le prestazioni di gioco di runtime sui dispositivi mobili cambiando la compressione texture in ASTC e riducendo la dimensione del G-Buffer.

  • La compressione texture ASTC riduce l'utilizzo di bit per pixel del G-Buffer e riduce le temperature hardware sui dispositivi mobili migliorando al contempo le frequenze di fotogrammi. Per fare questo, riduce la quantità richiesta di larghezza di banda di memoria per il caricamento e la decompressione. L'ottimizzazione del G-Buffer, con un utilizzo ridotto di bit per pixel, riduce anche la larghezza di banda di memoria richiesta in più fasi della pipeline di rendering. Questo consente di alleviare i problemi di temperatura hardware e della frequenza di fotogrammi.

Componente Physics (Fisica)

In questa versione sono state aggiunte molte funzionalità per le persone che lavorano con la fisica del gioco:

  • Versione sperimentale del pacchetto gem NVIDIA Cloth: questo nuovo pacchetto gem consente a progettisti e artisti di creare e personalizzare simulazioni del tessuto in modo facile e veloce, nonché eseguire iterazioni su di esse. Grazie al pacchetto gem NVIDIA Cloth potrai aggiungere la simulazione del tessuto ai tuoi personaggi e ambienti. Ulteriori informazioni su questo argomento sono disponibili nei documenti Amazon Lumberyard.

    Nota

    Piattaforme supportate: solo PC. Altre piattaforme non verificate. Non sono stati impostati controlli su dispositivi mobili.

  • Pacchetto gem PhysXSamples: il pacchetto gem PhysXSamples contiene una raccolta di sezioni e script di esempio che vanno da esempi di caratteristiche introduttive a un controller di personaggio in terza persona completamente animato. Lo scopo di questo pacchetto gem è diventare una libreria di esempi per le caratteristiche comunemente utilizzate nei progetti di gioco.

    Le sezioni nel pacchetto gem includono:

    • Sezioni corpo rigide PhysX per cubi e sfere con scala di un metro per comodità.

    • RayShapeCollide. Questa semplice sezione, se rilasciata in un livello, presenta esempi interattivi e script che dimostrano tutti i modi in cui è possibile raggiungere e toccare il mondo con PhysX. Gli script includono:

      • Come usare Raycast e Multi-Raycast

      • Esempi di cast di forma per sfera, cubo e capsula

      • Come utilizzare gli eventi OnCollision

      • Come utilizzare eventi di accesso e uscita On Trigger

    • FlyController&Camera. Questa sezione include un semplice controller di volo e sezioni della fotocamera che gli utenti possono rilasciare in un livello e che aggiunge la possibilità di volare liberamente intorno al livello al runtime. Utilizza un corpo rigido cinematico semplice e imposta la traslazione mondo di un'entità per la libertà di movimento.

    • Controller a sfera. In questa sezione sono incluse due varianti: un semplice controller a sfera a impulsi e un controller SphereBot articolato leggermente più complesso (ritorno del robot R0-B da Samples Project). Entrambe le sezioni non dispongono di una videocamera predefinita, ma possono essere combinate con la sezione di rig della fotocamera Simple_Follow per un'esperienza in terza persona. In alternativa, gli utenti sono liberi di creare i propri rig della fotocamera e collegarli agli esempi di sezione.

    • Quadrirotore. Utilizza la forza d'impulso alimentata dal nuovo handler Post Physics per volare e stabilizzare il volo stazionario. Gli script aggiuntivi includono comportamenti di rig della fotocamera personalizzati per il volo e script che modificano la velocità di rotazione dell'elica in base alla velocità. Questa sezione può anche essere combinata con la sezione proiettile arma che spara sfere a corpo rigido e la sezione movimento elica che utilizza un volume di forza per interagire con i corpi rigidi nel mondo. (Si consiglia di attivare il rilevamento delle collisioni continue nelle impostazioni di configurazione Global Physics.)

    • Cowboy e Revolver. È il nostro amico e attore che a lungo ha sofferto, il Cowboy! È destinato a recitare solo negli esempi? Forse puoi dargli uno senso quando provi queste sezioni dettagliate. Il controller dei personaggi PhysX e i componenti dell'attore vengono qui utilizzati insieme agli strumenti di animazione e a Script Canvas per guidare alcune meccaniche di gioco. Il controller in questa sezione supporta il movimento radice e il movimento diretto per il movimento dell'entità del personaggio. Abbiamo anche incluso un sistema di fotocamere personalizzato con funzione “terza persona” e comportamenti che utilizzano la velocità dei personaggi per muovere dinamicamente la fotocamera avanti e indietro su un carrello e modificarne il campo visivo. Mentre la posa del personaggio predefinita presuppone che un'arma sia sempre in mano, la sezione pistola Revolver è opzionale e apre la possibilità di collegare e staccare dinamicamente le armi. A differenza dell'arma a corpo rigido, il revolver usa i raggi per sparare (hit scanning) e interpola un tracciante intorno al bersaglio. Il Cowboy è pronto per affrontare Lumberyard!

      Abilita il pacchetto gem PhysXSamples in ProjectConfigurator per rendere gli esempi disponibili nel gioco e nell'editor.

      Nota

      Piattaforme supportate: solo PC. Altre piattaforme non verificate. Non sono stati impostati controlli su dispositivi mobili.

  • Pacchetto gem DevTextures: il pacchetto gem DevTextures è una raccolta di texture utilizzate per lo sviluppo e il debug. Comprende diversi tipi di texture griglia come un strumento di controllo grigio medio, griglie di debug UV e forme semplici quali punto e anello.

    Lo scopo di questo pacchetto gem è diventare una libreria per gli asset di texture comunemente utilizzati nei progetti.

    • Abilita il pacchetto gem PhysXSamples in ProjectConfigurator per rendere gli esempi disponibili nel gioco e nell'editor.

  • Esponi le operazioni get e set per livelli di collisione e gruppi per corpi rigidi e personaggi in Script Canvas: abbiamo aggiunto nodi Script Canvas per ottenere, impostare e commutare livelli di collisione, gruppi di collisione, nonché ottenere e impostare i loro nomi. Questi nuovi nodi consentono di apportare facilmente modifiche ai livelli di collisione e ai gruppi utilizzando Script Canvas.

    Di seguito vengono riportati i dettagli relativi a ciascuno di questi nuovi nodi:

    • Attiva/disattiva un livello di collisione all'interno del gruppo di collisione su un'entità.

      Questo nuovo nodo consente di modificare il gruppo di collisione su un collider. Consente di abilitare o disabilitare un livello specifico all'interno del gruppo di collisione su un collider. Influenza solo il gruppo di collisione per quella particolare istanza del collider, eseguendo una ricerca (basata sul nome del livello) nella finestra di configurazione PhysX e recuperando il livello. Se non è possibile trovare il nome del livello, il nodo non esegue alcuna operazione e il livello rimane invariato sul collider.

      Utilizza il tag del collider per scegliere un collider specifico quando sono presenti più collider sull'entità. Vengono aggiornati solo i collider che dispongono di un tag del collider corrispondente. Se il campo del tag del collider viene lasciato vuoto, tutti i collider nel livello sono abilitati o disabilitati.

      Attiva/disattiva input del livello di collisione
      Nome pin Tipo Descrizione
      Source EntityId L'ID dell'entità di origine di cui eseguire la query
      Nome del livello Stringa Il nome del livello di collisione da impostare
      Tag del collider AZCrc32 Utilizzato per specificare un particolare collider.
      Enabled booleano Selezionare per abilitare un livello, lasciare deselezionato per disabilitare un livello.
    • Impostare un livello di collisione sul collider.

      Questo nodo esegue una ricerca nella finestra di configurazione di PhysX per recuperare il livello utilizzando il nome del livello fornito. Se non è possibile trovare il nome del livello, il nodo non esegue alcuna operazione e il livello rimane invariato sul collider. Se il nome del livello non è valido, nella console viene visualizzato il seguente errore:

      [Warning] (CollisionLayers) - Could not find collision layer: {name-of-layer-here}. Does it exist in the configuration window?

      Utilizza il tag del collider per specificare un particolare collider quando sono presenti più collider definiti sull'entità. Verranno aggiornati solo i collider che corrispondono al valore della stringa del tag del collider fornito. Se viene lasciato vuoto, tutti i collider vengono aggiornati.

      Imposta gli input di livello di collisione
      Nome pin Tipo Descrizione
      Source EntityId L'ID dell'entità di origine di cui eseguire la query
      Nome del livello Stringa Il nome del livello di collisione da impostare
      Tag del collider AZCrc32 Utilizzato per specificare un particolare collider.
    • Impostare un gruppo di collisione su un collider.

      Questo nodo esegue una ricerca nella finestra di configurazione di PhysX per recuperare il gruppo utilizzando il nome del gruppo fornito. Se non è possibile trovare il nome del gruppo, il nodo non esegue alcuna operazione e il gruppo rimane invariato sul collider. Nella console viene visualizzato il seguente messaggio di errore:

      [Warning] (CollisionLayers) - Could not find collision layer: {name-of-layer-here}. Does it exist in the configuration window?

      Utilizza il tag del collider per scegliere un collider specifico quando sono presenti più collider sull'entità. Verranno aggiornati solo i collider che corrispondono al valore della stringa del tag del collider fornito. Se viene lasciato vuoto, tutti i collider vengono aggiornati.

      Imposta gli input del gruppo di collisione
      Nome pin Tipo Descrizione
      Source EntityId L'ID dell'entità di origine di cui eseguire la query
      GroupName Stringa Il nome del gruppo di collisione da impostare
      Tag del collider AZCrc32 Utilizzato per specificare un particolare collider.
    • Puoi recuperare i nomi del livello di collisione e del gruppo di collisione passando un valore EntityId ai nuovi nodi GetCollisionLayerName e GetCollisionGroupName . In entrambi i casi, l'output è una variabile string che contiene rispettivamente i nomi del livello di collisione o del gruppo di collisione.

  • Suggerimento per numero di iterazioni delle visualizzazioni del componente Ragdoll: questa modifica informa l'utente che un numero di iterazioni più elevato migliora la fedeltà a discapito delle prestazioni.

Interfaccia utente (LyShine)

  • Puoi simulare un evento di navigazione di pressione e rilascio negli script utilizzando ForceEnterInputEventOnInteractable in UiCanvasBus. Questo è utile per i test automatici, ad esempio la simulazione di un clic del pulsante.

Supporto (Librerie)

  • Aggiornata la libreria Qt alla versione 5.12.4.0 (dalla versione 5.6.2.7). Questo aggiornamento include più di due anni di correzioni di bug e nuove caratteristiche nelle librerie Qt. Per ulteriori informazioni, consulta le note di rilascio di Qt 5.12 .

  • Ora puoi compilare per Android in Visual Studio 2017. Ciò richiede il carico di lavoro “Mobile Development with C++” dal programma di installazione di Visual Studio per caricare i progetti Android all'interno di Visual Studio.

Sistemi

  • La cvar SaveLevelStats, che genera un file CSV con dati di livello, è stata migliorata per visualizzare i valori corretti per l'utilizzo della memoria.