Позициониране на предмети върху повърхност
чрез ползване на Rigid Bodies.

Да вземем следните примери : имаме сцена в която върху някаква горска поляна хаотично са разпръснати разни камъчета, паднали клони от дървета и други подобни обекти или пък върху намачкан килим в дневната са изпопадали дребни боклучета, опаковки от храни и тн.

В тези случаи коректното разположение на обектите върху повърхността играе съществена роля за постиганито на по-добро ниво на реалистичност на сцената.

Най-стандартния подход би бил обектите да се позиционират ръчно върху повърхността, но в случаите когато тези обекти са повече на брой или пък самата повърхност е твърде неравна ( примерно ситни гънки на килим) този подход може да стане доста времегубещ и и не много коректен както е показано в примера по-долу.

В такива случаи един удачен вариант е да се ползват rigid bodies в комбинация с gravity.

1.Създаваме равнината върху която ще разполагаме обектите. За целта ще използваме полигонален примитив plane: Create>Polygon Primitives>Plane.В полетата Subdivisions Wid и Subdivisions Hei задаите стойност 30 или по-голяма. По този начин ще се генерира достатъчно геометрия за да бъдат деформациите, които ще направим по-плавни.

2. Придаваме на повърхността неравен вид. За целта използвайте инструмент Sculpt Polygons Tool : Edit Polygons>Sculpt Polygons Tool. ( Докато работите с него е удобно да имате пряк достъп до неговите параметри-за целта натиснете бутон Show Tool Settings . Като променяте различните му режими на работа : Push, Pool, Smooth, Eraze както и нивото на натиск Opacity може бързо лесно да се съзаде доста неравна повърхност).

3.Създаваме обектите които ще попаднат върху повърхостта.За целта създайте няколко произволни полигонални примитива от меню Create>Polygon Primitives.

4.Разположете обектите малко над повърхноста в произволен ред.Скалирайте ги така че да не са твърде големи спрямо повърхонстта.

5. Направете повърхността Passive Rigid Body : селектирайте повърхността и изберете Soft/Rigid Bodies>Create Passive Rigid Body По този начин повърхността ще си взаимодейства с останалите предмети в сцената без обаче те да й влиаят ( да я деформират или да я местят при съприкосновине с нея и пр.

6.Селектирайте останалите обекти и изберете Fields>Gravity. Слагането на гравитация върху обектите автоматично ги превръща в Active Rigid Bodies- те ще се влиаят от всички пасивни и активни тела в сцената.

7. Пуснете анимацията да се възпроизвежда - за да бъде прецизна симулацията преди това задайте опция Play Every Frame : Window>Settings/Preferences>Preferences>Timeline Обектите ще се позиционират спрямо геометрията на повърхността.

Няколко донастройки за по-прецизна симулация ако обектите отскачат твърде на далеч при съприкосновението с повърхостта или не се допират съвсем коректно към нея :

Приближете ги на по-близко разтояние до повърхността преди да пуснете симулацията

Намалете или увеличете Tessellation Factor-a на повърхността в зависимост от това дали обектите потъват в нея или "плават" малко над нея.

Намалете стойността на параметър Bounciness на обектите ако искате да отскачат малко или въобще да не отскачат при съприкосновение с повърхността.

Ако се налага увеличете времетраенето на анимацията ( симулацията ) за да имат обектите достатъчно време да се наместят на повърхността.

8.Когато сте доволни от резултата спрете симулацията и изберете Edit>Delete All by Type>Rigid Bodies.

 

Изготвил: north