Skocz do zawartości

Rekomendowane odpowiedzi

Napisano

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)

)

 

 

 

  • Odpowiedzi 7
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Napisano

Niepotrzebnie odwolujesz sie do kamer przez nazwe, przeciez wszystkie sa w tablicy cameras. Wystarczy podac numer elementu.

 

for i = 1 to cameras.count do

(

Viewport.setCamera cameras

)

Napisano

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.

 

Napisano

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.

Napisano

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

Napisano

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

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