80
1 GROUP 2 INTERACTION

Part B Journal

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Part B Journal

1

GROUP 2INTERACTION

Page 2: Part B Journal

2

[F] Next step for the rest of the semester and Learning outcomes

4[A] Groups Exploration

[B] Tutorials and understanding Unity

[C] Exploring Mid-Semester Prototype

[D] Response to Mid-Semester Presentation

[E] Expression from Mid-Semester RedefiningExplorations

8

16

46

52

74

CONTENT PAGE

Page 3: Part B Journal

3

Hattie Ong_778153Chuhan Yao_683814Hanxuan Bi_673831

Page 4: Part B Journal

4

[A] GROUPS EXPLORATION

Page 5: Part B Journal

5

Page 6: Part B Journal

6

Ourgroupisthebridgethatconnectsgroup1andgroup3workstothefinaloutcome.Wecreatethisprocessthat uses researched landscape from group 3 and interesting shapes generated by group 1 to produce a similar landscapetothesite.Weassignlogicandrulesonhowgroup1shapescanbeheneratedandhowgroup3land-scapecanbevisualised.

landscape geometry from group 3 voxel object geometry from group 1

convertedcsvfileof landscape convertedcsvfileof voxelobject

Unitymanagerpanelthatreadscsvfiles

actual gaming interface in Unity

PART 0: GROUPS EXPLORATIONInput / Process / Output

Page 7: Part B Journal

7

DESIGN OUTCOME: A STATIC SNAPSHOT OF THE PARK SYSTEM

Page 8: Part B Journal

8

[B] TUTORIALS AND UNDERSTANDING UNITY.

Page 9: Part B Journal

9

Page 10: Part B Journal

10

CLOCKAftergoingthroughsomebasictutorialsonhowtouseunity,Wethanmoveontosomethingsimplerbycreatingaclockandallowingittomoveatthesametimeasthecomputerdoes.

FRACTALAdefinatelymoreadvancecodingwestartgettinginto.Thiswasverydifferentfromtheinitialclocktutorialwehad.Itwasmorechallengingthantheclocktutorials.Wemoveontoamoreadvanceoneinlooking at how to spawn shapes using and object and when played the object would be able to rotate and move randomly

TUTORIALS

Page 11: Part B Journal

11

FRACTALThefractalusescodetorandomlygeneratesalistof shapesthatwasgiventoit.Itwillnevergeneratesthesameshapethenexttimeyoupresstheplaybutton.

Page 12: Part B Journal

12

Aftergettingusedtounity,wetried"seedingthelandscape".Withunityfilethatwasgiven,wefirsttriedtospawnasingleshapeintheheightmapthatwasprovidedtous.Afterunderstandinghowtheheightmapworks,WemoveontodoitwiththreedifferentpicturestotesthowtheCSVfileworks.

Wethanmoveevenfuthertotestouthavingdifferentshapespawningatdifferentnumbersof theheightmap.Insteadof justhavingacube,weaddedonsphere,cylinderandcapsule.Thanwestartexploringonhowtoincreasetheheightof theshapeatdifferentareasof themapgivingita3Dlandscapeview.

GENERATING THE LANDSCAPELandscape seeding - Trying out if statements and exploration of unity

Page 13: Part B Journal

// Update is called once per framevoid Update(){

myX = Mathf.RoundToInt(transform.position.x); myZ = Mathf.RoundToInt(transform.position.z);

//accumColor = attributA if (manager.GetComponent<tileManager>().att == 1) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt1; }

else if (manager.GetComponent<tileManager>().att == 2) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt2; }

else if (manager.GetComponent<tileManager>().att == 3) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt3; }

else if (manager.GetComponent<tileManager>().att == 4) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt4; }

myRenderer.enabled = false;

visitedTileNo = thisObject.GetComponent<xyzToI>().TileNo;

slaveVisited = manager.GetComponent<tileManager>().hasVisited [visitedTileNo]; slaveTimesVisited = manager.GetComponent<tileManager>().timesVisited [visitedTileNo]; hasSpawned = manager.GetComponent<tileManager>().hasSpawned[visitedTileNo];

if (manager.GetComponent<tileManager>().trace == true) { // visited colour if (slaveVisited == true && thisObject.GetComponent<xyzToI> ().tileWithinRange) { myRenderer.enabled = true; colourVal = new Vector4((float)slaveTimesVisited / 100, (float)slave TimesVisited / 100, (float)slaveTimesVisited / 100, 1); Color myColor = colourVal; //Color myColor = new Vector4 (slaveTimesVisited/10, slaveTimesVisited/10, slaveTimesVisited/10, 1); myRenderer.material.color = myColor; }

//////////////////////////////////////////////////////////////////////////////////// REF1 ////////////////////////////////////////////////////////////////////////////// if (accumColor > 0.5f && accumColor <= 0.6 && hasSpawned == false) { int SpawnChance = Random.Range (0, 2); if (SpawnChance > 0) { shapeInt = 0; shapeToHash (); } else { manager.GetComponent<tileManager> ().hasSpawned [visitedTileNo] = true; } }

13

The coding here is giving eachimagesintheCSVfilesanattributenumberto allow changes to be madeintheGameframe.

The if statements here allows me to indicate the tiles that i wanted to spawn objects when the readerscansthroughit.

Page 14: Part B Journal

14

Page 15: Part B Journal

15

HeyhowdoestheCSVfileworkinGrasshop-per?Icantseemtogetittowork.Itdoesnotreallygivemeanydata.

Imighthavethesameproblemasyou.Thedatathatisstatedintheexcelfileallcomesoutas0,0,0.Thereisnonumberingthatstatsthereisdatain.

That’s weird. Did you guys check that the plugins for Grasshopper are all in the correct position?

Yup!Allthepluginsarecorrect.Oristheresomething wrong with my images?

I dont think so. I have tried multiple images but it still works everytime I plugin. Or did u acci-cently press something for the image sampler.

IthinkImighthavegetit.MyproblemwasjustthatIhavepluginthewrongarea.TheImagesampler was suppose to go into entwine before goingintoAttributeCSVImighthaveaccident-ly tangled the connections

Hmm.Thatsstrangeallof theconnectionsarecorrectandtoplace.IhavedubleclicktheImag-es sampler and it does not really show is there is somethingwrongwithitornot.

When you double click the images sampler, directly choose the images from there. The interpolate must be tick in order for it to work. And your x and y domain both must be rang-ing from 0.0 to 0.1

Oh!Igotit.Ididntticktheinterpolatethatmightbethereason.Letmetryandseeif itsgoing to work this time round

GETTING CSV FILES TO WORK

Page 16: Part B Journal

16

[C] EXPLORING MID-SEMESTER PROTOTYPE

Page 17: Part B Journal

17

Page 18: Part B Journal

18

TREENESS

PATHWAY

PERSPECTIVE PLAN ELEVATION

INTERESTINGNESS

NOISENESS

AlltheshapesandlandscapeothergroupshavecreatedareconvertedinCSVfiles.TheCSVfilescontainedalistof numersindicatingthepositionof everyvoxelof theshape.WhenweimporttheCSVfilesintounity,wecanspawnacubeasavoxelsatthepositionrecordedinCSVfilestorepresenttheshapes.

SHAPESGENERATEDBYGROUP1(DEMOATTHISSTAGE)

COMBINATIONS OF DATA FROM GROUP 1 AND 3

Page 19: Part B Journal

19

PATHWAY

NOISENESSTREENESS

INTERESTINGNESS

LANDSCAPE GENERATED BY GROUP 2

Page 20: Part B Journal

void Start() { myRenderer = gameObject.GetComponent<Renderer>();

_gridXDim = tileManager.gridXDim; _gridZDim = tileManager.gridZDim;

deadZone = voxelManager.deadZones;

}

// IGNORE ME // Update is called once per frame void Update() {

myX = Mathf.RoundToInt(transform.position.x); myZ = Mathf.RoundToInt(transform.position.z);

//accumColor = attributA if (manager.GetComponent<tileManager>().att == 1) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt1; }

else if (manager.GetComponent<tileManager>().att == 2) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt2; }

else if (manager.GetComponent<tileManager>().att == 3) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt3; }

else if (manager.GetComponent<tileManager>().att == 4) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt4; }

Treeness = thisObject.GetComponent<xyzToI>().slaveAtt1; Noiseness = thisObject.GetComponent<xyzToI>().slaveAtt2; Interestingness = thisObject.GetComponent<xyzToI>().slaveAtt3; Pathness = thisObject.GetComponent<xyzToI>().slaveAtt4;

if (manager.GetComponent<tileManager>().trace == false) { if (accumColor > 0) {

if (voxelManager.showLandscape == true) { myRenderer.enabled = true; } Color myColor = new Vector4(accumColor, accumColor, accumCol-or, 1); myRenderer.material.color = myColor; } } myRenderer.enabled = true; }

20

ThespacesareconvertedintoCSVfiles.CSVfilesconsists of a list of numbers that records the position of everysinglevoxelsof theshape.Theyarerecordedasavaluebetween0to1.Itgivesusindicationdof wherethevoxelsaretobespawnat.

CSVfilesfromLandscapegrouphasfourexplorations,whichareTree,Path,NoiseandInterestingness.Thispane; enables us to quickly switch between the 4 attri-butes/Thisablesustodoworkmoreefficientlythanhavingtogobackagainandagaintochangethescript.

CSVfilesfromlandscapegroupwillbeimportedhere.

CSVfilesfromshapegroupwillbeimportedhere.ThroughscriptwecanalsomodifywhichCSVfileswewanttoshoworhowmanyCSVfileswewanttoshow.

PROCESS: THE DESIGN OF GAMING SYSTEM

Page 21: Part B Journal

void Start() { myRenderer = gameObject.GetComponent<Renderer>();

_gridXDim = tileManager.gridXDim; _gridZDim = tileManager.gridZDim;

deadZone = voxelManager.deadZones;

}

// IGNORE ME // Update is called once per frame void Update() {

myX = Mathf.RoundToInt(transform.position.x); myZ = Mathf.RoundToInt(transform.position.z);

//accumColor = attributA if (manager.GetComponent<tileManager>().att == 1) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt1; }

else if (manager.GetComponent<tileManager>().att == 2) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt2; }

else if (manager.GetComponent<tileManager>().att == 3) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt3; }

else if (manager.GetComponent<tileManager>().att == 4) { accumColor = thisObject.GetComponent<xyzToI>().slaveAtt4; }

Treeness = thisObject.GetComponent<xyzToI>().slaveAtt1; Noiseness = thisObject.GetComponent<xyzToI>().slaveAtt2; Interestingness = thisObject.GetComponent<xyzToI>().slaveAtt3; Pathness = thisObject.GetComponent<xyzToI>().slaveAtt4;

if (manager.GetComponent<tileManager>().trace == false) { if (accumColor > 0) {

if (voxelManager.showLandscape == true) { myRenderer.enabled = true; } Color myColor = new Vector4(accumColor, accumColor, accumCol-or, 1); myRenderer.material.color = myColor; } } myRenderer.enabled = true; }

21

This part of scripts indicates that for the different number we put in “ATT” panel on “Title Manager” reads corresponding partof theinformationintheCSVfiles.

This part of scripts indicates that for the CSVshapesputtingitinthe“element”panel,correspondingreadingthem.

Page 22: Part B Journal

if (manager.GetComponent<tileManager>().trace == false) { if (accumColor > 0) {

if (voxelManager.showLandscape == true) { myRenderer.enabled = true; } Color myColor = new Vector4(accumColor, ac-cumColor, accumColor, 1); myRenderer.material.color = myColor; } }

if (Treeness > 0.5f && Treeness <= 0.7f && hasSpawned == false) { shapeInt = 0; shapeToHash (); } if (Pathness > 0.5f && Pathness <= 0.7f && hasSpawned == false) { shapeInt = 1; shapeToHash(); } if (Interestingness > 0.5f && Interestingness <= 0.7f && hasSpawned == false) { shapeInt = 2; shapeToHash(); }

if (Noiseness > 0.5f && Noiseness <= 0.7f && hasS-pawned == false) { shapeInt = 3; shapeToHash (); }

//there is a 50% chance of spawning this shape if (Pathness > 0.5f && Pathness <= 0.6 && hasS-pawned == false) { int SpawnChance = Random.Range (0, 2); if (SpawnChance > 0) { shapeInt = 0; shapeToHash (); } else {

manager.GetComponent<tileManager> ().hasSpawned [visitedTileNo] = true; } }

if (accumColor > 0.3f && accumColor <= 0.4f && hasSpawned == false) { shapeInt = 2; shapeToHash (); }

22

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENTS

Thispartof If statementcanvarytocontrolhowmanyvoxelstobespawned.The larger the interval, The more voxels wouldspawn.Butahigherinterval[0.5-0.7comparedto0.6-0.8]doesnotneces-sarily mean more voxels are going to be spawned.Itdependsonthepropertiesof thecsvfiles.

TheIf statementsisthemostimportantpartof ourwholeintegratingsystem.ItdesideshowtheVoxelobjectwillbespawned.Thescriptsuggestif thereisanvalueinthelandscapeCSVfileloadedin“Attpanelthatisbetween0.5and0.7.Avoxelobjectasloadedin“CSVDATA”panelwillbespawnedatthatposition.

Page 23: Part B Journal

23

PESPECTIVEVIEWOFTREE,PATH,INTERESTINGNESSANDNOISESHAPESPAWNINGATDIF-FERENTSPACE.

However, at this stage the outcome looks very messy and has lots of overlapping intersections with one anoth-er.Inthiscase,Wecannotobservemuchinformationfromit.InaCSVfile,therearelotsof voxelobjectsthatwouldspawnoneverytiles.Andasthevoxelsobjectsareproducingvoxelsinalldirections,thechancesof themintersectingoneanotherisextremelyhigh.Topreventthisfromhappenandovercrowdingthearea,weintro-ducedtheconceotof deadzones.Deadzonereferstothezoningthatsurroundsaspawnedvoxelobject.Whereit indicates that nothing will spawn within that deadzone area overriding the rules of voxel object spawning at thatspace.

PROTOTYPE SYSTEM EXPLORATION: INITIAL EXPLORATION

Page 24: Part B Journal

if (myX >= 0 && myX < _gridXDim && myZ >= 0 && myZ < _gridZDim) { if (tileManager.isDead [myX, myZ] == true && voxelManager.showDeadZone == true) { myRenderer.enabled = true; myRenderer.material.color = Color.red; } }

} void shapeToHash () { if (tileManager.isDead [myX, myZ] == false) { // make deadzone for (int x = myX - deadZone [sha-peInt]; x < myX + deadZone [shapeInt]; x++) { for (int z = myZ - deadZone [shapeInt]; z < myZ + deadZone [shapeInt]; z++) { if (x >= 0 && x < _gridXDim && z >= 0 && z < _gridZDim) { tileManager.isDead [x, z] = true;

} } }

// update hashtable Vector3 pos = gameObject.trans-form.position; if (voxelManager.voxelObjects != null) { voxelManager.spawn (voxel-Manager.voxelObjects [shapeInt], pos); manager.GetComponent<tile-Manager> ().hasSpawned [visitedTileNo] = true; } } }

}

myRenderer.enabled = false;

visitedTileNo = thisObject.GetComponent<xyz-ToI>().TileNo;

slaveVisited = manager.GetComponent<tileMan-ager>().hasVisited[visitedTileNo]; slaveTimesVisited = manager.GetCompo-nent<tileManager>().timesVisited[visitedTileNo]; hasSpawned = manager.GetComponent<tileMan-ager>().hasSpawned[visitedTileNo];

24

Thisisthescriptforgeneratingdeadzones.Itindicatesthataroundeveryspawnedvoxelobject, there would be a space around it where all the tiles are “dead” so nothing can be spawnedatthosedeadareas.Theradiusof thedeadzone can be altered in “deadzone” pane; in “voxel manager” [Note that one deadzone can onlybeappliedtooneCSVshapes.WeneedtosetdifferentdeadzonesfordifferentCSVshapes].

Page 25: Part B Journal

25

D=2

D=3

D=4

D=5

PERSPECTIVE PLAN ELEVATION

INTERESTINGNESS

FIRSTLYWEEXPLOREDHOWDIFFERENTDEADZONESWOU;DEFFECTASINGLEOBJECTANDHOWTOSHOWTHEBESTPRESENTATIONOFTHEVOBJECT.WEWANTTOSHOWANINTERESTINGREPRESENTATIONOFTHEPARKSYSTEMWITHVOBJECTSINTERSECTINGWITHEACHOTHERBUTSTILLDONOTLOOKMESSY.(KEY:D=DEADZONE)

BecausetheVoxelobjectsof interestingnessisrelativelybigandthespawningareasareclosertoeachother,ahigherdeadzoneshastobesetforit.Adeadzonerangingfrom4to6canshowaclearerstuctureandintersections.

PROTOTYPE SYSTEM EXPLORATION: DEADZONE EXPLORATION

Page 26: Part B Journal

26

D=2

D=3

D=4

D=5

PERSPECTIVE PLAN ELEVATION

PATHWAY

Thevoxelobjectsof pathdonotintersectwitheachotherandisnotcloselyspawned.Thereforarelativelylowerrangeof valueswouldbemoresutibleforit.Rangingfromdeadzones3to4wouldshowaricherpresentationwithoutlookingclustered.

PROTOTYPE SYSTEM EXPLORATION: DEADZONE EXPLORATION

Page 27: Part B Journal

27

D=2

D=3

D=4

D=5

PERSPECTIVE PLAN ELEVATION

NOISENESS

Thevoxelobjectsof noisepresentsasdiscretevoxelsthelowerdeadzonewechosetoused.Themoredensethevoxelswouldbe.Inordertoshowintersectionandnottomakethepresentationlookmessy.Arangeof deadzonesfrom2to3wouldbesutibleforthis.

Page 28: Part B Journal

28

TREENESS

D=2

D=3

D=4

D=5

PERSPECTIVE PLAN ELEVATION

Inorderforthetreevoxelstobevisualisedasliterallyatree,thetreesbasicallyhassomeareasthataredenseandsomeareaswhicharemoresparse.Tomakesuretohavethatidea,wetriedoutaviewrangeandrealisethatdeadzonesrangingfrom3to4canbeused.

PROTOTYPE SYSTEM EXPLORATION: DEADZONE EXPLORATION

Page 29: Part B Journal

29

Secondly, we begin to explore how different if statements with different intervals would effect the presentation of theparksystem.Wealsowanttoexploretheexperienceof differentvobjectexistingtogether,withadefaultdeadzoneof 3.(Key: I=interestingness N=noise P=path T=tree IS=if statement)

PERSPECTIVE PLAN ELEVATION

N+IIS:0.2-0.4

Fromthediagramwecanseethatnoiseisdenserforboth0.2to0.4and0.8to1.Soinordertocontrolthegrowthof noise,itisbettertokeepitwithin0.5to0.7.Also,interestingnessgrowsverydenseandtherestillisintersec-tionsin0.2to0.4.Sotobettervisualiseitwedecidetokeepitsif statementswithin0.2to0.4.

N+IIS:0.8-1

N+IIS:0.5-0.7

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

Page 30: Part B Journal

30

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT EXPLORATION

PERSPECTIVE PLAN ELEVATION

T+PIS:0.5-0.7

Intermsof thetreevobject,thereishardlyanyspawningwithin0.2to0.4anditiseasytohaveaclearviewof itbothin0.5to0.7and0.8to1.Forthepathvobject,aclearviewcanbeseeninboth0.2to0.4and0.8to1.Sotohaveabetterpresentationof bothvobjects,wecankeepbothvobjectin0.8to1.

T+PIS:0.8-1

T+PIS:0.2-0.4

Page 31: Part B Journal

31

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT EXPLORATION

P+I+NIS:0.5-0.7

PERSPECTIVE PLAN ELEVATION

P+I+NIS:0.8-1

In0.8to1,PathandInterestingnessjamstogetherandthewholeviewbecomesmessybecauseof overmuchintersection.Sowemakechangesof thePathvobjectinto0.2to0.4fromlastpagebecauseof thedensityof Interestingnessvobject.

P+I+NIS:0.2-0.4

Page 32: Part B Journal

32

P+I+N+TIS:0.2-0.4

P+I+N+TIS:0.5-0.7

P+I+N+TIS:0.8-1

Weputall4vobjectstogethertotestouttheeffect.0.2to0.4doesnothaveTreevobjectatallsoitonlyprovidesanincompleteview,andin0.8to1everythingjamstogetheranditishardtoview.Overall,0.5to0.7providesrelativelyclearviewof all4vobjects.

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT EXPLORATION

Page 33: Part B Journal

33

After that, we want to combine what we have explored before, to test out how different deadzones in different if statementseffecttheexperienceof parksystem.(Key: i=interestingness, id=interestingness deadzone N=noise, nd=noise deadzone P=path,pd=path deadzone T=tree, td=tree deadzoneIS=if statement) N+IIS:0.2-0.4ND=1ID=1

N+IIS:0.2-0.4ND=3ID=2

N+IIS:0.5-0.7ND=1ID=1

N+IIS:0.5-0.7ND=3ID=2

N+IIS:0.8-1ND=1ID=1

N+IIS:0.8-1ND=3ID=2

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT EXPLORATION

Page 34: Part B Journal

34

N+IIS:0.2-0.4ND=4 ID=1

N+IIS:0.2-0.4ND=5ID=5

N+IIS:0.5-0.7ND=4 ID=1

N+IIS:0.5-0.7ND=5ID=5

N+IIS:0.8-1ND=4 ID=1

N+IIS:0.8-1ND=5ID=5

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

Page 35: Part B Journal

35

T+PIS:0.2-0.4ND=1ID=1

T+PIS:0.2-0.4ND=2ID=3

T+PIS:0.5-0.7ND=1ID=1

T+PIS:0.5-0.7ND=2ID=3

T+PIS:0.8-1ND=1ID=1

T+PIS:0.8-1ND=2ID=3

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

Page 36: Part B Journal

36

T+PIS:0.2-0.4ND=4 ID=2

T+PIS:0.2-0.4ND=5ID=5

T+PIS:0.5-0.7ND=4 ID=2

T+PIS:0.5-0.7ND=5ID=5

T+PIS:0.8-1ND=4 ID=2

T+PIS:0.8-1ND=5ID=5

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

Page 37: Part B Journal

37

Guysss.Unitykeepsgivingoutrederrorsstatingthatthereisaproblemwiththescript.Ihavetried looking at the script but there seems to be noproblem.

Did you change the coding in the script to make sure it matches?

Ohokay!IthinkImighthsvegottenit.Ihaveforgotten to match the numberings with the elementsinthemanagerpage.

OkayIwilltake0.5to0.7forexplorations.

Yup! After getting the number than you will have to divide them each by 255 than sub in to the numbersinthecolourscript.

IF STATMENTS & COLOUR CODE

You need to make sure that ur numbering for theattributematchestheoneinyourmanager.Example if ur if statement is talking about att 1 that att should be the one in the manager stated aselement1.

Ohokay.ThanIwilltaketherange0.8to1.

OhandbeforeIforget.Ihavetakenthevaluesfrom0.2to0.4totestoutontheIf statements.

Justaquickquestion.Howdoweassigncolorsfrom our own colors scheme again?

IthinkyouneedtogetthenumbersfortheRGBvaluesfirst.Youcaneithergoonlinetogetthe numbers or you could just use photoshop to checkcolorvalue.

And dont forgot to add in f if there is a decimal point.

AlrightIgotit.Thanks!

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

Page 38: Part B Journal

N+I+PIS:0.2-0.4ND=1ID=1PD=1

N+I+PIS:0.2-0.4ND=3ID=1PD=3

N+I+PIS:0.2-0.4ND=4 ID=2PD=4

N+I+PIS:0.5-0.7ND=1ID=1PD=1

N+I+PIS:0.5-0.7ND=3ID=1PD=3

N+I+PIS:0.5-0.7ND=4 ID=2PD=4

N+I+PIS:0.8-1ND=1ID=1PD=1

N+I+PIS:0.8-1ND=3ID=1PD=3

N+I+PIS:0.8-1ND=4 ID=2PD=4

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

38

Page 39: Part B Journal

N+I+PIS:0.2-0.4ND=6ID=1PD=4

N+I+PIS:0.2-0.4ND=6ID=6PD=6

N+I+PIS:0.5-0.7ND=6ID=1PD=4

N+I+PIS:0.5-0.7ND=6ID=6PD=6

N+I+PIS:0.8-1ND=6ID=1PD=4

N+I+PIS:0.8-1ND=6ID=6PD=6

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

39

Page 40: Part B Journal

N+I+P+TIS:0.5-0.7ND=1ID=1PD=1TD=1

N+I+P+TIS:0.5-0.7ND=3ID=2PD=4TD=3

N+I+P+TIS:0.2-0.4ND=1ID=1PD=1TD=1

N+I+P+TIS:0.2-0.4ND=3ID=2PD=4TD=3

N+I+P+TIS:0.5-0.7ND=4 ID=2PD=3TD=2

N+I+P+TIS:0.2-0.4ND=4 ID=2PD=3TD=2

N+I+P+TIS:0.8-1ND=1ID=1PD=1TD=1

N+I+P+TIS:0.8-1ND=3ID=2PD=4TD=3

N+I+P+TIS:0.8-1ND=4 ID=2PD=3TD=2

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

40

Page 41: Part B Journal

N+I+P+TIS:0.5-0.7ND=6ID=2PD=4TD=2

N+I+P+TIS:0.5-0.7ND=6ID=6PD=6TD=6

N+I+P+TIS:0.2-0.4ND=6ID=2PD=4TD=2

N+I+P+TIS:0.2-0.4ND=6ID=6PD=6TD=6

N+I+P+TIS:0.8-1ND=6ID=2PD=4TD=2

N+I+P+TIS:0.8-1ND=6ID=6PD=6TD=6

PROTOTYPE SYSTEM EXPLORATION: IF STATEMENT & DEADZONE EXPLORATION

41

Page 42: Part B Journal

PROTOTYPE SYSTEM EXPLORATION: COMPUTATION EXPLORATION

20*8*20 Mesh Reader

25*8*25 Mesh Reader

42

Page 43: Part B Journal

PROTOTYPE SYSTEM EXPLORATION: COMPUTATION EXPLORATION

30*8*30 Mesh Reader

35*8*35 Mesh Reader

43

Page 44: Part B Journal

50*8*50 Mesh Reader

Wealsorunaramtesttoseehowwecanpresentmostof ourgamecontentwithoutruiningthegamingexperi-encebylagging.For20*8*20and25*8*25of themeshreadermycomputerrunssmoothlyat60fpsbutnotad-equatecontentisshown.For30*8*30and35*8*35of themeshreadercomputerrunsat30fpsandoccasionallydropsto15fpsbutthecontentshownisrich.ThenItriedtopushmycomputertothelimitandtried50*8*50of thevoxelmeshreader,anditisbasicallynotplayable,withthefpsbelow10.Afterdiscussionwedecidedtouse35*8*35of thevoxelmeshreader,whichdeliversenoughcontentanddoesnotruinthegamingexperience.

PROTOTYPE SYSTEM EXPLORATION: COMPUTATION EXPLORATION

44

Page 45: Part B Journal

PROTOTYPE SYSTEM EXPLORATION: MECHANICAL HIGHLIGHTS OF THE SYSTEM

THIS SCRIPT REFERS TO THE VOXEL MESH READER. THE MESH READER READS A CUBIC AREA SUR-ROUNDING THE PLAYER. WHENEVER THE PLAYER MOVES, THE VOXEL MESH READER MOVES AS WELL AND CHECK WHETHER TO SPAWN VOXELS OR NOT. THIS IS WHY ALL THE PRESENTATION OF EXPLORATION PRESENTS AS A CUBIC FORM.

THESE SETTING CAN BE SEEN IN THE MESH READER PANEL AS “SET VOXEL READER” X&Y&Z AND CAN BE ALTERED TO CHANGE THE VOXEL MESH PRESEN-TATION SCALE.

PROTOTYPE SYSTEM EXPLORATION: COMPUTATION EXPLORATION

using UnityEngine;using System.Collections;

public class meshReader : MonoBehaviour {

public GameObject voxelMesh;

public static int voxelReaderX; public static int voxelReaderY; public static int voxelReaderZ;

public int setVoxelReaderX; public int setVoxelReaderY; public int setVoxelReaderZ;

public float bubble = 4;

void Awake() { voxelReaderX = setVoxelReaderX / 2; voxelReaderY = setVoxelReaderY; voxelReaderZ = setVoxelReaderZ / 2; }

// Use this for initialization void Start() {

for (float i = -voxelReaderX; i < voxelReaderX; i++) { for (float j = 0; j < voxelReaderY; j++) { for (float k = -voxelReaderZ; k < voxelRead-erZ; k++) { Vector3 pos = new Vector3(i / 2, j / 2, k / 2); Quaternion rot = Quaternion.identi-ty; GameObject newObj = Instantiate(vox-elMesh, pos, rot) as GameObject; newObj.transform.parent = gameOb-ject.transform; } } }

} // Update is called once per frame void Update () { }}

45

Page 46: Part B Journal

46

[D] RESPONSE TO MID-SEMESTER PRESENTATION

Page 47: Part B Journal

47

Page 48: Part B Journal

Above is a set of pictures showing the screen shots we used in these projects, which the bottom onebeingthenewone.Forthis journalwere-doallof ourscreenshotsfromthepreviousprojectduetoseveralreasons.

Firstly, the previous screen shots does not show the complete view of the voxelmesh, since we didnotknowhowtosetthecameradistance.

Wealsohidethecsvmapforthenewscreenshotsbecausewethinkitcangiveaclearerview,similar for the background we change to white background so only the voxels are shown, which ismucheasierforcomparison.

RESPONSE FROM MID SEMESTER: LEGIBILITY IMAGES

48

Page 49: Part B Journal

IF STATE-MENT: 0.2 - 0.4

IF STATE-MENT: 0.5 - 0.7

IF STATE-MENT: 0.8 - 1

This sets of pictures shows the difference between the old and new screen shots. This is the same scenario with different value of if-statement. For the new screen shots we set the location of the camera so that each screen shots were taken at the same spot for better comparison.

BEFORE AFTER

By doing so we found something really interesting is that the ‘Noise’ type of voxels actually increases its amount when the if-statement is lower, completely different from the other type of voxels.

We could have not find this if the location were not the same as shown on the left,as the blue ‘Noise’ voxels changes irregularly, where on the right the purple ‘Noise’ voxels clearly gets more while the if statement decreases.

49

Page 50: Part B Journal

RESPONSE FROM MID SEMESTER: LEGIBILITY IMAGES

Thescreenshotsusedinmidsemesterpresentationarenotlocatedatthesamespot.Becausethespawnspotof the player is at the boundary of the landscape, so we have to control the player to the middle of the map to take screenshot.Soitisveryhardtogotothesamespoteverytimeweplaythegame.Also,themanthird-personcameradesignedforplayerchangesanglewhiletheplayermakesturns.Sothescreenshotspresentindifferentangleaswell.Thismakesaudiencesveryhardtoreadtheimagesandobservewhatischangingintheprocess.

So this time we standardised the camera angle and position, and the player will spawn at the middle of the land-scapewithapespectiveanglesoitismucheasiertotakescreenshotswithoutmovingtheplayer.Forexample,fromthesetwoscreenshotswecaneasilyobservethediffferenceandgrowthof thestructure.

Wealsofoundoutthatsimplyprintingscreenisnot a good enough method to generate screen-shots.Thepicturewillhaveunityinterfaceboundaries and resolution is not high enough to reach the rpesentation standard, and we need to change the camera angle and place for top, elevation view for every screeshot, which isverytime-consuming.Sothistimeweusedabuilt-insoftwarecalled“ÏnstantScreenshot”.Itallowsustotakehighresolutionscreenshotwith a custom size directly from different cam-eras.Soaslongaswehavepespective,top,ele-vation cameras ready to use, we can generate all the screenshots without changing any property of thecamera.

50

Page 51: Part B Journal

51

R u sure part c needs that much of screen shots? The plan and elevation looks quiet similar to part b, cause the scenarios r the same

OhhIsee.Ifinallygotit.Iwasstillabitcon-fusedIthoughtwewouldhavetoputdoubleof the160Imagesbutthisclearsthingsup.Thanks!

you only choose some photos out. That day alex said right. Choose only a selection of photo to compare the new and the old. 160 Images should be in part 2 where they wrote to include images in white background

Sorry but can you give me a more indepth of what should be written in part 3? About the part whereweresponsetomid-sem.

In Part 3 is reponse to midsem. So based on the different comments we got what did we do .

For example like the original problem we had was just to printscreen and crop images out which in negative point of view it is not cleared and might be pixalated

RESPONSE TO MID-SEMESTER

Ithinkwouldbebettertochooseonesetof dead zone and do a comparison to the part b ones on each scenario

Dicuss what did we do to improve the quality of the images. Than give an idea of how it worksLike comparing to other groups what are the difference and difficulty we faced when we were trying to prepare for the Mid-sem Preseanta-tion.

However we started exploring different tools of gettingimagesfromunity.Wewereabletodownload programs to help us get a clearer views

Yup Yup! You got it.

Page 52: Part B Journal

52

[E] EXPRESSION FROM MID-SEMESTER REDIFINING EXPLORATIONS

Page 53: Part B Journal

53

Page 54: Part B Journal

54

The idea here is to be surrounded by voxels which arecreatedbythesite.Thesitesuddenlybecomesaliveinfrontof you.Everycolourandshapesstarts

becomingrealfromthesite.

BEING IN THE WORLD FULL OF VOXELS.

Page 55: Part B Journal

55

Hereisaviewof youwalkinginthesite.YouarecurrentlybeingsurrowndedbyTrees,Paths,Interestingareas[playground]and

alsoareasthatproducesnoise.

Page 56: Part B Journal

56

BROWNSTANDSFORPATHWAYSTHATARECURRENTLYONSITE.

GREENLITERALLYSTANDSFORTREES THAT ARE CURRENTLY

THERE

WHAT DO WE SEE IN THE WORLD FULL OF VOXELS?

Page 57: Part B Journal

57

PURPLESTANDSFORNOISE.WHICHMEANSSOUNDSWASPRODUCEATTHISFEWAREAS

THATISWHYVOXELSARESPAWNING.

LIGHTPURPLESTANDSFORINTERESTING-NESS.THEREISSOMETHINGGOINGONIN

THOSEAREAS.ONEMIGHTBETHEREISAPLAY-GROUNDTHERE.

Page 58: Part B Journal

58

A different colour from all the other voxels sur-rounding it what could it mean? The voxels are being overlapped by Noise and Interestingnessthatiswhyadifferentcolourhasappearforthatspecificvoxels.

SPECIFIC DETAILS THAT WE CAN SPOT?

Page 59: Part B Journal

59

The same ideas as the previous ones this colour is being produce because interestingness is being overlappedbypath.Itcangiveanindicationthatin this path interesting things has happen here before.[Cyclistpassingthrough]

Page 60: Part B Journal

60

Surrounded by trees, Noise and Paths

Surrounded by trees, Paths and a little interesting areas

Page 61: Part B Journal

61

Surrounded by a huge degree of noise and a little Path and Trees

Surrounded by large amount of Paths and Interestingness

Page 62: Part B Journal

62

Gettingtodiscovermoreaboutcolourschemes.UsingthePluginColrwewereabletocomeoutwithavarietyof colourscehemeswhichintroducestheideaof usinggradient.Theideaof theGradientwastochoosetwocolorsanditwilllookslikethecolorswascombinetogether.IwasfairlyimpressasIwasabletoproduceahugevarieationsof gradientcolours.

Forthesefewimages,Ihadjustconstantlychoosetohaveallthedifferentsurfacestohaveacommoncolorgradientandtesteditout.

REDEFINING EXPLORATIONS

Page 63: Part B Journal

63

Page 64: Part B Journal

64

SERIES OF COLOR SCHEME

Page 65: Part B Journal

65

Page 66: Part B Journal

66

SERIES OF COLOR SCHEME

Page 67: Part B Journal

67

Page 68: Part B Journal

68

Gradient=WhiteandPinkGradient = Beige and Purple

NextIdiscoveredthatIcouldplayaroundwiththedifferentsurface.Icouldpickacolourforthefrontandanothercolourfortheback.Andthususingthisconcept,ItriedcombiningafewcoloursthatIoriginallyhaveaboveandtweakalittletoseehowitwouldappear.

COMBINATIONS OF GRADIENT IN A CUBE

Page 69: Part B Journal

69

Gradient = Grey and Orange

Page 70: Part B Journal

70

Page 71: Part B Journal

71

Page 72: Part B Journal

72

VARIETION OF COMBINING COLORS

Page 73: Part B Journal

73

Page 74: Part B Journal

74

[F] NEXT STEP FOR THE REST OF THE SEMSTER AND LEARNING OUTCOMES

Page 75: Part B Journal

75

Page 76: Part B Journal

76

Thefutureof ourprojectdevelopmentwillbeusing“GAMEOFLIFE”asaninspirationforourexplorations.Gameof lifeisacellularautomaton,itisa “game” with zero players, meaning that it is an automatic evolution deter-minedbyitsinitialstate.Orsimply,itisa“game”thatworksonitsown.

Theuniverseof theGameof lifeisaninfinitetwo-dimensionalorthogonalgrid of square cells, each cells follows a certain rules and determine its state baseonit.Baseontheserules[Examples,Boxwillspawnif 3ormoreboxesare together] the pattern that these cells constitute will change its form and as thegamescontinue,thecellswouldcreatefurthergenerations.

BelowisaImageshowingoneof thepatternsthatcontinouslychangeinitsform,basedonthesystemrulesthataresettoit.Asaresult,itstartsmovingalonga2dgridwithoutstopping.

Page 77: Part B Journal

77

The idea of the explorations is to have the players walking around the 2D gridfieldandabletointeractwiththevoxels.Thevoxelswouldbemovingbetween each grid plan view and also section view in which similiar to the

ideafromgameof life.

Page 78: Part B Journal

78

This is our exploration of the idea of the ‘Game of Life’, by dividing the player’splaygroundintothreeseparatelayersof grid.Differentthaningame of life is that it has three layers of the grid and each layer is a grid thatthecellscanmoveon.

Page 79: Part B Journal

79

Now the cells not only can transform in one grid but three of them and movingbetweenthelayers,creatingamorethree-dimensionalmovement.Also each layer can assign different interaction with the player, making the experiencemorediverse.Thisiswhatwethinkourdirectionforthefutureprojectshouldbe.

Page 80: Part B Journal

80

Throughout thewhole journey till now,We have started learning newprogrammesandoneinparticularisUnity.WestartedoutfromknowingnothingaboutUnitytonowwhereweunderstandbasicsof usingUnity.WecancreateIf statementsandunderstandpartsof thecodingandhowitactuallyworks.Wespendalargeamountof timeunderstandingUnityandtheframeworkof theprototypewewereassigntoworkin.

Using the data collected from other groups, we started creating if stat-mentsandrulesforthelandscape.Seedingthelandscapewemanagetogetthesiterepresentedasavirtualreality.Wedonotonlyjustmimicthesite, we also established a connection between the players and the land-scape.Theprototypethatwecreatedhelpenhancetheplayersinteractionandexperinceonthesite.

Using GPS as a tracking tool, Users will be able to download the game anduseitonsite.Thisgameallowsusertoexperienceadifferentworldguidingthemtoareaswheretheycanbetterexperiencethepark.

LEARNING OUTCOMES