Wednesday, 26 November 2008

Overgrown City Assignement

I wanted to be a bit ahead of the curve on this one so I started storyboarding as soon as the assignment came out. Unfortunately this assignment coincided with a large 3D Modelling and Art task, and as that was in earlier that was my focus until it was completed. Which left me with only a week with which to dedicate my full attention to UnrealEd. Still, by then I had a draft storyboard (which got scrapped and redrawn) and a basic city plan in Visio, which I didn't spend enough time on so it was largely unhelpful to me.

The level itself didn't take too long to construct, although I wish I had included a few more static meshes. Having said that I found some good textures available for free of gamespot so the archietecture at least was relatively convincing. I wasn't too worried about the level itself as I was focused on the scripting which, having used it before, I expected to be a major challenge.

And UnrealEd did not disappoint. Certain actions such as "show hidden" worked fine, although the majority of commands caused masses of problems. For example, "Setviewtarget" plus "waitforanimend" is supposed to cause the pawn to turn to face the target he is supposedly viewing. Yet after triple-checking all the tags were 100% right (and going back through webCT tutorials to double-check again), my pawn still would not turn. I tried various other commands/combinations and various websearches, but according to all logic it should have worked. I tried to fake it by simply telling the actor to "movetopoint" and attempting to move it in a path that would make it naturaly face the other way. But to turn the actor around this command would simply be ignored. If I put the pathnode in FRONT of him to simply move him twenty yards forwards, the pawn would reach the pathnode and then turn to face the other direction.

I tried setviewtargets, stopanims, waitforevents, and even moving the pathnodes so he wasn't hitting them at even the slightest angle... but this made no difference. "Forcemovetopoint" and "teleport" were also commands that did not function, so I instead used "sethidden" commands to fake these. The problems I faced with these commands made me unable to create a gun battle between character and aliens I included, so I tried to create the illusion of a battle there as well. What ends up happening is the aliens shoot each other, which I don't have too much of a problem with as it could be thought that the bullets are coming from the player. Unfortunately "freezeonanimend" for the death animation was rather argumentative as well.

Still, I am moderately happy with the camera work and the scripting I used, but the overall result is not what I had hoped for thanks to unscaleable problems with the engine.