Friday, November 5, 2010

ResearchTutorial - Custom Crysis Content

I struggled to implement mods and downloaded content, so I have made a short tutorial on preparing new content for Crysis, as well as instructions on how to install, manage and run with Crysis Launcher and Windows. Higher resolution will make the image clearer to see, but I used a small capture area with AutoPan to make sure you can always see what is happening at the mouse cursor, and the annotations describe what is happening in lieu of a voiceover which can contain misleading commentary or be distracting.

Much of the resources online or prepackaged mods assume this as common knowledge, and often the installation instructions are very succinct and can be confusing to those unfamiliar with modding. This tutorial guides through every step in the most user friendly course of action, identifying programs such as WinRar and Crysis Launcher, as well as where to download them, and how they are used to get from forum to function. The comments on the video detail the key annotations, providing a constant slate for reference when viewed on YouTube.

Final Video


YouTube were being Fascists, so it's uploaded to Vimeo as well,
and if all else fails, download it yourself from filefront here.




Porosity Lens Brief
Neon Porosity is the exploration of motion and interaction through the graphical medium of illumination and colour. The environment of a porosity lens can be integrated into the display of data itself, however to serve as a contrast for the distinctive neon colours, I decided to keep everything as low key as possible, serving only to filter the neon streams by hiding them from view. This was achieved by using very simple models, setting the Time Of Day to custom sky colour and HDR amplification. These were simple modifications that allowed the scene to be far more interesting, with less being more in this case.

The neon streams are spawned every half second at the base of the AI character as custom particles (modified versions of duplicated particle effects), the glow parameter of the particle allows it to engage with the environment, and it is through the porosity lens itself that the train station containing the modified Portal Frames is revealed.  The previous concept of artificial gravitational systems through rotation was abandoned because of the inability to attach spawned particles to the universe core, and the inability to edit the colour of lights once spawned. Both these have been identified as known gaps in the CryEngine.

To conclude, Neon Porosity shows the interaction and navigation of AI through the environment, be it their individuality, their community, their communication,  or destination. The data can be analysed after movement, and the lens responds to the amount of time spent in a location.

Wednesday, November 3, 2010

Porosity Lens Demonstration


This additive Porosity lens is combined with the 3D maze rotating in space. I had to keep the normals facing away from the camera, so it looks a little bit  odd. There is a custom skybox as well, but you can't see it. 

This Perspective of the 3D grid used to construct the maze shows where the density of geometry lies, and with the structure of the maze itself, any entity inside the maze is eventually trapped in the corner, before being tossed onto the new horizontal plane by the rotation. The spawned particles remain in absolute space, and show that despite apparent progression of the player through the maze, they are still occupying the same position in space. 

Monday, November 1, 2010

Porosity Through Illumination

In this demonstration, the player can move between or around a pair of nodes, with each adjacent position illuminating when in transit between them, showing the connection between two points. The flowgraph dynamically inputs the required entity IDs through the Flow Graph Plug In System Iterator.

Examples of Digital Porosity Lenses

Additive Porosity Lenses
An additive porosity lens tracks input by creating elements to represent the data. In the above video, the LightCycles from Tron leave behind a glowing barrier that interacts with the environment. This is an interesting aspect, however after discussion with tutors, having the lens become the environment itself rather than a responsive environment was rejected. 

Subtractive Porosity Lenses


These lenses remove something from the environment or lens, showing where porosity flows are not present. In pacman, the white dots are removed from the display, showing parts of the maze left unexplored. Both types of lenses are suitable for this assignment, and it is difficult to work out which to pursue. Perhaps Both. 

Friday, October 29, 2010

Flow Graph Mastery

Movement:RotateEntityTo


The RotateEntityTo node is simple, but incredibly useful. It can be used to establish complicated, infintely iterative movements, and is useful for aligning objects or dynamically animating an environment. The Flow Graph below demonstrates the looping rotation about 2 axes as shown in the second half of the clip.

The Logic:Any is used to loop the Flow Graph, and the Vec3:Add is used to adjust the objects rotation by 90 degrees every time the rotate nodes are called by referring to an Entity:GetPos node to calculate the vector to rotate to.


SWAT Analysis
Strength
The node creates simple movements and rotations, and can be looped to create sequences without the need for animation. The simplicity allows it to be integrated into existing flowgraphs with ease.

Weakness
The node performs its own calculations as to how to rotate to the required vector, making it unpredictable at times, and is incapable of performing full rotations without lopping increments.

Application (Opportunities)
This controls the artificial environment in which the porosity lens is recorded. It allows the fabrication of gravity shifts and creates a dynamic, moving entity to inhabit and explore with the porosity lens.

Threats
Collisions and Physics are not updated on the player while they are stationary, meaning the entity will move through the player if they are not moving. This was fixed by the final mastery, Physics:ActionImpulse, an excellent solution to collision problems. 


Entity:Spawn / Effects:SpawnParticleEffect
One of the keys to an additive porosity lens is the creation of markers at regular time intervals. This is best achieved by either the Spawn:Entity FlowGraph Plug In node, or the Effects:SpawnParticleEntity default node. The Timer triggers the spawning at the specific rate, and the players current position is returned and input into the location to spawn the particle or entity. 

SWAT Analysis
Strength
The Porosity Lens is created through the spawning of entities, whilst simple it is easy to implement and the results can be rewarding. 

Weakness
Controlling the particles after they are spawned is not possible. Controlling the entities after they have spawned is very difficult. Manipulating the orientation of spawned entities requires much calculation. 

Application (Opportunities)
To track where players move and graphically represent their location over time. This creates the data of the porosity lens, and displays it in real time.

Threats
Different particle effects have different properties, and it is difficult to control them. Creating lights can cause framerate loss and limitations of the rendering engine come into play. 


Physics:ActionImpulse
This is my solution for Collision problems inside a rotating Entity. As some problems exist with the other solutions available on the forums (the entity is a GeomEntity and collisions still fail), I implemented my own Flow Graph to counteract the problem. This manually updates the physics on the player by applying a force to the LocalPlayer Entity 50 times per second (roughly once per frame). It is possible to set the period of the time to increase the update speed, but this can drain performance. I found that 50 times per second is sufficient to smoothly navigate without causing issues.


SWAT Analysis


Strength
By updating the physics manually, the collisions have been tweaked to work within the artificial environment created by the rotating GeomEntity. Again, it is a simple solution that works extremely well. It can also be applied to AI, or the GeomEntity itself, however it is preferable to use the LocalPlayer.

Weakness
There is a slight drain on performance when many physics actions are occurring, as it requires recalculation of the players collision mesh every frame. 

Application (Opportunities)
To prevent the failure of collisions inside the GeomEntity. This is vital to the navigation of the environment. 

Threats
Slight decline in performance and frame rate due to increased physics calculation. This is necessary, but needs to be considered when composing the remainder of the environment. 


Wednesday, October 27, 2010

Draft Installation



A Three Dimensional Maze, with single facing normals so it can be recorded from outside in 3rd person. The Maze currently rotates on the Y axis only, but as you can see from Mastery:RotateEntityTo, it is possible to make this movement more advanced.