Zachycení, úhly a pohyb
Platný zásah musí současně vyhovět povrchu, ose, úhlu, pohybu a filtrům.
Model 2 používá přední support kolizního tvaru pro blízkost povrchu a samostatnou osu Tipu pro logický vstupní bod. U nakloněného Boxu může roh dopadnout dříve než Tip uprostřed čela. To je běžná geometrie, nikoli automaticky boční zásah.
Co je úhel zásahu#
Úhel 0° znamená osu Tipu kolmo dovnitř povrchu. max_angle=40 povoluje aktuální osu přibližně do 40°, pokud projdou ostatní podmínky. Není to úhel body vůči světové ose Z: závisí také na orientaci targetu a konkrétní normále. Rotující těleso může začít na 35° a při nárazu už být za limitem.
Pohyb dovnitř#
Relativní rychlost bodu Tipu musí mít kladnou složku podél osy i dovnitř povrchu. Model 2 připouští směr mezi osou Tipu a inward normálou. Limit zbytkové rychlosti mimo tento kužel je max(0.25, min(axial_speed, inward_speed) * tan(min(max_angle, 80°))) m/s. Mírný balistický pokles rychlého nože se tedy neodmítá jen kvůli pevné boční rychlosti; pohyb ven a paralelní skluz zůstávají odmítnuté.
Původní relativní angular velocity je omezená na 0,5 rad/s. Krátkodobá evidence vstupního pohybu pomáhá rozlišit kolizí vytvořenou rotaci; sama o sobě capture nepovoluje. Aktuální povrch, pohyb, úhel a ostatní podmínky se znovu ověřují. Ruční změny transformace, rychlostí nebo aplikovaných sil tuto evidenci invalidují.
Capture při 60 Hz#
Aktuální model 2 může v blízkosti dopadu rozdělit jeden herní fyzikální krok na kratší úseky a mezi nimi znovu spustit admission. Tím se povrch nemusí náhodou trefit přesně do jednoho snapshotu. Hra zůstává na svém běžném update; nevolejte navíc více jolt_update a nezvětšujte capture_overlap kvůli rychlosti pádu.
Povrch musí být skutečný#
- Osový ray i support projekce musí potvrdit stejný konečný target a slučitelné povrchové normály.
- Musí jít o přední oblast penetratoru. Zadní, boční a paralelní zásahy se odmítají.
- Další blokující těleso v capture oblasti může zabránit vytvoření relationship.
- Na zakřivených targetech je kontrola shody normál konzervativní; podporovaný tvar neznamená libovolný platný zásah.
Volba modelu#
| capture_model | Použití |
|---|---|
| 0 | Původní snapshot admission; zachovaný režim pro existující konfigurace. |
| 1 (default) | Contact capture s query / contact-assisted cestou. Má původní timing a význam contact parametrů. |
| 2 | Support capture s ověřením vstupního pohybu a adaptivními admission kroky. Používají jej zdejší gravity příklady. |
| 3 / JOLT_PENETRATION_CAPTURE_STRICT_PREDICTIVE | Predikce bez fyzikálního zachycení před vstupem. Pro skutečně špičatou kolizní geometrii; tupý Box může správně sklouznout. |
Strict Predictive: skutečný vstup hrotu#
tip.set_capture_model(JOLT_PENETRATION_CAPTURE_STRICT_PREDICTIVE);
tip.set_max_angle(70);
// Configure the local position at the collision apex and the inward axis
// before calling tip.set_enabled(true).Model 3 používá skutečnou dráhu bodu včetně rotace nástroje a pohybu targetu. Predikce může zkrátit fyzikální krok, ale nepřitahuje těleso a nevypíná kolizi. Vztah vznikne až po opětovném ověření konečného povrchu, stejného SubShape, normály, aktuálního úhlu, pohybu dovnitř a překážek. Delší probe_length nepovoluje průchod přes zeď.
Pro nůž použijte jeden Dynamic Compound: Box rukojeti, ustupující tvar čepele a pointed/tapered Convex špičku. Tip je jen lokální bod na apexu a osa vpichu, nikoli další rigid Body. Široká čelní plocha Boxu může narazit dříve než jeho středový Tip; v tomto režimu je odraz nebo sklouznutí správně. Rozhoduje kolizní geometrie, nikoli vykreslený model.
Strict má pevnou numerickou toleranci 0,00001 m a nejvýše 0,002 m počáteční hloubky; větší přeskočený vstup odmítne. Tip musí ležet na skutečném předním povrchu do 0,00001 m. capture_gap, capture_overlap ani tip_surface_tolerance tyto strict limity nezvětšují. max_angle=70 znamená aktuální odchylku od kolmice do 70° (úhloměr přibližně 20–160°), ne záruku vstupu po odrazu či přetočení. Výchozí model ani výchozí max_angle se nemění.
Hledání je omezené: maximálně 32 kandidátů, krátký horizont do 50 ms, dosah do 4 m a nejvýše osm predikčních segmentů. Překročení rozpočtu a neověřitelný průchod se odmítají. Přechod mezi sousedními Compound children zůstává konzervativní: shoda SubShape se neobchází. Po zjištěné překážce je potřeba hrot stáhnout zpět; nový kandidát za překážkou nesmí obejít předchozí odmítnutí.