Blender a integrace

Explosions

Nastavte exploze vůči tělesu nebo světu a explicitně je odpalujte.

Ověřeno podle zdrojů projektu 19. září 2026.

Syntax#

Syntax
jolt_asset_get_explosion_point(asset, point_ref);
jolt_asset_create_explosion(asset, point_ref, body);
jolt_explosion_create(x, y, z, [owner]);

Factory funkce při chybě vracejí undefined; ihned přečtěte jolt_get_error(). Lookup vrací samostatnou validovanou kopii záznamu. Reference je kanonické UUID nebo přesný Key rozlišující velikost písmen. Vlastník musí být živé spravované těleso aktuálního světa.

Světová transformace = aktuální transformace originu Body × lokální transformace z assetu. Těžiště není autorovací počátek. Pozice používají metry a rotace normalizované XYZW quaterniony. Při pohybu tělesa snímky znovu načítejte.

Blender Explosion Defaults dodávají radius (výchozí 5 m), directional (false) a plný úhel kuželu (90°). Dopředný směr je lokální +Z. Samotné set_angle() směrovost nezapíná. Runtime strength má výchozí 1000 N·s. Bez vlastníka používá jolt_explosion_create světový bod; s vlastníkem lokální souřadnice tělesa.

Příklad#

GML
// Create once, using an authored Explosion Point.
blast = jolt_asset_create_explosion(asset, "explosion_01", body_vehicle);
if (!is_undefined(blast)) {
    blast.set_ignore(body_vehicle);
    blast.set_radius(10);
    blast.set_strength(1000);
}
// At the explosion event, BEFORE destroying the owner:
if (!is_undefined(blast)) {
    var result = blast.explode();
    show_debug_message(result.affected_count);
}

Metody#

API / poleVýznam a pravidla
blast.set_ignore(body | undefined)Vyloučení jednoho tělesa nebo zrušení filtru; vlastník se automaticky neignoruje.
blast.set_radius(r) / blast.set_strength(s)Kladný konečný dosah / síla impulsu v runtime mezích.
blast.set_position(x,y,z)Přepíše celý lokální bod, nebo světový bod bez vlastníka.
blast.set_rotation(x,y,z,w) / blast.set_rotation_euler(x,y,z)Jednotkový quaternion / Euler stupně vůči vlastníkovi.
blast.set_directional(value) / blast.set_angle(degrees)Boolean režim / plný úhel v (0,360].
blast.set_direction(x,y,z)Nenulový směr v soustavě bodu; normalizuje se a zapne směrový režim.
blast.set_falloff(value) / blast.set_occlusion(value)Lineární útlum je výchozí true; blokování překážkami false.
blast.set_layers(layer_or_array | undefined)Filtr cílových vrstev; nemění překážky blokující účinek.
blast.get_transform() / blast.is_valid() / blast.destroy()Světová transformace / platnost / odstranění registrované konfigurace.
blast.explode(){affected_count, bodies, entries}; při chybě prázdný výsledek a diagnostika.

Settery vracejí Boolean a při odmítnutí zachovají nastavení. Každé explode() přes původní API aplikuje jeden impuls na způsobilá dynamická tělesa, která nejsou senzory. Směrový kužel vybírá cíle; impulsy stále míří radiálně ven. Vytvoření, nastavení ani vykreslení explozi neodpálí. Registrované emitory po použití zničte; uklízí je i zničení vlastníka a jolt_stop().

Debug#

JOLT_DEBUG_EXPLOSIONS kreslí živé náhledy dosahu a kuželu. JOLT_DEBUG_SHAPE_QUERIES uchovává nejvýše tři poslední exploze včetně světového směru, úhlu a dosahu při odpálení. Historie už vlastníka nesleduje. Tento limit nemaže historii běžných overlap dotazů.

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_asset_get_explosion_pointjolt_asset_get_explosion_point(asset,explosion_point_ref)Asset + přesný key nebo kanonické UUID. Znovu validuje mutable asset a vrací nezávislý datový záznam, nikoliv fyzikální objekt; chyba undefined a managed error.