Tuesday, September 28, 2010

Spawning Fire






This flowgraph doesn't work as I want it to. It spawns fire when you stop moving for 5 seconds but thereafter it spawns every 5 seconds, not only when you stop for 5 seconds.

Saturday, September 25, 2010

Brief For The Porosity Lens

I intend to convey movement and time through space using the triggering of lights. Light is a wavelength which is visible to the human eye and reflects the notion of movement as a recording tool. Optics are used in cameras and communications therefore it seems appropriate to engage light in a project conveying navigation. The project will be dependent on the use of triggers in flowgraphs to enable and disable the lights. Delay nodes will give the power to reflect on the movement which has occurred.

The setting of a scene is important to maximising the effect of the Porosity Lens. I have chosen to implement my experiments in a snow scene for three reasons. Firstly, the falling of snow artistically creates a notion of passing time and of movement. Secondly, fallen snow creates footprints of a persons movement through space. Thirdly, it provides a neutral canvas to display colour to its maximum effect, colour being the visualisation of physics on objects in an environment. The time of day is night time to give the lights maximum visibility. A frozen lake in the centre of the experiment area artistically gives the scene a 'control' as such of 'frozen' or 'static' movement.

I intend to use the given railway station for the majority, if not all, objects that are required in my project. This presents an artistic challenge and allows me to concentrate on creating flowgraphs and experimental areas. By breaking up the railway station, the notion of porosity is taken down to the level of the focus object.



References:
http://en.wikipedia.org/wiki/Light [accessed 26 September 2010]
http://en.wikipedia.org/wiki/Optics [accessed 26 September 2010]
http://en.wikipedia.org/wiki/Colour [accessed 26 September 2010]

S.W.O.T. Analysis

Time:Delay

Strengths - It delays initiation of an action which provides for stronger and more varied manipulation of actions.

Weaknesses - It has only one purpose, that of creating a delay thereby it does not lend itself as such to creativity of use.

Opportunities - It will provide opportunity for analysis and observation of movement by delaying an action, in my intended case by turning on/off lights with a delay in order to observe.

Threats - A delay may not always be the most appropriate node to use when recording certain movement.

Entity:ProximityTrigger

Strengths - It detects when there is movement of a given subject near a given point and triggers an action.

Weaknesses - It may not be the most accurate way to detect movement in a specific space, using an area trigger may be more appropriate.

Opportunities - It allows actions to be set up in response to entering the area, leaving the area and being in side the area.

Threats - Combined with lighting, the calculations may make the movement jumpy particularly when involving muliple triggers close to each other.

AI:AI Execute

Strengths - Sychronises an AI with an object and perform an action.

Weaknesses - It requires an AI Action flowgraph to be used or created to work in conjunction with it to perform an action.

Opportunities - Creates opportunities to link an AI to a multitude of custom actions which involve objects.

Threats - The AI depends on other flowgraphs to enact and if they do not work then this becomes redundant.

AI:GoToSpeedStance

Strengths - Allows an AI to synchronise its position with another object.

Weaknesses - Requires multiple nodes to as such perform an action upon meeting the position of another object.

Opportunities - Allows the AI to move in relation to another object and perform multiple actions upon synchronising with it.

Threats - More complicated and possibly multiple flowgraphs to enable it.

Three Flowgraph Nodes

Time:Delay




The time delay node is the smallest of the nodes I shall be using. I have chosen this node as I intend to use lighting as a means of recording movement. CryEngine2 does not allow for more than 32 lights on at any one time Therefore the lights will need to be turned off when moving to different experimental areas. However, due to the need to record movement, it is useful to have lights turn on then delay their turning off in order to observe the movement which has just passed and also thereby observe the time taken to move through a path.

http://wiki.crymod.com/index.php/Sandbox_ObjectsEntityLights [accessed 26 Sept 2010].

This node is used to delay the transmission of any kind of information or signal.
The information or signal arriving at the “in” input is transmitted to the “out” output only when the “delay” input value (in seconds) is passed. The “delay input is usually manually decided by the user, however it can also be set dynamically. The node isn’t blocked when the first signal arrives, the arriving data is correctly operated continuously even during the delay pause.
Typical uses are the delay of data in order to correctly interact with other data in other nodes, or a simply pause between the triggering of something and the effects.

http://wiki.crymod.com/index.php/Flowgraph_Guide#Time:Delay [accessed 26 September 2010]

Entity:Proximity Trigger




The Entity:ProximityTrigger can be accessed by importing a proximity trigger into the game, Entity-Triggers-ProximityTrigger, then creating a flowgraph from its rollup bar, Flowgraph-Create-Rt Click-Add Selected Entity. The trigger node is a vital tool to record movement as it enables recognition of a player when it is close to a trigger point. This can then be used to trigger events to record the presence of a player, in my case I intend to use lights to record the players presence in an area.

Entity:AreaTrigger


I have added this node as I am not certain yet which trigger will be most appropriate to use. The Entity:AreaTrigger may also be used to record a player's presence in a given area and is accessed in a similar fashion using Entity-Triggers-TriggerArea. This is a similar trigger and I will attempt to utilise both inorder to ascertain which node is more appropriate in different situations.

AI:AIExecute


The AI:AIExecute node will enable me to manipulate an AI/third person to perform an action. This can be in the form of making the person move to a point/object, follow the player, follow a path and so forth as well as perform animations such as yawning, sitting down. I intend to use this tool to record the movement of third party people.

AI:AIGotoSpeedStance

I have added this node as a fourth node as the AI:Execute node is interdependent upon this node for the movement of an AI in synchronisation with an object.

Sunday, September 19, 2010

Lights

I spent a long time researching light tutorials but the only ones I could find used switches. Russell Lowe showed me how to use trigger areas and proximity triggers to enable the lights. This was extremely helpful as learning this skill has completely opened up my mind and ability to a whole array of possibilities. This flowgraph has a time delay on it so that the lights turn off after a period of time after leaving the trigger area.





This is a shot of some chinese lanterns I put in the environment. They are hanging from the railway framework. At the moment they are not interactive, but I intend to work on them ...

The environment with no lights on ... I have constructed a 'sculpture' using railway parts and changed the material to glass. The pieces are reaching up into the sky and appear like rays of light yet they cast striking shadows on the snow.

The developing environment ...

Some of the lights on ... they appear too bright, but they are better with a greater intensity when running around it ... perhaps some fine tuning required to create the right balance.

Light effects on the sculpture ...





Setting these lights up has taken many hours surprisingly. The trigger points are quite finickity and it was hard to get it so that when the player runs through the railway pieces (which I have given a glass material) the lights trigger on as one leaves a light colour ...







After the player leaves the trigger area, the lights have a delay switch on them so they do not switch off immediately. They are currently set at 60 seconds to give the player time to run through the sculpture and then stand back and watch them turn off.






Squad Follows The Player

Left flowgraph - On start AI follows the player, 2 players in front, 1 behind at set distances.
Right flowgraph - On input of 'p' key stop 2 of the AIs following the player.

The Animation - Squad Follows Player

On start three people follow the player. They are given a follow area to follow within and two follow paths which they can switch between depending on which they are closer too. The followers have each been set to follow at different distances from the player, 8, 6 and -6. However, the follow area does not seem to work and they will actually follow the player outside the follow area. They do seem to show some preference to the two paths I set which run under the station framework.


I have added the stop follow command using the input key 'p', to demonstrate this I only switched off two of the followers and allowed the other to continue following.

Saturday, September 18, 2010

AI Moves Towards Object And Performs An Action

Connect AI and Object to the 'Move AI Towards Object' Flowgraph
Move AI Towards Object And Perform Action

The Animation -
On start, a person moves to a given target point and then performs an action, in this example he sits on the ground.

Research

Information on flowgraphs can be found here
To make a frozen environment click here

A link to some sample flowgraphs in Crymod can be found here. There are quite a few examples of flowgraphs here but nothing directly to do with lighting and triggers.


Custom AI Actions Tutorial

This tutorial shows how to make a custom AI action and make the AI move towards a tag point.
http://www.veoh.com/search/videos/q/sandbox/offset/40/searchId/9e96e75bb22461d76d60e24aa9dd1b70 [accessed 18 Sept 2010]

Nodes Used:

To Trigger AI to impliment flowgraph ...
Start - Implements action on start.- At start of game AI is engaged
Entity: EntityId - Attaches the Id of an object which the AI acts on, in this case a tag point.
AI Execute - Initiates AI to perform an action, in this case move towards the object/tag point. AI and Object to the move AI towards object script

Move AI To Tag Position and do an Action ...
AI Action Start - Initiates the start and connects to AI and tag object.
Entity: EntityPos - Collects tag object position and connects to AI position.
AI:AIGotoSpeedStance - Synchronises tag and AI positions.
AI: AIAnim - Once positions are synchronised then AI performs an action at that position.
AI:ActionEnd - If the AI succeeds then flowgraph is ended, if AI doesn't then flowgraph is cancelled, presumably prevents and indefinate loop.


Squad Follows Player Tutorial

This tutorial shows how to make a squad of several AIs follow the player.
http://www.veoh.com/search/videos/q/sandbox+squad+follows+player [accessed 18 Sept 2010]

Nodes Used:

To Make Squad Follow Player ...
Start - Implements action on start.
AI: AIExecute - Initiates AI followers to start following at set distances.

To Make Squad Members Stop Following Player ...
Input: Key - Initiate action on input of chosen key 'p'.
AI: AIExecute - Initiates AI followers to stop following the player.

Light Switches Tutorials

This video shows how to turn a light on using a light switch. The sound quality is poor.
http://www.veoh.com/search/videos/q/sandbox+light [accessed 19 Sept 2010]

This is a better quality video on how to make a light turn on using a light switch.
http://www.youtube.com/watch?v=vO5gOBoue7Y [accessed 20 Sept 2010]

This gives detailed information on Light Entities and the rollup bar for their manipulation.
http://wiki.crymod.com/index.php/Sandbox_ObjectsEntityLights [accessed 26 Sept 2010]

Russell Lowe Tutorial [performed 21 Sept 2010]

Nodes Used:

To Turn Light On/Off Using Proximity Trigger ...
Start - Implements action on start.
entity:ProximityTrigger - Enables an action on entering/leaving/inside the proximity trigger.
entity:SimpleLight - Activates/deactivates and enables/disables light.
time delay - Allows for a time delay to input between the trigger and the light.

To Turn Light On/Off Using Area Trigger ...
Start - Implements action on start.
entity:AreaTrigger - Enables an action on entering/leaving/inside the proximity trigger.
entity:SimpleLight - Activates/deactivates and enables/disables light.
time delay - Allows for a time delay to input between the trigger and the light.

Time:Delay Node
This node is used to delay the transmission of any kind of information or signal.The information or signal arriving at the “in” input is transmitted to the “out” output only when the “delay” input value (in seconds) is passed. The “delay input is usually manually decided by the user, however it can also be set dynamically. The node isn’t blocked when the first signal arrives, the arriving data is correctly operated continuously even during the delay pause.Typical uses are the delay of data in order to correctly interact with other data in other nodes, or a simply pause between the triggering of something and the effects.
http://wiki.crymod.com/index.php/Flowgraph_Guide#Time:Delay [accessed 26 September 2010]

AI:AIExecute Node

Name: AIExecute
Class: AI
Category: Approved
Hidden: No
Function: Executes an AI Action

Inputs
entityId Port
Type: Entity
Technical Name: entityId
Default Value: 0
Changes the attached entity dynamically
Sync Port
Type: Any
Technical Name: sink
Default Value: None
for synchronization only
Cancel Port
Type: Any
Technical Name: cancel
Default Value: None
cancels execution
ObjectId Port
Type: Entity
Technical Name: objectId
Default Value: 0
Entity ID of the object on which the agent should execute AI Action
Action Port
Type: String
Technical Name: soaction_action
Default Value: Not specified
AI action to be executed
MaxAlertness Port
Type: Integer
Technical Name: maxAlertness
Default Value: 2
maximum alertness which allows execution (0, 1 or 2)
HighPriority Port
Type: Boolean
Technical Name: HighPriority
Default Value: 1
action priority - use to force the action to be finished (except if alertness get higher)

Outputs
done Port
Type: Entity
Technical Name: done
Default Value: None
action done
succeed Port
Type: Entity
Technical Name: succeed
Default Value: None
action done successfully
fail Port
Type: Entity
Technical Name: fail
Default Value: None
action failed

http://wiki.crymod.com/index.php/FGNode:AI:AIExecute [accessed 26 September 2010]

Entity:Proximity Trigger

Name: ProximityTrigger
Class: entity
Category: Approved
Hidden: Yes
Function: Creates a trigger when player is close.

Inputs
entityId Port
Type: Entity
Technical Name: entityId
Default Value: 0
Changes the attached entity dynamically
Disable Port
Type: Boolean
Technical Name: Disable
Default Value: 0
Disables the trigger
Enable Port
Type: Boolean
Technical Name: Enable
Default Value: 0
Enables the trigger
Enter Port
Type: Boolean
Technical Name: Enter
Default Value: 0
On entering the proximity trigger
Leave Port
Type: Boolean
Technical Name: Leave
Default Value: 0
On leaving the proximity trigger

Outputs
Disable Port

Type: Boolean
Technical Name: Disable
Default Value: None
Disable
Enable Port
Type: Boolean
Technical Name: Enable
Default Value: None
Enable
Enter Port
Type: Boolean
Technical Name: Enter
Default Value: None
On entering the proximity trigger
IsInside Port
Type: Boolean
Technical Name: IsInside
Default Value: None
Whilst inside the proximity trigger
Leave Port
Type: Boolean
Technical Name: Leave
Default Value: None
On leaving the proximity trigger
Sender Port
Type: Entity
Technical Name: Sender
Default Value: None
Sender

http://wiki.crymod.com/index.php/FGNode:Entity:ProximityTrigger [accessed 26 September 2010]

Other Interesting Tutorials For Reference

How To Make a 1:1 scale real map using Google Earth
Part 1 : Reference Images
Part 2 : Stitching Images Together
Part 3 : Importing Images
Part 4 : Modelling Oceans
Part 5 : Texturing Oceans
Part 6 : Mountains
Part 7 : Texturing Terrain
http://www.veoh.com/search/videos/q/sandbox

Friday, September 17, 2010

Crysis Environment

Falling Snow (movement) ...

Trees (static benchmark) and shadows (passing of time) ...

Frozen Lake (central point) ...



He has trouble running in the snow ....

Footsteps in the snow temporarily track movement...


Reference For Creating A Snow Scene

Friday, September 10, 2010

Experiment 2 - Porosity Lens

"In Simple Terms a Porosity Lens is a way to understand people's navigation through an environment"




"Safari" by Stuart Williams, Milibangalala, Mozambique



http://peaceoptions.com/images/footsteps-in-snow-opt.jpg [accessed 17 Sept 2010]




"A key aspect is that it takes into account how long people spend at certain places."
Russell Lowe http://www.russelllowe.com/benv2423_2010/experiment2/reference/week_02.html [accessed 17 Sept 2010]

http://www.learner.org/courses/essential/physicalsci/images/s4.ice_melt2.jpg

[accessed 17 Sept 2010]