Fyzikální ovladače z Blenderu

Tlačítko (Button)

Stisk vede po lokální −Z. Travel je celá kladná dráha v metrech.

JoltPhysics Asset Editor 0.31.1 · ověřeno podle zdrojů projektu 27. září 2026.

Nastavení v Blenderu#

Dostupné od addonu 0.17.0; podporované ve verzi 0.31.1. Přidejte typ přes Physical Controls, přiřaďte Key a ponechte scale 1.

Pole / operaceVýznam a validace
Geometrie a pivotPlné Cap Size XYZ; montážní bod je střed uvolněné hlavice.
PohybStisk vede po lokální −Z. Travel je celá kladná dráha v metrech.
Počáteční stav a čteníInitial Value určuje skutečnou počáteční polohu, 0 uvolněno a 1 plně stisknuto. Return Value je samostatný cíl motoru. is_pressed() vyhodnocuje fyzikální krok.
Limity a možnosti0 ≤ Released Threshold < Pressed Threshold ≤ 1 zajišťuje hysterezi stisku a uvolnění. Drive a odpor používají N. Jen Button má is_pressed() a tyto prahy.
JSON v3size:[x,y,z], travel, initial_value, pressed_threshold, released_threshold

Vytvoření z assetu#

Příklad předpokládá načtená data assetu, živé machine_body a autorovaný button s Key control_main. Přepsání geometrie je volitelné; pro hodnoty z Blenderu settings vynechte.

GML
var settings = jolt_asset_control_settings();
settings.set_size(0.15, 0.15, 0.08);
settings.set_travel(0.05);
settings.set_initial_value(0);
settings.set_pressed_threshold(0.8);
settings.set_released_threshold(0.2);
control = jolt_asset_create_control(asset, "control_main", machine_body, settings);
if (is_undefined(control)) show_debug_message(jolt_get_error_message());
// Step, after the physics update:
if (!is_undefined(control) && control.is_valid()) {
    var pressed = control.is_pressed();
    var value = control.get_value();
}

Chování za běhu#

Živé set_auto_return, set_target, set_resistance, set_detents a set_locked upravují podporované chování. Auto Return má přednost před zarážkami. Mapování výstupu a inverze patří do runtime nastavení. Tyto operace nepřestavují geometrii ani nenahrazují původní konstrukční polohu.

Simulace, vykreslení a životnost#

Použijte stávající smyčku jolt_update() a poté čtěte fyzikální stav ovladače. Vizuální model řiďte přes control.get_transform() nebo stávající vykreslovací API ovladačů. Asset helper vytvoří stejné JoltControl těleso a vazbu jako přímá factory; nevykresluje váš model a nepřiřazuje herní akce. Každé vytvoření je samostatné.

control.destroy() odstraní mechanismus a zachová rodiče. Zničení rodiče a jolt_stop() uklidí připojené ovladače. Používejte spravovanou životnost. Blender integrace ovladačů nevyžaduje další změnu nativního bridge; použijte odpovídající aktuální GML loader a skripty jolt_asset_controls.