Pawel Lipka Napisano 23 Luty 2004 Napisano 23 Luty 2004 Czesc. Mam nastepujace pytanko(zaznaczam,ze jestem nowy w maxscripcie). Jak zrobic nastepujace rzeczy. Chcialbym do pojedynczych vertexow lub face\'ow obiektu(np. sfery) przypiac inne obiekty,ale na stale..nie tylko poprzez odczytanie i przeniesienie pozycji vertexow na rozmieszczane po sferze obiekty. Chcialbym tez aby byly ukierunkowane zgodnie z kierunkiem normalnych. I tutaj mam najwiekszy problem. Jak polaczyc wartosci zwracane przez funkcje getnormal z jakas rotacja or smth? Caly efekt ma dzialac jak cos w rodzaju scattera...albo prostego patentu na futro. Zanim przejde do bardziej zlozonych jak np. sterowanie ustawieniem rozmieszczanych obiektow za pomoca chociazby wolumetrycznej selekcji czy pol oddzialywan chcialbym rozwiazac wspomniany wyzej problem Pozdrawiam i dzieki za odpowiedz, Pawel
lechoo Napisano 26 Luty 2004 Napisano 26 Luty 2004 Pewnie mozna to zrobic na mase sposobow ale ja wymyslilem cos takiego: najpierw nalezy ustawic w kazdej ramce obiekt na pozycji vertexa, czyli mamy juz pozycje. Teraz orientacja. Bierzemy normalna vertexa, przeksztalcamy ja na macierz transformacji (chyba tak sie to nazywa :)). Mowiac po ludzku musimy z uzyskac jakis lokalny uklad wspolrzednych zwiazany z normalna. Teraz w tym ukladzie na osi Z ustawiamy dummiego. Dzieki temu ze uklad jest zwiazany z normalna, dummy bedzie zawsze znajdowal sie dokladnie na normalnej. Teraz wystarczy przypisac zlinkowanemu do vertexa obiektowi kontroler LookAt w ktorym celem bedzie dummy. Dzieki temu obiekt bedzie \"kiwal\" sie razem z normalna. Pod tym linkiem wrzucilem przykladowa scene: wave.zip
lechoo Napisano 26 Luty 2004 Napisano 26 Luty 2004 I jeszcze kod. surf = $Plane01 attach_obj = $Cylinder01 attach_vert = 25 lookatdummy = $Dummy01 for i=animationrange.start to animationrange.end do ( animate on ( at time i attach_obj.pos = (getvert surf attach_vert) at time i my_matrix = matrixFromNormal (getNormal surf attach_vert) my_matrix.row4 = (at time i getvert surf attach_vert) at time i in coordsys my_matrix lookatdummy.pos = [0,0,20] ) ) Wiem, napisane okropnie ale chcialem tylko sprawdzic czy ta metoda bedzie dzialac. LookAt przypisalem juz recznie z maxa ale skryptem tez oczywiscie sie da zrobic.
Rekomendowane odpowiedzi
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ę