BK4070 - Informatica Largetoi.bk.tudelft.nl/downloads/bk4070/workshop_1.pdf · Data exchange •...

42
BK4070 - Informatica Large Workshop 3 - Scenario’s & scripten Technisch Ontwerp en Informatica

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 -