В един от предните случаи разгледахме
"soft body" с "rigid body".
Примерът беше със сфера и с равнина.
Исках да обясня по-подробно и
сега ще разясня проблема.
Ще натисна "play", за да видим какво точно се случва.
Tялото е меко.
В началото всичко изглежда добре,
но въпреки това сферата мина през равнината.
Ситуацията не изглежда реалистична.
Причината да мине топката през равнината е,
че акуратността на "dynamics" сега е много ниска.
Не винаги това ще е проблем,
но в този случай с меко тяло, определено има проблем.
Първото което идва наум е, че равнината е прекалено тънка.
Може би ако сложим куб, това нещо ще се оправи.
Ще сложим куб.
Премествам го точно където е позицията на равнината.
Махам равнината.
Слагам таг върху кубчето.
Ще го скрия, за да видим дали отново ще има интерсекция.
Това определено оправи нещата.
Има случаи, в които сферата се движи по-бързо.
Често се случват проблеми с бързодвижещи се обекти.
В този случай и ако не ви трябва кубче, искате сферата.
Може да се сложи куб отдолу, който да не се вижда.
Оставаме с конкретния пример.
Ще върнем "collider body tag".
Има обекти, които по този начин взаимодействат един с друг;
разминават се.
Може с "rigid body", не става само със "soft body".
Ако отидем в "project, expert",
тук ще намерите настройките за акуратността на "dynamics".
Важните настройки тук са "steps per frame",
"max solver iterations per step" и "error threshold".
Те отговарят за това колко акуратен е "solver",
но не са толкова важни, колкото "steps per frame".
Сега имаме 5 стъпки за кадър.
Тоест от 0 до 1-ви кадър,
обектът ще измине 5 стъпки.
Намалям "steps per frame: 2", нека видим какво ще се получи.
Когато намалихме числото,
има по-малко стъпки в единия кадър.
Имаме 2 от 5.
Сега цялата топка мина през равнината.
По принцип по подразбиране стойността е на 5.
В случая с равнината, защото е много тънък обект,
лесно се получават разминавания.
5 стъпки не са достатъчни.
Внимавайте с това число.
Не го увеличавайте прекалено много.
Ще го наглася на 10, за да видим дали ще поправи нещата.
Проблемът липсва, защото увеличихме "steps by frame: 10".
Ако имате някакъв проблем,
специално с разминаване на обекти,
проверете "steps per frame".
Увеличаваме тази величина, например на 15.
Това ще подобри "solver",
Колкото повече увеличавате, например на 100;
топката няма да минава в реално време.
Може да "cache" анимацията, за да видите всичко в реално време.
Определено не задавайте висока стойност на "steps per frame",
особено когато имате повече обекти.
В случая 10 е напълно достатъчно,
за да реши проблема ни.
Тест за преминаване към следващия урок
1636
Ако имате припокриваща се геометрия, може да подобрите симулацията, като?
намалите Steps per frame 5086
увеличите Steps per frame 5087
увеличите Gravity 5088
увеличите Scale 5089