Skocz do zawarto艣ci

Featured Replies

Napisano

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

  • Odpowiedzi 11
  • Wy艣wietle艅 2,6k
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

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
  • 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

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
  • 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

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

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

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
  • 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
  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

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj wi臋cej Polityka prywatno艣ci