Pierzak Napisano 27 Maj 2009 Napisano 27 Maj 2009 Mam maly problem w 3ds max 2009. Mam animowana kamere ktora chcialem przeniesc w inne miejsce. W tym celu narzedziem "Select and Link" polaczylem kamere z obiektem Dummy i przesunalem obiekt w inne miejsce. Teraz chce pozbuc sie "linku" i miec niezalezna kamere ale zeby prouszala sie bez zmian. Jak uzyje narzedzia "Unlink Selection" to zmieniaja mi sie trajektorie. Macie jakis pomysl?? Probowalem zapisac animacje (File>Save Animation) a poziej ja zaladowac na nowa kamere ale okazalo sie ze same bledy w ruchu.
pchela1313 Napisano 27 Maj 2009 Napisano 27 Maj 2009 A możesz powiedzieć czy masz długą tą animację? Chodzi mi o liczbę kluczy. Jeśli dobrze rozumiem to na początku kamera nie była zlinkowana, tylko dopiero po pewnym czasie, chcąc ją przesunąć nie zmieniając animacji ją zlinkowałeś? Mam pewien pomysł, tylko potrzebowałbym szerszy obraz twojej sceny.
Pierzak Napisano 27 Maj 2009 Autor Napisano 27 Maj 2009 Najpierw mialem animacje bez zlinkowania. Pozniej musialem ja przesunac i obrucic powniewaz obiekt dookola ktorego kamera leciala zostal przeniesiony i powiekszony. Calosc ma okolo 50 kluczy. Znasz moze inny sposob na przeniesienie animaji. inny niz zlinkowanie kamery do obiektu dummy i przesuniecie.
pchela1313 Napisano 27 Maj 2009 Napisano 27 Maj 2009 Może zanim podam gotowe rozwiązanie to trochę wyjaśnienia co i jak. Pomimo tego, że zlinkowałeś kamerę do innego obiektu i animowałeś je 2, to transformacje globalne transformacje kamery są takie same, niezależnie czy ona jest zlinkowana czy nie. Mówiąc inaczej, pozycje kamery w odniesieniu do punktu 0,0,0 nie zmienia linkowanie. Dobra teraz to na co Czekasz:) Zrobiłem Ci narzędzie, które robi dokładnie to co chciałeś. kod który tu podam wklejasz to maxscript edytora (znajdziesz go w: MAXScript>>MAXScript Editor). Następnie wciskasz ctrl+e (lub Tools>>Evaluate all) Pokazuje się okienko. Sądzę, że nie trzeba go wyjaśniać, ale dla pewności: - klikasz na "Pick Dumny" i wybierasz swojego dumny - klikasz na "Pick Camera" i wybierasz swoją kamerę - klikasz na "Begin" i zaczyna się magia kodu ;) Mam nadzieję, że pomogłem. Jakby coś nie działało to daj znać, u mnie wszystko jest ok. Oto kod: try(destroydialog klucze)catch() rollout klucze "klucze" ( local obiekty,cameraObiekt,dumnyObiekt group "Dumny" ( pickbutton pickDumnyB "Pick Dumny" edittext curDumny "Current Dumny:" readOnly:true ) group "Camera" ( pickbutton pickCameraB "Pick Camera" edittext curCamera "Current Camera:" readOnly:true ) group "Let's magin begin" ( button traslateKeys "Begin" edittext magicStatus "Status:" readOnly:true ) on pickDumnyB picked elem do ( curDumny.text=elem.name append obiekty elem dumnyObiekt=elem ) on pickCameraB picked elem do ( curCamera.text=elem.name append obiekty elem cameraObiekt=elem ) on traslateKeys pressed do ( if obiekty.count>0 then ( --ustalam zbior w ktorym zapisuje czasy w jakich znajduje sie klucz czasZKluczem=#() --ustalam zbior w ktorym bede przechowywal transformacje transformacje=#() for w in obiekty do ( --znajduje wszystkie klucze --dla pozycji if (numKeys w.pos.controller)>0 then ( for o=1 to (numKeys w.pos.controller) do ( if (findItem czasZKluczem (getKeyTime w.pos.controller o))==0 then ( append czasZKluczem (getKeyTime w.pos.controller o) ) ) )else() --dla obrotu if (numKeys w.rotation.controller)>0 then ( for o=1 to (numKeys w.rotation.controller) do ( if (findItem czasZKluczem (getKeyTime w.rotation.controller o))==0 then ( append czasZKluczem (getKeyTime w.rotation.controller o) ) ) )else() --dla skali if (numKeys w.scale.controller)>0 then ( for o=1 to (numKeys w.scale.controller) do ( if (findItem czasZKluczem (getKeyTime w.scale.controller o))==0 then ( append czasZKluczem (getKeyTime w.scale.controller o) ) ) )else() ) for p in czasZKluczem do ( append transformacje (at time p cameraObiekt.transform) ) deleteKeys cameraObiekt.pos.controller deleteKeys cameraObiekt.rotation.controller deleteKeys cameraObiekt.scale.controller deleteKeys dumnyObiekt.pos.controller deleteKeys dumnyObiekt.rotation.controller deleteKeys dumnyObiekt.scale.controller --unlink elementow cameraObiekt.parent=undefined --wstawiam klucze spowrotem ale do jednego obiektu animate on ( if czasZKluczem.count>0 then ( for x=1 to czasZKluczem.count do ( at time czasZKluczem[x] (cameraObiekt.transform=transformacje[x]) ) dumnyObiekt.transform=matrix3 1 )else() ) magicStatus.text="Done" print czasZKluczem )else() ) on klucze open do ( obiekty=#() ) ) createdialog klucze EDIT: Do zmieniania całej animacji gdy ta już jest gotowa, można wykorzystać warstwy (Ewentualnie tego skryptu;)). Musisz poczytać o "Animation layers". Pozdrawiam
Pierzak Napisano 28 Maj 2009 Autor Napisano 28 Maj 2009 Hej.. Dzieki za skrypt. Przetestuje go jutro w pracy. Jesli chodzi o warstwy to probowalem nimi to rozwiazac i nie wyszlo.. tzn kamera zostala przeniesiona ale rotacja sie nie udala. Kamera dostala obrotu (Roll) zamiast rotacji kamery i Target-u. Twoj sktrypt wyglada imponujaco... ale czy sie udalo to napisze jutro :) tzn dzis ale pozniej.
Mr Pank Napisano 28 Maj 2009 Napisano 28 Maj 2009 Mam maly problem w 3ds max 2009. Mam animowana kamere ktora chcialem przeniesc w inne miejsce. W tym celu narzedziem "Select and Link" polaczylem kamere z obiektem Dummy i przesunalem obiekt w inne miejsce. Teraz chce pozbuc sie "linku" i miec niezalezna kamere ale zeby prouszala sie bez zmian. Jak uzyje narzedzia "Unlink Selection" to zmieniaja mi sie trajektorie. Macie jakis pomysl?? Probowalem zapisac animacje (File>Save Animation) a poziej ja zaladowac na nowa kamere ale okazalo sie ze same bledy w ruchu. link constraint .
Pierzak Napisano 5 Czerwiec 2009 Autor Napisano 5 Czerwiec 2009 pchela1313. Niestety nie podzialalo... tzn moze logika skryptu jest dobra ale wyrzucilo mi bledem jak na obrzaku. Nie mialem czasu zeby zajzec w skrypt wiec zalatwilem wszystko recznie Mr Pank. I co ze LINK CONSTRAINT?? Mozesz pelnym zdaniem?
Reanimator Napisano 5 Czerwiec 2009 Napisano 5 Czerwiec 2009 Ja polecam po prostu Animation Layer. Na warstwie wstawiasz klucz zerowy, jak chcesz w inne miejsce to przesuwac w nie i wstawiasz klucz, a jak chcesz wrocic do starego miejsca, to znowu wstawiasz klucz zerowy.
Mr Pank Napisano 5 Czerwiec 2009 Napisano 5 Czerwiec 2009 Czy tak trudno panie Pietrzak wpisać hasło "LINK CONSTRAINT" do helpa maxa i przeczytać sobie tuturalka Animation > Constraints > Link Constraint 1. zaznaczasz kamerę (free) 2. wybierasz Animation > Constraints > Link Constraint i łączysz kamerę z np. dummy 3. zaznaczasz kamerę w Motion panel masz Link Params, zaznacz Key Nodes 4. wybierz auto key, przejdź do klatki 30, zaznacz Dummy i zmień jego pozycję 5. cofnij sie do klatki 15, zaznacz kamerę i w Link Params kliknij na Link to World 6. wyłącz auto key, jeśli np chcesz z powrotem zlinkować kamerę do Dummy albo jakiegoś innego obiektu na danym kluczu w Link Params wybierasz Add Link i zaznaczasz obiekt
Quadysz Napisano 5 Czerwiec 2009 Napisano 5 Czerwiec 2009 a nie mogles po prostu jej przeniesc (bez auto keya wlaczonego)? w jaki sposob ja animowales? ps. ofkors razem z targetem jezeli jest
Pierzak Napisano 8 Czerwiec 2009 Autor Napisano 8 Czerwiec 2009 a nie mogles po prostu jej przeniesc (bez auto keya wlaczonego)? w jaki sposob ja animowales? Niestety nie bo nie chodzi tylko o przesuniecie ale takrze rotacje.. a tu juz nie jest tak latwo.
Pierzak Napisano 8 Czerwiec 2009 Autor Napisano 8 Czerwiec 2009 Ja polecam po prostu Animation Layer. Na warstwie wstawiasz klucz zerowy, jak chcesz w inne miejsce to przesuwac w nie i wstawiasz klucz, a jak chcesz wrocic do starego miejsca, to znowu wstawiasz klucz zerowy. Tak ale dochodzi do tego rotacja. tzn i target i kamera musza byc obrocone i zachowac ten sam dystans.
boner2 Napisano 13 Czerwiec 2009 Napisano 13 Czerwiec 2009 mozesz to zrobic nastepujaco, kopiujesz klucze z rot, poz, do dumiego podpinasz kamere do tego co chcesz a nastepnie plotujesz kamere do naszego dumiego albo plotujesz damiego do kamery podpinasz kamere i spowrotem plotujesz z damiego na kamere. albo ustawiasz w twoim obiekcie locala zgodnie z gimbalem twojej kamery i linkujesz :) pzdr
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ę