UDK Scripting Series by Pete Bottomley:
Intro to Kismet
How to Pick Up and Place Item
How to Trigger Material Instances
How to Spawn Bots in Kismet - Part 1
How to Add Functionality to the Bot - Part 2
Bot Functionality Final Touches - Part 3
Bools - Puzzle Design and Interaction
Cinematics Introduction Part 1/2
Cinematics Introduction Part 2/2
Using Console Commands as Gameplay Elements
How to Prototype Quick Time Events in Kismet
Moving doors using Matinee will cover basic to more advanced setups of how to open doors in Kismet using triggers and camera actors.
In this Moving Doors video you'll learn:
- How to add a mover (interpactor) to your scene
- How to use Trigger Volumes and Use Triggers
- How to add a camera into Matinee and a director track
- How to Log information
- How to use a looping switch
1. First we will start off by adding a door and a door frame to the level. For this example we have used StaticMesh 'LT_Doors. SM.Mesh.S_LT_Doors_ SM_Door04' for the door frame and StaticMesh 'LT_Doors. SM.Mesh. S_LT_Doors_SM_DoorWay04' for the door.
Position your door and door frame in the scene. Next, right click on the door and go to Convert - Convert Static Mesh to Mover. This will turn your door from green (StaticMesh colour) to pink (Interpactor colour) in your perspective viewports. You will need to change a property in your door properties (F4 with door selected). Go to the Collision heading and change the No Collision property to Block All.
Next we need to place a trigger volume around the door. To do this place the red builder brush so that it encompasses the door and go to the volumes tab and select 'Trigger Volume'.
With the trigger volume selected, open up Kismet and right click and select New Event Using TriggerVolume_0 - Touch. Next we select the door in the perspective viewport and right click inside of Kismet and select New Matinee.
For more information on what Matinee is look here:
Right click in the dark grey area to the left of Matinee and select Create New Empty Group. You can name your group whatever you wish, for this example I have named it Door. Make sure that your door group is a green colour and that when you select and deselect the group, it selects and deselects your door in the level. If it hasn't work, re-do the previous steps. Right click on your door group and select the option Add new Movement track.
Use your scroll bar along the bottom of the matinee window to move the time slider to 2 seconds (or however long you wish your Matinee sequence to be). You can change the length of the matinee by left clicking the red tab and dragging it along the time line. You can also use the toggle snap button which is the red Magnet icon on the top of the Matinee window.
Scroll the time slider to the end of the sequence and press 'Enter/Return' on your keyboard or click the little icon in the top left of the Matinee Add Key, to add a key to the movement track. This second key will be the open position of your door. So with the second key on the track selected (Highlighted), in your perspective viewport, move the door to the open position.
Once your Matinee is set it is just a case of hooking up the Touch event in Kismet to the Play of your Matinee.
If all is working your door should now open when you walk up to it.
2. To add a bit more functionality to the door we will add a Use trigger to our scene with a control panel so that when we press it, the door will open.
For this example for the panel I used: StaticMesh 'HU_Deco3. SM.Mesh. S_HU_Deco_SM_StorageTanks07'
I have also added a new trigger by right clicking in the scene and selecting Add Actor - Add Trigger.
We add the trigger just like we have done previously by opening Kismet and right clicking and selecting New Event Using Trigger_1 - Used. Previously we have selected the Touch option, but for this trigger we will select a Used event.
We will un-tick the Aim To Interact property of the Trigger and also change Interact distance to 200.
Once you have done this we can hook up the Used output into the Play input of Matinee and when you play your game the trigger will work by pressing E to open the door on the panel. However, we can make this more advanced by adding a switch in to the setup. This will allow us to open and close the door multiple times.
To add a switch into Kismet right click go to New Action – Switch – Switch. We need to change a few properties of the switch before we add it into the sequence. Select the switch and change Link Count to 2 and also tick the Looping box. We can now connect the Used output of Trigger_1 to the Input of the Switch. Attach link 1 to the Play input of Matinee and Link 2 to the reverse input of the Matinee. This means that when the trigger is pressed once then it opens the door. On the second time it will close (reverse) the door. And the sequence will loop because we set the switch to Looping. One thing you need to change on the Trigger_1 properties is Max Trigger Count. Change this to 0. By default this value is 1, entering 0 will mean it can be pressed infinitely.
Note: To break any links you have created in your Kismet you can hold down the Alt key + left click on any links to break them.
3. To add even more functionality to the door open sequence we can add a camera to show the player where about in the level this door is opening.
To do this, open your actor classes tab and select Camera actor and drag and drop it into your scene. You can position the camera like you have done previously by pressing the eye icon on your viewport. Remember to click off this button when you have finished editing the position.
We can now add the Camera into the Matinee we have just created for the Door. Make sure you have the camera selected in the viewports and open up your Matinee sequence by double clicking it. We can now right click in the dark grey area underneath your door group, and instead of selecting New Empty Group, this time select Add New Camera Group. There isn’t much different between adding an empty group and a camera group, the camera just comes in with the tracks we need without having to add them. You can however choose to add an empty group and add a movement track just like you did with the door. Name the group Camera01 or something similar and hit ok.
Next we want to edit the movement. You can press the yellow Camera button in next to the track to look through the camera.
Then scroll your time bar to the end of the sequence and hit Enter/Return or use the Add Key button then you can move your camera in the perspective viewport to the position you want it to move to. Once you are happy with the position make sure you select off the key so that you don’t edit the key by accident. You can press Stop and Play on the Matinee now and watch your camera pan across the screen as the door opens.
The kismet sequence should be similar now to as in the previous example except now you have a camera panning. You may wish to take out the Switch so that the camera does not pan and reverse every time the switch is pressed, but you can play around with those things.
I’ve also added a Log into this example. Logs can be added in Kismet by holding down L and Left Mouse Clicking. In the Obj Comment box you can type in something like DOOR OPEN and hook it up to where the door opens. Same can be done with door close. This is just for testing purposes and allows you to see that that action is being triggered in the level ok without any faults.