‹›
Pomocné skripty · Penetrace těles

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_modelPoužití
0Pů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ů.
2Support 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_PREDICTIVEPredikce 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#

GML
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í.