Skocz do zawartości

Pytanie o rozmieszczanie obiektow


Pawel Lipka

Rekomendowane odpowiedzi

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

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 2
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

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

Odnośnik do komentarza
Udostępnij na innych stronach

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.

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