So recently I've had an idea for a couple of first person based animations. Both of the animations are escape based one inspired by Spelunky and the other being a castle/ death gauntlet escape. Below is a quick example I whipped up the other night with some simple platforms and jumping.
I used a cube that I moved at the same time as the camera to make sure that the person stayed at the same height throughout the animation and not bouncing up and down making it look like the "person" is growing and shrinking.
For a first try I'm pretty happy with how this turned out even though there's more things I need to learn to make it even better.
As part of working on an Arts Award I had to show some way of improving my skills. I gained some inspiration from one of the games I have been playing which gave me the idea of what to focus on for this section of the award. The game that I've been playing, called Destiny, from the latest update the game now has a series of new weapons which gave me the inspiration and idea to create a sword to be used in a future animation. The sword is loosely based on the weapons shown in the picture below. I personally really like the glowing effects on these weapons as well as the overall shape and style of them, especially the hammer. This hammer was where most of the inspiration for my sword came from. I tested a couple of different versions of the sword, the first version shown below mainly served as a draft version to get an idea of what I was going to create.
I wasn't really happy with the overall shape of this version but it still gave me an idea of the basic structure I wanted for the sword. The second blade that I created really looked great compared to the original so I decided to stick with it, I also added a small floating gem detail to give the sword more of a magic look.
This was the second blade that I created.
Once I had the blade set up it gave me an idea as to how I wanted the swords hilt to look so I was able to create that almost instantly. Below is the final version of the sword that I settled with.
The sword looked kind of boring with just the basic colours so I used the free image editing program called Gimp to create two textures that I could then apply to the blade and hilt of the sword to give it some colour. I decided that I only needed a basic pattern for each of them which was easily created.
These are the two textures that I created.
The left one was applied to the blade and
the right one was applied to the hilt of the sword.
There was still a little bit of the sword without colour so I added a basic grey colour to that section which fitted perfectly with the style I was going for. Once these colours and textures were applied I was a lot happier with how the sword looked, to give it an extra little bit of a magic look I used the modelling programs smoke effect to create a small blue smoke effect that covered the blade of the sword.
For a first time creating something like this I was pleased with how it looked. I intend to use this in a future animation and will more than likely use it for some other future projects.
When I first started using Blender I remember the interface put my off for quite a while but after getting some practice in and learning some helpful skills and shortcuts in the process I can now work through creating things pretty swiftly and efficiently.
Blender is a very keyboard based program, most of the functions can be accessed via keyboard shortcuts which saves time and makes the program a lot easier to use. Below are a series of key combinations that will make using Blender a lot smoother and may even boost the speed at which you create models.
Shift + A
The first shortcut might be one you already know of but I thought it would still be a good one to include. Pressing Shift + A when you have your cursor in the 3D view to add one of the basic objects to the scene. 1,3,7 Numpad Keys When you have an object in the scene you can use some of the keys on the number pad to view the object from different angles. Pressing the numbers 1,3 and 7 will change the angle that you are viewing the object from. 1 will Shift + Right Click Using Shift + RIght Click you can select and manipulate multiple objects in the scene. With all of these objects selected you can rotate,scale and move all of the objects at the same time. You can also add quick effects to these objects as well as add keyframes in animations and lots more. Shift + J Shift + J combines the data of each of the objects so that Blender recognizes them as one complete object. With all of the objects joined together you can edit them at the same time P After combining the objects together you might want to separate the objects again. If you select the whole object whilst in Edit Mode and press P, this will separate the selected object from the currently selected object. With this you can now edit this object separately.
Over the past couple of days I've been working on my astronaut game and so far everything's going a lot smoother than I ever expected it to! So far I've managed to get the players movement and shooting mechanics all set up and have a working random spawn system for the falling debris and the enemies.
As you can see in the preview above there are a couple of placeholder graphics mostly in the form of the giant cubes that fall from above, these cubes will be replaced in the future with things like meteorites and shooting stars, you may also have noticed that the player only faces in one direction regardless of the direction they're moving in. Changing the direction that the player faces is one of the next main things I want to get around to fixing as well as animations for each of the enemies.
So far I only have 1 enemy type in the game in the form of a simple orange blob (Shown below) but by the time the game is finished I aim to have at least 3 enemies built in. The enemy below may seem a little simple, this is because i want my game to appeal to everyone so I chose to go with a simple cartoon style alien because its the sort of thing that most people will be familiar with.
Having multiple different enemies in my game will add some variety so the player isn't seeing the same thing over and over again. As well as just having extra enemies in my game I intend to make it so that they take between 1-3 shots to kill to add a little bit of extra variety to the game.
With the basics of the main mechanics set up I also created a script to control other properties of the game, this script destroys any aliens or bullets that go off of the edge of the screen which stops the game from lagging out or slowing down. This script also controls the games timer which works as a visual indicator to show the player how much game time they have left. The only other mechanic I really need to set up is some way to add a value to the score each time an enemy is destroyed and then the game will be in a playable (yet super rough) state. If everything continues to progress as well as it has been a rough playable version of the game should be ready in the next couple of months on itch.io . After that I plan to keep working on the game to polish it and iron out any bugs then work on getting the game working on a mobile device. I'll try to keep updating this regularly for anyone who's actually interested :P but other wise keep an eye on my Twitter (@markimo2) for other updates.
Just wanted to use this to show off a little WIP animation that i'm busy creating for a showcase that i'm going to be part of in the next couple of weeks.
Overall this animation isn't going to be anything special as its just a little idea that I came up with while go and wanted to finish up specifically for the showcase.
So being a big fan of scripting for games and making all of the mechanics and controls work to help the game come to life I've come up with the idea of sharing what knowledge I have by creating a library of scripts alongside my tutorials. From now on I intend to use whatever file sharing service I can to share some of my best and most useful scripts. All of these scripts will be written and used in the Unity game engine. I'll post each of the links below along with the name of the script and a short description which explains what the script does. If any of these links don't work please either tweet me or comment letting me know asap :) - Enemy/Player Located Script: This script can be used for NPCs, security cameras and anything that is used to detect something or someone. Setting up the script is simple you just place the script on the thing which will be doing the detecting and tag the object or player with a "Player" tag (this can be changed in the script itself).
This one checks to see if the player has a tag of "Player" when they are within the trigger area and then kills/destroys them if they stay in the area for more than 5 seconds (this can be changed by changing the number in the brackets). - Score System I figured this would be one that people would be in need of a lot. This script adds a certain amount of "score" to the counter each time the player enters an object which has the tag "PickUp" on it (this tag can be changed in the script). You will also need to create a "Text" object using Unity's new UI system so that the script has somewhere to print the score. https://drive.google.com/open?id=0ByTYhg5RcS2pS3pWY1dDa3lPYUE
Being a big fan of both animation and video games I decided to mix the two together and start experimenting with some first person weapon animations. Below are two hammer attacks that I animated using Blender. So far you can see there are no arms or hands connected to the hammer but that'll definitely be the next step as well as adding a texture to the hammer.
The first one is just a simple right to left swing with the idea of it being used as a basic attack. The second one shown below is a top to bottom swing for a more heavy attack swing.
Different camera angles always make animations more interesting and usually look pretty cool at the same time. Making cameras switch in Blender is actually reasonably simple all you need to do is set up a marker and then bind the camera to that marker. Start off by adding your extra cameras to the screen, you can do this by pressing Shift + A and select camera from the list much like you would when you're adding other mesh objects to the screen. Once these cameras are set up position them around the scene so that they will capture each of the camera angles that you want. For the sake of testing to see if everything is working it may be a good idea to place the monkey head in the scene so that it can be seen by each camera. This way when you test your animation as each camera switches you will see a different section of the monkey. Once each of your cameras are set up find the animation timeline at the bottom of the screen. This is what you will need to use to add the markers to the scene.
To set up a marker select the frame that you want the camera to change on by either clicking on it on the timeline show above or by clicking on the box shown below and typing in your chosen frame number.
(Click on this box and then replace the numbers in the box with your chosen frame.) Before you set any markers up it's always a good idea to set a marker on the first frame of your animation so that Blender knows which camera your animation starts with. Set your frame number to 1 and then hover your mouse over the green line and press "M". This should add a little yellow triangle on frame 1 as shown below.
Now you have the marker set up right click to select the camera that you want the animation to start with. With your camera selected click on the view button in the bottom left hand corner of the screen and click on the "bind camera to markers" option. Alternatively you can hover your mouse over the animation timeline and press Ctrl + B to bind the camera.
Once you've done this move to the frame that you want you're camera to change on by typing the number in the box shown previously. To add the second marker move your cursor down to the green line again and press M. This should add a second small triangle just like last time.
Right click on the second triangle to make sure that it's the only one selected. If both of the markers are orange Blender will bind the camera to both markers and the camera won't change when you want it to. With the second marker selected right click on the second camera in your scene and like you did with the first camera click on the view button in the very bottom left corner of the screen and click on the option that says bind camera to markers. This will bind your second camera to the second marker. Now you've bound the two cameras to the markers it would be a good idea to test to make sure that its worked . Set your animation frame to 1 and then press 0. This should change your view to the camera that you bound to the first marker. Press alt a to play the animation and wait to see if the camera changes when it reaches the second marker it means everything is working as it should be. Repeat these steps for any other cameras you might want to include in your scene and add cameras to your hearts content. Video tutorial here:
As always any feedback is always appreciated on these tutorials, also be sure to tweet me @markimo2 with any troubles or further questions.
Having text in an animation often helps tell the story or can be used to show interaction between characters in the scene. This short tutorial will show you the easiest way to keyframe your text so that it shows up when it is needed and disappears when it needs to. First off start by adding your text to the scene and positioning it so that it can be seen by the camera. Press shift + A and add your text object to the scene.
Once the text is in the scene rotate the text by 90 degrees on the X axis by pressing "R" "X" "90". Now the text should look like it is standing up, use the move and rotate buttons (R and G) to move the camera around so that it can see the text.
Now that the text is in the camera view you will need to add the first keyframe to the text object, in the top right hand corner of the screen there is a list which shows you all of the items that are in the scene at the time.
Somewhere on this list should be an item called "text" unless you renamed it to something different after adding it into the scene. On the far right hand side of this list there is a small camera icon, this icon controls whether or not the item is rendered in the scene. When the icon is solid as shown below the text will be rendered in the scene.
On the other hand if the icon is lighter as shown below the text won't be rendered.
To change this in your animation you need to set a keyframe for each of these states. To set these keyframes up you need to decide which frame you want the text to be rendered on. To change this you first need to select the frame you want by using the controls underneath the animation timeline at the bottom of the screen.
Click on the box shown inside the blue outline above and delete the number, now replace this number with the frame number that you want to change your text object on. If you want your text to be rendered on this frame make sure the camera icon is solid as shown in the photo above and then right click on the camera and click on the insert keyframe option.
This will put a green circle around the camera icon.
To change the text from rendered to un-rendered or vice versa use the controls at the bottom of the screen to change the number of the frame to the frame that you want the text to change on. When you've selected your frame left click on the camera icon and then right click again and click on the insert keyframe option to insert the second keyframe.
If you press Alt-A now to test your animation you won't see any change in the 3d viewport. To test to see whether or not this worked click on the render option next to file in the top left corner of the screen and click "Render Animation". As each frame renders watch to make sure that the text appears or disappears on the correct frame. This method of making things appear and disappear also works on normal meshes or models. Just follow these exact same steps and you should have no problems. If you have anymore questions or anything in this tutorial doesn't work be sure to tweet me @markimo2 and let me know.