Elastický systém – MRTK2
MRTK se dodává s elastickým simulačním systémem, který zahrnuje širokou škálu rozšiřitelných a flexibilních podtříd, nabízí vazby pro 4-rozměrné kvaternionové pružiny, 3-rozměrné objemové pružiny a jednoduché lineární pružinové systémy.
V současné době můžou funkce elastics využívat následující komponenty MRTK, které podporují správce elastics :
Správce elastické služby
Procesy elastického správce předávají transformace a předávají je do elastického systému.
Povolení elastických prostředků pro vlastní komponenty je možné provést dvěma kroky:
- Volání metody Initialize při zahájení manipulace, aktualizace systému s aktuální transformací hostitele.
- Dotazování ApplyHostTransform vždy, když by se měl provést elastický výpočet pro aktualizovanou cílovou transformaci.
Všimněte si, že elastická data budou po ukončení manipulace pokračovat v simulaci (prostřednictvím aktualizační smyčky elastického správce). Chcete-li blokovat toto chování, elastics auto update EnableElasticsUpdate může být nastavena na false.
Ve výchozím nastavení nebude mít komponenta elastics manager při přidání do herního objektu povolené elastické soubory pro žádný typ transformací.
Manipulation types using elastic feedback
Pole musí být povolené pro konkrétní typy transformace, aby se pro vybraný typ vytvořily elastické konfigurace a rozsahy.
Konfigurace elastické služby
Podobně jako konfigurace řízení hranic se elastický správce dodává se sadou objektů konfigurace, které lze uložit jako skriptovatelné objekty a sdílet mezi různými instancemi nebo předfaby. Konfigurace lze sdílet a propojit buď jako jednotlivé soubory skriptovatelných prostředků, nebo jako vnořené skriptovatelné prostředky uvnitř předem připravených prostředků. Další konfigurace je také možné definovat přímo v instanci bez propojení s externím nebo vnořeným skriptovatelným assetem.
Inspektor elastického správce bude indikovat, jestli je konfigurace sdílená nebo vložená jako součást aktuální instance zobrazením zprávy v inspektoru vlastností. Kromě toho nebude možné sdílené instance upravovat přímo v samotném okně vlastností správce elastics, ale místo toho se musí prostředek, na který odkazuje, upravit přímo, aby se zabránilo náhodným změnám ve sdílených konfiguracích.
Elastics Manager nabízí možnosti objektů konfigurace pro následující typy transformace, které jsou reprezentované objektem elastické konfigurace:
- Elastické překlady
- Elastické otáčení
- Elastické škálování
Objekt elastické konfigurace
Elastická konfigurace definuje vlastnosti pro tlumený harmonický diferenciální oscilátor. Následující vlastnosti se dají upravit, ale v MRTK už se dodávají se sadou výchozích hodnot:
- Hmotnost: hmotnost simulovaného prvku oscilátoru.
- HandK: konstanta ruční pružiny.
- EndK: konstanta pružiny koncového zakončení.
- SnapK: pružinová konstanta bodu přichycení.
- Přetažení: faktor tažení/tlumiče, úměrný rychlosti.
Rozsahy elastics
Nastavení rozsahů elastické se liší v závislosti na typu manipulace. Překlad a škálování jsou reprezentovány elastickými rozsahy svazků a rotace je reprezentována quaternion elastický rozsah.
Rozsah elastického svazku
Objemové rozsahy definují trojrozměrný prostor, ve kterém se tlumený harmonický oscilátor může volně pohybovat.
- StretchBounds: představuje dolní hranice elastického prostoru.
- UseBounds: určuje, jestli má systém respektovat hranice roztažení. Pokud je true, pokud je aktuální iterace cílové pozice mimo hranice roztažení, použije se koncová síla.
- SnapPoints: body uvnitř prostoru, ke kterému se systém přichytí.
- RepeatSnapPoints: Opakuje body přichycení k nekonečnu. Existující body přichycení budou sloužit jako modulo, kde se skutečné body přichycení mapují na nejbližší celočíselné násobky každého bodu přichycení.
- SnapRadius: vzdálenost, ve které body přichycení začínají vynucovat pružinu.
Elastický rozsah quaternion
Kvaternionové rozsahy definují čtyřrozměrný rotační prostor, ve kterém se tlumený harmonický oscilátor může volně otáčet.
- SnapPoints: úhly, ke kterým systém přichytí.
- RepeatSnapPoints: Opakuje body přichycení. Existující body přichycení budou sloužit jako modulo, kde se skutečné body přichycení mapují na nejbližší celočíselné násobky každého bodu přichycení.
- SnapRadius: úhel oblouku, pod kterým body přichycení začínají vynucovat pružinu v eulerových stupních.
Ukázková scéna s elastici
Příklady elastických konfigurací najdete ve scéně ElasticSystemExample
.