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#
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#
- Převod staršího kódu
- Výběr měkkého tělesa
- Měkká koule
- Objemový měkký kvádr
- Import uzavřeného modelu
- Prostorové úchyty
- Oddělená vizuální síť
- Lokální síla a impulz
- Vítr
- Přenášení měkkých těles
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ík | Signatura | Kontrakt operace |
|---|---|---|
| jolt_soft_body_create_cloth_from_model | jolt_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_node | JoltBBMODModel.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_bend | JoltBBMODModel.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_stretch | JoltBBMODModel.get_stretch() | Tuhost natažení: aktuální číslo v bezrozměrné stupnici. Selhání: undefined; neplatný objekt není nulové měření. |
| JoltBBMODModel.set_bend | JoltBBMODModel.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_stretch | JoltBBMODModel.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. |