<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>John McKenna</title>
	<link>https://mckennafx.com</link>
	<description>John McKenna</description>
	<pubDate>Thu, 26 Oct 2023 11:49:09 +0000</pubDate>
	<generator>https://mckennafx.com</generator>
	<language>en</language>
	
		
	<item>
		<title>TGA Game Projects 2021-2022</title>
				
		<link>http://mckennafx.com/TGA-Game-Projects-2021-2022</link>

		<comments></comments>

		<pubDate>Thu, 26 Oct 2023 11:49:09 +0000</pubDate>

		<dc:creator>John McKenna</dc:creator>
		
		<category><![CDATA[]]></category>

		<guid isPermaLink="false">449430</guid>

		<description>

John McKennaTechnical VFX
	Portfolio Project TGA 2022
Game Projects TGA 2022
Home

TGA Game ProjectsOur project group was called Hade Haj Studios and we worked in an inhouse engine called One Engine created by the students in the Programming education.

	&#60;img width="512" height="512" width_o="512" height_o="512" src_o="https://cortex.persona.co/t/original/i/89c5c83da93efdc148d0f4a8694aa6efe9c9158accad5a0abb886b6dc7ee1ca0/group_logo.png" data-mid="1325407" border="0" /&#62;
	Animation:
Tobias Hart
Sandra Anden
Fredrika Karlsson

Art:
William Harrysson
Joel Herslow
Thorbjörn Jensen
Gustav Larsson



Level Design:Tim Andersson
Svante LivenAxl Ahlkvist
	Programming:
Rasmus Ekelund
Christos Kalanidis
Fadi Makdes
Felix Dunmar
Remi Mrozek
Aron Johansson
Technical Art/VFX:
Axel FranssonJohn McKennaMusic:
Kristian Lindberg







Project #1: Sunborne
 The game is a hack n slash based on Diablo III where our main character is a sacrificial victim who is reanimated by the gods to seek vengeance against a bloodthirsty cult. This project was 14 weeks (4hours/day).My responsibilites during this project were environment shaders in HLSL, VFX, and creating SFX. For the first project that Technical Artists take part in, there is a learning curve getting aquainted with the inhouse engine created by the programming students, and learning the ins-and-outs of the pipeline between graphics, animation and level designer. 






	Horde Enemy Monkey Claw attack:
&#60;img width="720" height="368" width_o="720" height_o="368" src_o="https://cortex.persona.co/t/original/i/158789f752072971df2f7265f5bf35bb46344a522f5fe282d22f0297b5aeaad2/MonkiiAttack.gif" data-mid="1325404" border="0" /&#62;

	Bloodbomb attack:&#60;img width="720" height="368" width_o="720" height_o="368" src_o="https://cortex.persona.co/t/original/i/a5f8492420da302cd544cc80bc969bd13b68b4367ae5ef77ce1f7b54ed44ecd7/BloodFresnel.gif" data-mid="1325403" border="0" /&#62;

Poison Gas &#38;amp; Heavy Axe attacks:&#60;img width="1280" height="720" width_o="1280" height_o="720" src_o="https://cortex.persona.co/t/original/i/1885fc41bb0c6cb2489246f42caae132b78c1a5c1632ea2d2d3f1313fb3c0159/PoisonPlusAxeSmall.gif" data-mid="1325402" border="0" /&#62;






	My main learning during this project was the importance of communication and scope. Early on I took on the responsibility to create a river of blood that would flow in different directions around the world. I learned so much about shaders and HLSL during the development, and managed to create a vertex painted flowmap that flowed faster when vertical, unfortunately we had trouble implementing it into the game. In hindsight I would have focused more time on prototyping many diverse types of shaders, vfx and particle systems for enemies. 
	&#60;img width="550" height="539" width_o="550" height_o="539" src_o="https://cortex.persona.co/t/original/i/b66a089c489d1448c15b81859a2a5b6deaab48ac8b6e39093ad175e4919df346/BloodRiver.gif" data-mid="1325401" border="0" /&#62;


Project #2: Serpentine EstateThe second project took place over 14 weeks (4hours/day). The game is a Third Person Shooter based on Resident Evil 2, where you play as a journalist investigating the mysterious occurances at the Serpentine Estate. My responsibilities in this project were Shaders, VFX, Storyline, Voice Acting, and sound implementations.



	Muzzleflash &#38;amp; Smoke VFX

&#60;img width="1280" height="720" width_o="1280" height_o="720" src_o="https://cortex.persona.co/t/original/i/59818388619d0b5f58e896343c99f9ca8de3b304402615b60ef4365f66c51735/Muzzleflash.gif" data-mid="1325399" border="0" /&#62;


	Interactable Object Shader

&#60;img width="1280" height="720" width_o="1280" height_o="720" src_o="https://cortex.persona.co/t/original/i/e20b6786a6cf6ec8e68fd47df7fa2c84f19ae630323d95fa9d4b57b156c6b194/InteractableObject.gif" data-mid="1325398" border="0" /&#62;

Portal Effect:

&#60;img width="1220" height="681" width_o="1220" height_o="681" src_o="https://cortex.persona.co/t/original/i/d9ff8ba06282376406e53a2ec258fdfda690e9e85f289dc9ba1258904ca5a530/Portal.gif" data-mid="1325400" border="0" /&#62;

In the beginning of this project I believed we had a moderate scope for all disciplines, but during the production it became clear we had created some challenges in scope and scale. I feel we were good at navigating this together, to find the relevant cuts and to refocus what we wanted to achieve individually and together.</description>
		
		<excerpt>John McKennaTechnical VFX 	Portfolio Project TGA 2022 Game Projects TGA 2022 Home  TGA Game ProjectsOur project group was called Hade Haj Studios and we worked in...</excerpt>

		<!--<wfw:commentRss></wfw:commentRss>-->

	</item>
		
		
	<item>
		<title>Alan Wake II</title>
				
		<link>http://mckennafx.com/Alan-Wake-II</link>

		<comments></comments>

		<pubDate>Thu, 26 Oct 2023 08:53:28 +0000</pubDate>

		<dc:creator>John McKenna</dc:creator>
		
		<category><![CDATA[]]></category>

		<guid isPermaLink="false">449420</guid>

		<description>Alan Wake II
https://youtu.be/MEWgOlTIW4Y?si=2YSWPHVJsvl3DZDB








Working with a fantastic team of highly skilled artists on Alan Wake II is an experience that I will always cherish. It was an exciting and challenging project that required me to be highly organised and detail-oriented, but it was also a lot of fun. I am proud of what we accomplished together, and am grateful for the opportunity to have contributed my own ideas to such an epic game.

I learned so much from my talented and generous workmates, specifically within Houdini as our main tool for all VFX purposes like breakables, simulations and animations. When implementing content I worked within a gameplay scripting environment and often created our own gameplay-based scripts and maths for different VFX needs - this could be anything from a simple interactable up to full VFX support on a boss-fight.

Another huge area of development for me during this project was cinematic VFX, which was easier in terms of content implementation, but more challenging in terms of analysing and figuring out what was most important to contribute for the final image.

More detailed overview of the work will come later, but for now here are screenshots of things I worked on that appeared in the official trailers:




A strange event unfolding:

Watch it here in the Dark Place trailer : https://youtu.be/49g0AL0AJks?si=9MlIZ1eMrz70vQro



&#60;img width="3838" height="1951" width_o="3838" height_o="1951" src_o="https://cortex.persona.co/t/original/i/de3f7cc9b78cec53e45cb00ed6a2041dbd8b5e1aa808276e5cc638823d275b00/alan-wake-2---screenshot-paper.JPG" data-mid="1325383" border="0" /&#62;



Wall Break from the first gameplay trailer:

Watch it here in the Official Gameplay trailer : https://youtu.be/HwdrTLAGhpU?si=yJTXsVIoGjL8tDHy



&#60;img width="3837" height="1982" width_o="3837" height_o="1982" src_o="https://cortex.persona.co/t/original/i/a54442587dafb42eb68264909af675fab7b7f1926634d4e52e0fd7bd171876d0/alan-wake-2-screenshot-saga.JPG" data-mid="1325387" border="0" /&#62;
</description>
		
		<excerpt>Alan Wake II https://youtu.be/MEWgOlTIW4Y?si=2YSWPHVJsvl3DZDB         Working with a fantastic team of highly skilled artists on Alan Wake II is an experience that...</excerpt>

		<!--<wfw:commentRss></wfw:commentRss>-->

	</item>
		
		
	<item>
		<title>TGA Projects</title>
				
		<link>http://mckennafx.com/TGA-Projects</link>

		<comments></comments>

		<pubDate>Thu, 26 Oct 2023 08:31:40 +0000</pubDate>

		<dc:creator>John McKenna</dc:creator>
		
		<category><![CDATA[]]></category>

		<guid isPermaLink="false">449418</guid>

		<description>



John McKenna 
Technical VFX
	 


	

Portfolio Project TGA 2022
Game Projects TGA 2022
Home




Breakdown
My main project during the advanced specialisation course at the Game Assembly was to create an immersive open world environment. I wanted to deep dive into Unreal Engine and learn all the processes from procedural terrain and foliage to dynamic interactions with shaders, blueprints, light and sound. The project started initially in Houdini where I generated the terrain and texture masks but after this I moved on to Unreal 4.27 tools. I set up the master material system for the terrain, including the implimentation of Runtime Virtual Textures to allow for blending between assets and the heightfield.


&#60;img width="1003" height="551" width_o="1003" height_o="551" src_o="https://cortex.persona.co/t/original/i/91ee9b4ba8bda117c14765a2089854e0943a9d1c658a2d6806e18bba04ba1b5a/TerrainErode.gif" data-mid="1325352" border="0" /&#62;&#60;img width="1002" height="502" width_o="1002" height_o="502" src_o="https://cortex.persona.co/t/original/i/1c91310b65dc0c3819660a8802ed893fc0de2ac6d3204f6bba9f655693d8becc/TerrainZoom.gif" data-mid="1325351" border="0" /&#62;&#60;img width="721" height="357" width_o="721" height_o="357" src_o="https://cortex.persona.co/t/original/i/990324e01ddb8a11b84e06b5377b00817e46a3c88d8b421a6964e06530abdc78/RVTGif.gif" data-mid="1325350" border="0" /&#62;&#60;img width="1103" height="533" width_o="1103" height_o="533" src_o="https://cortex.persona.co/t/original/i/f8c7bda4b6e57447c4ce467454c77b34fae7ad96a59a31f0838eaccf412681a7/House-1.png" data-mid="1325353" border="0" /&#62;



The setup of Runtime Virtual Textures was one of the more technically advanced parts of the project as it required the blending of the albedo/roughness/normals from the master material of the heightfield, with the albedo/roughness/normals of megascans assets. The albedo and roughness was straight forward but the blending the normals required transforming the heightfield normals from world space to tangent space and back to world space again. You can see it working in the gif below (a normal debug view showing a megascans asset being lifted and the normals blending dynamically).


	
	
Other systems developed for this project included a footprint system which differentiated between physics materials of the master material - mud, grass and stone - best represented by the audio of the footsteps, the footprints themselves were simple footprint indent normals from decals that spawned from a raycast every step from the animations. Another system I was proud of was a very subtle object space interior mapping shader for the reflection in the windows.Other than these systems I implemented I spent a lot of time tuning and tweaking the procedural grass/tree/rock spawning systems,&#38;nbsp; global lighting, dynamic shadow quality, the raymarched cloud systems, cubemaps verses scene capture cubes and tuning the LODs when I pushed one or two of these systems too far.


Wind Shader


&#60;img width="720" height="336" width_o="720" height_o="336" src_o="https://cortex.persona.co/t/original/i/356fe7b4f82a131c4646d4cc30a4681ffaa4961fc3c3cdd5d5dd7b0b72afb210/WheatFieldWind.gif" data-mid="1325355" border="0" /&#62;&#60;img width="686" height="302" width_o="686" height_o="302" src_o="https://cortex.persona.co/t/original/i/8f855724f6b756bc79119810fc81e342e94f27f9df45c1fb6a08919a87498113/WheatFieldWind2.gif" data-mid="1325356" border="0" /&#62;&#60;img width="719" height="384" width_o="719" height_o="384" src_o="https://cortex.persona.co/t/original/i/9621ea27bc9712b25d99fe7372964e3cc659e14536a6c1d025b008b69df0fdba/VectorFieldsSmall.gif" data-mid="1325357" border="0" /&#62;

I wanted to capture the movement of wind in a rolling wheatfield and initially started with two world-sized noise-textures panning over each other to oscillate the vertices on the X and the Y channels, I later added a third to randomise the magnitude.

	
	

While creating the wind shader I encountered the problem that some grass assets had painted vertex colours while others didnt, so I made the gradient by dividing the Z of the object-position which saved time and allowed me to make a material function for global control.The trees are not included in the shader since some had rigs and some were pivot-painted, if I was to approach this effect again I’d probably create a global source with a direction with minor randomisation - then use that an input for all the assets in the scene. At the point when I made this I didn’t know how to bridge the gap between applying the wind I made with world position noise for the wheat to all the diverse assets pivot-painted, rigged and particle assets like smoke.


It is quite a subtle effect in the environment but one that I’m proud to have achieved. I created the render target system for capturing the character movement from a birds-eye view, a camera that is looking down on the character from 20 meters above. Using particles with a simple vector field RGB texture and projecting it to a blank motion vector render target underneath. The resulting texture created with the particles trailing is used to bend the grass and foliage underneath the character based on the direction, basically painting onto the field. One problem I encountered was while setting the particles to be invisible meant they were being culled during gameplay, so I spawned the particles beneath the terrain map instead.





Campfire effects
&#60;img width="618" height="358" width_o="618" height_o="358" src_o="https://cortex.persona.co/t/original/i/0bf48f33c4b68b905c0175209799ce6a42caf23e1c64e293b90bd0a406e9bbfc/FireBig.gif" data-mid="1325360" border="0" /&#62;&#60;img width="720" height="439" width_o="720" height_o="439" src_o="https://cortex.persona.co/t/original/i/ec0d6d61edeaeadbe4b13925fafe202af0664c11aa35950890a2138eb19eacaf/FireSmall.gif" data-mid="1325361" border="0" /&#62;The campfire started as simple fire particle textures from Houdini and EmbergGen but eventually spread into being an interactive blueprint and shader, where once the fire starts it grows in intensity when the player adds logs to the fire. The logs have a mesh shader on them meaning they start to smoulder after the fire has been growing a while. There is some simple heathaze noisey displacement, and even some depth stencil hack so that the fire doesn’t clip through the pot. The actual fire particles are really simple texture atlas shapes of real fire but simulated in niagara, I used the ones from Houdini and EmberGen for the smoke and steam. The twigs that are used as kindling have a very subtle vertex shader to collapse them when they are burning. 

	
	



Dynamic Sound &#38;amp; MusicI used FMOD to create dynamic sound effects, like the fire effect where it transforms from a small fire starting to a roaring hearth with boiling soup. The sound is spatialized so it sits well in the scene, with the birdsong and ambient wind. The footsteps change depending on which surface and have a degree of randomisation so occassionally the character will step on a twig, or a particularly rocky patch. The ambient soundscape is also interspersed with randomized bird-whistles, wind generation and crickets.The music was created specifically for the project by composer Andrew Cowan based on appalachian folk music.&#38;nbsp; We spoke some time about vertical layering and hybrid dynamic composition. In the end it is somewhat hybrid where the music becomes more gentle while the character is in the field and it transforms and loops differently while the Portal Effect is being experienced.


Portal Effect

I wanted to create contrast in the scene with a supernatural event and had a few options I was inspired by.&#38;nbsp; Specifically this portal from season 3 of Twin Peaks:


&#60;img width="1334" height="750" width_o="1334" height_o="750" src_o="https://cortex.persona.co/t/original/i/42c928a42befe66b122388ffc43252ff36b4e01b2546dd7a7134119c417af63c/davidlynch.jpg" data-mid="1325362" border="0" /&#62;&#60;img width="719" height="390" width_o="719" height_o="390" src_o="https://cortex.persona.co/t/original/i/3fd1eb2aab54108cdab731819cab5fd731752005ea90c1eab707ca5bd3f4286b/PortalGif2.gif" data-mid="1325363" border="0" /&#62;I created a few iterations inspired by the Twin peaks warping of spacetime, using a spiral normal particle suspended in the air but I was not satisfied with how two-dimensional it looked in the world - specifically when walking around it. It works so well in Twin Peaks because of the almost static camera shot, I wanted interaction with the playable character so I changed to a different style.I used math from actual black holes in the resulting shader, and mixed it with some noises and flowing textures that warp the world around it and pulses like it can inhale and exhale.Once settled on the type of spacetime deformation I started work on the atmosphere around it.While creating the dynamic sound I made a parameter for changing the daytime ambient sounds to night-time crickets and owls, which I found use for in the portal area. In the level blueprints I triggered a change from day to night-time and some strange perspective shifting for the boom of the camera. A hazey screen space distortion begins which ended up like a subtle chromatic aberration and weird bends to the hues. The music loops here to create the sense of time-stopping, and there are swells of synthesizers both in FMOD and in Unreal Engine. There is a dark buildup of volumetric fog when you enter the stone circle and the fog rotates around which gives a dangerous aura to the portal - there is also a build up of fireflies or strange fairy lights which seem more friendly. Each stone in the stone circle triggers a point-light and a musical note but thats as deep as the mystery goes.
 		Animal AII added in simple AI state system for a small deer which eats, sleeps and wanders around - it also uses Unreal AI Perception system to react to the 
sight of the player.


&#60;img width="719" height="390" width_o="719" height_o="390" src_o="https://cortex.persona.co/t/original/i/6b4f81bd6171848222e9ed46ffa5a7dda3fce945fd77c6de9904c746818ee4d0/DeerAI.gif" data-mid="1325365" border="0" /&#62;&#60;img width="719" height="390" width_o="719" height_o="390" src_o="https://cortex.persona.co/t/original/i/6a15a89623196545e476762ed25d285e626c596f625390a9afc768fb3b750041/DeerAI3.gif" data-mid="1325366" border="0" /&#62;





Final ThoughtsThe project has been a huge learning experience, not only the tools and techniques but learning how to push myself to make big changes to the project, or to move on from a implementation that isn’t working out as planned. 
If I was to start the project from the beginning it would have been good to use the portal to teleport the player to another biome, this would have created many opportunities for impactful visuals of the transformation too.




CreditsOriginal music by Andrew Cowan: https://www.andrewcowancomposer.com/
Beefy Blackbirds by MWallace3D: Unreal MarketplaceForest Animals Pack by Protofactor Inc: Unreal MarketplaceLumberjack by EvgenyKorchuganov: &#38;nbsp;Unreal Marketplace Cabin by Raphael Escamilla: SketchfabCampfire by Mandrake: SketchfabSpruce by Project Nature: Unreal Marketplace
Quixel Megascans
Soundsnap</description>
		
		<excerpt>John McKenna  Technical VFX 	    	  Portfolio Project TGA 2022 Game Projects TGA 2022 Home     Breakdown My main project during the advanced specialisation...</excerpt>

		<!--<wfw:commentRss></wfw:commentRss>-->

	</item>
		
		
	<item>
		<title>Home Page</title>
				
		<link>http://mckennafx.com/Home-Page</link>

		<comments></comments>

		<pubDate>Mon, 17 Aug 2015 23:34:03 +0000</pubDate>

		<dc:creator>John McKenna</dc:creator>
		
		<category><![CDATA[]]></category>

		<guid isPermaLink="false">421294</guid>

		<description>
	John McKenna






Technical VFX




	

&#60;img width="300" height="300" width_o="300" height_o="300" src_o="https://cortex.persona.co/t/original/i/ad34b95d6b4719b3b125dfd7fae6e7bffe64580efe128237284aa9f3c70cba56/linkedin-black-icon-logo-ECC426C572-seeklogo.com.png" data-mid="1325731" border="0" data-scale="9"/&#62;







Alan Wake&#38;nbsp;II






— an overview of VFX work I did on 

Alan Wake II, full showreel to come later:
&#60;img width="2000" height="1125" width_o="2000" height_o="1125" src_o="https://cortex.persona.co/t/original/i/6208a9e241a4803e215db06a19e0c821f3980c4c48ae54a9e0a36215aecc53f1/alan_wake_banner.jpeg" data-mid="1325348" border="0" /&#62;


TGA Projects—portfolio of projects developed while studying at The Game Assembly&#38;nbsp; 2021 - 2022.


&#60;img width="3839" height="2160" width_o="3839" height_o="2160" src_o="https://cortex.persona.co/t/original/i/5292ca4240e94e30195252a57837997e3783c27fc2005d781890c1a4cb797499/lumberjack2.JPG" data-mid="1325397" border="0" /&#62;</description>
		
		<excerpt>John McKenna       Technical VFX     	          Alan Wake&#38;nbsp;II       — an overview of VFX work I did on   Alan Wake II, full showreel to come later:    TGA...</excerpt>

		<!--<wfw:commentRss></wfw:commentRss>-->

	</item>
		
	</channel>
</rss>