‹›
Pomocné skripty · Penetrace těles

Umístění a konfigurace Tipu

Tip umístěte na skutečný přední povrch a jeho osu namiřte ve směru zamýšleného zasouvání.

jolt_penetrator_tip(body) připraví neaktivní JoltPenetrator s modelem 2. Nastavte pozici a osu přes set_local_position/set_local_axis a aktivujte set_enabled(true). Varianta (body, config) dál vytváří okamžitě a zachovává výchozí model 1. Penetrator musí být Dynamic non-sensor podporovaného solid tvaru. Polohu a osu zadávejte v lokálním prostoru body, nikoli ve world space; rotace body je pak přenese do světa.

GML
tip = jolt_penetrator_tip(penetrator, {
    local_position: { x: 0, y: 0, z: -0.4 },
    local_axis: { x: 0, y: 0, z: -1 },
    capture_model: 2,
    max_angle: 40,
    max_insertion: 0.2,
    mask: 1
});

Základní konfigurace#

NázevVýchozí / rozsahVýznam
enabledfalse / legacy config: truePovolí admission tohoto Tipu.
local_position{x:0,y:0,z:0}Konečný lokální bod na předním povrchu kolizního tvaru.
local_axis{x:0,y:0,z:1}Konečný nenulový vektor. Normalizuje se; kladný směr znamená zasouvání.
mask4294967295 / uint32Povolené category_bits targetů; musí mít alespoň jeden společný bit.
max_angle20° / 0 ≤ angle < 90°Největší aktuální úhel osy vůči normále mířící dovnitř targetu.
max_insertion0.5 m / > 0Limit zasunutí Tipu vůči vstupnímu bodu.
max_simultaneous_penetrations1 / integer 1–32Maximum současných relationships na jednom Tipu; také platí kapacita světa.
max_capture_axial_speed0 m/s / ≥ 00 vypíná tento rychlostní strop. Kladná hodnota omezuje vstupní relativní axiální rychlost, nikoli následný pohyb.
capture_model2 setters / 1 legacy config; 0, 1, 2, 3Nový připravený objekt používá model 2. U kompatibilní varianty s config strukturou jej zvolte výslovně, jinak zůstává původní model 1. Model 3 se zapíná konstantou JOLT_PENETRATION_CAPTURE_STRICT_PREDICTIVE.

Parametry capture modelu 2#

NázevVýchozí / rozsahVýznam
probe_length0.05 m / 0 < x ≤ 1Dosah hledání osového povrchu. Support geometrie může odůvodnit delší ray; tento parametr nepovoluje capture přes větší mezeru.
probe_radius0 m / 0 ≤ x ≤ 0.1Rozšíření kandidátního hledání kolem osy. Nejde o další collider ani povolení bočního zásahu.
capture_gap0.001 m / 0 < x ≤ 0.005Maximální kladná mezera předního supportu před ověřeným povrchem.
capture_overlap0.02 m / 0 < x ≤ 0.03Maximální počáteční vnoření authored Tipu podle normály povrchu. Není to výsledný max_depth.
tip_surface_tolerance0.001 m / 0 < x ≤ 0.002Tolerance registrace Tipu na předním povrchu.
rearm_separation0.01 m / 0 < x ≤ 1Odstup potřebný k novému připravení po úplném vytažení; kontroluje se i těleso, nejen bod Tipu.
contact_assistedtrueZachovaný parametr modelu 1. V modelu 2 rozhodnutí nemění; nepřepíná segmentaci ani support geometrie.
contact_tolerance0.02 m / 0 < x ≤ 0.1Původní tolerance; u moderních modelů slouží také jako fallback pro probe_length a rearm_separation, pokud je při vytvoření výslovně dodaná. Používejte přesnější samostatné parametry.

Při configure() se nejprve načte aktuální plná konfigurace. Změna samotného contact_tolerance tedy nepřepíše již existující probe_length ani rearm_separation. Čísla musí být konečná; hodnoty mimo rozsah se odmítají. Neznámé klíče nejsou veřejné nastavení a nemají zaručený účinek.

Ověřené kontrakty operací#

Následující kontrakty rozlišují jednotky, návratové hodnoty, chyby a životnost podle aktuální implementace. Nevynechávej kontrolu výsledku: false, 0 a undefined mohou mít u různých metod odlišný význam.

Symbol / vlastníkSignaturaKontrakt operace
jolt_penetrator_tipjolt_penetrator_tip(body,config=undefined)Živý Body; bez config vrací připravený neaktivní JoltPenetrator (handle 0), s config aktivuje podle enabled (default true). Chyba undefined. Pozor rozdíl defaultu capture_model: builder 2, přímé options bez pole 1. Pro Strict Predictive nastav explicitně JOLT_PENETRATION_CAPTURE_STRICT_PREDICTIVE (3).