Forum Polskiego Kursu Blendera

Kurs Blendera dla wszystkich Polaków!

zmiana kształtu cząsteczek

Autor Wątek: zmiana kształtu cząsteczek  (Przeczytany 764 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline vladeczek

  • Użytkownik
  • *
  • Wiadomości: 58
  • Reputacja +2/-0
  • Płeć: Mężczyzna
    • Zobacz profil
zmiana kształtu cząsteczek
« dnia: 20180409, 21:07:53 »
Witam wszystkich. Robiąc ostatnio filmik z życzeniami natknąłem się na dwa problemy.
Pierwszy : jak zrobić aby zmiana kształtu cząsteczek ( zrobiona shape keyem ) była zależna od odległości od emitera, czyli poniekąd związana z ich wiekiem ?
Drugi : jak zrobić by nie było przenikania cząstek przez "kolizyjnego" mesha ( w tym przypadku górnej części muszli ) ? Chodzi o to by mogły się poniekąd pod nim ślizgać. Udało mi się to tylko częściowo (czy size deflect nie działa przy zmianie kształtu/wielkości takiej cząstki ? ). Próbowałem także z addonem molecular script, ale bez większego powodzenia.
Załączam filmik oraz plik.
Proszę o pomoc bo jakoś w sieci nie znalazłem właściwych rozwiązań.

Offline vladeczek

  • Użytkownik
  • *
  • Wiadomości: 58
  • Reputacja +2/-0
  • Płeć: Mężczyzna
    • Zobacz profil
Odp: zmiana kształtu cząsteczek
« Odpowiedź #1 dnia: 20180409, 21:25:44 »
uuupsss filmik się nie zabrał

Offline Ozonek

  • Aktywny użytkownik
  • *
  • Wiadomości: 343
  • Reputacja +36/-2
  • Dziwne rzeczy.
    • Zobacz profil
Odp: zmiana kształtu cząsteczek
« Odpowiedź #2 dnia: 20180409, 22:10:03 »
Bardzo dobre pytania, niestety nie mam dla ciebie prostej odpowiedzi, ale spróbujmy.

Disclaimer: W taki sposób ja bym to ugryzł, być może są add-ony lub skrypty, które umożliwiają takie rzeczy, ja o nich nie wiem.

1. Nie udało mi się znaleźć sposobu, by animować shape keys bezpośrednio na dupli objectach z cząsteczek. Miałem nadzieję, że drivery dadzą radę, ale bezskutecznie. Za to udało mi się znaleźć skrypt, który wypali ci animację cząstek do faktycznych obiektów (https://blender.stackexchange.com/questions/4956/convert-particle-system-to-animated-meshes), z którymi już można normalnie pracować.

2. Size deflect bierze pod uwagę wielkość cząstki, ale nie bierze pod uwagę kształtu twojego obiektu (zakłada, że cząstka jest sferą). Stwórz sobie defaultową icosferę o domyślnej średnicy, to jest twoja klatka kolizji. Dopasuj do niej serduszko i powinno grać.

« Ostatnia zmiana: 20180409, 22:36:22 wysłana przez Ozonek »

Offline vladeczek

  • Użytkownik
  • *
  • Wiadomości: 58
  • Reputacja +2/-0
  • Płeć: Mężczyzna
    • Zobacz profil
Odp: zmiana kształtu cząsteczek
« Odpowiedź #3 dnia: 20180409, 23:02:56 »
Dzięki za rady. Będę próbował. A swoją drogą to wydaje mi się, że gdzieś, kiedyś widziałem taki addon do animowania shape keya na dupli obiektach, ale był płatny i przestałem się nim interesować.

Offline vladeczek

  • Użytkownik
  • *
  • Wiadomości: 58
  • Reputacja +2/-0
  • Płeć: Mężczyzna
    • Zobacz profil
Odp: zmiana kształtu cząsteczek
« Odpowiedź #4 dnia: 20180410, 23:30:22 »
Chyba coś źle robię, bo niestety :

Ad 1. Skrypt fajny, wypala jak należy, ale obiekty uzyskane z cząstek zachowują ruch i "kolizje" owych cząstek, co w sumie w moim projekcie niewiele zmienia. Owszem można ręcznie te kolizyjne obiekty (serduszka) poprowadzić, żeby udawały zderzenia z muszlą. Myślę też, że można sobie z nimi pogrywać w rigid body, ale pozostaje problem z sensownym naśladowaniem emisji.

Ad 2. Oczywiście zapomniałem o fakcie, że cząstka reprezentowana jest przez sferę. Natomiast wielokrotnie sprawdziłem, że każda transformacja, czy to shape keys, czy Scale obiektu daje przenikanie potomnych cząstek (nawet jeśli są sferami) przez obiekt kolizyjny, zatem owa defaultowa sfera aby działała, teoretycznie musi pozostawać wyjściowo niezmienna, ale niestety aby mogła być emitowana z właściwą cząstką-obiektem musi być z nią połączona (Ctrl+J) co i tak daje jedem mesh więc wracamy do punktu wyjścia.

Może jeszcze popróbuję poprowadzić te cząstki z curve guide, albo jako boids, chociaż wiele sobie po tym nie obiecuję. Myślałem też czy nie można by zastosować AN, ale na to jestem za cienki.  ;)

No i pozostaje kwestia jak zrobić aby zmiana kształtu cząsteczek ( zrobiona shape keyem ) była zależna od odległości od emitera, czyli poniekąd związana z ich wiekiem ? I myślę, że to się da jakoś ogarnąć - tylko jak ?

Offline Jaras

  • Użytkownik
  • *
  • Wiadomości: 195
  • Reputacja +6/-0
  • Płeć: Mężczyzna
  • jestem tu nowy!
    • Zobacz profil
Odp: zmiana kształtu cząsteczek
« Odpowiedź #5 dnia: 20180411, 10:09:53 »
Podsunę pomysł  - czysto teoretyczny, bo nie sprawdzałem. Spróbuj nagrać action do zmiany kształtu cząsteczki i sterować nim poprzez kość - tak jak rovbi się animacje np. ruchu szczęki przy postaci. A kość może by sterować jakoś driverem lub po prostu na time line zakluczować - w końcu czas emisji cząsteczek jest z góry zaplanowany.

Offline Ozonek

  • Aktywny użytkownik
  • *
  • Wiadomości: 343
  • Reputacja +36/-2
  • Dziwne rzeczy.
    • Zobacz profil
Odp: zmiana kształtu cząsteczek
« Odpowiedź #6 dnia: 20180411, 11:23:17 »
Chyba coś źle robię, bo niestety :

Ad 1. Skrypt fajny, wypala jak należy, ale obiekty uzyskane z cząstek zachowują ruch i "kolizje" owych cząstek, co w sumie w moim projekcie niewiele zmienia. Owszem można ręcznie te kolizyjne obiekty (serduszka) poprowadzić, żeby udawały zderzenia z muszlą. Myślę też, że można sobie z nimi pogrywać w rigid body, ale pozostaje problem z sensownym naśladowaniem emisji.

Ad 2. Oczywiście zapomniałem o fakcie, że cząstka reprezentowana jest przez sferę. Natomiast wielokrotnie sprawdziłem, że każda transformacja, czy to shape keys, czy Scale obiektu daje przenikanie potomnych cząstek (nawet jeśli są sferami) przez obiekt kolizyjny, zatem owa defaultowa sfera aby działała, teoretycznie musi pozostawać wyjściowo niezmienna, ale niestety aby mogła być emitowana z właściwą cząstką-obiektem musi być z nią połączona (Ctrl+J) co i tak daje jedem mesh więc wracamy do punktu wyjścia.

Może jeszcze popróbuję poprowadzić te cząstki z curve guide, albo jako boids, chociaż wiele sobie po tym nie obiecuję. Myślałem też czy nie można by zastosować AN, ale na to jestem za cienki.  ;)

No i pozostaje kwestia jak zrobić aby zmiana kształtu cząsteczek ( zrobiona shape keyem ) była zależna od odległości od emitera, czyli poniekąd związana z ich wiekiem ? I myślę, że to się da jakoś ogarnąć - tylko jak ?

Skrypt jest po to, żeby móc zanimować shape keys na cząsteczkach. By cząstki ci nie clipowały musisz się pobawić samą symulacją, ewentualnie dodać pomocniczy niewidzialny obiekt dla kolizji. To wydaje mi się najmniejszym problemem, po prostu metoda prób i błędów, aż będzie wyglądało dobrze.

Tak, można zanimować shape key za pomocą drivera zależnego od odległości między obiektami, ale nie da się (chyba, mogę się mylić) tego zrobić bezpośrednio na cząsteczkach. Dlatego właśnie mamy ten śmieszny skrypt, coby zamienić cząsteczki na meshe. Tak czy siak nie obejdzie się bez pewnej ilości manualnej roboty.

Offline vladeczek

  • Użytkownik
  • *
  • Wiadomości: 58
  • Reputacja +2/-0
  • Płeć: Mężczyzna
    • Zobacz profil
Odp: zmiana kształtu cząsteczek
« Odpowiedź #7 dnia: 20180429, 19:45:14 »
Trochę z opóźnieniem ale jeszcze raz podziękowania za rady. Jest tylko ten feler, że jak Ozonek napisał
Cytuj
Tak czy siak nie obejdzie się bez pewnej ilości manualnej roboty.
I nie jest to problemem przy małej ilości takich cząsteczek, ale pomyślałem sobie, że gdyby dotyczyło to np 100 lub więcej partikli to już kaszana.
Natomiast przypadkiem trafiłem na addon o którym wspominałem, niestety płatny - Particle Instantiator.

https://blendermarket.com/categories/animation-scripts-and-addons

https://www.youtube.com/watch?v=A2q8Cq1LRa4

Offline Jaras

  • Użytkownik
  • *
  • Wiadomości: 195
  • Reputacja +6/-0
  • Płeć: Mężczyzna
  • jestem tu nowy!
    • Zobacz profil
Odp: zmiana kształtu cząsteczek
« Odpowiedź #8 dnia: 20180430, 11:41:02 »
jest jeszcze darmowy molecular script http://pyroevil.com/molecular-script-download/, ale tutaj chyba się nie sprawdzi. On raczej ogarnia kolizje pomiędzy cząsteczkami.

 

© Polski Kurs Blendera, CC-BY, 2014