Condividi tramite


Sistema elastico - MRTK2

Sistema elastico

MRTK include un sistema di simulazione elastico che include un'ampia gamma di sottoclassi estendibili e flessibili, offrendo associazioni per le sorgenti quaternione 4dimensionali, le sorgenti di volume 3dimensionali e i semplici sistemi di primavera lineare.

Attualmente i componenti MRTK seguenti che supportano il gestore elastici possono sfruttare le funzionalità elastiche:

Gestione elastici

Sistema elastico2

I processi di gestione elastici passati li trasformano e li alimentano nel sistema elastico.

L'abilitazione di elastici per i componenti personalizzati può essere ottenuta in due passaggi:

  1. Chiamata al metodo Initialize sull'avvio della manipolazione, aggiornamento del sistema con la trasformazione host corrente.
  2. Esecuzione di query su ApplyHostTransform ogni volta che deve essere eseguito un calcolo elastico sulla trasformazione di destinazione aggiornata.

Si noti che gli elastici continueranno a simulare una volta terminata la manipolazione (tramite il ciclo di aggiornamento di gestione elastici). Per bloccare il comportamento, è possibile impostare su false l'aggiornamento automatico di EnableElasticsUpdate .

Per impostazione predefinita, il componente di gestione elastici, quando aggiunto a un oggetto gioco, non dispone di elastici abilitati per qualsiasi tipo di trasformazione. Il campo Manipulation types using elastic feedback deve essere abilitato per tipi di trasformazione specifici per creare configurazioni elastiche e extent per il tipo selezionato.

Configurazioni elastiche

Analogamente alle configurazioni di controllo dei limiti, la gestione elastica include un set di oggetti di configurazione che possono essere archiviati come oggetti scriptabili e condivisi tra istanze diverse o prefab. Le configurazioni possono essere condivise e collegate come singoli file di asset scriptabili o asset annidati all'interno di prefab. È anche possibile definire altre configurazioni direttamente nell'istanza senza collegare un asset script esterno o annidato.

Il controllo gestione elastici indicherà se una configurazione è condivisa o inlined come parte dell'istanza corrente visualizzando un messaggio nel controllo delle proprietà. Inoltre, le istanze condivise non saranno modificabili direttamente nella finestra delle proprietà di gestione elastici, ma l'asset da collegare deve essere modificato direttamente per evitare modifiche accidentali sulle configurazioni condivise.

Elastics Manager offre opzioni di oggetti di configurazione per i tipi di trasformazione seguenti, ognuno di essi rappresentato da un oggetto di configurazione elastico:

  • Traduzione elastica
  • Rotazione elastica
  • Ridimensionare elastico

Oggetto di configurazione elastico

Una configurazione elastica definisce le proprietà per un sistema differenziale dell'oscillatore armonico umido. Le proprietà seguenti possono essere modificate, ma sono già disponibili con un set di impostazioni predefinite in MRTK:

  • Massa: massa dell'elemento oscillatore simulato.
  • HandK: costante di primavera mano.
  • EndK: costante di primavera dell'estremità finale.
  • SnapK: costante di primavera del punto di snap.
  • Trascinamento: fattore di trascinamento/mper, proporzionale alla velocità.

Estensioni elastiche

Le impostazioni di estensioni elastiche variano a seconda del tipo di manipolazione. La traduzione e la scalabilità sono rappresentate da estensioni elastiche del volume e rotazione sono rappresentate da un'estensione elastica quaternion.

Estensione elastica del volume

Le estensioni del volume definiscono uno spazio tridimensionale in cui l'oscillatore armonico umido è libero di spostarsi.

Limiti di estensione del volume elastico

  • StretchBounds: rappresenta i limiti inferiori dello spazio elastico.
  • UseBounds: se i limiti di estensione devono essere rispettati dal sistema. Se true, quando viene applicata l'iterazione corrente della posizione di destinazione all'esterno dei limiti di estensione, verrà applicata la forza finale.
  • SnapPoint: punta all'interno dello spazio a cui il sistema si snap.
  • RepeatSnapPoints: ripete i punti di snap a infinito. I punti di snap esistenti fungeranno da modulo in cui i punti di snap effettivi vengono mappati ai più interi più vicini di ogni punto di snap.
  • SnapRadius: distanza in cui i punti di snap iniziano a forzare la primavera.

Griglia di snap del volume elastico

Estensione elastica del quaternione

Le estensioni del quaternione definiscono uno spazio di rotazione quattro dimensionali in cui l'oscillatore armonico umido è libero di ruotare.

Esempio di rotazione elastica

  • SnapPoints: angoli euleri a cui verrà eseguito lo snap del sistema.
  • RepeatSnapPoints: ripete i punti di snap. I punti di snap esistenti fungeranno da modulo in cui i punti di snap effettivi vengono mappati ai più interi più vicini di ogni punto di snap.
  • SnapRadius: angolo di arco in corrispondenza del quale i punti di snap iniziano a forzare la primavera in gradi di eulero.

Scena di esempio elastici

È possibile trovare esempi di configurazioni elastiche nella ElasticSystemExample scena.

Scena di esempio elastici