Saturday, 5 March 2016

Procedural Programming - Final level blueprints/conclusion

Through this unit, I have been tasked with producing a small level from base meshes, with the addition of any Infinity Blade assets already provided via the Unreal Engine 4 Marketplace.

I began by creating a top down floor plan, making simple use of a Room and Corridor based design. I intended on each corridor and room to have a different kind of obstacle to tackle.



Due to my intended theme being that of a medieval type gauntlet, I felt it necessary to model a few simple meshes of my own for various items. I created an Axe, a Hammer, a Buzzsaw Blade and a Spiked Pillar as on first glance, these did not seem to be available in either the basic starter content within UE4, or the additional Infinity Blade packs we were allowed to use within out work.

I began building my level by blocking out the surrounding walls in-engine, then began placement of subsequent items.


I ran into some issues with certain animations of objects, for example the spiked pillars were intended to spin, and move laterally at the same time. Through developmental changes I figured that rotating an object in place through an event tick and triggering a Matinee do not co-operate, as when the Matinee starts, the rotation is commanded to stop.
I fixed this issue by triggering the object rotation on an event tick and adding in a vector timeline, which allowed the mesh to move laterally on a set distance and return to it's original potition, whilst spinning in place as intended.
Whilst there is almost certainly a way to fix this and allow both processes to operate simultaneously using my initial process, and not using a timeline, at my current level of knowledge I am unsure as to the solution, I am sure as I develop my knowledge further I will be able to come up with solutions to such problems with use of extra programming nodes, fixing the problem with the use of a timeline however, has improved my problem solving abilities in-engine.


I also ran into a platform location issue, in that I was triggering simulated physics on a number of platforms in the “Pitfall Peril” corridor. Upon triggering of physics, I had coded a string to disable the physics and use transform values to put the platform back in its place. Whilst this in theory should have worked, some of the platforms did not relocate back to their original locations, this was particularly puzzling as some of the other platforms relocated perfectly fine.


The only other problem I have run into through my progress in this unit, was a ‘pending kill’ related issue. I used some Infinity Blade assets in the form of floor spikes, to act as the traps beneath my elevator puzzle and balance beam sections. Upon hitting these spikes, sometimes the pawn would respawn with no issue, and other times the pawn would respawn twice, bringing with it another skeletal mesh which was suspended in the air.
This drove me to believe the ‘pending kill’ issue was triggering as the pawn was suspended between two of the meshes and had not hit the floor art the time of respawn.
This was easily fixed however, with the use of a separate node resulting in the mesh no longer appearing, however the main player pawn does still sometimes stutter on respawn.


Whilst I was somewhat familiar with the setup of the blueprinting process as I have some basic knowledge of Kismet within UDK, I have learned a lot through this unit. I have learned about new nodes I did not know existed and utilised them to my advantage, to give some of my traps actual functionality without issues hindering them.

If I was given more time with this unit, or was to begin the whole unit anew, I would possibly implement more of my own meshes to create more intricate traps, and utilise a higher quality mesh for the traps also. Due to time restrictions however, I used quick, easy modelling techniques to make the trap models and textured them in DDO for extra speed.



I have enjoyed this unit as it has tested me and improved my work in general as well as my ability in-engine, I will continue working within UE4 not just on study based projects, but in personal projects also, this will help me expand my knowledge on engine functionality across the board and assist me in further portfolio projects.

No comments:

Post a Comment