Ingen kollision¶
Det finns två olika typer av kollisioner som du kan använda: kollision mellan olika objekt och intern kollision. Vi bör klargöra en sak redan från början - de primära målen för kollisionsberäkningen är vertikalerna i en mjuk kropp. Så om du har för få vertices sker för få kollisioner. I andra hand kan du använda kanter och ytor för att förbättra kollisionsberäkningen.
Kollisioner med andra föremål¶
För att en mjuk kropp ska kunna kollidera med ett annat föremål finns det några förutsättningar:
Om Collision Collection är inställt måste objektet tillhöra samlingen.
Kollisionsobjektet måste vara ett mesh-objekt.
Du måste aktivera Collision i fliken Physics för kollisionsobjektet. Kollisionsobjektet kan också vara en soft body.
Exempel¶
En soft body-kub som kolliderar med ett plan (fig. En mjuk kub som kolliderar med ett plan.) fungerar ganska bra, men ett soft body-plan faller rakt igenom en kub som det är tänkt att kollidera med (fig. Ett plan med mjuk kropp kolliderar med en kub, så ingen interaktion alls.).
![]() En mjuk kub som kolliderar med ett plan.¶ |
![]() Ett plan med mjuk kropp kolliderar med en kub, så ingen interaktion alls.¶ |
Varför är det så? Eftersom standardberäkningsmetoden endast kontrollerar om de fyra hörnen på soft body-planet kolliderar med kuben när planet dras ned av gravitationen. Du kan aktivera Collision: Face (i panelen Soft Body Edges) för att aktivera kollision mellan planets yta och objektet i stället, men den här typen av beräkning tar mycket längre tid.
Låt oss titta närmare på kollisionsberäkningen, så att du kan få en uppfattning om hur vi kan optimera den.
Beräkning av kollisioner¶
Simuleringar av mjuka kroppar görs som standard per vertex. Om den mjuka kroppens vertikaler inte kolliderar med kollisionsobjektet sker ingen interaktion mellan de två objekten.
I videon nedan kan du se topparna kollidera med ett plan. Om en topp tränger in i zonen mellan Ytter och Inner stöts den bort av en kraft i riktning mot planets normal. Den position som en topp slutligen hamnar i är beroende av de krafter som verkar på den. I exemplet (det första toppunktet till vänster i videon nedan) balanserar gravitationen och den repellerande kraften från ytan. Den hastighet med vilken toppunkten dras ut ur kollisionszonen påverkas av parametern Choke i Soft Body Solver settings.
Se även
Ladda ner blend-filen.
Låt oss nu se vad som händer om vi gör topparna tyngre och låter dem färdas med högre hastighet. I videon ovan kan du se toppar som färdas i olika hastigheter. De två längst till höger (femte och sjätte) färdas så snabbt att de passerar rakt genom kollisionszonen (detta beror på standardprecisionen för lösaren, som vi kan åtgärda senare). Du kommer att märka att det fjärde toppunktet också färdas ganska snabbt och eftersom det är tyngre bryter det igenom den inre zonen. De tre första topparna kolliderar korrekt.
Du kan ställa in kollisionen så att kanter och jämna ytor ingår i kollisionsberäkningen i panelen Soft Body Edges med alternativen Collision Face och Edge. Kollisionen beräknas då på ett annat sätt. Det kontrolleras om kanten eller ytan korsar kollisionsobjektet, kollisionszonerna används inte.
Bra kollisioner¶
Om den kollision du har ställt in inte fungerar som den ska kan du prova följande:
Soft body-objektet måste ha fler underindelningar än kollisionsobjektet. Lägg till loop cuts till soft body-objektet i strategiska områden som du vet mest sannolikt kommer att vara inblandade i en kollision.
Kontrollera riktningen på ansiktsnormalerna.
Om kollisionsobjektet har vassa piggar kan de tränga in i den mjuka kroppen.
Lösarens upplösning måste matcha den hastighet med vilken mjukkroppens hörn rör sig. Sänk parametern Felgräns och öka Min Steg försiktigt.
Outer och Inner ska vara tillräckligt stora, men zoner med motsatta sidor får inte överlappa varandra, för då uppstår krafter i motsatta riktningar.
Om du använder starka krafter bör du använda stora zoner.
Ställ in Choke på ett tillräckligt högt värde (hela vägen upp om det behövs) om du har problem med bortstötta toppar.
Kolliderande ytor är svåra att kontrollera och kräver långa beräkningstider. Försök att inte använda dem.
Ofta är det bättre att skapa ett förenklat mesh som du kan använda som kollisionsobjekt, men det kan vara svårt om du använder ett animerat mesh.
Självkollisioner¶
För information om självkollision, se inställningarna i Självkollision.