człowiek Napisano 30 Grudzień 2009 Share Napisano 30 Grudzień 2009 Dlaczego jak daję "Copy Rotation" to brany jest pod uwagę znak skali obiektu, z którego kopiuję? W załączniku przykład. Na początku obiekt, z którego brane są dane ma skalę w jednej osi -3. Drugi obiekt to jego kopia z takimi samymi parametrami. Drugi obiekt ma "Copy Rotation" z obiektu pierwszego. Już na początku widać, że jest on odwrócony, choć w 1 klatce oba powinny być tak samo zorientowane. Dalej w animacji jest specjalnie zrobione przejście skali obiektu pierwszego z ujemnej na dodatnią. I w momencie przejścia zmienia się także drugi obiekt. Co jedno z drugim ma wspólnego i jak zrobić, żeby pozbyć się tego problemu? Czyli jak zrobić, żeby oba obiekty wyglądały i obracały się tak samo przy skali ujemnej jednego i drugiego. PS. Wolałbym żeby skala ujemna pozostała, bo w zasadzie dlaczego nie może być ujemna, jak to przecież normalna skala. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
człowiek Napisano 3 Styczeń 2010 Autor Share Napisano 3 Styczeń 2010 O, widzę, że tym razem pytanie jest albo za trudne, albo za głupie, albo nie wiem. Jeśli za głupie to może mi ktoś powiedzieć dlaczego? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
dac77 Napisano 3 Styczeń 2010 Share Napisano 3 Styczeń 2010 Na ambicję wyjeżdżasz żeby ktoś się pofatygował. Pytanie jest trudne bo wszystko działa jak powinno a nie piszesz jak chciałbyś żeby działało. Skalowanie jest w koordynatach obiektu. Dla geometrii obiektu transformacje w Blenderze są prawdopodobnie liczone tak jak w większości aplikacji 3D czyli lrs, czyli przesunięcie, rotacja, skala. Masz więc obiekt dla którego najpierw jest obliczona pozycja, potem rotacja zmodyfukowana constrainem a potem skalowanie w lokalnych koordynatach obiektu czyli tak jak powinno być jak chcesz żeby było inaczej to użyj innego constraina który pozwala przemapować transformacje. Nikt wcześniej nie odpowiedział bo pytanie jest błache i nie stanowi generalnie większego problemu w życiu fanatyków 3D. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
człowiek Napisano 3 Styczeń 2010 Autor Share Napisano 3 Styczeń 2010 Nie wiem skąd zarzut, że to wjazd na ambicję. W końcu nikt nikogo nie zmusza do odpowiedzi. Równie dobrze nie zadawajmy w ogóle pytań, bo po co, jak prawie zawsze zadający pytanie chciałby poznać odpowiedź. Druga sprawa to napisałem przecież jaki efekt chciałem uzyskać. Mam dwa obiekty identyczne. Chcę aby jeden i drugi obracał się dokładnie tak samo niezależnie od skali i pozycji, więc zrobiłem copy rotation. Okazało się jednak, że copy rotation jakimś cudem wykorzystuje skalę z obiektu, z którego bierze obrót. Nie wiem więc czy jest to takie proste i oczywiste, bo niby jakim cudem to co nie jest kopiowane ma wpływ na obiekt? Zwrócę ci jeszcze uwagę, że ten obiekt, który ma copy rotation nie jest tylko odwrócony np. o 180st. On jest odbiciem lustrzanym. Pomóż więc i powiedz mi jak to zrobić, żeby oba obiekty odwracały się jednocześnie przy ujemnej i dodatniej skali, bo dla mnie kopiowanie obrotu to kopiowanie obrotu, a nie skali i obrotu. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
dac77 Napisano 3 Styczeń 2010 Share Napisano 3 Styczeń 2010 No jak przeskalujesz na drugą stronę to oś się zmienia więc obrót jest już inaczej liczony. W takich sytuacjach stosuje się parenting do pustego obiektu i animuje się osobno skalowanie i osobno rotację, a constraina się robi do pustego. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
sanki Napisano 3 Styczeń 2010 Share Napisano 3 Styczeń 2010 Problem jest ciężki, podejrzewam że ma to związek ze środkiem transformacji obiektu i tym, że blender w constrainach takich jak copy scale i transformation, a także parentowaniu, nie pozwala na wartości scale które są ujemne (dlaczego? tego nie wiem). Nie wiem jak go rozwiązać, jeżeli nie masz potrzeby przeskalowania obiektu z - na + to przed nadaniem constrainta wciśnij ctrl + A i wybierz scale to obdata na obu kostkach edit: dac77 pewnie nie przetestowałeś, ale jak już napisałem blender nie daje możliwości kopiowania ujemnych skali czy to przez parenting czy copy constrainty Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
szczuro Napisano 3 Styczeń 2010 Share Napisano 3 Styczeń 2010 jak na moje oko sposób podany przez daca działa Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
dac77 Napisano 3 Styczeń 2010 Share Napisano 3 Styczeń 2010 No tym razem szczuro mnie popiera i ma rację. Metoda z rozdzielaniem transformacji jest znana od dawna w 3D i zawsze działa. Testowałem to wielokrotnie w przypaku głównie gimbal locka również w Blenderze. Z tego co rozumiem człowiek potrzebuje tak przeskalować z - na + gdyż inaczej dlaczego by tak robił? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
sanki Napisano 3 Styczeń 2010 Share Napisano 3 Styczeń 2010 tia, dobra, faktycznie, ja gupi jestem i skalowałem parenta a nie dziecko, co dawało zły efekt, sorki :-) Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
człowiek Napisano 3 Styczeń 2010 Autor Share Napisano 3 Styczeń 2010 No, czyli jedyny sposób to dodatkowy obiekt. Tak samo zrobiłem, ale liczyłem, że coś źle robiłem i dlatego mi nie działało. Szkoda tylko, że ktoś jakoś dziwnie zorganizował sprawę skali. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Gość Gosc Napisano 3 Styczeń 2010 Share Napisano 3 Styczeń 2010 odpowiedz jest prosta, przeksztalcenia sa przechowywane w postaci macierzowej jest to macierz 4x4, w ktorej czesc odpowiadajaca obrotom zajmuje niestety to samo miejsce co skala, skala lezy na przekatnej a odpowiednie skladowe x,y,z obrotow nakladaja sie czesciowo na przekatna macierzy tutaj mozesz sobie poczytac jak to jest skladowane: http://www.fastgraph.com/makegames/3drotation/ rozlozenie przeksztalcenia na kilka oddzielnych macierzy pozwala wyciagnac same obroty tak zeby uniezaleznic je od znakow skali na przekatnej macierzy bazowej ... i stad twoje klopoty Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
dac77 Napisano 3 Styczeń 2010 Share Napisano 3 Styczeń 2010 Dzięki tjviking, teraz już mam kompleksy. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
człowiek Napisano 4 Styczeń 2010 Autor Share Napisano 4 Styczeń 2010 Tak myślałem, że problemem mogą być te macierze transformacji. Tylko nie wiedziałem, że copy rotation kopiuje tę macierz, a nie same dane o obrocie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
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ę