‹›
Aktuální projekt

Látkový model a pojmenované úchyty

Použijte jednu propojenou otevřenou triangulovanou plochu, případně s otvory, bez skinningu. Importujte před model.freeze(). Limity jsou 4096 svařených částic a 8192 trojúhelníků; model smí být dokonale plochý. Na rozdíl od uzavřeného pláště látka odmítá nenulový tlak a vrací nulový objem.

Příklad#

GML
cloth = jolt_soft_body_create_cloth_from_model(model_flag, 0, 0, 3);
if (!is_undefined(cloth)) {
    cloth.set_mass(2);
    cloth.set_stretch(0.1);
    cloth.set_bend(0);
    cloth.set_renderer(o_control_bbmod_renderer.renderer);
    anchor = cloth.create_attachment_from_node("anchor_top", 0.25);
}

Použití a omezení#

stretch/bend mají 0..1, vyšší znamená tužší. Bend nula odstraní ohybové vazby. Změna za běhu zachová částice, úchyty a Carry. Pojmenovaný úchyt používá přesný unikátní BBMOD název uzlu s rozlišením velikosti písmen, například Blender Empty. Nulový poloměr vybere nejbližší vrchol původního modelu; kladný oblast. Připne aktuální deformované polohy místo resetu do rest pózy.

Velikost Empty neurčuje poloměr. Chybějící/duplicitní názvy, prázdný výběr nebo překryv vrací undefined. Není potřeba nový addon JSON. Pojmenované úchyty fungují i na uzavřeném importu a používají uzly fyzikálního zdroje, nikoli náhradního vizuálu. set_body připojí bez přesunu látky k hostiteli.

Přehled API#

Signatury veřejných funkcí a metod. Metody volejte na vrácené instanci; parametry s výchozí hodnotou jsou volitelné.

Související návody#

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_soft_body_create_cloth_from_modeljolt_soft_body_create_cloth_from_model(model,x=0,y=0,z=0,settings=undefined)Vytvoří otevřenou modelovou látku jako JoltBBMODModel nebo vrátí undefined. Načtený statický BBMOD_Model před freeze(), bez kostí, triangle-list, nejvýše 4096 svařených vrcholů/8192 trojúhelníků. Node transformy a options scale (výchozí 1, absolutně 1e-5..10000), rotation_x/y/z (0°) se zapečou jednou. Pozice je světová, default 0. Model ani jeho materiály nepřebírá do vlastnictví. Uzavřený: mass=2, stiffness=.8, pressure=50, damping=.2; látka: mass=1, stretch=.9, bend=.3, pressure=0, damping=.1. Společné friction=.5, gravity_factor=1, thickness=.01 (při vynechání přizpůsobené nejkratší hraně), default layer.
JoltBBMODModel.create_attachment_from_nodeJoltBBMODModel.create_attachment_from_node(name,radius=0)Neprázdné jednoznačné jméno node, radius 0..10000 m, default 0. Vybere částice podle původního modelu (0 = nejbližší), připne jejich současné světové pozice. Vrací Attachment/undefined; odmítne chybějící/nejednoznačný node, prázdný výběr nebo překryv s pinem/attachmentem.
JoltBBMODModel.get_bendJoltBBMODModel.get_bend()Tuhost 0..1, undefined při neplatném wrapperu; nativní chybu kontroluj zvlášť. Dostupné pouze pro procedurální nebo otevřenou modelovou látku.
JoltBBMODModel.get_stretchJoltBBMODModel.get_stretch()Tuhost natažení: aktuální číslo v bezrozměrné stupnici. Selhání: undefined; neplatný objekt není nulové měření.
JoltBBMODModel.set_bendJoltBBMODModel.set_bend(v)Pouze procedurální nebo otevřená modelová látka: konečná tuhost 0..1, výchozí 0.3. Boolean; 0 odstraní ohybové vazby, kladná hodnota je vytvoří z klidové geometrie bez změny identit částic/attachmentů. Uzavřený model tuto metodu nemá.
JoltBBMODModel.set_stretchJoltBBMODModel.set_stretch(v)Tuhost natažení: konečné číslo 0..1 ; výchozí 0.8 Sphere/closed model, 0.3 Box, 0.9 model cloth. Vrací true při přijetí, false při neplatném vstupu nebo neplatném objektu. Mění živý objekt.