Fyzikální ovladače z Blenderu

Konstrukční nastavení

Přepište výchozí hodnoty z Blenderu před vytvořením a poté používejte živé settery JoltControl.

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

Syntax#

Syntax
jolt_asset_control_settings();

Vrací JoltAssetControlSettings, konstrukční builder bez alokace fyziky. Platný setter vrací builder; neplatný vstup vrací false a zachová předchozí nastavení. Čtěte jolt_get_error(). Některé kontroly kombinací polí a typu se odkládají do jolt_asset_create_control; úspěšný setter nezaručuje platnost celé kombinace.

Všechny konstrukční settery#

Pole / operaceVýznam a validace
JoltAssetControlSettings.set_position(x,y,z)Lokální montážní pozice v GameMaker souřadnicích.
JoltAssetControlSettings.set_rotation(quaternion)Konečný nenulový montážní quaternion {x,y,z,w}; setter jej normalizuje.
JoltAssetControlSettings.set_rotation_euler(x,y,z)Lokální Euler rotace ve stupních.
JoltAssetControlSettings.set_size(x,y,z)Plné rozměry boxu: Button, Lever, Slider, Pedal, Pull Handle.
JoltAssetControlSettings.set_radius(value)Kladný poloměr Knob/Wheel/Joystick.
JoltAssetControlSettings.set_depth(value)Plná hloubka válce Knob/Wheel.
JoltAssetControlSettings.set_length(value)Délka tyče Joystick.
JoltAssetControlSettings.set_mass(value)Kladná hmotnost pohyblivého tělesa.
JoltAssetControlSettings.set_travel(value)Kladná dráha: Button, Slider, Pull Handle.
JoltAssetControlSettings.set_travel_angle(degrees)Pedal: ostře mezi 0 a 180°.
JoltAssetControlSettings.set_arm_length(value)Crank: vzdálenost pivotu od osy úchytu.
JoltAssetControlSettings.set_arm_size(width,depth)Crank: průřez ramene.
JoltAssetControlSettings.set_handle_radius(value)Crank: poloměr úchytu.
JoltAssetControlSettings.set_handle_length(value)Crank: délka úchytu.
JoltAssetControlSettings.set_initial_value(value)Konstrukční poloha Button/Slider/Pull Handle, 0..1.
JoltAssetControlSettings.set_min_angle(value)Dolní limit Lever/Knob.
JoltAssetControlSettings.set_max_angle(value)Horní limit Lever/Knob nebo náklon Joystick; finální typová validace probíhá při vytvoření.
JoltAssetControlSettings.set_initial_angle(value)Počáteční úhel Lever/Knob uvnitř finálních limitů.
JoltAssetControlSettings.set_auto_return(enabled)Boolean; podporované omezené ovladače, nikoli Wheel/Crank.
JoltAssetControlSettings.set_target(x,[y])Skalár 0..1 nebo Joystick X/Y v jednotkovém kruhu.
JoltAssetControlSettings.set_max_force(value)Nezáporná síla pohonu N pro lineární typy.
JoltAssetControlSettings.set_max_torque(value)Nezáporný moment návratu N·m pro omezené úhlové typy.
JoltAssetControlSettings.set_frequency(value)Nezáporná frekvence vratné pružiny Hz.
JoltAssetControlSettings.set_damping(value)Nezáporné tlumení návratu.
JoltAssetControlSettings.set_resistance(value)Nezáporný mechanický odpor N nebo N·m.
JoltAssetControlSettings.set_detents(array)Skalární hodnoty/záznamy nebo Joystick X/Y záznamy; typová validace při vytvoření.
JoltAssetControlSettings.set_periodic_detents(config_or_false)Periodické zarážky Wheel/Crank nebo vypnutí.
JoltAssetControlSettings.set_pressed_threshold(value)Horní práh Button, 0..1.
JoltAssetControlSettings.set_released_threshold(value)Dolní práh Button, nižší než pressed threshold.

Priorita přepsání#

Výchozí hodnoty Blenderu → konstrukční přepsání → živé runtime settery. Přepsání nemění načtený asset. Běžné options používají position:[x,y,z] a rotation:[x,y,z,w], na rozdíl od structu position při vytváření Body. Identitu, Key, UUID a type přepsat nelze. Neznámé nebo typově nesprávné pole zabrání úspěšnému vytvoření.

Částečné drive, kruhové size a arm_size kliky přepíšou jen dodaná pole. Ostatní pole nahradí původní hodnotu. Zkratky zarážek rozbalí stávající runtime validátory. Geometrie a počáteční poloha platí při vytvoření; pozdější změna builderu existující ovladač nepřestaví.

Příklad#

GML
var settings = jolt_asset_control_settings();
settings.set_size(0.10, 0.10, 0.60);
settings.set_min_angle(-30);
settings.set_max_angle(45);
settings.set_initial_angle(15);
settings.set_max_torque(12);
var lever = jolt_asset_create_control(asset, "lift_lever", machine_body, settings);
if (is_undefined(lever)) show_debug_message(jolt_get_error_message());
else lever.set_resistance(0.2);

Běžný struct je pro vybraná přepsání rovnocenný; umožní změnit vratný motor bez opakování zbytku exportovaného nastavení.

GML
var lever = jolt_asset_create_control(asset, "lift_lever", machine_body, {
    initial_angle:15, auto_return:true, drive:{max_torque:12}
});

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_control_settingsjolt_asset_control_settings()Vrací prázdný JoltAssetControlSettings bez alokace fyziky.
JoltAssetControlSettings.set_arm_lengthJoltAssetControlSettings.set_arm_length(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladné konečné délky v m; arm_size je width/depth.
JoltAssetControlSettings.set_arm_sizeJoltAssetControlSettings.set_arm_size(width,depth)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladné konečné délky v m; arm_size je width/depth.
JoltAssetControlSettings.set_auto_returnJoltAssetControlSettings.set_auto_return(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Striktní Boolean.
JoltAssetControlSettings.set_dampingJoltAssetControlSettings.set_damping(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Konečné >=0: N / N·m / Hz / poměr tlumení podle metody. Použij parametr odpovídající typu controlu.
JoltAssetControlSettings.set_depthJoltAssetControlSettings.set_depth(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladný rozměr v m pro kruhový control; nelze kombinovat s box set_size.
JoltAssetControlSettings.set_detentsJoltAssetControlSettings.set_detents(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Pole se uloží bez okamžité úplné validace; maximálně 256 unikátních cílů, capture>0, release>capture, kladný effort/frequency, damping>=0 se ověří při vytvoření.
JoltAssetControlSettings.set_frequencyJoltAssetControlSettings.set_frequency(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Konečné >=0: N / N·m / Hz / poměr tlumení podle metody. Použij parametr odpovídající typu controlu.
JoltAssetControlSettings.set_handle_lengthJoltAssetControlSettings.set_handle_length(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladné konečné délky v m; arm_size je width/depth.
JoltAssetControlSettings.set_handle_radiusJoltAssetControlSettings.set_handle_radius(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladné konečné délky v m; arm_size je width/depth.
JoltAssetControlSettings.set_initial_angleJoltAssetControlSettings.set_initial_angle(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Stupně: initial -180..180, min -180..0, max 0..180. Vzájemný rozsah/počáteční pozice se ověří při vytvoření.
JoltAssetControlSettings.set_initial_valueJoltAssetControlSettings.set_initial_value(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. 0..1 počáteční normalizovaná pozice.
JoltAssetControlSettings.set_lengthJoltAssetControlSettings.set_length(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladný rozměr v m pro kruhový control; nelze kombinovat s box set_size.
JoltAssetControlSettings.set_massJoltAssetControlSettings.set_mass(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladná konečná hmotnost kg.
JoltAssetControlSettings.set_max_angleJoltAssetControlSettings.set_max_angle(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Stupně: initial -180..180, min -180..0, max 0..180. Vzájemný rozsah/počáteční pozice se ověří při vytvoření.
JoltAssetControlSettings.set_max_forceJoltAssetControlSettings.set_max_force(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Konečné >=0: N / N·m / Hz / poměr tlumení podle metody. Použij parametr odpovídající typu controlu.
JoltAssetControlSettings.set_max_torqueJoltAssetControlSettings.set_max_torque(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Konečné >=0: N / N·m / Hz / poměr tlumení podle metody. Použij parametr odpovídající typu controlu.
JoltAssetControlSettings.set_min_angleJoltAssetControlSettings.set_min_angle(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Stupně: initial -180..180, min -180..0, max 0..180. Vzájemný rozsah/počáteční pozice se ověří při vytvoření.
JoltAssetControlSettings.set_periodic_detentsJoltAssetControlSettings.set_periodic_detents(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Okamžitě ověří periodickou konfiguraci: count celé 1..3600, step=360/count, capture<=step/2, release>capture a <min(step, 45), kladný effort/frequency, damping>=0.
JoltAssetControlSettings.set_positionJoltAssetControlSettings.set_position(x,y,z)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Konečné místní XYZ v m vůči hostu.
JoltAssetControlSettings.set_pressed_thresholdJoltAssetControlSettings.set_pressed_threshold(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. 0..1; při vytvoření musí released < pressed.
JoltAssetControlSettings.set_radiusJoltAssetControlSettings.set_radius(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladný rozměr v m pro kruhový control; nelze kombinovat s box set_size.
JoltAssetControlSettings.set_released_thresholdJoltAssetControlSettings.set_released_threshold(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. 0..1; při vytvoření musí released < pressed.
JoltAssetControlSettings.set_resistanceJoltAssetControlSettings.set_resistance(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Konečný odpor >=0, lineární control N, rotační N·m.
JoltAssetControlSettings.set_rotationJoltAssetControlSettings.set_rotation(q)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Nenulový quaternion struct XYZW normalizuje; Euler XYZ ve stupních se převede na quaternion.
JoltAssetControlSettings.set_rotation_eulerJoltAssetControlSettings.set_rotation_euler(x,y,z)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Nenulový quaternion struct XYZW normalizuje; Euler XYZ ve stupních se převede na quaternion.
JoltAssetControlSettings.set_sizeJoltAssetControlSettings.set_size(x,y,z)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Plné kladné XYZ rozměry v m.
JoltAssetControlSettings.set_targetJoltAssetControlSettings.set_target(x,y=undefined)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Jeden argument 0..1, nebo joystick XY uvnitř jednotkového disku.
JoltAssetControlSettings.set_travelJoltAssetControlSettings.set_travel(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Kladné konečné délky v m; arm_size je width/depth.
JoltAssetControlSettings.set_travel_angleJoltAssetControlSettings.set_travel_angle(v)Vrací self při přijetí, false při chybě. Mění pouze overrides pro budoucí vytvoření, nikoliv asset či živý Control. Úhel pedálu v (0, 180) stupních.