Skocz do zawartości

Importer .MDD lub sekwencji obj


Quentin

Rekomendowane odpowiedzi

Witam.

 

Czy zna ktoś może jakiś darmowy plugin/skrypt, który pozwala na import animacji zapisanej w mdd. lub sekwencji obj do Mayi? Potrzebuję tego, ponieważ robię animację postaci w Cinemie 4D, a symulację ubrań chcę zrobić poprzez nCloth, gdyż cloth engine w c4d nie obsługuje kilku warstw materiałów... Mam z c4d wyeksportowaną zanimowaną postać w .mdd, lecz nie mam jak jej zaimportować. Eksporter mdd do mayi mam, ale importera nie. Jest ponoć program Point Oven, który sobie z tym radzi, ale wolałbym znaleźć jakiś darmowy plugin.

 

 

Dzięki i pozdro

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 17
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Siema,

Jak mialem mega jazdy i zalezalo mi na czasie to robilem cos takiego:

Importowalem wszystkie objty do sceny i uzywalem tego skrypu do tworzenia polaczen miedzy geometria a wezlem choice.

kluczujesz tylko parametr selector i powinno byc ok. Tylko scena duza.

 

string $selection[] = `ls -sl`;
string $choiceNode = `createNode choice`;

int $i;
for($i=0; $i{
   string $shapes[] = `listRelatives -s $selection[$i]`;
   print $shapes;
   connectAttr -f ($shapes[0] + ".outMesh") ($choiceNode + ".input[" + $i + "]");   
}

string $newMesh = `createNode mesh`;
connectAttr ($choiceNode + ".output") ($newMesh + ".inMesh");

Odnośnik do komentarza
Udostępnij na innych stronach

Importowalem wszystkie objty do sceny i uzywalem tego skrypu do tworzenia polaczen miedzy geometria a wezlem choice.

 

jeszcze lepiej imho byłoby użyć node'a blendshape. Co prawda jest trochę zabawy z ustawianiem driven keys na poszczególnych "klatkach" ale można sobie retime'ować animację tak zapisaną.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki za pomoc. ;) Znalazłem jednak dużo szybsze i łatwiejsze rozwiązanie. Do exportu w c4d użyłem darmowego pluginu do RealFlow i zapisałem sekwencję jako pliki .bin. A potem tym samym pluginem tylko że do Majki zaimportowałem animację.

 

Pozdro

Odnośnik do komentarza
Udostępnij na innych stronach

jeszcze lepiej imho byłoby użyć node'a blendshape. Co prawda jest trochę zabawy z ustawianiem driven keys na poszczególnych "klatkach" ale można sobie retime'ować animację tak zapisaną.

 

ale to i tak bedzie lerp ;)

 

ale gratulujemy rozwiazania problemu :)

Odnośnik do komentarza
Udostępnij na innych stronach

Spoko - powiedz mi jeśli się mylę ale:

 

zakładając że translacja punktów odbywa się w czasie T pomiędzy wartościami 0 a 1 (interpolujemy pomiędzy dwoma klatkami), to pozycje punktu możemy wyznaczyć w uproszczeniu jako funkcję f(T).

 

W klatkach kluczowych, zapisanych przy eksporcie mamy wartości f(0) = A, f(1) = B

Możemy również na podstawie interpolacji liniowej wyznaczyć położenie punktów f(-0,25) = A', oraz f(1,25) = B'

Po odbiciu A' względem A oraz B' względem B otrzymujemy już nic innego jak odcinek krzywej beziera i na podstawie tego możemy już sobie wyznaczać położenie punktu w zakresie U od 0 do 1.

 

Oczywiście jest to nie do osiągnięcia w Maya bez pisania pluginu ale już w takim houdinim nie byłoby chyba aż tak kosmicznie skomplikowane :)

Odnośnik do komentarza
Udostępnij na innych stronach

... Po odbiciu A' względem A oraz B' względem B otrzymujemy już nic innego jak odcinek krzywej beziera i na podstawie tego możemy już sobie wyznaczać położenie punktu w zakresie U od 0 do 1 ...

 

Ogolnie to bedzie linia prosta ale w sumie krzywa Beziera też może być prosta wiec luzik. Jestem ZA tym rozwiazaniem tak czy inaczej pod warunkiem że mesh nie zmienia ilości faców a już na pewno nie zmienia vertex id, bo wtedy blend shapy się rozłożą :)

  • Like 1
Odnośnik do komentarza
Udostępnij na innych stronach

W klatkach kluczowych, zapisanych przy eksporcie mamy wartości f(0) = A, f(1) = B

Możemy również na podstawie interpolacji liniowej wyznaczyć położenie punktów f(-0,25) = A', oraz f(1,25) = B'

 

Nie zgadzam sie z toba, mowisz o ekstrapolacji, interpolacje mozesz wykonac miedzy f(0) = A i f(1) = B. Jezeli chcesz interpolowac w przedziale f(-0.25) to wartosci funkcji beda inne( np f(-1) = C, f(0) = A ), albo nie rozumiem Twoich intencji.

Dla mnie na cache animacji mozna spojrzec jako twierdzenie Lagrange, wtedy przemieszczasz punkty wzdluz wektora, ktory jest pierwsza pochodna po polozeniu.

 

Przykro mi ale z benym tez sie nie zgadzam :) Wydaje mi sie ze blend shape robi liniowa interpolacje miedzy punktami, jezeli napsizemy to tak:

 

point lerp(point sartP, point endP, float value)

to dowolna funkcje z przedzialu 0-1 mozemy wrzucic do value, ale dalej to bedzie liniowa interpolacja miedzy punkatmi. Opisujemy tylko jej 'predkosc' zmiany.

Jezeli chcielbysmy stworzyc interpolacje bazowana na wielomianach bernstaina to musimy wziac n+1 punktow, czyli n+1 ramek. Dochodza do tego jeszcze warunki na brzegach np gdy T=0.

 

albo jestem w smiertelnym bledzie :)

 

Pisalem kiedys cos takiego do maya, to byl binarny obj:

Uzywalem tego do przerzucania geometrii pomiedzy houdinim i maya. Dzialalo calkiem sprawnie musze to odgrzebac w wolnej chwili i wypuscic na swiat jako free.

 

P.S. Coraz gorzej pisze po polsku :( nie jestem z tego szczesliwy i bardzo przepraszam za bledy. Na zakladzie nie mam polskiej klawiatury. Tlumaczy sie tylko winny, wiec jestem winny wszystkim niedopatrzeniom ktore tutaj popelnilem.

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

chyba cos sie jednak mijamy w toku rozumowania :) bo:

a) nie chodzilo mi o interpolacje wielomianowa Lagranga lecz o zwykle twierdzenie pochodnych (v=dy/dx)

 

b) tak, topologia musi byc identyczna, aczkolwiek mozna zrobic blenshape na polu wektorowym, a nastepnie adwekcje, wtedy topologia nie musi sie zgadac.

 

c) to nie zadanko domowe, nie przyklad wrapowania, tylko praktyczny przyklad wspoldzielenia geometrii miedzy softami, ktore ma zastosowanie w kazym wiekszym studiu. Z Maya Cache nic nie zrobisz. Tfu!

 

d) dla mnie, taka extrapolacja nie ma sensu.

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

Oj, Piotrek, Piotrek, kiedy Ty dorośniesz :). Nie będę publicznie komentował takich postów, choć strasznie mnie korci...

Oczywiście jest to nie do osiągnięcia w Maya bez pisania pluginu ale już w takim houdinim nie byłoby chyba aż tak kosmicznie skomplikowane

W Houdinim bierze się TimeBlendSOP (także interpoluje liniowo) i podmienia się wewnątrz blendshapeSOPa na Vopa, w którym splineVOP interpoluje atrybuty (P,N etc) po jednej z dostępnych krzywych... jakieś 3 minuty roboty. Takie rozwiązanie mniej więcej działa, chociaż nie jest do ideał, raz że generalnie spliny nie są najlepszym interpolatorem funkcji, dwa, że jak zauważył beny, istnieje problem zmiennej topologii, z którym zależnie od przypadku można sobie lepiej lub gorzej radzić*.

 

Ideałem byłby oczywiście super-sampling, czyli po prostu klatki pośrednie w ilości wystarczającej do minimalizowania błędu interpolacji liniowej.

 

Przypadkiem się składa, że, wobec niekończących się problemów z poprawnym przenoszeniem geometrii między programami, siedziałem ostatnio nad podobnym zagadnieniem. Chciałem pozwolić Mantrze interpolować geometrię według uznania. Czyli mieć prawdziwy multi-sampling motion blur na geometrii skopanej przez import z innych programów (bo multi-sampling na własnej geometrii jest oczywiście dostępny).

 

pozdro,

skk.

 

* - objty z Mai i Xsi mają bardzo często zmienne indeksy punktów/vertexów, więc Houdini musiał się zaopatrzyć w MatchTopologySOP, który zakładając, że topologie są identyczne, tylko źle zindeksowane, znajduje właściwą kolejność pt/vtx. Dla chmury punktów (cząsteczki), trzeba je indeksować po ID, a nie kolejności, co bywa powolne albo wręcz niemożliwe). No i w końcu zdarza się indeksować punktu po ich uv..., ale to okropnie niedokładne rozwiązanie :)

Odnośnik do komentarza
Udostępnij na innych stronach

mam nadzieję, że to technika, a nie moderator... cenzura i wykluczenie. Czytałem właśnie, że ojciec Rydzyk pojechał do Brukseli uskarżać się na dyskryminację w Polsce. Nie wierzyłem, a tu proszę....

Odnośnik do komentarza
Udostępnij na innych stronach

Ja słyszałem, że kilka dni temu na kilka godzin zawiesiły się wszystkie serwery facebooka i 5 milionów użytkowników w panice wybiegło na ulice ze swoimi zdjęciami pytając przechodniów czy je lubią.

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