SimCloth Tutorial

autor: Vlado 

t│mumaczenie : adek@zse.edu.pl & martin@zse.edu.pl 

Do tych tutoriali potrzebny bΩdzie Ci SimCloth w wersji 2.01. Je┐eli go nie masz mo┐esz go sci╣gn╣µ na http://www.chaosgroup.com/simcloth.html. Dobrze jest te┐ przeczytaµ plik .rtf, kt≤ry znajduje siΩ w dystrybucji z SimCloth'em, jako ┐e da Ci to podstawowe pojΩcie o pluginie. Te tutoriale zawieraj╣ r≤wnie┐ wskaz≤wki i informacje kt≤rych w pliku .rtf nie ma, ale dobrze jest o nich wiedzieµ. Zaznaczone s╣ s│owem Uwaga przed nimi.

CzΩ£µ 1: Spadaj╣ca wst╣┐ka

Ten tutorial jast tu nie dlatego, ┐e jest interesuj╣cy, ale dlatego i┐ wydaje siΩ ┐e spadaj╣ce wstΩgi s╣ czym£ klasycznym w systemie symulacji tkanin :-)

Przygotowanie sceny

W scenie bΩd╣ nam potrzebne dwa obiekty - p│aszczyzna ziemi i sama wst╣┐ka. W widoku 'Top' stw≤rz p│aszczyznΩ oko│o 400 x 400 jednostek, 1 x 1 segment≤w. Dodaj do niej modyfikator 'SimClothMod'. W grupie 'Type' rozwijanych parametr≤w SimCloth wybierz 'Deflector'. Oznacza to ┐e SimCloth nie bΩdzie animowa│ p│aszczyzny, ale bΩdzie zatrzymywa│ inne obiekty pr≤buj╣ce przenikn╣µ przez ni╣.

W widoku 'Front' stw≤rz p│aszczyznΩ oko│o 400 x 20 jednostek i 80 x 4 segmenty. To bΩdzie nasza wst╣┐ka. Zostaw oko│o 75 jednostek pomiΩdzy ni┐szym ko±cem wstΩgi a p│aszczyzn╣ ziemi. Dodaj modyfikator SimCloth do wst╣zki ustawiaj╣c Type na Cloth. W grupie parametr≤w Deflection zaznacz Self-deflect - nie chcemy ┐eby wst╣┐ka przenika│a przez siebie. Ustaw tak┐e Bound. box divs na 30 - p│aszczyzna ma du┐o polygon≤w przez ca│╣ d│ugo£µ, a wiΩcej podzia│≤w ograniczaj╣cego box'a przyspieszy troszkΩ obliczenia.

W tym miejscu dobrze jest przypisaµ wst╣┐ce 2-stronny materia│ ┐eby obydwie jej strony by│y widoczne, i odznaczyµ Backface cull w oknie w│a£ciwo£ci p│aszczyzny ┐eby mog│a byµ wybrana z drugiej strony.

'Dostrajanie' symulacji

Jeste£my gotowi rozpocz╣µ symulacjΩ (nie bΩdzie wspaniale za pierwszym razem, wiΩc siΩ tak nie spiesz :-). Naci£nij przycisk Start calculation u g≤ry rozwijanego menu SimCloth'a. Je£li nie chcesz czekaµ na obliczenie wszystkich klatek (0-100 domy£lnie), naci£nij i przytrzymaj ESC a┐ SimCloth przestanie obliczaµ. Po obejrzeniu animacji zauwa┐ysz, ┐e tkanina spada za wolno aby wygl╣da│o to realistycznie i marszczy siΩ za bardzo jak papier. Poza tym wst╣┐ka wygl╣da trochΩ za bardzo "sp│ywaj╣co".

Pierwszy problem da siΩ rozwi╣zaµ zwiΩkszaj╣c grawitacjΩ (Gravity). Ustaw j╣ na 1.0 i pon≤w symulacjΩ. Patrz uwa┐nie na okno statystyki (tu┐ poni┐ej paska postΩpu, kt≤ry z kolei jest tu┐ pod przyciskiem Start calculation) - zobaczysz, ┐e wkr≤tce wy£wietli Self-intersection detected i zostanie tak ju┐ do konca oblicze±. To dlatego ┐e wst╣┐ka spada naprawdΩ szybko, z 4 podpr≤bkami na klatkΩ. Ustawimy Air resistance na 0.02 - to zwolni trochΩ wst╣┐kΩ. Ustaw te┐ Min subdivs w grupie Sampling na 2 i Max subdivs na 4 - to spowoduje ┐e SimCloth zrobi co najmniej 2 pr≤bki na klatkΩ i przeskoczy na 8 pr≤bek je£li bΩdzie to konieczne. Uwaga: wiΩcej pr≤bek na klatkΩ to wiΩksza zdolno£µ odchylania; je£li SimCloth musi zmieniaµ ilo£µ pr≤bek na klatkΩ za czΩsto mo┐e to spowodowaµ migotanie. Jedynym sposobem na zlikwidowanie tego problemu jest zwiΩkszenie Min subdivs.

Je£li teraz zaczniesz obliczenia sceny, zobaczysz ┐e SimCloth'owi uda siΩ odzyskaµ wszystkie wykryte przeciΩcia. Jednak wst╣┐ka ci╣gle marszczy siΩ za bardzo kiedy dotyka ziemi, i ci╣gle jest rzadka.

Marszczenie jest usuwane przez zwiΩkszenie Bond range - ostro┐nie, gdy┐ zbyt wysokie warto£ci mog╣ powodowaµ "utratΩ integralno£ci" - kiedy jest wiΩcej wiΩzi, si│a dzia│aj╣ca na ka┐dy wierzcho│ek jest wiΩksza, i rezultatem mo┐e byµ "eksplozja" - wierzcho│ki lec╣ce chaotycznie we wszystkie strony. SimCloth pr≤buje wykrywaµ takie przypadki i wtedy wy£wietla wiadomo£µ "Object integrity loss". Aby unikn╣µ utraty integralno£ci, zmniejsz Tightness i/lub Keep speed. Uwaga: mo┐esz otrzymaµ fa│szywe komunikaty o utracie integralno£ci je£li rozmiar dw≤ch obiekt≤w w symulacji bardzo siΩ r≤┐ni╣ (oko│o 500-1000 razy). Jedynym sposobem na to jest zmiejszenie du┐ych obiekt≤w (ucinaj╣c czΩ£ci czy co£ w tym rodzaju). To ograniczenie SimCloth'a kt≤rego nie chcia│o mi siΩ zbytnio poprawiaµ :-]

Wracaj╣c do naszej wst╣┐ki, ustaw Bond range na 1.1. Rezultatem bΩd╣ g│adsze krzywe podczas marszczenia siΩ wst╣┐ki, a tkanina bΩdzie wygl╣da│a trochΩ bardziej sztywno.

Ostatnia rzecz, aczkolwiek jest bardzo wa┐na - lubiΩ symulacjΩ tak╣ jaka jest - mo┐e byµ przydatna. Je£li zwiΩkszysz wst╣┐ce Particle mass (powiedzmy na 10.0), zwiΩkszy to troszkΩ tarcie miΩdzy ni╣ a p│aszczyzn╣ (a tak┐e kiedy tkanina spada na siebie) a tkanina bΩdzie mia│a zwyczaj zostawaµ w jednym miejscu na kupce.

Po zako±czeniu oblicze±, mo┐esz dodaµ modyfikator MeshSmooth na g≤rze SimCloth'a aby uzyskaµ g│adsz╣ powierzchniΩ. Uwaga: je£li zdecydujesz siΩ obliczaµ scenΩ na nowo, powiniene£ usun╣µ albo ustawiµ jako nieaktywny ten modyfikator MeshSmooth. Og≤lnie, je┐eli obliczasz symulacje, zostaw modyfikator SimCloth jako ostatni aktywny modyfikator na stosie. Je┐eli tego nie zrobisz, SimCloth siΩ 'pogubi'.

Rezultat

Ostateczny rezultat powinien wygl╣daµ jak na tym obrazku (dodaj materia│y i £wiat│a do smaku :-)

Sko±czony plik .max (bez animacji aby oszczΩdziµ miejsce, bΩdziesz musia│ przeprowadziµ symulacjΩ) jest Scenes/ribbon.max relatywnie do katalogu z tym plikiem


 

CzΩ£µ 2: Unosz╣ca siΩ wst╣┐ka

Ta scena u┐ywa poprzedniej jako sceny pocz╣tkowej. Po prostu trochΩ j╣ przerobimy aby wst╣┐ka trochΩ siΩ unios│a w powietrzu a potem opad│a.

Przygotowanie sceny

Otw≤rz Scenes/ribbon.max i zapisz pod now╣ nazw╣. Obr≤µ wst╣┐kΩ tak aby by│a r≤wnolegle do p│aszczyzny ziemi, ale nie ruszaj jej. PowiΩksz p│aszczyznΩ ziemi do oko│o 800 x 800 jednostek aby wst╣┐ka mia│a gdzie lataµ. NastΩpnie stw≤rz 'space warp' - wiatr w g≤rΩ.

'Dostrajanie' symulacji

W tej scenie chcemy aby wst╣┐ka spada│a wolno, wiΩc ustawimy Gravity na 0.2 i Air resistance na 0.4. Jako ┐e nie bΩdzie tam du┐o odchyle± mo┐emy ustawiµ Min. subdivs na 1 - to przyspieszy nasz╣ symulacjΩ.

NastΩpnie, musimy podaµ SimCloth'owi ┐e chcemy aby wiatr wp│ywa│ na wst╣┐kΩ. Zaznacz wst╣┐kΩ i naci£nij przycisk Pick warp w parametrach SimCloth'a. Potem kliknij na ≤w wiatr. Jego nazwa pojawi siΩ w oknie powy┐ej przycisku Pick warp. Je£li obliczysz symulacjΩ teraz, nie zauwa┐ysz ┐adnego £ladu wiatru. To dlatego, ┐e jego si│a jest za ma│a dla SimCloth'a. Zaznacz wiatr i ustaw jego Strength na 100.0. Aby by│o bardziej interesuj╣co dodamy tak┐e turbulencje - ustaw Turbulence na 1500.0, Turbulence na 0.001 i Scale na 0.01 (znalezienie tych liczb zajΩ│o mi trochΩ czasu). Mo┐esz tak┐e wyd│u┐yµ odcinek czasu do klatki #150, poniewa┐ tkanina bΩdzie spadaµ bardzo wolno. Ustaw tak┐e End frame w parametrach SimCloth'a na 150. Jeste£my gotowi przeprowadziµ symulacjΩ - zaznacz wst╣┐kΩ i naci£nij Start calculation. To wszystko!

Rezultat

Rezultat powinien wygl╣daµ podobnie; scena to Scenes/ribbon1.max


 

CzΩ£µ 3: Obrus

To te┐ jest bardzo prosta scena, ale uzyjΩ jej ┐eby pokazaµ jak "skalowaµ" SimCloth'a dla obiekt≤w o wiΩkszej lub mniejszej skali ni┐ normalna.

Przygotowanie sceny

Potrzebne bΩd╣: cylinder przedstawiaj╣cy st≤│ i p│aszczyzna jako obrus.

Stw≤rz cylinder o wysoko£ci (Height) ustawionej na 700.0 jednostek i promieniu (Radius) 6000.0 jednostek, ustaw Height segments na 1. Stw≤rz p│aszczyznΩ o wymiarach 16000 x 16000 jednostek i 40 x 40 segment≤w. Przesu± j╣ lekko nad cylinder. Odznacz Backface cull we w│a£ciwo£ciach p│aszczyzny i przypisz jej 2-stronny materia│.

Dodaj cylindrowi modyfikator SimCloth i ustaw jego Type na Deflector, dodaj kolejny modyfikator SimCloth p│aszczyƒnie i ustaw Type na Cloth.

'Dostrajanie' sceny

Najpierw trochΩ ustawie± og≤lnych - p│aszczyzna tkaniny ma du┐o segment≤w, wiΩc ustawimy Bound. box divs na 30 aby przyspieszyµ trochΩ obliczenia. »eby oszczΩdziµ czas zostawimy opcjΩ Self-deflect odznaczon╣ - ciΩ┐ko bΩdzie w tym przypadku o jakiekolwiek samo-odchylenia. Aby uzyskaµ g│adkie zmarszczenia ustaw Bond range na 1.02, natomiast aby tkanina zbyt siΩ nie rozci╣ga│a ustaw >Num. steps na 100.

Aby przeskalowaµ SimClotha do rozmiaru naszych obiekt≤w bΩdziemy musieli zmieniµ dwa parametry - Gravity i Deflect distance. Jak pisze w pliku .rtf kt≤ry jest w dystrybucji z SimCloth'em, SimCloth stara siΩ zachowaµ Deflect distance obiekt≤w razy Rel. pos. jednostek. Jako zasada generalna, ta odleg│o£µ powinna byµ mniej wiΩcej oko│o rozmiaru polygon≤w w obiekcie tkaniny, chyba ┐e jeste£ pewien, ┐e nie bΩdzie tam wielu ostrych pofa│dowa±. Dobrze jest te┐ utrzymywaµ warto£µ Rel. pos. poni┐ej lub r≤wn╣ 0.5. Trzeci╣ rzecz╣ wart╣ zapamiΩtania jest to aby Deflect distance by│ taki sam dla wszystkich oddzia│ywuj╣cych ze sob╣ obiekt≤w w symulacji. W naszym przypadku ustawimy Deflect distance na 200.0 dla obydw≤ch: cylindra i p│aszczyzny oraz zostawiamy Rel. pos. na warto£ci domy£lnej.

To wszystko. Ostatni dotyk - ustaw Air resistance to 0.05 aby obrus delikatnie spada│ na st≤│.

Rezultat

Rezultat powinien byµ podobny do tego obok. Scena gotowa do obliczenia jest w pliku Scenes/tableCloth.max


<Ci╣g dalszy nast╣pi...>

A tu macie sceny z tego tutoriala w formacie *.max - SCENES.ZIP [35KB]

T│umaczenie: adek@zse.edu.plmartin@zse.edu.pl

http://www.zse.edu.pl/~martin

http://3dstudiomax.punkt.pl


Umieszczanie tego tutoriala na innych stronach ni┐ http://3dstudiomax.punkt.pl zabronione.

wiΩcej tutoriali ?