Skocz do zawartości

Featured Replies

Napisano

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?

  • Odpowiedzi 6
  • Wyświetleń 1,8k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Nie za bardzo rozumiem co chcesz zrobic.Obiekt ma sie obracac o 360 stopni po kazdym przejsciu kamery o wartosc 1 stopnia?

Napisano

3ds max tak? Sprawdź czy kontrolerem obrotu jest na przykład Eulear a nie Linear.

Napisano

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 przez Mr Pank

Napisano
  • Autor

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.

Napisano
  • Autor

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])
)

Napisano
  • Autor

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])
)

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności