Fyzikální ovladače z Blenderu

Joystick (Joystick)

Kruhový kužel náklonu: Max Angle je úhel od neutrálu, nikoli celé rozevření kuželu. Runtime +X míří k Blender lokální −X; +Y k Blender lokální +Y.

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

Nastavení v Blenderu#

Dostupné od addonu 0.19.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 pivotSpodní pivot, tyč po +Z s Radius a Length.
PohybKruhový kužel náklonu: Max Angle je úhel od neutrálu, nikoli celé rozevření kuželu. Runtime +X míří k Blender lokální −X; +Y k Blender lokální +Y.
Počáteční stav a čteníZačíná neutrálně bez Initial Angle. get_values() vrací {x,y}; get_value(0) a get_value(1) čtou jednotlivé osy. Return X/Y je cíl motoru.
Limity a možnosti0 < Max Angle < 90°. Cíl a zarážky musí ležet v jednotkovém kruhu x*x+y*y ≤ 1. Náhled mimo kruh se pro zobrazení omezí; neplatný exportovaný cíl se odmítne.
JSON v3size:{radius,length}, max_angle, target:{x,y}, detents with x/y

Vytvoření z assetu#

Příklad předpokládá načtená data assetu, živé machine_body a autorovaný joystick 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_radius(0.06);
settings.set_length(0.60);
settings.set_max_angle(30);
settings.set_auto_return(true);
settings.set_target(0, 0);
settings.set_max_torque(10);
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 tilt = control.get_values();
    var value_x = tilt.x;
    var value_y = tilt.y;
}

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.

GML
control.set_auto_return(false);
control.set_detents([{x:0,y:0}, {x:0.5,y:0}, {x:-0.5,y:0}]);

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.