Wednesday, September 22, 2010

EXP 2: Week 2: Exploration of Town Hall Station Modifications

As discussed earlier my intention regarding the incorporation of the Town Hall Station prefab within experiment two involves scaling it into a cube which would be large enough to enable someone to be able to move through it. I have begun this transformation by removing particular elements to simply leave the core structural framework. This will allow for me to later develop the space between the various structural members into an environment to enhance and portray my porosity lens.


The image above portrays various elevations of the transformed station, now represented within a cube form. We are able to identify from these elevations the potential spaces which will be able to be created through additional modelling. In particular the Left and Front views, which clearly identify two levels, with the potential for a third below, suspended horizontally from the upright members.

The image above presents a collaboration of various perspective images of the station as well as a few other styles of representation. We are able to further identify the potential spaces through the two close up images as I have began to ensure the distance between the members are going to be large enough for a person to still move through the structure in any direction upon any axis when the structure is rotated.

EXP 2: Week 2: Research Continued...

In considering the manner in which I will present my porosity lens, I have begun to consider the way the station will be incorporated. I have identified the notion earlier that it will be transformed into a cube like form similar to a Rubik’s cube, however I have began to further consider the geometry in terms of the number of layers etc. Below I have identified the various possibilities using Rubik’s cubes as examples.


Upon considering these various designs I am currently leaning towards the simple 3x3x3 cube design, as when I begin to consider including more and more cubes I begin to consider the complexity within Crysis in terms of controlling each individual position. Furthermore my original intention was to create a seamlessly undivided environment which appears to break randomly when rotated. By including more layers this would become more evident due to the break lines between the individual cubes when walking within the space over the surface.

In researching this notion I discovered a rather unique design which used various size cubes together to when formed to present a single cube, but when deformed present a hectic series of interrelating shapes. This takes the form in the ‘Bump Cube’ as presented below.


However upon researching this cube I began to discover many other unique design possibilities which I have presented in the collaboration below. They have made me think of expanding my concept from a simple cube into something of a more complex form to further again enhance the notion of chaos and disorder within the environment. The possibilities are endless...


Image Sources:

1. http://www.calormen.com/TwistyPuzzles/Photos/
2. http://technabob.com/blog/2008/10/14/v-cube-5-6-7-like-rubiks-cubes-on-crank/
3. http://www.geekologie.com/2009/08/sure_why_not_siamese_rubiks_cu.php
4. http://www.worldpics.ro/main.php?g2_itemId=1320
5. http://www.flickr.com/photos/scarygami/4214513596/
6. http://www.helm.lu/gallery2/main.php?g2_itemId=5196
7. http://www.twistypuzzles.com/cgi-bin/puzzle.cgi?pkey=1570
8. http://www.twistypuzzles.com/forum/viewtopic.php?f=15&t=14193
9. http://dvice.com/archives/2008/10/rubiks-mirror-b.php

Monday, September 20, 2010

EXP 2: Week 1: Three Final Flow Graph Nodes


1. Entity:AttachChild -

Reason for Implementation within Experiment Two:

One has chosen to include the ‘Entity:AttachChild’ flow graph node within experiment two due to its potential efficiency in achieving aspects of my overall porosity lens concept. Most importantly, this node, as well as its associated sibling node, ‘Entity:DetachThis’ will allow for me attach and detach various entities within the flow graph simultaneously in order to portray a systematic approach and hence interaction within an environment through the town hall station prefab regarding the protagonist. Through experimentation with this node it is clear that I will be able to achieve this aspect of the experiment through such a node, once further developing and exploring a manner in which to attach entities within a specific location.

Detailed Node Research:
The Entity:AttachChild flow graph node belongs to the Entity family and is most commonly used in association with the ‘Entity:DetachThis’ node to attach and detach entities together within a Crysis environment through the flow graph scripting system. This particular node consists of only inputs, including ‘Boolean’, ‘entity’ and ‘any’ expressions, slightly similar to the DetachThis node which also consists of only inputs without any outputs. We are able to break this node down further to identify the purpose of each input to hence gain a better understanding of its purpose within the flow graph system and its potential implementations within our experiment.

- Entity Id Port : This component defines the entity which will be attached, hence the ‘child’ of a ‘parent’ entity (defined through an ‘Entity:EntityId’ node).

- Attach Port : This component provides the trigger of the attached entity, through such as an input key.

- Child Port : This component provides the entry port to define the child attachment, hence the connection between the ‘parent’ and the ‘child’ entities.

- Keep Transform Port : This component is a Boolean expression which defines whether the child entity will remain in the same transformation within the world space of the environment.

- Disable Physics Port : This component allows one to by force to disable the physics upon a child entity when attaching.

Note: All the above components of the AttachChild entity have no default values.

Source: http://wiki.crymod.com/index.php/FGNode:Entity:AttachChild Accessed: September 16, 2010.

2. Entity:EntityPos –

Reason for Implementation within Experiment Two:

I have decided to implement the Entity: EntityPos flow graph node within experiment two due to its capabilities in achieving the required resultant of my porosity lens. Through initial research I have discovered that this node will be utilised in allowing an entity to rotate upon the player’s movement within the game. Such will allow for one to gain the position of an entity before then using a vector family node to receive and actable upon notion, such as subtracting two positions to rotate the entity. This entity portrays such potential due to the manner in which it has the ability to alter an entities position, rotation or scale while also identifying this information, hence making it an ideal node to be used to the sourcing and rotation of the town hall prefab sections within my porosity lens. Finally it will allow me to generally control the individual cubes with precision and accuracy in terms of world co-ordinates and rotation.

Detailed Node Research:

The flow graph node in the form of ‘Entity:EntityPos’ is part of Entity category, portraying quite a diverse system of entity influences regarding vector movements such as positioning, rotation and scaling. This particular node consists of various inputs and outputs of mainly the ‘vector’ and ‘entity’ expression allowing for such to work in association with the Vector3 category nodes. The node initially contains empty default values, or simply zeroed out vector values such as (0,0,0). To further develop ones understanding of this node, I have researched the nature of each individual input and output component for future implementation reference.

- Entity Id Port : This input defines the entity within the environment which will be altered through the settings defined within the components of this node.


- Pos Port (Input) : This input component refers to the global position of the entity within world space in terms of a vector3 expression.


- Rotate Port (Input) : This input defines the rotational movement of the selected and defined entity in terms of the three rotational axes, with regards to a rotation velocity defined by degrees per second.


- Scale Port¬ (Input) : This input may be used to define a scale extension or subtraction regarding vector3 axes.


- Pos Port (Output) : This output refers to the resultant action define by the position input in terms of a vector or vector modification such as subtraction.


- Rotate Port (Output) : This output defines the rotation resultant of the identified input, with reference to a vector such as multiplication.


- Scale Port (Output) : This output component refers to the resultant vector action of the scale input in terms of an additional influence such as the inversing of the vectors axes.


- Fwd Dir Port : This output within the node allows for the restriction of a defined input with reference to the Y axis in terms of positioning, rotation or scaling.


- Right Dir Port¬¬ : This particular output defines the resultant of an input component with regards to only the X axis.


- Up Dir Port : This output refers to the vector input influence of a component regarding the defined entity within the world space along the Z axis.


Source: http://wiki.crymod.com/index.php/FGNode:Entity:EntityPos Accessed: September 16, 2010.


3. Entity:GetPos -


Reasons for Implementation within Experiment Two:

I have decided to include the ‘Entity:GetPos’ flow graph node within experiment two due to the potential power and ability it will provide me in achieving my porosity lens concept. This particular node will work in conjunction with the other nodes I have selected such as Entity: EntityPos, as I have discussed there, in for example identifying the world position and particular rotation of an entity (perhaps an individual cube) before then comparing it to another to determine whether an action is carried out. Further more such will allow for the completion of such aspects as perhaps determining whether a individual cube or piece of the station is within a position upon a face to determine whether to attach those numerous cubes together into a single face for rotation.

Detailed Node Research:

This particular node belongs to entity family of flow graph nodes and is comprised of various inputs and outputs to determine critical and precise information regarding a particular defined entity. The Entity:GetPos node is interesting due to the manner in which it separates this information into mainly three aspects including Position, Scale, and Rotation, as well as furthers its direction upon the three axis. It is important to note that each output is of a ‘Vector’ nature, allowing for direct use of Vector nodes such as ‘Vec:Mul’ to in this case increase the value or direction. An excellent feature of this node is the manner in which the ‘Get’ input is able to be from any other flow graph output whether it is a Boolean and a simple input.

- Entity Id Port – This entity type input defines the entity which is to be used to hence gather information upon with reference to its direction, position, scale and rotation.

- Get Port – This any type input works as the trigger to define when the node will begin to process the information of the desired and defined entity.

- Pos Port – This output is a vector type, presenting the position of the defined entity within the games world co-ordinates.

- Rotate Port – This vector type output defines and presents the current rotation of the defined entity in terms of an angle upon any axis or combination.

- Scale Port – The scale output is a vector type which determines and conveys the scale of a defined entity within the level with reference to the various axis.

- FwdDir Port – This vector output simply portrays the direction of the defined entity upon specifically the y-axis.

- RightDir Port – This port is a vector type output, defining and conveying the direction and the entity upon specifically the x-axis.

- UpDir Port – This final vector type output defines the direction upon the z-axis of a defined entity to portray it in a manner for another input.

Source: http://wiki.crymod.com/index.php/FGNode:Entity:GetPos Accessed: September 16, 2010.

EXP 2: Week 1: Flow Graph Nodes Research

Within the current preliminary stage of research of Exp 2, I have produced a series of potential flow graph nodes which convey interesting prospects in general and in relation to my preliminary concept. Such a comprisal is outlined below:


1. EntityScreen (Plug-in) -

The ‘EntityScreen’ plug-in provides three additional nodes within the flow graph which allows one to control entities depending on their two dimensional position within the screen, in terms of x and y co-ordinates.
- Entity:EntityScreenPos
- Entity:GetEntityScreenPos
- Entity:EntityScreenText

Potential: This particular node system could potentially allow for rotation control of the various proposed individual cubes within planes through the camera’s view position. Such would allow for the structure to rotate while the responder’s perception remains dependant, allowing the environment to reform interconnecting the perception of the mentally unwell player and responder.


2. Iterators (Plug-in) -

The ‘Iterators’ plug-in includes four additional nodes allowing for the repetition of a flow graph process through numerous entities once originally created and defined.

- Iterator:GetEntitiesInSphere
- Iterator:GetEntitiesInBox
- Iterator:GetEntitiesInArea
- Iterator:GetEntities

Potential: Through this plug-in I identified a potential use within my own flow graphs in achieving my concept with reference to the systematic algorithms. Each algorithm is consisted of simple repeated rotations, which become rather complex within Crysis due to the grouping and un-grouping of the individual cubes into planes. However this plug-in may allow for such general rotation operations to be set as a singular unit, before being iterated when required.


3. Entity: EntityPos -

The ‘Entity:EntitiyPos’ flowgraph node allows for the manipulation of an entity within the environment through the altering of its position, scale or rotation in terms of vectors.

Potential: The potential for this node is immense due to the significance of the rotation feature within the proposed concept. Such a node could allow for the control of numerous individual cubes or a plane through various additional interaction possibilities such as the players position or other entities.


4. Entity: AttachChild -

The ‘Entity:AttachChild’ node allows for the grouping of numerous entities within the environment, while working in association with the ‘Entitiy:DetachThis’ in the un-grouping of entities.

Potential: The significance of this nodes discovery allows for a solution to emerge with regards to the grouping and un-grouping aspect of the numerous individual cubes and hence planes within my experiments proposal. Through the incorporation of this node within the environment I will be able to begin considering the manner in which such a process will occur with regards to inputs, action filters or other interactive opportunities to enhance the overall purpose of the study.


5. Mouse (Plug-in) -

The ‘Mouse’ plug-in is one which is rather simple, conveying the mouses position within the screen as x and y co-ordinates while also identifying particular entities within game mode.

Potential: The potential for the mouse plug-in within my experiment exists within the rotational control of the individual cube planes in terms of controlling either the direction of the player from within the structure or the general rotation from the exterior by adding a mouse button handler, allowing for the responder to interact with the environment, controlling the ‘disorder’ experienced by the player or protagonist.


6. Xml (Plug-in) -

The ‘Xml’ plug-in simply refers to the importing and editing of Xml documents within the flow graph editor to customise nodes, as Xml represents the file format of flow graphs within Crysis.

Potential: Although the potential use of this plug-in is abstract and rather advance it remains to exist in the form of modifying flow graph set ups and nodes to maximise the efficiency within my experiment. With my own limited scripting experience, I feel as though I may be able to produce modifications to achieve aspects of my concept which would otherwise be un-achievable.

7. Entity: DetachThis -

The ‘Entity:DetachThis’ node works in association with the ‘Entity:AttachChild’ node as it allows one to detach an entity which has been attached within the flow graph within the overall Crysis Environment.

Potential: The potential significance of this node is immense as it will allow me to perform the required algorithms within experiment two, due to being able to detach entities which have been previously attached, to hence perform the next stage of the systematic approach. Due to the nature of its inputs one will able to consider the use of Boolean expressions with regards to altering the entities transformation and physics within world space.

8. Movement: RotateEntity -

The ‘Movement:RotateEntity’ node allows for one to define the rotational speed (defined through degrees per second) of an entity upon any axis within Crysis environment.

Potential: This particular node has great potential within my experiment as it may allow for me to rotate my entity planes of cubes while working in association with other nodes such as ‘Entity:AttachChild’. Through the variable options of defining the rotational axis, I will be able to specify in an easy manner the required rotation of each plane in association with the systematic algorithms. This will be enhanced through the ability to specify the rotation velocity within the one node component.

Sources:
- http://fgps.sourceforge.net/Help/plugins.html Accessed September 12, 2010.

EXP 2: Week 1: Environment - Version One

The image above portrays the basic landform of my environment which will be used for experiment two. Such considers the notion of depression in terms of mental illness as the nature of related emotions such as loneliness are conveyed through the general form of small individual islands within the middle of the ocean.

The following image presents a development upon the first image, as textures and vegetation has been included within the environment. Such detail carefully considers the notion portraying emotions of depression as harsh textures have been used in association with limited vegetation to enhance the sense of loneliness within the environment.

The image above conveys the final version of this environmental development for experiment two, as further detail has been included, such as rain. Through such finer details one is able to enhance the emotional mood and nature the responder experiences and considers with regards to the environment. The rain and night setting alludes to a gloomy sense, enhancing the notion of depression in the general sense, alluding to other related emotions such as misery.

EXP 2: Week 1: Preliminary Research & Conceptualisation

Preliminary Concept

With regards a preliminary overall concept for Exp2 with reference to the experimental brief, I have decided to explore a study regarding the interactions of an individual within society who is mentally unwell. Such will exist through the portrayal of their journey within a specific environment which will convey senses of chaos and disorder, allowing the responder to engage in the manner in which a mentally unwell individual perceives and more importantly makes sense of an environment which to the responder is normal.

Ones intentions of presenting this concept within Crysis will utilise the Town Hall Station Prefab as it will be scaled and divided into a single cube and then a series of small cubes, defined by a cubed number such as 27. However the station prefab will be altered, as numerous walkways, ramps and stairs will be included to increase the social fluidity of the structure within its new form. These adjustments will consider such fluidity with reference to the notion of rotating structure, meaning the individual’s journey will be possible dependant of the orientation of each individual cube. The overall preliminary concept will emerge as the town hall structure will be scrambled, similar to Rubik’s cube, creating the required sense of chaos and disorder as discussed above. As the player begins to move throughout the structure, there movement will directly influence the interconnection between the various cubes, rotating entire planes in a manner which will eventually return the structural prefab back to its original form. This will occur through movements which will follow a series of algorithms, to portray the way in which mentally unwell in some cases form systematic approaches to social interactions within an environment.


Research

Achieving Preliminary Concept with Regards to Flow graphs -

With the identification of a general preliminary concept, I found it necessary to research the manner in which I was able to achieve this through the use of numerous flow graphs within Crysis. Firstly I have identified that through the division of the Town Hall Structure into numerous individual cubes, I will need to be able to ‘group’ various individual pieces into a single unit in order for it to rotate as one. However furthermore, they will need to also be able to ‘ungroup’ in order to allow particular individual cubes to ‘regroup’ with others in an alternate plane. This notion is essential in allowing the structure to transform with reference to the algorithms.

Another aspect of the preliminary concept which will need to be addressed within the flow graph regards allowing various ‘grouped’ individual cubes to rotate depending on the location of the player. Hence, as the player moves forward along an axis, that grouped plane will rotate along that same axis. However such a flow graph will need to consider that a quarter rotations must occur and conclude once the player has moved the entire length of the plane. However to address this section in terms of creating a structural fluidity upon numerous levels and angles, it is intended that the entire structure rotates to keep the individual rotating plane at a appropriately level.


Flow Graph General Information:

- Flow graphs provide a simple scripting representation within Crysis Sandbox 2, to allow the individual to achieve interactions through the use of ‘nodes’, hence processors.

- Nodes exist within two sections; Specific, which completes an operation upon an entity, and General, which simply completes tasks such as logic exercises and calculations. Hence a ‘Component Node’ performs a specific task with no relation to specific entity, while a ‘Entity Node’ directly represents entities within the world.

- Through flow graph links a ‘lattice’ of nodes is able to be produced to perform seemingly simple or complex tasks, as information (values or signals) are conveyed, represented through various colours.

Source: Accessed September 11, 2010 -

http://wiki.crymod.com/index.php/Flowgraph_Guide

http://wiki.crymod.com/index.php/Sandbox_FlowGraphEditor

- The ‘Logic:Any node’ is able to be used to clean up your flow graph when it begins to get complex while also allowing you operate sections which are still under constructions that relay upon precise values such as those from Booleans.

Source: Accessed September 11, 2010 -

http://wiki.crymod.com/index.php/Flowgraph_Tips_and_Tricks

- When working with Nodes it is important to understand ‘Ports’ and the significance of the relating information, between Booleans (true or false), Integer (whole number, positive or negative), Float (point value), Vec3 (consisting of three float values, representing vectors) and String (text consisting of characters).

Source: Accessed September 11, 2010 -

http://wiki.crymod.com/index.php/Sandbox_FlowgraphNodeComposition