Napisano 30 Grudzień 200915 l 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.
Napisano 3 Styczeń 201015 l Autor 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?
Napisano 3 Styczeń 201015 l 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.
Napisano 3 Styczeń 201015 l Autor 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.
Napisano 3 Styczeń 201015 l 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.
Napisano 3 Styczeń 201015 l 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
Napisano 3 Styczeń 201015 l 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ł?
Napisano 3 Styczeń 201015 l tia, dobra, faktycznie, ja gupi jestem i skalowałem parenta a nie dziecko, co dawało zły efekt, sorki :-)
Napisano 3 Styczeń 201015 l Autor 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.
Napisano 3 Styczeń 201015 l 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
Napisano 4 Styczeń 201015 l Autor 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.
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto