Skocz do zawartości

zażądzanie kamerami


BooM-Bel

Rekomendowane odpowiedzi

Jakiś czas temu napisałem sobie skrypcik dzięki ktormu nie musiałem siedzieć całą noc i włączać render z kolejnej kamery. Teraz chciałem troszkę ten skrypcik zmniejszyć objętościowo i zamiast powtarzających się komend dla każdej kamery, zrobić jednąpętlę. Niestety nie mogę ustawić widoku kamery w ViewPorcie. W czasie wykonywania scryptu wywala mi błąd, że niemoże wybranego obiektu zamienić na . Niżej podaje fragmęt scryptu, przepuszczam że przyczyną problemów może być w sposobie selekcji, ale jak do tej pory nie znalazłem właściwego.

 

 

c = cameras.count

 

for i = 1 to c do

(

Viewport.setCamera (\"Camera0\" + char)

)

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 7
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

No i zadziałało. Dzięki Lechoo.

Poniżej przedstawiam mój scrypcik.

 

c = cameras.count

for i = 1 to c do

(

Viewport.setCamera cameras

cam = cameras

b = BitMap 160 120 filename:(\"D:\\\\RenderFiles\\\\Render_\" + cam.name as string + \".bmp\")

render 160 120 camera:cam to:b

save b

)

 

Dalej będe w nim dłubał. Chce dożucić mu ustawianie wielkości obrazka, format zapisu, ścieżke itp. Jakby ktoś miał jakieś pomysły co tu jeszcze wrzucić to chętnie posłucham.

 

Odnośnik do komentarza
Udostępnij na innych stronach

No i znowu utkęłem w martwym punkcie. W tablicy kameras umieszczane są też \"Camera.target\" i z tej pozycji jest render oczywiście nikomu do niczego nie potrzebny. Nie bardzo wiem jak pominąć render z tego widoku. Odwoływanie się do nich po imieniu mija się z celem. Prubowałem to zrobić za pomocą .type ale to też mi nie wypalilo. Wywala mi błąd typu :

Unknown property: \"type\" in $Target:Camera01.Target .

 

Mój główny problem to przedewszystkim to jak sprawdzić czy dany element tablicy cameras jest obiektem TargetCamera.

Odnośnik do komentarza
Udostępnij na innych stronach

Tak chyba bedzie najprosciej

 

if (classOf cameras == Targetcamera or classOf cameras == Freecamera) then... renderujesz

else... nie renderujesz

 

Mozesz tez sprawdzac czy dany obiekt jest targetem.

 

if (classof selection[1] == Targetobject) then...

else...

Odnośnik do komentarza
Udostępnij na innych stronach

Korzystając z chwilki czasu uaktalniłem skrypcik. Może to nie wiele ale powoli zaczyna byc użyteczny.

 

 

 

 

rollout kamera \"Kamera\"

(

group\"Rozmiar obrazka\"

(

spinner so \"szerokosc\" range:[8,4098,160] scale:1 pos:[40,24] width:80

spinner wo \"wysokosc \" range:[8,4098,120] scale:1 pos:[160,24] width:80

)

group \"lokaliozacja i nazwa renderów\"

(

edittext edt1 \"lokalizacja\" text:\"D:/rendery/\"

edittext edt2 \"nazwa \" text:\"obrazek\"

)

button rnd \"Render\"

on rnd pressed do

(

nr = 0

c = cameras.count

wob = wo.value

sob = so.value

for i = 1 to c do

(

cam = cameras[ i]

if classOf cam != Targetobject do

(

nr += 1

Viewport.setCamera cam

b = BitMap sob wob filename:(edt1.text + edt2.text + nr as string + \".bmp\")

render camera:cam to:b

save b

)

)

)

)

rollfloater = newRolloutFloater \"\" 300 175

addrollout kamera Rollfloater

Odnośnik do komentarza
Udostępnij na innych stronach

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ę



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności