BK4070 - Informatica Largetoi.bk.tudelft.nl/downloads/bk4070/workshop_1.pdf · Data exchange •...
Transcript of BK4070 - Informatica Largetoi.bk.tudelft.nl/downloads/bk4070/workshop_1.pdf · Data exchange •...
-
BK4070 - Informatica LargeWorkshop 3 - Scenario’s & scripten
Technisch Ontwerp en Informatica
-
Technisch Ontwerp en Informatica
2/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Eenvoudig model opzetten
Eenvoudige volumes in maya opzettenga uit van schaal 1:500 -gevelopeningen zonder kozijnen e.d. -simpel meubilair t.b.v. het gebruik van de ruimte -
-
Technisch Ontwerp en Informatica
3/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Vectorrender maken
Vectorrender naar .aiRender using > Maya Vector -Common tab > Image format > Adobe Illustrator (ai) -Maya Vector tab > Fill Objects > uit -Maya Vector tab > Include Edges > aan -
Camera Background Color > wit -
Meer info > TOI-Pedia >Maya Vector Render to Illustrator
-
Technisch Ontwerp en Informatica
4/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Opwerken in Illustrator
‘Inkleuren’ met Live Paint Bucket
-
Technisch Ontwerp en Informatica
5/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Opwerken in Photoshop
Schaduwpartijen aangeven in Photoshop
-
Technisch Ontwerp en Informatica
6/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Combineren
Photoshop schaduwen naar Illustrator d.m.v.‘place’
-
Technisch Ontwerp en Informatica
7/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Aankleden
Verder aankleden om ‘gezelligheid’ te creëren
-
Technisch Ontwerp en Informatica
8/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Aankleden
It’s not exact sience!!!!
-
Technisch Ontwerp en Informatica
9/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Opdracht
Maak 2 scenario’s• Minimaal 1 interieur, de andere eventueel een exterieur
Timely:• Dag van de tussenpresentatie vóór 9:00uur
Meer info:• TOI-Pedia -TOI website > Bsc4 -@hok -
-
Technisch Ontwerp en Informatica
10/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Data exchange
Zorg voor duidelijke afspraken!!• Bestand structuurLayer gebruikSchriftelijke omschrijving
Reference!!• AutoCAD naar AutoCAD (teken alleen wat je moet tekenen)MAYA naar MAYAAutoCAD naar MAYA
Gebruik TOI-pedia voor uitleg!
-
Technisch Ontwerp en Informatica
11/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Je eigen tool in maya
Uitbreiden van de functionaliteit van Maya
Maya is een zeer uitgebreid softwarepakket met een boel ‘features’, maar de grootste feature is misschien wel de fl exibiliteit.
Deze fl exibiliteit geeft de mogelijkheid Maya aan te passen of uit te breiden voor specifi eke doeleinden en situaties.
-
Technisch Ontwerp en Informatica
12/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Je eigen tool in maya
-
Technisch Ontwerp en Informatica
13/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Je eigen tool in maya
Voorbeelden
if (`window -exists trapwindow`) deleteUI -window trapwindow;
string $window= `window -t “Steektrap” -w 400 -h 100 -mxb 0 -rtf 1 trapwindow`; columnLayout -columnAttach “left” 0;
separator -height 10 -st none;
fl oatSliderGrp -l “Hoogte Trap in meters” -fi eld true -changeCommand “maten”
-minValue 0.1 -maxValue 8.0 -fi eldMinValue 0.1 -fi eldMaxValue 8.0 -value 2.8 hoogte; fl oatSliderGrp -l “Breedte Trap in meters” -fi eld true -changeCommand “maten”
-minValue 0.8 -maxValue 10.0 -fi eldMinValue -0 -fi eldMaxValue 10.0 -value
-
Technisch Ontwerp en Informatica
14/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Je eigen tool in maya
Script Editor
-
Technisch Ontwerp en Informatica
15/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Je eigen tool in maya
Script Editor
Nadelen:• wanneer Maya crasht ben je het script kwijt -niet erg overzichtelijk -
Oplossing:• scripts extern aanmaken en bewerken -
bijvoorbeeld in Crimson Editor
-
Technisch Ontwerp en Informatica
16/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Je eigen tool in maya
Crimson EditorGratis te downloaden op http://www.crimsoneditor.com/
Script opslaan als ****.melkleurcodering van verschillende onderdelen van het mel script
-
Technisch Ontwerp en Informatica
17/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Je eigen tool in maya
Alles is gescriptCreate > Polygon Primitives > CubeAlles wat je doet wordt getoont in de ScriptEditor, in de ‘Command History’
-
Technisch Ontwerp en Informatica
18/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Computers zijn dom
Voordat we het scripten induiken eerst een waarschuwing:
Computers hebben strikte regels nodigom een script te kunnen begrijpen!
alles is - hoofdlettergevoeligelk ‘command’ wordt afgesloten met een - ; aan het eindopmerkingen worden vooraf gegaan met // -opmerkingen over meerdere regels worden geplaatst -tussen /*[opmerking]*/
-
Technisch Ontwerp en Informatica
19/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Commands
Commands zijn acties die je wilt uitvoerenhet command ‘polyCube;’ genereert bijv. een Polygon Cube
een overzicht van de commands vind je onder:help > MEL command referencehttp://toi.bk.tudelft.nl/maya/help/docs/Maya2008/en_US/Commands/index.html
-
Technisch Ontwerp en Informatica
20/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Flags
Flags zijn opties voor commands‘polyCube -w 1 -h 2 -d 3;’ genereert bijv. een Polygon Cubevan 1 x 2 x 3 units i.p.v. 1 x 1 x 1 units
een overzicht van de fl ags per command vind je ookin de command referencehttp://toi.bk.tudelft.nl/maya/help/docs/Maya2008/en_US/Commands/index.html
-
Technisch Ontwerp en Informatica
21/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Een eerste voorbeeld
polyCube;
polyCube -w 1 -h 2 -d 1;
move -r 2 0 0;
polyCube -w 1 -h 3 -d 1;
move -r 4 0 0;
-
Technisch Ontwerp en Informatica
22/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Variabelen: int, fl oat, string
Een variabele geeft je de mogelijkheid een naam te geven voor een bepaalde waarde
3 soorten:int $heel_getal = 1; fl oat $dec_getal = 0.15;string $tekst = “Dit is voor een tekst”;
Een variabele moet je altijd eerst declareren (aangeven of het een
int, fl oat of string is). Het is wel mogelijk om direct een waarde
toe te kennen bij het declareren (zoals hierboven).
-
Technisch Ontwerp en Informatica
23/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
int $width = 1;
int $height = 1;
int $depth = 1;
int $distX = 2;
polyCube -w $width -h $height -d $depth;
polyCube -w $width -h (2* $height) -d $depth;
move -r $distX 0 0;
polyCube -w $width -h (3* $height) -d $depth;
move -r (2*$distX) 0 0;
Het voorbeeld met variabelen
-
Technisch Ontwerp en Informatica
24/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Variabelen: int[], fl oat[], string[]
Naast een gewone variabele voor een enkele waarde, is er de ‘array’ voor meerdere waarden
wederom 3 soorten:int $hele_getallen[] = {1,2,3}; fl oat $dec_getallen[] = {0.15,0.25,0.35};string $teksten[] = {“Jan”,”Kees”,”Piet”};
$hele_getallen[0] = 1
$hele_getallen[1] = 2
$hele_getallen[2] = 3
-
Technisch Ontwerp en Informatica
25/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
int $afm_cube[] = {1,1,1};
int $distX = 2;
polyCube -w $afm_cube[0] -h $afm_cube[1] -d $afm_cube[2];
polyCube -w $afm_cube[0] -h (2* $afm_cube[1]) -d $afm_cube[2];
move -r $distX 0 0;
polyCube -w $afm_cube[0] -h (3* $afm_cube[1]) -d $afm_cube[2];
move -r (2*$distX) 0 0;
Het voorbeeld met een array
-
Technisch Ontwerp en Informatica
26/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Controle structuren
Controle structuren geven de mogelijkheid condi-ties vast te stellen waaronder commands worden uitgevoerd
We behandelen vandaag 2 controle structuren:
for•
if...else if...else •
-
Technisch Ontwerp en Informatica
27/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Controle structuren: for
Met de controle structuur ‘for’ maken we een loop
for (initialisatie; conditie; verandering) { .....;}
initialisatie: startwaarde van de loop -conditie: wordt bij elke iteratie gecontroleerd. Wanneer -de conditie ‘waar’ is wordt de loop uitgevoerd. Is de con-ditie ‘onwaar’ wordt de loop beëindigd en gaat het script onder de loop verder.verandering: vernadering van de conditie -
-
Technisch Ontwerp en Informatica
28/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
int $afm_cube[] = {1,1,1};
int $distX = 2;
for ($i = 0; $i < 3; $i = ($i + 1)) {
polyCube -w $afm_cube[0]
-h (($i+1)*$afm_cube[1])
-d $afm_cube[2];
move -r ($i*$distX) 0 0;
}
Het voorbeeld met een for-loop
-
Technisch Ontwerp en Informatica
29/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
int $afm_cube[] = {1,1,1};
int $distX = 2;
int $distZ = 2;
for ($j = 0; $j
-
Technisch Ontwerp en Informatica
30/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Met een dubbele for-loop
-
Technisch Ontwerp en Informatica
31/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Controle structuren: if...else if...else
Met de controle structuur ‘if..else if...else’ stellen we voorwaarden waaraan voldaan moet worden
if ($x > 10) { .....;} else if ($x > 5){ .....;} else { .....;}
-
Technisch Ontwerp en Informatica
32/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
int $afm_cube[] = {1,1,1};
int $distX = 2;
for ($i = 0; $i < 3; $i = ($i + 1)) {
if ($i > 1) {
polySphere -r 1;
} else {
polyCube -w $afm_cube[0]
-h (($i+1)*$afm_cube[1])
-d $afm_cube[2];
}
move -r ($i*$distX) 0 0;
}
Het voorbeeld met if...else if...else
-
Technisch Ontwerp en Informatica
33/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Procedures
Procedures maken het mogelijk je eigen functies te schrijven. Wanneer je eenzelfde stuk script meer-dere malen nodig hebt is het gebruik van functies zeer handig.
global proc return_type procedure_name ( arguments ) { functie }
-
Technisch Ontwerp en Informatica
34/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
global proc makeCubes() {
int $afm_cube[] = {1,1,1};
int $distX = 2;
for ($i = 0; $i < 3; $i = ($i + 1)) {
polyCube -w $afm_cube[0]
-h (($i+1)*$afm_cube[1])
-d $afm_cube[2];
move -r ($i*$distX) 0 0;
}
}
Voorbeeld met een procedure
-
Technisch Ontwerp en Informatica
35/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
Objectnamen zijn handig wanneer je een specifi ek object later in het script verder wilt bewerken. Je kunt wanneer je een object aanmaakt een speci-fi eke naam toekennen, er zit echter een addertje onder het gras.
Objectnamen
-
Technisch Ontwerp en Informatica
36/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
De oplossing is de objectnaam in een variabele op te slaan.
string $mijnCurve = `curve -d -p 0 0 0 -p 1 0 0`; string $mijnKubus[] = `polyCube`;
let op: ` dit is een backtick (het knopje boven tab)
Objectnamen
-
Technisch Ontwerp en Informatica
37/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
De variabele werkt als het ware als een envelop. Als we zorgen dat we weten in welke envelop de objectnaam zit, weten we genoeg.
$mijnCurve = curve3 $mijnKubus[0] = pCube2, $mijnKubus[1] = polyCube5
Objectnamen
-
Technisch Ontwerp en Informatica
38/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070
string $curve1 = `curve -d 1 -p 0 0 0 -p 0 0 10`;string $curve2 = `curve -d 1 -p -10 10 0 -p -10 10 10`;loft $curve1 $curve2 ;
Voorbeeld met objectnamen
-
Technisch Ontwerp en Informatica
39/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Interface
if ( `window -exists mijnWindow` ) { deleteUI mijnWindow;}
window -title “mijnWindowTitel” -w 400 mijnWindow;
columnLayout;
fl oatFieldGrp -label “fl oatFieldGrp” mijnFloatFieldGrp;
showWindow mijnWindow;
(meer info over interfaces in de TOI-Pedia)
-
Technisch Ontwerp en Informatica
40/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070De uitvoering
if ( `window -exists mijnWindow` ) { deleteUI mijnWindow;}window -title “mijnWindowTitel” -w 400 mijnWindow;columnLayout;button -l “Create” -c “makeCubes()”;showWindow mijnWindow;
global proc makeCubes() { int $afm_cube[] = {1,1,1}; int $distX = 2; for ($i = 0; $i < 3; $i = ($i + 1)) { polyCube -w $afm_cube[0]-h (($i+1)*$afm_cube[1])-d $afm_cube[2]; move -r ($i*$distX) 0 0; }}
-
Technisch Ontwerp en Informatica
41/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Opdracht
De opdracht bestaat uit 4 delen:
1. Zet op papier een stroomschema van het scriptwaaruit blijkt hoe het script is opgezet.
2. Voorzie het script van duidelijk commentaar zodat zichtbaar is dat je het script begrijpt.
3. Voeg een extra invoerveld toe in de interfacewaar de hoogte van de stammen aangpast kanworden.
4. Na uitvoeren van het script staan er in de scripteditor 2 gegevens. Beide staan op 0.Zorg ervoor dat hier de juiste waarden komen te staan.
-
Technisch Ontwerp en Informatica
42/42
Scenario’s & ScriptenWorkshop 4Informatica L - BK4070Opdracht
Download het script van:• TOI website >BK4070 >downloads & links >TOI_bsc4_script
Stroomschema en aangepast script• Lever het stroomschema en het script met de drieaanpassingen in.
Timely:• Dag voor de volgende lezing
Meer info:• TOI-Pedia -TOI website > Bsc4 -@hok -