Skocz do zawartości

Animacja obiektu RBD


Tazio

Rekomendowane odpowiedzi

Witam, takie pytanko.

Robie sobie taki projekcik, gdzie pojazd uderza czescia silnika o ziemie.

Obiekt zostal zanimowany w mayce i tam tez zostal pociety na fragmenty, ktore maja po uderzeniu rozpasc sie.

Teraz eksportowalem sobie czesc pocietego silnika z anmacja jak leci w kierunku ziemi do houdiniego jako fbx.

Zrobilem object merge, rop i exportnalem te animacje do bgeo. Wrzucilem poprzez file do houdiniego.

Ok jest geometria ktora jest sekwencja animacji. Teraz w momencie gdy silnik zbliza sie do ziemi, chcialbym aby

nastapilo uderzenie o statyczny obiekt (ziemie). I teraz (uff) co zrobic?

Silnik powinien byc jako RBD Object, czy RBD Fractured object? I teraz jak zrobic,

aby obiekt byl animowany do zderzenia a przy zderzeniu nastapilo uruchomienie RBD?

Probowalem z RBD i Fractured RBD ale spadaja na ziemie od razu, a przy uzyciu Activation, wisza w powietrzu zamiast sledzic animacje i w momencie uruchomienia spadaja na ziemie. Jakies sugestie jak zrobic cos takeigo?

Szukalem troche na forach zagranicznych, ale pomyslalem, ze moze tu by sie udalo uzyskac jakis zrozumialy dla

mnie dialog.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 33
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Wszystko masz w helpie houdiniego.

 

Znajdziesz tam 'glue constraint' przykladowa scene:

http://www.sidefx.com/docs/houdini13.0/examples/nodes/dop/constraintnetwork/GlueConstraintNetwork

 

 

This example shows how to create a constraint network to glue together adjacent pieces of a fractured object. It also shows how primitive attributes such as 'strength' can be used to modify properties of individual constraints in the network.

Edytowane przez tmdag
Odnośnik do komentarza
Udostępnij na innych stronach

Wszystko masz w helpie houdiniego.

 

...ale Taziowi zdaje się nie o to chodzi. Chciał symulować obiekty, które mają upieczoną deformację ręcznie (z Mai), a dopiero w trakcie kolizji trzeba je symulować.

 

Tazio, to jest kilka kliknięć. Musisz użyć ActiveStateDOP z odpowiednią komendą (np. $FF > 20 jeśli impact jest w klatce 21). Obiekt powinny mieć atrybut velocity (policzone np. z TrailSOP), RBDObject DOP musi mieć włączone dziedziczenie velocity z punktów. Ważne też żebyś wyzerował velocity na punktach po klatce 21, inaczej nadaj będzie wpływać na symulacje. Załączam przykład, niestety nie wiem, jak to zrobić z RBD Packet Object, bo nie ma na ich "Use Deformation". Pewnie jakoś się da...

anim_sphere_fractured.zip

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, dziala mi to sposobem jaki podeslal Symek.

Dzieki za to. Troche sie dziwnie zachowuje geometria po uderzeniu, troche lata jak liscie mimo ze zrobilem

im centroida, ale napewno jest to do naprawy. Mam takie jeszcze pytanie, bo wiem ze tak sie da, ale jestem za cienki na to w hudym.

Bo to jest troche wersja toporna, poniewaz manualnie odklucza sie klatke w ktorej ma sie stac kolizja.

Jak zrobic zeby dzialalo to troche jak thinking particles, czyli ze obiekt sam wyczuwa moment kolizji ze pomoca dystansu i puszcza,

tak jak w volume brakerze, lub np jest w zasiegu jakiegos obiektu i bedac w jekgo zasiegu jest triger do kolizji,

tak jak np we fragmenterze, gdzie mozna np odpalic kolizje za pomoca swiatla.

Mozna zrobic tak w houdinim za pomoca np scaterowania punktow, aby po kontakcie z particlami nastapilo uruchomienie kolilzji?

 

Sorki ze tak zawracam dupe, ale przeciez nie prosze o konkretne rozwiazania, a bardziej o koncept i sposob.

Odnośnik do komentarza
Udostępnij na innych stronach

niestety nie wiem, jak to zrobić z RBD Packet Object, bo nie ma na ich "Use Deformation". Pewnie jakoś się da...

 

nie wiem co to jest RBD Packet Object, pewnie to nowy stuff w Houdinim 13, nie dotykalem tego, ale Use Deformation to SOP Geometry DOP z ustawionym Default Operation na Set Always, w tym wypadku geometria z SOP do DOP levelu jest przenoszona co substep.

Edytowane przez bareja
Odnośnik do komentarza
Udostępnij na innych stronach

Ok, dziala mi to sposobem jaki podeslal Symek.

Dzieki za to. Troche sie dziwnie zachowuje geometria po uderzeniu, troche lata jak liscie mimo ze zrobilem

im centroida, ale napewno jest to do naprawy. Mam takie jeszcze pytanie, bo wiem ze tak sie da, ale jestem za cienki na to w hudym.

Bo to jest troche wersja toporna, poniewaz manualnie odklucza sie klatke w ktorej ma sie stac kolizja.

Jak zrobic zeby dzialalo to troche jak thinking particles, czyli ze obiekt sam wyczuwa moment kolizji ze pomoca dystansu i puszcza,

tak jak w volume brakerze, lub np jest w zasiegu jakiegos obiektu i bedac w jekgo zasiegu jest triger do kolizji,

tak jak np we fragmenterze, gdzie mozna np odpalic kolizje za pomoca swiatla.

Mozna zrobic tak w houdinim za pomoca np scaterowania punktow, aby po kontakcie z particlami nastapilo uruchomienie kolilzji?

 

Sorki ze tak zawracam dupe, ale przeciez nie prosze o konkretne rozwiazania, a bardziej o koncept i sposob.

 

Moge sie mylic bo juz kilka lat temu to widzialem ale chyba ten tutek jest przykladem zmiany koloru obiektu w momencie gdy zostanie wykryta kolizja. Ta sama metode mozesz zastosowac do swojego switcha.

Odnośnik do komentarza
Udostępnij na innych stronach

Bareja, dostalem powiadoienie ze napisales cos w tym watku, ale tutaj tego nie wyswietlilo.

Tak tylko gwoli scislosci.

Co do watku, ten domowy projekt ktory teraz robie to moze w nastepnym tygodniu wrzuce

to na WIP w maxie, to byscie czasami cos podrzucili zoltodziobowi :)

Bardzo bym chcial go dokonczyc i ruszyc z wiedza w houdinim.

Odnośnik do komentarza
Udostępnij na innych stronach

Teraz nad tym siedze.

Zajmie mi chyba tydzien rozkminianie tego.

 

Pisze z glowy, nie mam sceny przed soba:

 

Nie wiem jak bardzo badzo gleboko dlubiesz w DOPach ale postaram sie opisac najprosciej jak sie da, oraz pare moich zalozen:

1) Nasza kukla zawiera deformacje, nie animacje, animacja jest na poziomie obiektow (/obj).

2) Kulka na poczatku symulacji jest obiektem nie aktywnym, co znaczy solver zostal dodany do obiektow ale nie zaczal jeszcze zadnych obliczen, nic nie zainicjalizowal. W poczatkowej fazie interesuje nas tylko deformacja. Obiekt chcialbym aktywowac tylko wtedy kiedy zbilzy sie do innych z ktorymi potencjalnie bedzie kolidowac.

3) Kazdy RBD obiekt zawiera w sobie pewne dane, np SOP_Geometry dodaje nam geometrie, jezeli uzywasz Use Deform, to znaczy pobierz geometrie ze 'zrodla' w tym wypadku SOP co dt(substep, jakakolwiek zmiana w czasie). W setupie, nie uzylem Use Deform, bo chcialbym sterowac w wygodny sposob za pomoca skryptu. Uzylem Modify Data z modyfikacja time dla Geometry data.

4) Grupa env to obiekty z ktorymi kulka bedzie kolidowac.

5) Grupa anim, to grupa obiektow ktore sa animowane, jezeli obiekt jest w grupie to Modify Data odswierzy geometrie na nim. Jezeli obiekt wyleci z jakis wzgledow z grupy anim, zostanie aktywowany - znaczy do obliczen rbd.

6) w Sop network ktory z tego co pamietam jest kolo 'aaa modify data' biore moja kukle, robie na niej scatter, robie scatter na env grupie i robie transfer atrybutu z env do kulki, bazujac na dystansie. Z punktow ktore zostaly rozsiane na kulce robie particle system, i biore max z transferowanego atrybutu. Tak wykrywam czy obiekt zblizyl sie do kolidowanych obiektow.

7) Expresion na aaa modify data sprawdza sop network czy atrybut jest > 0 jezeli jest to znaczy wywal obiekt z grupy anim. Rob oblicznia rbd.

 

Sorry pisalem szybko, pewnie masa bledow, zredaguje pozniej ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Dobra, czaje to wszystko, znaczy sie koncept wsparty plikiem :P.

Dzieki bardzo za czas.

Teraz sobie rozszyfruje expressions uzyte w modify data.

Ten sposob mi sie podoba, jest niezle kontrolowany. Przetestuje go sobie na kawalku

silnika ktory sie rozwala.

Czasami mam ochote rzucic houdiniego

i chwycic po maxa lub maye, bo wydaje mi sie ze Houdy jest nie do przejscia.

Ide dlubac dalej.

Odnośnik do komentarza
Udostępnij na innych stronach

W Symkowym przykladzie geometria zewnetrzna i wewnetrzna kulki, jest symulowana osobno. Assemble sop bierze pod uwage 'inside group' i tworzy osobny 'name' primitive parameter co powoduje, ze rbdfracture object traktuje to zupelnie osobno. Mozesz pominac zupelnie ten node bo 'name' parameter w tym przykladzie jest poprawnie ustawiony przez voronoi fracture.

 

Dodatkowo przyklad ten nie zadziala poprawnie jak zmienisz wartosc active value na nizsza gdy geometria jest nadal deformowana. (np $FF>10)

W przykladzie bareyki ten problem jest ladnie ominiety.

Odnośnik do komentarza
Udostępnij na innych stronach

Zrobilem na razie sposobem Symka, bo jest latwiejszy dla mnie. Ale odtworze sobie ten efekt drugim sposobem.

Moze jutro podrzuce prevke tego co zrobilem, udowodnie przynajmniej ze na powaznie nad tym siedzialem.

Dzieki za bardzo konkretna pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Ok, rozumiem, ale musze troche przemyslec Twoje rozwiazanie,

poniewaz chcialbym dokladnie wiedziec co robie. Pojazd bedzie zachaczal jeszcze

tylnim silnikiem o ziemie, wiec zagadnienie powroci.

Dzisiaj nie wrzuce filmiku, bo zajelo mi troche czasu zeby powrzucac elementy pojazdu

do sceny, plus troche czasu wolnego dla siebie.

Wydaje mi sie, ze zalozenie sobie zrobienia calego projektu w houdinim bylo dobrym pomyslem,

poniewaz mam juz mase pytan odnosnie dalszej pracy nad tym projektem,

np: jak chce emitowac particle z rozwalonych obiektow, to moge skaszowac rozwalony

obiekt i potem robic particle?

Zdaje sobie dobrze sprawe ze to idiotyczne pytanie, ale od kiedy particle sa w dopsie

nie jest to dla mnie takie oczywiste. Po skaszowaniu obiektu emitujacego particle, mam go odlaczyc poprostu w dopsie?

Ale chyba zaloze watek na wip zeby tutaj nie zabrudzac forum pytaniami z roznych zagadnien.

Odnośnik do komentarza
Udostępnij na innych stronach

Zdaje sobie dobrze sprawe ze to idiotyczne pytanie, ale od kiedy particle sa w dopsie

nie jest to dla mnie takie oczywiste.

 

1) nie gadaj tak, nie ma idiotycznych pytan, wiec skoncz tak gadac ;)

2) ad nomenklatury houdiniego, nie w dopsie, tylko dopach tak bedzie brzmialo spolszczenie tej nazwy ;) przynajmniej tak mi sie wydaje, skroty pochodza od modulow: POP - Particle OPerators, VOP, Vex OPerators, ROP - Render OPerators etc etc

 

Nie staraj sie wszystkiego upchac razem, rob male kroki, najperw RBD pozniej particle, tak bym radzil, wiele razy robienie wszystkiego w jednej symulacji to overkill. To sa efekty, a nie numeryczna analiza zachowania sie promu kosmicznego. Trzeba oszukiwac.

 

DOP Networkow mozesz sobie stworzyc ile chcesz.

Edytowane przez bareja
Odnośnik do komentarza
Udostępnij na innych stronach

Dzeki za podpowiedz co do kolejnosci.

Nie zdazylem wrzucic jeszcze filmika

bo meczylem sie z takimi glupotkami nawet jak przyparentowanie obiektu,

do statku. Poniewaz mam zrobine na wszystkie obiekty object merge i ich pivot jest zwsze

w miejscu, wiec obiekt go nie sledzi. Szukam na sidefx jak to zrobic zeby o pierdolki was nie pytac.

Jak zdaze to moze dzisiaj jeszcze wrzuce.

Odnośnik do komentarza
Udostępnij na innych stronach

Mowiles, ze moj sposob ciezszy do zrozumienia, wiec majac chwile przejrzalem moja metode i zrobilem z niej prosty czysty subnet, wystarczy, ze zrobisz sobie z niego otla.

 

W scenie znajduja sie dwa przyklady:

1) aktywacja na podstawie animacji

2) akytwacja na podstawie dystansu

 

Teraz modify data bierze dane bezposrednio z SIM_Geometry, milego wieczoru :)

hellodops2.zip

Odnośnik do komentarza
Udostępnij na innych stronach

Calosc zalozenia kumam. Transfer atrybutow w Sopie zrozumialy.

Bawilem sie tym tez za pomoca pointwrangle.

Rozszyfrowuje jeszcze zawartosc sim deformation.

Jutro rozloze sobie te expressions na czynniki pierwsze.

Bardzo duzo sie z tego ucze. Za co dziekuje.

Dzisiaj spedzilem czas w clothem i wires objects. Probuje w ten sam sposob

uruchomic obiekt po pewnym czasie za pomoca pintoanimation.

Najwiekszy problem sprawia mi zrozumienie i wrzucanie tego do dopa.

Chyba poprostu trzeba cisnac az sie to zrozumie :)

Odnośnik do komentarza
Udostępnij na innych stronach

na obu modify data jest:

!dopoption($DOPNET, $OBJNAME, "SolverParms/ActiveValue", "active")

co oznacza, jezeli obiekt nie jest aktywny, wykonaj operacje.

 

Pierwsze modify data robi update geometrii, raczej oczywiste.

 

Drugie modify data zmienia stan obiektu, na aktywny bazujac na atrybutach.

 

#blablabla bierzemy parametry 
aattr = hou.parm("../attrib").eval()
aclass = hou.parm("../class").eval()
atresh = hou.parm("../threshold").eval()

nie potrzebnie wstawilem dwa razy ta sama linijke z geo

hou.pwd().simulation().objects() - zwraca liste obiektow, ktore sa w dop necie

do kazdego obiektu dobieramy sie przez [], int(hou.lvar("OBJID"))-1 oblicza nam poprawny index listy, obiektu przetwarzanego, obj id zaczyna sie od 1, a indeksowanie listy od 0, dlateo -1

geometry() konwetuje SIM_Geometry na Geometry wiec mozemy bawic sie atrybutami

 

geo = hou.pwd().simulation().objects()[int(hou.lvar("OBJID"))-1].geometry()
if aclass == 0:
   return int(sum(geo.pointFloatAttribValues(aattr)) > atresh)
else:
   return int(sum(geo.primFloatAttribValues(aattr)) > atresh)

 

geo.primFloatAttribValues(aattr) zwraca liste wartosci atrybutu, a sum() robi ich sume,

konwetuje do int() dlatego bo wykiniem operacji > bedzie bool, a active powinno być int.

 

Mam nadzieje ze bawisz sie dobrze :)

Edytowane przez bareja
Odnośnik do komentarza
Udostępnij na innych stronach

Hehe jaki prezent z rana. Dzieki.

Dzisiaj to przestudiuje. Dokumentacja Houdiniego jest dla mnie w tej chwili

dosc skomplikowana. Ale przegladam tez duzo plkow z odforum i sidefx.

Jak sie nauczyc myslenia w ten sposob?

Pewnie prze doswiadczenie.

Odnośnik do komentarza
Udostępnij na innych stronach

Witam Ponownie.

Wiem ze to stary wtek ale zaczety przezemnie :P

Przez ostani rok sporo cisnalem houdiniego. Wiem ze to ciagle malo,

ale zawsze to jeden rok madrzejszy. Ostanio rozkminiam pliki od was i wydaja mi sie duzo

bardziej czytelne niz poprzednio. Poprzedni projekt dokonczylem w maxie,

ale mam zamiar poglebic temat i zrobic podobna secne jeszcze raz, ale juz przy uzyciu houdiniego

i lepiej.

To tak gwoli informacji. Dzieki jeszcze raz za te pliki pomocnicze.

Odnośnik do komentarza
Udostępnij na innych stronach

Witam Ponownie.

Wiem ze to stary wtek ale zaczety przezemnie :P

Przez ostani rok sporo cisnalem houdiniego. Wiem ze to ciagle malo,

ale zawsze to jeden rok madrzejszy. Ostanio rozkminiam pliki od was i wydaja mi sie duzo

bardziej czytelne niz poprzednio. Poprzedni projekt dokonczylem w maxie,

ale mam zamiar poglebic temat i zrobic podobna secne jeszcze raz, ale juz przy uzyciu houdiniego

i lepiej.

To tak gwoli informacji. Dzieki jeszcze raz za te pliki pomocnicze.

 

powodzenia!

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności