Napisano 19 Kwiecie艅 200520 l Witam !! Mam ma艂y problem. Kompletnie nie znam jesyka maxa a pisze zewnetrzny program do camera tracking. I chcia艂bym zeby m贸j algorytm po obliczeniu po艂ozenia kamery w moim filmie stworzy艂 plik *.ms kt贸ry m贸g艂bym w艂adowac do maxa i zeby tam kamera porusza艂a sie tak jak ta na filmie. Mam przyk艂adowy plik kt贸ry steruje kamera ale kompletnie nie wiem co za co odpowiada. Podejrzewam ze nie jest to za bardzo skomplikowane i moze ktos kto siedzi w tym od dawna m贸g艂by mi wyjasnic. Chcia艂bym wiedziec jak m贸j alborytm ma stworzyc taki plik. ponizej zamieszczam listing przyk艂adowego ms. By艂bym bardzow wdzieczny za wyjasnienie mi co do czego s艂uzy. *********************LISTING************************* units.DisplayType = #metric units.MetricType = #millimeters -- the camera and its keyframes animationRange = interval 0f 3f in coordsys world animate on ( c = freecamera name:"voodoo_cam" c.nearclip = 0.0 c.clipManually = true at time 0f c.rotation = (matrix3 [1.000000,0.000000,0.000000] [0.000000,-1.000000,0.000000] [0.000000,0.000000,-1.000000] [0,0,0]).rotationpart at time 0f c.position = [0.000000,0.000000,0.000000] at time 0f c.fov = 34.093657 at time 1f c.rotation = (matrix3 [0.999996,-0.002096,-0.001663] [-0.002094,-0.999997,0.001175] [-0.001665,-0.001172,-0.999998] [0,0,0]).rotationpart at time 1f c.position = [0.000000,0.000000,0.000000] at time 1f c.fov = 34.032689 at time 2f c.rotation = (matrix3 [0.999988,-0.002983,-0.003930] [-0.002981,-0.999995,0.000356] [-0.003931,-0.000344,-0.999992] [0,0,0]).rotationpart at time 2f c.position = [0.000000,0.000000,0.000000] at time 2f c.fov = 34.036137 -- Z tego co sie zorientowa艂em to ponizej nie jest potrzebne do sterowania kamery ale by艂o w przyk艂adowym ms wiec tez zamieszczam --3D Feature Points point pos:[71.304707,23.147455,36.747323 ] name:"FP3D_0" size:1.0 constantscreensize:true point pos:[71.929389,23.230345,35.454841 ] name:"FP3D_1" size:1.0 constantscreensize:true point pos:[72.770381,23.496926,33.509668 ] name:"FP3D_2" size:1.0 constantscreensize:true point pos:[73.459831,23.755323,31.778444 ] name:"FP3D_3" size:1.0 constantscreensize:true at time 3f c.rotation = (matrix3 [0.999964,-0.002677,-0.008070] [-0.002675,-0.999996,0.000214] [-0.008071,-0.000192,-0.999967] [0,0,0]).rotationpart at time 3f c.position = [0.000000,0.000000,0.000000] at time 3f c.fov = 34.025344 ************************KONIEC*************************** aha i jeszcze takie pytanie. Moze ktos kiedys zg艂臋bia艂 temat camera tracking? Interesowa艂y by mnie opisy jakichs podstawowych system贸w. Troche znalaz艂em ale nie dam rady przebrnac przez ten techniczny angielski. Po wstepie przestaje rozumiec co autor mia艂 namysli :/ Mam nadzieje ze jasno sprecyzowa艂en o co mi chodzi i ze znajdzie sie ktos kto bedize potrafi艂 mi pom贸c z g贸ry dziekuje
Napisano 19 Kwiecie艅 200520 l ehehehe cie偶 si臋 偶e nie musisz tego przestawia膰 na mela ;) *********************LISTING********************** *** units.DisplayType = #metric units.MetricType = #millimeters USTAWIA JEDNOSKI MIAR animationRange = interval 0f 3f OKRE艢LA ILO艢膯 KLATEK W ANIMACJI on coordsys world animate on OKRE艢LA PIVOTA OBIEKTU (LOKAL/SWIAT) I W艁ACZA ANIMACJE c = freecamera name:"voodoo_cam" TWORZY KAMER臉 FREE O NAZWIE VOODO I NADAJE JEJ ZMIENN膭 C c.nearclip = 0.0 c.clipManually = true To nie wiem.... ale jakie艣 ustawienia samej kamery Teraz zmiany otycz膮ce animacji Klatka 0 at time 0f c.rotation = (matrix3 [1.000000,0.000000,0.000000] [0.000000,-1.000000,0.000000] [0.000000,0.000000,-1.000000] [0,0,0]).rotationpart at time 0f c.position = [0.000000,0.000000,0.000000] at time 0f c.fov = 34.093657 Najpierw rotacja (nie wiem czemu jest tak zapisana), Pozycja w 艣wiecie i ogniskowa I tak masz do 3 klatki reszta kodu to tworzenie lokator贸w, czy te偶 point贸w.... ale zauwa偶 偶e na samum ko艅cu masz te偶 ustawienia kamery dla klatki 3... A teraz musz臋 Ci co艣 wyjawi膰... tak na prawde to nie znam MaxSkryptu. ale jak ja animator sie w tym po艂apa艂em... to jak nie m贸g艂 ci臋 po艂apa膰 coder od C++ ?? :) Pozdrawiam PS... zaraz mnie lechoo pojedzie ;)
Napisano 19 Kwiecie艅 200520 l Autor no ja tak globannie to wiem o co chodzi to chyba srednio rozwiniety jednokom贸rkowiec sie po艂apie ze sa klatki i rotacje i pozycje i kat patrzenia kamery dla kazdej ale at time 0f c.rotation = (matrix3 [1.000000,0.000000,0.000000] [0.000000,-1.000000,0.000000] [0.000000,0.000000,-1.000000] [0,0,0]).rotationpart o jaki kat sie obr贸ci艂a kamera?? bo chyba wg kazdej osi bo 1 wystepuje na kolejnych pozycjach. a at time 0f c.position = [0.000000,0.000000,0.000000] znaczy ze kamera sie nie przesune艂a ?? to to nie bedzie prawda bo kamera sie przesuwa艂a napewno w tej scenie...:/
Napisano 19 Kwiecie艅 200520 l ok.. jesli chodzi o rotacje to cos sprawdze zaraz ;) Jesli o przesuniecie.... to w tym uk艂adzie masz napisane, 偶e kamera w klatce 0 ma wsp贸艂rz臋dne 艣wiata 0,0,0 Z tego wynika ze w tym te艣cie kamera stoi... tylko ulega rotacji i zmiany ogniskowej. dlatego mo偶esz miec wra偶enie, 偶e kamera si臋 poruszy艂a.
Napisano 19 Kwiecie艅 200520 l Autor moze i masz racje z tym po艂ozeniem. tylko ze ja ten film kreci艂em dla kt贸rego by艂 generowany ten maxscript i jestem pewien ze kamera sie rusza艂a :) no ale moze w pierwszych klatkach tak wysz艂o bo potem sie zmienia... a moze ty pisa艂es podobny algorytm :) kt贸ry cos takiego mia艂 tworzyc :) to wymienimy sie uwagami... co do tych obrot贸w ro wydajem ki sie ze kazda wsp w matrixie to poszczeg贸lna os ale ta cyfra to raczej nie k膮t obrotu... nie dojde :/ pozdrawuiam i dziekuje za poswiecony mi czas
Napisano 19 Kwiecie艅 200520 l Tech.... olej to.... przeanalizuj sobie ten skrypt ;) On robi tylko rotacje :) frameRate = 25 animationRange = interval 0f 20f animate on ( c = freecamera name:"testowa" at time 0f c.rotation = quat 0 0 0 1 at time 0f c.position = [-0.310663,0.537623,0.273384] at time 0f c.fov = 45.0606 at time 1f c.rotation = quat -2.93106e-006 -0.0280955 -1.49333e-005 0.999605 at time 1f c.position = [-0.310663,0.537623,0.273384] at time 1f c.fov = 45.0606 at time 2f c.rotation = quat -1.85072e-006 -0.0561472 -9.66074e-007 0.998422 at time 2f c.position = [-0.310663,0.537623,0.273384] at time 2f c.fov = 45.0606 at time 3f c.rotation = quat -1.90049e-005 -0.0841546 -4.17484e-005 0.996453 at time 3f c.position = [-0.310663,0.537623,0.273384] at time 3f c.fov = 45.0606 at time 4f c.rotation = quat -1.42568e-005 -0.112091 -3.0442e-005 0.993698 at time 4f c.position = [-0.310663,0.537623,0.273384] at time 4f c.fov = 45.0606 at time 5f c.rotation = quat -2.18862e-005 -0.13996 -2.14777e-005 0.990157 at time 5f c.position = [-0.310663,0.537623,0.273384] at time 5f c.fov = 45.0606 at time 6f c.rotation = quat -2.45988e-005 -0.167712 5.15382e-006 0.985836 at time 6f c.position = [-0.310663,0.537623,0.273384] at time 6f c.fov = 45.0606 at time 7f c.rotation = quat -2.99299e-005 -0.195341 -2.64401e-005 0.980735 at time 7f c.position = [-0.310663,0.537623,0.273384] at time 7f c.fov = 45.0606 at time 8f c.rotation = quat -7.20802e-006 -0.222817 -2.81407e-005 0.97486 at time 8f c.position = [-0.310663,0.537623,0.273384] at time 8f c.fov = 45.0606 at time 9f c.rotation = quat 7.87242e-006 -0.250111 -5.64358e-005 0.968217 at time 9f c.position = [-0.310663,0.537623,0.273384] at time 9f c.fov = 45.0606 ) Tutaj rotacja wygl膮da zno艣niej ;) NIe pisa艂em programu do 艣ledzenia kamery... bo to mnie przerasta :) Co nie zmienai faktu 偶e zdarza艂o mi sie z takich program贸w korzysta膰 :) Byte
Napisano 19 Kwiecie艅 200520 l Jeszce cos mi przysz艂o do g艂owy... at time 0f c.rotation = (angleaxis 17.667 [0,0,1]) at time 0f c.position = [-0.310663,0.537623,0.273384] at time 0f c.fov = 45.0606 at time 1f c.rotation = (angleaxis -11.4593 [0,0,1]) at time 1f c.position = [-0.310663,0.537623,0.273384] at time 1f c.fov = 45.0606 at time 2f c.rotation = (angleaxis 6 [1,0,0]) at time 2f c.position = [-0.310663,0.537623,0.273384] at time 2f c.fov = 45.0606 at time 3f c.rotation = (angleaxis -3.45404 [0,0,1]) at time 3f c.position = [-0.310663,0.537623,0.273384] at time 3f c.fov = 45.0606 at time 4f c.rotation = (angleaxis 3 [0,1,0]) at time 4f c.position = [-0.310663,0.537623,0.273384] at time 4f c.fov = 45.0606 Tu masz kolejny spos贸b zapisu obrotu ;) ten jest w stopniach ;) "angleaxis" to wartos膰 obrotu, [0,1,0] definiuje o艣.... ale sam juzsobie ustalaj , kt贸re 0 za kt贸ra os odpowiada ;)
Napisano 19 Kwiecie艅 200520 l Jesli chcesz wpisywac rotacje przez podanie kata obrotu wokol 3 osi to musisz wykorzystac eulerangles, przykladowo: at time 1f c.rotation = eulerangles 0 0 180 spowoduje ze obiekt bedzie obrocony o 180 stopni wzgledem osi Z. Taki zapis jest chyba najbardziej "dla ludzi". Angleaxis i kwaterniony okreslaja rotacje przez podanie wektora wokol ktorego obraca sie obiekt i kata o jaki nastepuje obrot.
Napisano 19 Kwiecie艅 200520 l Autor no dziekuje !! :) juz jasniej wsystko wyglada :) ..... jeszcze tylko od producent贸w wyciagnac jakies informacje na temat system贸w camera tracking :) : SynaPix's SynaMatch Realviz Diabolina Productions 2d3 Kaydara FilmBox Quantel Editbox IS-900 SCT i jestem w domu :)
Napisano 20 Kwiecie艅 200520 l Cytat at time 0f c.position = [0.000000,0.000000,0.000000] znaczy ze kamera sie nie przesune艂a ?? to to nie bedzie prawda bo kamera sie przesuwa艂a napewno w tej scenie...:/ Jakims mistrzem nie jestem ale strzelam ze w pierwszej klatce kamera stala po prostu na 0,0,0 a w drugiej juz sie znalazla np. 0,1,0 Chodzi zapewne o to ze standartowo postawiles kamere w 0,0,0 a koniec animacji np na 100,100,100 to w pierwsze klatce bedziesz miec 0,0,0 w ostaniej 100,100,100 i jesli animacja ma 100 klatek to... [sam rozumiesz] Tam jest podana pozycja kamery a nie jej np. predkosc, wiec w sumie w kazdej klatce [x,x,x] bedzie ona wygladac jakby stala w miejscu Mam nadzieje ze pomoglo bo wygladalo na nierozwiazane
Je艣li chcesz doda膰 odpowied藕, zaloguj si臋 lub zarejestruj nowe konto