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. 

Wednesday, October 20, 2010

Experiment Two: Porosity Lens


Crysis makes explosions. It makes them well. Porosity Lenses, however, don't seem to be under any of the menus. So I started this assignment by thinking of what useful elements already existed in Crysis, and how I could build upon them. I immediately though the footprints your character makes in the sand when they walked, and this concept was reinforced by a video I saw online of a modification that made the ground glow where you stood. After a little bit of looking around, I saw that the ripple effects when you walked through shallow water were excellent examples of simple porosity lenses.


Monday, August 30, 2010

Porosity!

Final Porosity Machinima
Double-Click for Full Screen 



You can download the uncompressed wmv file here.

Saturday, August 28, 2010

Porosity Hypothesis

Porosity can be destroyed or created by explosions.

To better demonstrate the gas/liquid qualities of porous environments, gravity has reduced to allow the free motion of particles and elements such as in a liquid suspension or lighter than air gas.The hypothesis is that explosions can reveal a porous structure from a non porous environment, or disrupt the porous nature of a structure.



This way, the explosions are unimpared by the Crysis gravity and entities collide in a much more interesting manner. With some changes to the envionment settings and water volume shader, it should be possible to include some of the ocean in the final product.

Friday, August 27, 2010

Porosity in Crysis


To better explore the notion of Porosity, I've tried to implement the ocean into the structure more effectively. The video below is a higher resolution (640 x 480), but it is a large file. Hopefully compression will fix this for later videos.


Monday, August 23, 2010

Imported Objects and Ramps

A simple enough ramp to go through lattice, the design is largely curvilinear, emphasising the smooth motion that will hopefully reflect the flow around the structure.


And on a side note, some interesting captures from working with the boolean objects from last week. I really like how these objects work with the theme of Porosity, and the explosion definately has recordable results. The only problem I have is trying to get my files small enough without making them unviewable when I upload.

Friday, August 20, 2010

Setting up Explosives on a floating Structure

 One of the entites created for augmenting the structure was this Boolean object, formed by the subtraction of a sphere from a cube. The cube made them easy to stack into large groups and gave them more predictable physics as well as the large "hole". SketchUp made these a little tricky to create as the boolean subtraction needed to be performed twice (one for the outer shell and the other for the smoothed internal

Porosity is the property of water to pass through an object, being "full of pores that allow fluids or gasses to pass through" (Wiktionary) was my inspiration for this structure. The Booleans are impaled on the structure with the ramp running as a support for explosive barrels. The explosion dislodges the booleans, destroying the structure.

Wednesday, August 18, 2010

Experimenting with Non-Explosive Destruction

Using the Villiage House Prefab and some basic physics as well as AI grunts assigned custom models, observing the effects of collisions and replicating the destruction of explosives via gravity. The gravity was set to -9.8 to reflect real world units.

This experiment revealed a few flaws with the physics engine, or more specifically the prefabs used, with objects having glitches upon collision and a large degree of randomness which had to be selectively eliminated in the videos (the whole thing went flying into space shortly after the video ends).

Saturday, August 14, 2010

The Structure (Draft)

The lattice structure resembles a grid, and the elongation should be useful to create intereting explosions. Manipulating the structure itself would be difficult as it is comprised of several entites that are colliding together.

The theme of Porosity would be best explored through liquid, so the draft environment will need some changes, depending on what I can cmoe up with to best demonstrate fluidity.