Panoramica della fisica mesh
In un'esperienza mesh, la simulazione della fisica è fondamentale per abilitare contenuti dinamici coinvolgenti. Per fornire ai partecipanti mesh esperienze fisiche condivise di alta qualità e offrire agli sviluppatori un flusso di lavoro produttivo nella creazione di contenuti personalizzati, abbiamo creato il sistema Di fisica mesh. La fisica delle mesh si basa sulla simulazione autorevole locale, che comporta un'architettura molto semplice. Non è necessaria logica sul lato server e logica speciale nei client. Soprattutto, questo approccio comporta un'esperienza molto reattiva e a bassa latenza per ogni giocatore che interagisce con il proprio ambiente, anche quando si è connessi a una rete a latenza elevata.
Simulazione fisica distribuita
La fisica mesh sincronizza le posizioni dei corpi rigidi e dovrebbe funzionare all'esterno, presupponendo che tutti i client condividono la stessa scena. La maggior parte delle funzionalità di fisica di Unity (ad esempio, rigidbodies, collideri, materiali e vincoli) verrà sincronizzata senza ulteriori sforzi per gli sviluppatori:
Note:
- Solo le posizioni e gli orientamenti di rigidbody vengono sincronizzati con l'interpolazione
- È necessario evitare modifiche discrete dello stato (ad esempio, vincoli interrompibili) ed eventi di trigger
Ogni client è responsabile della simulazione di alcuni corpi, denominata proprietà della simulazione distribuita. Quando un giocatore tocca un corpo rigido, la proprietà della simulazione viene immediatamente trasferita per consentire l'interazione a bassa latenza. Per i corpi adiacenti, il motore di sincronizzazione della fisica esegue stime locali, interpolazione e ridistribuzione automatica della proprietà per ridurre al minimo gli artefatti visivi.
La fisica mesh offre interazioni e funzionalità aggiuntive correlate alla fisica, ad esempio:
- vari campi per influenzare fisicamente i corpi all'interno (buoyancy, gravità)
- vari componenti per modificare il comportamento dei singoli corpi (magnetico, sticky, throwable)
- possibilità di reimpostare i corpi nelle posizioni di avvio (pulizia selettiva della scena)
- Modalità di riproduzione con supporto di emulazione mesh per i test multiutente delle funzionalità precedenti
Ecco altre operazioni che è possibile eseguire con le funzionalità di Fisica mesh:
Consente ai partecipanti di afferrare e trasportare oggetti.
Controllare il modo in cui la gravità influisce sugli oggetti.
Crea un oggetto "appiccicoso": si attacca a qualsiasi cosa colpisca. Esempi: gettando una dart a bordo dart, collegando un'immagine a un muro.
Aggiungere animazioni di riproduzione automatica che interagiscono con i corpi fisici.
Consenti ai partecipanti di reimpostare gli oggetti (ad esempio, reimpostare una scacchiera o pulire una stanza dopo che gli oggetti sono stati sparsi).
Genera eventi quando un oggetto entra in un collisore di trigger.
Creare un campo di contenimento. Gli oggetti rimarranno entro i limiti del campo.
Controllare la velocità di un oggetto.
Controllare la buoyancy degli oggetti, ad esempio creare barche e altri oggetti seagoing "float".
Controllare la velocità angolare di un oggetto.
Creare un'esplosione, causando lo spostamento degli oggetti nelle vicinanze verso l'esterno o in una direzione specifica.
Creare oggetti "bouncy" che rimbalzano l'uno dall'altro con una velocità predefinita.
Teletrasportare un oggetto in una nuova posizione e (facoltativo) nuova rotazione.
Terminologia
In tutti gli articoli di Fisica mesh, "corpo" viene usato come abbreviato per "Rigidbody".