Tuesday, November 2, 2010

Final Tutorial

Tutorial References

This tutorial was probably the best existing one I found dealing with AI paths. It proved extremely helpful in starting me down the road towards being able to create interactions between AI and proximity triggers.

http://www.gd-experience.eu/index.php?section=2&category=7&offset=4

Tutorial Brief

I have decided to focus my tutorial on how to make AI characters within Sandbox 2 activate events through proximity triggers. The tutorial will therefore show how to set up a character to move along a designated path, how to set a proximity trigger to activate an event, and how to get the AI and trigger to recognise each other. These methods are not particularly difficult (basically at a beginner's level), but are essential, as once they are mastered they open up doors to so much more in Sandbox 2. With these skills learned, one is transformed from the casual Sandbox user to someone who can actually begin to create some seriously interesting and entertaining game features. Therefore this tutorial will definitely elevate a viewer's understanding beyond the typical user.

I have chosen this topic for a couple of reasons. Firstly, these techniques proved invaluable to me during experiment 2, and what I achieved in my porosity lens can be largely attributed to them. I was surprised at the ease with which some very interesting events could be created with just a small bit of fundamental knowledge, and therefore I think it is appropriate to produce a clear, easy to follow tutorial outlining this information. My second reason builds out of the first - the fact that there are surprisingly few good tutorials on these subjects out there, and in the case of how to set the proximity trigger to respond to an AI character, there is absolutely nothing. While researching for experiment 2, I searched long and hard for a solution to this problem only to come up with nothing. I eventually worked out how to do it, and it's really very simple, but I feel the need to put the information out there in order to save other people the time it took me to figure it out.

Final Porosity Lens Video

Crysis Files

http://www.filefront.com/17477736/upload.zip

Sketchup Model

http://sketchup.google.com/3dwarehouse/details?mid=c44c3672ab902f054d7ce03fe95cb758&result=4

Feedback Sheets

Explorations

As discussed in lecture 10 (Envisioning Information), colour is a powerful and versatile tool when it comes to representing information. It can be used to measure, to decorate, to label or to imitate reality. In my porosity lens, I will be using colour in most of these ways. Different colours will be used to represent different people, and to make it clear how many people are active simultaneously. At the same time these colours will work to create exciting visuals.

1st Draft

Here is a short video combining a few different shots of my lights in action - a way for me to both re-familiarise myself with Sony Vegas and play around with a few ideas.

Combining AI with Proximity Triggers

Here is a quick video of my first test of getting an AI character to set off a series of lights. It took me quite a while to actually figure out how to get the AI to interact with the proximity trigger, but it turned out to be something pretty simple!

Developing Sketch Installation

I have combined some of the tracks and part of the frame from the provided station with my own sketchup models to create a train station with four tracks, three platforms and a terminal. My lens will now be able to measure which platform receives the most human traffic, as well as which part of the terminal is most frequently populated.







Porosity Lens Brief

Using the provided station and my own custom models, I will construct a simple simulation of a train station complete with buildings, roads, and public meeting points. As stated in the brief, the aim of the porosity lens is to "understand people's navigation through an environment". Using the nodes previously researched as a starting point, my porosity lens will seek to address this point by examining firstly how people move through an area, and secondly how many people visit one area or another over a period of time. I will achieve this by using the power of lighting as a visual aid.

My lens will use two different forms of lighting representation. The first will be multiple trails of lights to record human activity in an area, thus demonstrating both how people are moving and where the greatest concentration of activity is. The second will involve gradations of brightness to indicate where the most activity has taken place. To achieve the first effect, multiple AI characters will be deployed throughout the station, and their paths will be recorded using proximity triggers to switch on small lights of varying colours. These lights will remain glowing for a certain amount of time after the characters have passed through them so that a clear path can be discerned.

The second representation will be achieved similarly, but instead of delaying the switching off of the lights, they will remain on once triggered, with new lights being added over the top as more people pass through the area over time. In this way, the areas of the station that received the most human traffic will glow the brightest.

Videos Demonstrating Mastery of Nodes

Entity: Proximity Trigger -

This video shows me using a series of proximity triggers to set off a sequential chain of lights. I have also posted the flow graph of this.





Time:Delay -

In this video I pass through a chain off proximity triggers attached to light switches. I have altered the time it takes each light to turn off after I pass through it, so that the first light I activate is actually the last light to turn off, and the last light I activate is the first to turn off.





AI:FollowPathSpeedStance -

The video below shows the node after it has been used to assign an AI character to a designated path. The video also shows the character in both a relaxed walk and an alert run. The flowgraph is also below.




Three Nodes SWOT Analysis

Entity:Proximity Trigger -

Strengths:

Easy to use and versatile - can be used to create an extensive variety of effects.

Weaknesses:

A character needs to physically walk through a proximity trigger - remote activation is not an option, which can be limiting.

Opportunities:

This node can be used for many things, including turning on lights and opening doors. The ability to activate an event simply by passing through a designated area is quite powerful, and will be perfect for my intentions of representing movement through visual effects.

Threats:

Care must be taken when setting proximity triggers, especially when you have multiple triggers in the same area, as you do not want the player or other characters accidentally triggering the wrong events.

AI:FollowPathSpeedStance -

Strengths:

Excellent tool for controlling the movement of AI characters. It is relatively easy to use, and can also be used to manipulate the alertness of the character, as well as his speed of travel. With these options, this node makes it easy to produce mobile enemies, or direct characters to perform other tasks to suit your purposes.

Weaknesses:

The node is only applicable when used in conjunction with an AI path, which can be limited in terms of movement. It is also only really suitable for moving an AI character from one spot to another, and therefore as a stand alone node, there are only so many things you can use it for.

Opportunities:

As stated above, this node is perfect for moving AI characters along a path, and therefore it opens up a whole raft of opportunities to create events or effects that build upon the movement of AI. A few possibilities could include patrolling enemies, AI characters turning on lights or opening doors, and enemies taking cover.

Threats:

The actual flow graph scripting for this node can get very complicated once you move beyond the basics, and the Sandbox editor has a few obscure features that can cause problems for generating AI navigation if you don't know what you are doing (for example, small boxes that need to be checked or unchecked that can frustratingly cause your AI to be completely unresponsive).

Time:Delay -

Strengths:

A very simple node that is nevertheless very useful in certain situations, with the ability to delay an event either finishing or beginning.

Weaknesses:

The node is not very useful as a stand alone tool, and is limited to dealing with the timing of certain events. It therefore has a very specialised role, that is perfect in some circumstances but useless in others.

Opportunities:

Time:Delay creates many opportunities within Sandbox 2. Attached to a proximity trigger, it can be used to delay the event that trigger is associated with. For example, a light may take a designated amount of time to turn on once activated, or a door might wait several seconds to close after being opened. Similarly, an AI character could be programmed to delay a certain action.

Threats:

As stated above, Time:Delay is very limited in what it can do, and may have no use.

Thursday, September 9, 2010

EXP 2 - Three Nodes Research

The three nodes I have chosen to research are:

Entity:Proximity Trigger

AI:FollowPathSpeedStance

Time:Delay

These of course will not be the only nodes used in my porosity lens, however I chose to focus on these three as they are the most integral and fundamental to what I hope to achieve.

Entity:Proximity Trigger -

This node acts as a switch, activating a specified event when a character enters its range. This is a very powerful node, with limitless possibilities, and it can easily be combined with other nodes to enhance its effects. Some examples of its uses include triggering hud effects such as blood splatters and frost, turning lights on and off, and opening doors.

Here is what it looks like in a flowgraph:


Here is a description of each of the node's properties, courtesy of Crymod Wiki (http://wiki.crymod.com/index.php/Sandbox_ObjectsEntityTriggers#Proximity_Trigger):


ActivateWithUseButton:

Specifies if the trigger is activated by pressing use

DimX:

Specifies how big the trigger is (x-axis)

DimY:

Specifies how big the trigger is (y-axis)

DimZ:

Specifies how big the trigger is (z-axis)

Enabled:

Specifies if the trigger can be activated or not.

EnterDelay:

Sets up a delay (in seconds) before the enter node of the trigger is activated.

ExitDelay:

Sets up a delay (in seconds) before the exit node of the trigger is activated.

InvehicleOnly:

Sets up that the trigger can only be activated when player is inside vehicle.

KillOnTrigger:

Disables the trigger when it has been activated.

OnlyAI:

Sets the trigger to be only triggerable by AI entities.

OnlyMyPlayer:

Sets the trigger to be only triggerable by the my player entity.

OnlyOneEntity:

Sets the trigger to be only triggerable by one entity (first one who triggers it has to leave it in order to be triggerable again)

OnlyPlayer:

Sets the trigger to be only triggerable by player entities.

OnlySelectedEntity:

Sets the trigger to be only triggerable by the entity with the name specified in this field.

OnlySpecialAI:

Sets the trigger to be only triggerable by the special AI entities.

PlaySequence:

Plays the trackview sequence with the name specified in here.

ReferenceName:

Here a reference name for the trigger can be entered.

ScriptCommand:

Executes a script command when the trigger has been activated

TextInstruction:

Prints a text on the hud when the trigger has been activated.

TriggerOnce:

Disables the trigger after it has been triggered once.


Here is a page from Crymod Wiki that demonstrates a few uses of the proximity trigger regarding image nodes. The triggers are used to enable and disable effects such as rain drops, frost, blood splatters and filter blur:

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

Lights will feature heavily in my porosity lens, and I will most definitely use proximity triggers in conjunction with them. Here is a tutorial on youtube showing how to use triggers to turn lights on and off:

http://www.youtube.com/watch?v=vO5gOBoue7Y

Here is a video of my first attempt at a light switch. There are two lights, and a 10 second delay is attached, meaning the lights stay on for that amount of time after the trigger has been enabled:




Here is the flowgraph for that trigger:


AI:FollowPathSpeedStance -

There wasn't that much information on this node out there, but basically it is pivotal in controlling AI characters. It is used to link an AI character to a designated path for it to follow, and can also be used to set the speed and alertness with which that character travels. The node is easy to use, and is obviously a vital and useful tool, particularly when you want to send different characters to different locations at once, or have them perform different tasks. Here is what it looks like in a flowgraph:


Here are a couple of tutorials that deal with setting up AI characters to patrol between points. The first one also deals with random selection of routes by AI, something that I might find particularly useful for my experiment:


http://www.moddb.com/groups/cryengine-2-developers/tutorials/cryengine-flowgraph-tutorial

http://www.gd-experience.eu/index.php?section=2&category=7&offset=4

Time:Delay -

This node is useful for extending the duration of a particular effect for a specific amount of time. As I will be using lighting to track movement, this could be particularly useful for my purposes. Delaying the fading of particular lights will allow for the paths of certain units to remain highlighted. Here it is in a flowgraph:


The potential of this node regarding lights can be seen in my light switch video above.

Sunday, August 29, 2010

Filefront Files

http://www.filefront.com/17246153/Crysis Files.zip

To move platforms:
Start platform 1: "p"
Start platform 2: "o"

Sketchup Model

http://sketchup.google.com/3dwarehouse/details?mid=b4dd52d8a8d1f51c4d7ce03fe95cb758&result=4

Final Machinima

Marking Schedules


Mode For Final Machinima

For my final submission, I will predominantly be using the observational mode of documentary. I am performing an experiment, and to achieve an accurate and plausible outcome, my documentary must remain objective. Therefore, there will be no interaction between myself and the events captured and limited narration, simply raw footage and some appropriate music. This will allow the events captured to speak for themelves, and while I will comment on the success or failure of the experiment in my opinion, viewers will be able to form their own conclusions. Furthermore, the observational mode will allow my clip to focus on visual impact, rather than other elements such as argumentative logic and poetical manipulation which, for the purposes of my machinima, are unnecessary.

Sony Vegas Trial - Observational Mode




Here is a rough video linking together a shot of my moving platforms and ramps, with a shot of one of my explosions. Through this clip I became more familiar with some of Vegas's features, such as transitions, soundtracks, speed settings and reverse. Apologies for the hud features that remain in this clip, they will be gone in my final submission.
This clip to me features predominantly elements of the observational mode of documentary. There is no interaction between film-maker and environment, with the camera remaining unobtrusive and unbiased, and simply letting events unfold.

Final Ramps/Platforms

Saturday, August 28, 2010

Explosion Trial 2

Here I have used the same three walls, and the same barrels, but have spaced the barrels further apart. Comparing this to trial 1, you can see there is a marked decrease in the force generated by the explosion, with the green wall this time remaining in tact.




Explosion Trial 1

Here I have three walls set up, and have grouped explosive barrels tightly together. I have slowed time for added effect.




Experimenting With Explosions - My Method


As stated in my hypothesis, I am seeking to prove that the lower the porosity of a group of objects, the more force they will generate if blown up. To test this theory, I will detonate groups of objects, where the objects within each group are spaced at differing intervals from eachother. So in one detonation, the objects will be tightly clustered together, and in successive detonations, they will be spaced wider and wider apart.
To test the force generated by each explosion, I will set up colour coded walls of cubes at measured intervals along the edge of the train station. The stronger the blast, the more walls will be knocked over.

Development of Ramps and Platforms







Trackview Test

Rope Test

It's wakeboarding, but behind a truck...


Thursday, August 26, 2010

Test Model With Ramps/Platforms






Hypothesis

The closer together a group of objects is spaced, the lower the porosity of this group of objects. Conversely, if a group of objects is more spaced out, their porosity as a whole has increased. Taking this statement to be true, if these objects were interacted on by an explosion, the force of the explosion would be greater in the group with a lower level of porosity.