Ponciusz Napisano 17 Kwiecień 2009 Napisano 17 Kwiecień 2009 Witam! mam taki oto problem: powiedzmy ze mam jakiś obiekt i potrzebuję go zrenderowac dosłownie od każdego kąta tz. najpierw renderuje od boku, kamera jest ustawiona na osi X=0 Y=100 Z=0 skierowana idealnie w centrum, wiec widzę go z boku, obracam wzgledem osi Z o 360 stopni i zmieniam wartość osi Y z zera do jedynki i ponownie obracam o 360 stopni... i obracam tak ten obiekt do póki nie osiągne Y=360 problem jest taki że podczas obroty os Y najpierw leci do 180 a potem od -180 do 0. czy ktos ma może jakis pomysł jak mogę zrealizować mój cel?
rly Napisano 17 Kwiecień 2009 Napisano 17 Kwiecień 2009 Nie za bardzo rozumiem co chcesz zrobic.Obiekt ma sie obracac o 360 stopni po kazdym przejsciu kamery o wartosc 1 stopnia?
La R Napisano 17 Kwiecień 2009 Napisano 17 Kwiecień 2009 3ds max tak? Sprawdź czy kontrolerem obrotu jest na przykład Eulear a nie Linear.
Mr Pank Napisano 17 Kwiecień 2009 Napisano 17 Kwiecień 2009 (edytowane) aby idealnie obracać obiekt o jeden stopień musisz sie posłużyć toolem "Angle Snap Toggle" http://z.about.com/d/animation/1/0/3/2/1.4.4.jpg to ten obok % po lewej musi być włączony oraz aby obracać obiekt o jeden stopień musisz zmienić Angle: na 1,0 (aby wejść w ustawienia klikamy prawym guzikiem myszy na guzik "Angle Snap Toggle") http://www.accodeum.com/images/tutorials/max_crashcourse/cc_13.gif zamiast kamery obracaj obiekt Edit oraz musisz ustawić dla każdego klucza w animacji wejście oraz wyście Liniowe (Linear) najlepiej w Curve Editor Edit 2 możesz sobie ustawić Angle na 180 stopni albo 360 mffw Edytowane 17 Kwiecień 2009 przez Mr Pank
Ponciusz Napisano 17 Kwiecień 2009 Autor Napisano 17 Kwiecień 2009 dzięki chłopaki ale chodzi mi konkretnie o jakiś skrypt obracać co jeden stopień to żaden problem po prostu wpisuje sobie wartość w polach przy XYZ a jeszcze prościej obracam obiekt o 360 stopni na trzysta sześćdziesiątej klatce a na pierwszej pozostawiam na 0 tylko takim sposobem to ja będę musiał powtarzać ten krok 360 razy a to jest strata czau musi byc jakies inne szybsze rozwiązanie.
Ponciusz Napisano 17 Kwiecień 2009 Autor Napisano 17 Kwiecień 2009 Udało mi się napisać odpowiedni skrypt zamieszczam go poniżej, aby działał musimy mieć zaznaczony nasz obiekt ilość klatek ustawiamy na 360x360 czyli 129600 potem wystarczy uruchomić skrypt jeśli ktoś potrafi go zoptymalizować to śmiało można próbować. zauważyłem iż w skrypcie występuje błąd otóż wartość Y nie jest nigdzie zmieniana a po wykonaniu skryptu widac nieznaczne skoki. Tak samo X oraz Z są wyświetlane 3 miejsca po przecinku a powinny być to liczby całkowite. x=360 y=0 z=359 $.rotation.controller.X_Rotation.controller = linear_float () $.rotation.controller.Y_Rotation.controller = linear_float () $.rotation.controller.Z_Rotation.controller = linear_float () set animate on sliderTime = 0f rotate $ (angleaxis 1 [0,0,1]) sliderTime = 359f rotate $ (angleaxis 359 [0,0,1]) for i = 1 to 360 do ( sliderTime = (y += x) rotate $ (angleaxis 1 [0,0,1]) rotate $ (angleaxis 1 [1,0,0]) sliderTime = (z += x) rotate $ (angleaxis 359 [0,0,1]) )
Ponciusz Napisano 18 Kwiecień 2009 Autor Napisano 18 Kwiecień 2009 Odchudzona wersja skryptu działa trochę dokładniej: x=0 $.rotation.controller.X_Rotation.controller = linear_float () $.rotation.controller.Y_Rotation.controller = linear_float () $.rotation.controller.Z_Rotation.controller = linear_float () set animate on for i = 1 to 360 do ( sliderTime = (x += 360) rotate $ (angleaxis 360 [0,0,1]) sliderTime += 1 rotate $ (angleaxis 1 [1,0,0]) )
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ę