Skocz do zawartości

Kurs MAX Script - temat 1 - podsumowanie


lechoo

Rekomendowane odpowiedzi

Na poczatek moja wersja skryptu

 

box()

sphere radius:20 pos:[0,60,20]

plane width:200 length:200

dummy pos:[0,-60,10] boxsize:[20,20,20]

omnilight pos:[100,-100,100] castshadows:true

render()

 

a ponizej skrypty kursowiczow. Postaram sie kazdy krotko omowic pokazujac ciekawsze miejsca i przy okazji pokazac kilka przydatnych rzeczy.

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 26
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Autor: Bartlomiej Cysewski

 

box length:10 width:10 height:10 pos:[0,-20,0] wirecolor:[50,250,245]

sphere radius:1 pos:[0,60,20] wirecolor:[255,0,255]

plane length:200 width:200 wirecolor:[255,150,150]

dummy length:20 width:20 height:20 pos:[0,-60,10] wirecolor:[200,200,200]

omnilight pos:[100,-100,100] castShadows:true

render()

 

Dodatkowo pojawil sie parametr wirecolor, ktory pozwala zdefiniowac kolor siatki obiektu. Jesli go nie podamy max przypisze siatce losowy kolor. Kiedy tworzymy wiecej obiektow warto tego uzywac zeby nie miec balaganu w scenie. Oczywiscie kolejne liczby w wirecolor to skladowe koloru: czerwona, zielona i niebieska.

 

Teraz rzecz na ktorej \"wpadla\" chyba polowa. Chodzi o sposob tworzenia dummiego. Jego rozmiar definiuje sie inaczej niz np. boxa. Nalezy tu uzyc parametru boxsize. Proponuje wykonac ponizszy skrypcik:

 

dummy length:20 width:20 height:20

dummy boxsize:[20,20,20]

 

Wyraznie widac ze oba obiekty sa rozne. Mala rada jak nie wiecie jakie parametry ma obiekt skorzystajcie z polecenia showProperties (lub zajrzyjcie do helpa :))

 

d = dummy()

showProperties d

 

Spowoduje to wypisanie w listenerze parametrow danego obiektu.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: BooM-Bel

 

utility scena \"BooM-Bel\"

(

button wj \"Wykonaj\"

on wj pressed do

(

box()

sphere radius:1 position:[0,60,20]

plane length:200 width:200

dummy lenght:20 high:20 witdh:20 position:[0,-60,10]

omnilight position:[100,-100,100] castShadows:on

render frame:0

)

)

 

Tutaj zostal stworzony prosty interfejs z jednym guzikiem po nacisnieciu ktorego wykonuje sie skrypt. Kto nie robil nigdy interfejsu w max scripcie niech przyjrzy sie uwaznie bo to bedzie w nastepnym temacie.

 

Po poleceniu render pojawia sie parametr frame, czyli numer klatki do zrenderowania. Bez tego parametru renderowana jest aktualna klatka.

 

I jeszcze jedna drobna rzecz.

 

castShadows:on

 

Ja preferuje true zamiast on ale jak widac tak tez mozna.

 

Jesli przyjrzycie sie dokladnie temu jak tworzony jest dummy to zobaczycie ze sa tam literowki

 

lenght:20 high:20

 

Wynika z tego ze max script ignoruje nieznane parametry podawane w czasie tworzenia obiektu bo cos takiego juz by nie przeszlo

 

my_box = box blebleble:200 --ta linia wykona sie

my_box.blebleble = 10 --a ta juz nie

 

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: glaeken

 

backgroundcolor = color 150 200 230 -- nie lubię czarnego tła

box() -- robimy pudełeczko

sphere radius:1 pos:[0,60,20] -- a teraz kuleczkę

plane length:200 width:200 -- no i plane

dummy height:20 length:20 width:20 pos:[0,-60,10] -- dummy zrobiony

omnilight castshadows: true pos:[100,-100,100] -- światełko

render() -- i poooszło

 

Z nowych elemantow widac backgroundcolor w pierwszej linijce. Mam nadzieje ze nie musze wyjasniac tej opcji :). Slowko color przed trzema liczbami kaze je traktowac scriptowi jak kolejne skladowe koloru. Mozna stworzyc sobie zmienna przechowujaca kolor np. tak:

 

nowy_kolor = color 255 0 0

 

Wtedy do poszczegolnych skladowych dobieramy sie tak:

 

nowy_kolor.r --czerwona

nowy_kolor.g --zielona

nowy_kolor.b --niebieska

 

Te podwojne myslniki to komentarze. W tak krotkich skryptach nie ma sensu ich uzywac ale w wiekszych sa naprawde nieocenione.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: ikim

 

box()

sphere radius:20 position:[0,60,20]

plane length:200 width:200

dummy position:[0,-60,10] height:20 lenght:20 widght:20

omnilight position:[100,-100,100] castshadows:true

render()

 

jedyny problem w tym skrypcie to tworzenie dummiego, czyli length, width i height zamiast boxsize.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: leander

 

myBOX = box ()

mySPHERE = sphere radius:10 pos:[0,60,20]

myPLANE = plane width:200 height:200

myDUMMY = dummy pos:[0,-60,10] boxsize:[20,20,20]

myOMNI = OmniLight pos:[100,-100,100] castShadows:true

render ()

 

Dummy jak widac stworzony jak trzeba. Jedyny problem to plane jest widtch i height a powinno byc width i length. Ale takie rzeczy czesto umykaja w \"ferworze walki\", dlatego warto na koncu porzadnie sprawdzic skrypt.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: mikeb

 

b = box lenght: 25 height: 30 width: 40

s = sphere radius: 1 pos: [0, 60, 20]

p = plane lenght: 200 width: 200

d = dummy height: 20 lenght: 20 width:20 pos: [0, -60, 10]

o = omnilight shadowColor:(color 0 0 0) castShadows:on pos: [100, 100, 100]

r = render scen

 

Poza juz opisanym wczesniej sposobem tworzenia dummiego widze tu dwa problemy: literowka w plane, jest lenght zamiast length. Script nie zwraca bledu ale cos takiego ewidentnie wiadc po wykonaniu skryptu, dlatego jak juz pisalem w topicu wyzej, na koniec warto sprawdzic skrypt. Druga rzecz to parametr scen po render. Byc moze chodzilo o scene ale takiego parametru nie ma w poleceniu render. To tak samo jak z literowkami wczesniej, script nie zwraca bledu wiec trudno cos takiego wylapac.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: Petear

 

box position:[0,0,0]

sphere radius: 1 position:[0,60,20]

plane length: 200 width: 200

dummy position:[0,-60,10] heigth: 20 length: 20 width: 20

omnilight position:[100,-100,100] castshadows: on

render()

 

Skrypt OK. Jedyny problem to definicja rozmiaru dummiego, no ale wiekszosc miala z tym problem :) .

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: Petrik

 

box();

sphere radius:1 pos:[0,60,20] ;

plane length:200 width:200;

dummy pos:[0,-60,10] boxsize:[20,20,20];

omnilight pos:[100,-100,100] castshadows:on;

render();

 

Jak wiadc, podobnie jak w C mozna uzywac srednikow na koncach lini. To juz kwestia gustu i przyzwyczajenia.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: Dariusz Pleśniak

 

Box lengthsegs:1 widthsegs:1 heightsegs:1 length:100 width:100 height:100 pos:[0,0,0]

Sphere radius:1 pos:[0,60,20]

Plane length:200 width:200 pos:[0,0,0]

Dummy pos:[0,-60,10] boxsize:[20,20,20]

Omnilight rgb:(color 255 255 255) multiplier:1 contrast:0 softenDiffuseEdge:50 nearAttenStart:0 nearAttenEnd:40 farAttenStart:80 farAttenEnd:200 decayRadius:40 atmosOpacity:100 atmosColorAmt:100 shadowMultiplier:1 transform:(matrix3 [1,0,0] [0,0,1] [0,-1,0] [100,-100,100]) castShadows:on

render outputwidth:320 outputheight:240

 

Widac dodatkowe definicje parametrow. Czesc z nich jest jednak calkowicie zbyteczna z tego wzgledu ze podane tu wartosci za identyczne z defaultowymi.

Absolutny hardcore to zdefiniowanie macierzy przeksztlcen dla omnilight, uzywa sie tego naprawde bardzo rzadko, choc czasem bez tego jest bardzo trudno cos zrobic, takze napewno pojawi sie to w jakims temacie.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: plutek

 

Box length:1 width:1 height:1 pos:[0,0,10] color:[0,0,0]

Sphere radius:1 smooth:on segs:32 pos:[0,60,20]

Plane length:200 width:200 pos:[0,0,0]

Dummy boxsize:[20,20,20] pos:[0,-60,10]

Omnilight rgb:[255,255,255] shadowColor:[0,0,0] pos:[100,-100,100] castShadows:on raytracedShadows:on

render()

 

Wszystko dobrze, tylko czemu ten box taki malutki, ledwo go widac.

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: Tomasz \"Warui\" Nowakowski

 

box()

sphere radius:1 pos:[0,60,20]

plane lenght:200 width:200

dummy pos:[0,-60,10] height:20 lenght:20 width:20

omnilight pos:[100,-100,100] castshadows:false

render()

 

Oj chyba wogole nie sprawdzacie skryptow po napisaniu, znowu literowka w length w plane. Przecierz to widac od razu po wykonaniu skryptu. No i definicja rozmiaru dummiego: length, width i height zamiast boxsize.

 

Odnośnik do komentarza
Udostępnij na innych stronach

Autor: wokram

 

box position:[0,0,0] height:2 length:2 width:2

sphere radius:1 position:[0,60,20]

plane length:200 width:200

dummy boxsize:[20,20,20] position:[0,-60,10]

omniLight position:[100,-100,100] castShadows:on

render outputSize:[800,600]

 

Wczesniej Darek Plesniak definiowal rozdzieloczosc renderu przez outpoutWidth i outputHeight a tu dla odmiany mamy outputSize.

Odnośnik do komentarza
Udostępnij na innych stronach

Uff to juz wszystko. Jak widac frekwencja dopisala, co bardzo mnie cieszy, w sumie 14 skryptow. Postarajcie sie czytac nie tylko komentarz do swojego skryptu ale tez pozostalych. Staralem sie wyjasnic rozne rzeczy dajac w miare potrzeb krotkie przykladziki.

A w piatek nastepne zadanie.

 

Co sadzicie o takiej formule kursu?

Odnośnik do komentarza
Udostępnij na innych stronach

Originally posted by leander

No super :) Myslalem, ze to podsumowanie wszystkich zdanych prac bedzie niepotrzebne - a jednak sporo sie mozna dowiedzieć.

 

Wlasnie pomysl jest taki zeby rozne informacje \"przemycic\" w komentarzach, kiedy sa w jakims kontekscie chyba latwiej je zapamietac.

Odnośnik do komentarza
Udostępnij na innych stronach

Wygląda super.

 

W ten sposób na podsumowaniu lepsi wzbogacają wiedzę początkujących. Jak widać, mieliśmy się nauczyć tylko 6 linijek, a dzięki bardziej aktywnym osobom już się umie sporo więcej.

 

Ja już chcę drugą część!! [lol]

Odnośnik do komentarza
Udostępnij na innych stronach

Kurs w sam raz dla mnie :). Miło, że niektórzy dodają coś od siebie.

A z tym moim dodawaniem komentarzy, to uważam, że lepiej dodać do skryptu jeden komentarz więcej niż jeden mniej - a wprzypadku tak prostego skryptu, to po prostu utrwalanie nawyku. Poza tym zawsze może mnie złapać amnezja piwna:D lub coś podobnego.

Odnośnik do komentarza
Udostępnij na innych stronach

Mam takie pytanie, czy prowadzący kurs ma jakies wyobrażenie do czego ma on prowadzić? Znaczy chodzi mi o to, że obecnie niektórzy sobie przypominają MAXScrip, inny go dopiero poznają, jednak jeżeli bedzie już np. temat 9 czy 10 (obym był dobrym prorokiem :) ) to chyba można by się pokusić o zrobienie jakiegoś użytku z wysiłku uczestników kursu. Nie znam MAXScriptu ale pewnie za jego pomocą można jakieś tworzyć jakieś użyteczne narzędzia (plug-iny czy coś w ich rodzaju). Może jest jeszcze za wcześnie na takie pomysły, jednak tak na przyszłość chciałem rzucić koncepcję.

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