18 November 2011

It's alive!!!

Bob Box is now working in engine. It took a little bit of investigating and checking out the UDN support pages but I managed to get Bob working. For now he is using the UDK default animations but these will change.



Bob celebrates his new lease of life

Adding Sockets

Creating a PhysAsset

He lives

... He dies

From here we can add our own animations and eventually add our finished meshes to the character.

Map and Environments 3

We are constantly looking for new methods to refine our workflow. Initial 3d model prepared earlier in Maya 2011 will have its use as reference both for our concept art and further level design.


Render of sea side of the house served as reference for creating more detailed visualization in photoshop, including lights, textures and extra elements of decoration.

Will found a great example of the type of lighting we wanted for our level.



This work is still in progress. We may find some elements of the environment unnecessary, change, add or pelace something.

15 November 2011

Block-Out

Using our floor-plan layouts that we designed, along with the knowledge that we have some of our game mechanics working at least to a representable standard, we decided it was time to begin the initial block-out of the level in which the demo will be set; Villa Rouge in the south of France.

To do this I first made a flat square BSP floor, and applied a map material to it using the downstairs map seen above. The three of us sat together and scaled and re-scaled it until it looked right when running around on it in game imagining there were walls and doors and so on.
The next stage was to build the map using BSP only at this point. Eventually, all BSP walls and interior would be replaced with static mesh walls that will be repeated all over and made to a high quality.

Once we had the lower floor, through further scale testing we decided to shrink the entire thing some more, which then required a re-build to snap to grid properly again, and stick to some kind of rule as to how thick each wall is, how wide each door is, and so on.
For this, a new texture was created. Because we were using the grid on the walls for height reference, we wanted to keep them.
Next I made the upstairs once we had re-snapped the downstairs to the grid at its new sizes, and populated it a bit more. Next I will be adding the attic and rooftops, as well as finishing off the rendering outside the building, and adding the garden.




11 November 2011

Further Civilians

These are a few more "civilian" concepts done with different ideas behind each.
This is a night time girl in her dressing-gown being startled by the burglar or security guard when they chase the burglar. She would belong in one of the bedrooms which you are not normally allowed access too.
These two are simply two more character designs for women at the party.
To speed up this process I will now be doing further designs over one posed manikin drawing instead, especially for the male figures as their clothing types don't vary very much; usually just a suit with different details and tones on them. This entire process is due to be finished on the last week on November at the latest.



Past Concepts

This post is here simply to show a few ideas done a while ago that were never posted up on this blog in their first forms.
This is the initial idea of the "Bush" mechanic, showing how it would react when a player walks into it, and how it would continue to react if a player moves around when inside it. Text also explains that it can be seen by any other player be it another burglar or security guard, giving away your location; these must be used well.
This is the idea of a mechanic that hasn't been implemented yet as it requires a level of some sort first. It is very basic, using a decorational spot-light which will be aimed up the house to dramatically light it as seen in "To Catch A Thief". These lights however, will make it harder for a burglar to sneak across a roof, as he will be visible to anyone outside when he does so. The alcoves on the roof will act as cover for the burglar when up there as a suitable hiding spot, but to move around beyond them the player will have to take a gamble and be aware of his surroundings. 


Say hello to my little friend...

So we needed some sort of character test rig to attempt to use what we've learnt about anim sets and anim trees to get a custom character into the game. This is where Bob Box comes in. He is a simple platform on which to test animation and movement in the engine and to learn how to implement totally custom characters.

Bob Box rigged and posed in maya
I then imported him into UDK using the new FBX import. This worked just fine and is much more streamlined than previous methods. I then imported a very simple animation and linked it up in the anim set and skeletal mesh dialogue boxes and got it working on the character in the engine.

Bob Box in the engine

I tried to set it up so Bbo would be our player character, but initial attempts based on our method last year during the Sun City project didn't seem to work.

I will research this further. It may be the case that we are missing something that UDK requires to use as a character be that in the bones or in the code. Or it may be easier to use the UDK skeleton but give it a totally custom animation set. We shall see.

A Trip Wire test

Here is one of the mechanic tests that we did earlier but didn't get a chance to put up on the blog.

The Burglar will have the chance to set a trip wire to stop the guards chasing them. This idea was meant to be a fairly comical trap, so we decided to use the 'feign death' action (this is why I disabled it in the command list).

Anyway, here is a video showing it in action. Unfortunately it was before I set up the 3rd person camera.


10 November 2011

Map and Environments 2

This the map of second floor of our villa. Unlike the first floor, this part of the house does not play representative role. Second floor includes master and guest single and double bedrooms, showers and sauna, reading room, gallery and possibly a painting studio. Sauna and showers are connected . While each of the rooms has it's separate entrance, there are also doors connecting them. This should provide freedom of movement in many directions. In sauna, there is possibility for the player to adjust the temperature of the room and lock the doors behind him to trap his opponent. Showers can be turned on and off to distract the guards.




Some parts of the house need deeper study, for example master bedroom. Iterations of layout and sketches of possible assets are necessary to achieve optimal form and functionality of the room. Bed in the centre creates another element of distraction and allows player to choose multiple routes of escape. Master bedroom has a connection with an opened balcony. There are four doors leading to the balcony. Player may include this option in his strategy of escape. There is also option to hide under the bed.




Guest rooms are going to be significally less decorated and have less sings of personalisation. However some elements of the environment should provide possibility do hide, escape, set a trap or distract the guard.

















4 November 2011

Ladders

We wanted the possibility of having more than one type of ladder in our game (for example a ladder and a drain pipe), but with the current tools available, only one type of ladder could exist.

To create a second ladder, I knew I needed to extend the standard ladder volume which I managed to do fairly easily. This allowed me to place my custom ladder volume in the world and it could be used just like the other ladder.

My custom ladder variables



Looking at the anim tree node that controlled which animations were played when in different physics volumes I saw that each volume was calling a 'PHYS_XXX' command. With this is mind I tried to create a new PHYS_ command but had no luck trying to locate the class where they were defined. I did manage to add a new variable to the anim tree node but with no custom PHYS_ variable it was a useless connection.

I enquired about this on the epic forums and got a reply which stated


slowJusco -
"The PHYS_<xxx> stuff is handled natively.Better off extending ladder volumes and adding a laddertype, then checking for that via a custom animation node."


I had already extended the ladder volume so I just needed to create a custom node which handled what type of ladder we were in.


Once this was done I realised there was another problem with my anim tree. I was using the 'animblendbydirectional' as I believed that the game would read the input command and play the animation accordingly but because the ladder volume forced the player to face forwards, any input I made other than 'idle' was calling the forwards animation. Again, I took to the forums to ask for advice and suggested I needed a node that could tell if the player was moving up or down in world space and play an animation accordingly (only when in my custom ladder volume, we don't want to break jumping and falling) and again slowJusco had the perfect answer.

The new node just had to measure the players velocity on the Z axis. If it was larger than 0 then it would play an up animation and if it was lower than 0 it would play a down animation.

My custom anim tree - handles ladder types and player Z axis movement
With that sorted we can now add ladder climbing animations (something the UDK could not do before) and will help us hugely with our level creation as we can have two different types of ladder. I also now know how to create custom anim tree nodes and how to check for variables.

Here is a video showing the movement progress so far (animations are all temporary)

Concept Art 3- Map and Environments


Creating of a map allows to plan potential game scenarios.

It also helps in visualising environmental concepts before final stage which is modeling.This is how it works: Concept artist prepares 3d visualisation of a room based on an outline selection on the map. Purposes of it are many:

Concept artist:

1. suggests colours, light and atmosphere of the level.

2. creates references for 3d artists.

3. helps to understand the sense of space, therefore again, along with the map provides reference for game designer responsible for the gameplay.



3 November 2011

Adding some useful functionality to our game.

Our aim is to create all of the mechanics needed now, so we have a fully working game engine for us to drop our content into at a later date.

I first set up a basic 3rd person camera by modifying the position of the 'behindview' camera and then forcing this view.

This will be revisited later to create a proper custom camera type but for now gives us a better view of the world.


Walk, Run and Sneak
Movement in our game will be split into three states. Sneaking, Walking and Running with walking being the default state.

To achieve this I needed to code a custom command into my Pawn to allow sprinting and then bind it to the keyboard.

We will be using the standard crouching functionality as our sneaking as it already has a separate animation state within the anim tree and offers control over the speed of movement. Why over complicate something that already exists?!

I have been following the Eat3D 'Introduction to Unrealscript' DVD and have learnt quite a bit about adding functionality into custom classes but I didn't know how to create bindable commands such as a change in groundspeed value.

I found a tutorial on the UDK Central wiki that explained how to do exactly what I wanted and also how to bind the commands.

Once this was done, I added a UDKBlendBySpeed node into the anim tree so I could tell it to differentiate between walking and running to call different animations.

I also disabled the ability to double jump and the ability to double tap a direction to dodge as these didn't exist in our game.

So that out of the way I decided to change some of the key bindings to match our control layout.
Shift - Sprint
Left ctrl - Sneak
Space - Jump (no double jump)
F - (No longer calls 'feigndeath' as our gameplay relies on the use of this command for other things)

I will post an update tomorrow about ladder functionality

Custom User Interface

The Custom User Interface will be the first thing players would see after the Unreal logo animation, and our own Purple House logo animation. From here, you must be able to play the game, including choosing a map, changing options, and being able to exit the game.

Another important hole the user interface must fill is to serve as a scene to illustrate the feel of the game, and this is what I design for. Talking in our group, we already had some basic ideas for what the user interface should look like. One idea was to base it off of 1950's postcards, particularly the one to the right:

To being this, very, very rough pencil drawings were made to basically represent some ideas, including the postcard idea among them.
Included with these initial concepts is a Word Document that explains what each scene would have present in it, and how each one would be presented. It then goes on top talk about what we thought worked and didn't work after group discussions on the matter. Eventually we came down to either using the 2nd design along, or the 3rd. The third best represented what we wanted for a "1950's postcard" look, an thus was developed further digitally in Photoshop, while still keeping it rough. 
These images are some variations of what we got. The top left (1) image shows the original idea in digital form. The Word Document included with these concepts in the project folders explains what worked and didn't work about it, and using this information I created three further alternatives.

Later we decided that the 1950's postcard look would not be used as a user interface, but rather used as a loading screen for each level of the game. The other design that got attention as a user interface was design 2 on the initial designs. This would require a 3D scene to be made up for it to work as intended, but we felt it would work the best overall. Further development of this is still under-way, but for now we are focusing more on mechanics with this as a side project.


31 October 2011

An early look at custom animation trees

To get our game to look and feel correct, we need to create custom animations for our characters. We also don't want to be constrained to the default UDK skeleton for our characters as this would mean that they couldn't look the way we want them to.

We have a fair understanding of how to import custom animations and how to make an animation set but the section I knew I needed to learn how to do was a custom animation tree which would allow us to use our own skeleton and animations.

I studied the 'AT_CH_Human' animation tree and played around with the sliders until I was happy that I understood how the node system worked.

I then went on to create a custom animation tree using a default skeletal mesh and default animations just to prove if my understanding was correct.

My custom anim tree with an idle animation and four movement animations

This now gives me a good understanding of how to plug in our own custom animations once we get to that stage, and is a major worry dealt with.

30 October 2011

Concept Art 2- Gadgets

Every "burglar" character in the game will have an option to purchase certain tools that allow him to distract or slow down his opponent. These traps or gadgets as we call them, have to be easy to carry, to set up and have mid range effectiveness providing the time to escape. We also want them to have certain style ssociated with the character who brought it to the game and probably uses them the most. This is first example of Babushka dools. Gadget carried by russian businessman- burglar. These egg shape dolls can be equiped with both gas or oil. They also have time- release trigger.


Latest design of our gadget concept boards provides schematics, character that brings the gadget to the game and visualisaton of the artifact in action, presenting its expected effectiveness. We also wanted those boards to relate to 1950's style.

This is The Knockout Pipe carried by English gentleman (Name yet uncertain) it works as perfectly normal pipe. This way it may be taken anywhere ( yep :) even to the pub because it is the 50's) without any suspicions from the security guards. However, after tuning one of the decorative elements, two glass containers inside the pipe release certain substances that after mixing with each other and fire, create thick, impossible to cross ( for some time) smoke.

29 October 2011

Bushes

One feature of the game to help the burglar hide is to jump into nearby bushes. This idea, originating from the film "To Catch A Thief", would cause the bush to move, making it visible for second or so after doing the action. To achieve this at a basic stage we decided to just make a cube that would wobble when the player runs into it.

After some research on how we would get the animation of the cube to play as vertice animation in UDK, it became apparent that the new real way to do this with the demise of Actor X, was to use "Morph Targets" (Blend Shapes in Maya). Before doing this stage, we decided to stick with what we know, and what the bushes would actually be most likely animated with in the end; bones. Placing one central bone on the ground, and another at the top to make the top face wobble, I exported using the FBX format, and imported to UDK as a skeletal mesh. The timeline animation made UDK create an "AnimSet" ready for me.
Placing the cube into the world with a nice rudimentary shader in a rudimentary world, I used Kismet to make the animation play when trigger boxes were touched. We put 4 in, doing the same thing, so that moving around inside the bush (cube) would still causing more animations. Furthermore, we wanted it so that when walked into it would play random sound effects, not the same one over and over again. Research showed this to be relatively simple, using a "Random" node in Kismet, linked to 4 different sounds, which all link to the animation.

Further development of this idea when we come to do it properly could include the possibility to use even more trigger volumes to play a specific animation depending on what side of the bush you walk into, while still playing a random sound from its provided choices.

27 October 2011

Balloons

One of the "trap" weapons in the game was to set up a Chinese Lantern that is full of explosive gas. The lantern would hover a set height above the ground, held down by a very small weight on the floor, and attacked to a thin piece of string. If a player were to walk into this thin string and didn't see it to avoid it, the string would pull the lantern down and pull the string out of it, causing a reaction within to make a small explosion over the unsuspecting player.

To do this, I modelled a very simple lantern from our rough initial ideas of how it could look, along with a thin piece of string with a bone structure within. The bone structure allows the string to deform, while keeping the lantern and the small weight on the floor in tact.
When brought in, I created a "Physics Asset" for the lantern, which allowed it to "rag-doll" around when clicked and / or dragged. Then a "Physical Material" was created which was allied to the asset which gave it its gravitational information as well as other such attributes like wind resistance, density, and so on.
This is how I made it float like a lantern, and interact as such.
With this testing we began to think that this idea may not be appropriate because it would be so easy to see. We deduced that players would most likely always see it unless it was used behind a doorway for instance, but even then players would catch-on, and look before the run through doorways. A later project update post will say whether or not we keep this.

25 October 2011

Hiding in wardrobes

In order to allow the Burglars to hide from the guards, we wanted them to be able to hide in various places around the level. We decided that Wardrobes would be a cool place to hide.

I decided to experiment with the idea and how it would be achievable in the UDk


A simple flow diagram explaining the system

I then took this a step further and tried to implement it into a simple test level in UDK. Initially I had trouble working out how to get it to work without using the 'Teleporter' class found in the content browser. I had a look in my UDK reference book 'Mastering Unreal Technology' and realised that there was a Kismet node for this. This required that i have two triggers at each end. One 'trigger volume' to call the on screen comment and also to act as the teleport target, and the other 'Trigger' class to call the command to teleport the player.



I then linked it up in kismet



Further development of this will be required to make sure that only the burglars are able to use these hiding places. I have already begun looking at more complex kismet sequences and how the use of 'team specific triggers' will be useful.

We also want guards to be able to search in the wardrobes to see if the burglar is in them. If this is the case, the burglar will loose.

I managed a simple version of this, where, if a player triggered a third trigger placed at the wardrobe, the player would be killed. I used a delay node to simulate this as I am yet to get  working multiplayer game.