ThieveryUT3Ed: NightBlade

Zaglądnij tutaj, jeśli masz pytania lub uwagi dotyczące różnorodnych aspektów tworzenia misji w edytorach DromEd i T3Ed, jak też związanego z nimi oprogramowania i sprzętu.

Moderator: peter_spy

Awatar użytkownika
Bandit
Strażnik Glifów
Posty: 4357
Rejestracja: 08 października 2002, 18:23
Lokalizacja: Szczytno

ThieveryUT3Ed: NightBlade

Post autor: Bandit »

immortius pisze:Mapper's Guide - Getting Started
This is the first in what will hopefully be a series of guides to creating Nightblade maps. Most will probably focus on a particular element, like setting up sketchmaps or doors. However, this one looks at the general setup required to create Nightblade maps.


Setting up UT3 Editor for Nightblade:
In order to create a map for Nightblade, you will need to first set up UT3 Editor to automatically load the Nightblade files.

1. Copy everything under .\My Games\Unreal Tournament 3\UTGame\Published\cookedPC\Nightblade to \My Games\Unreal Tournament 3\UTGame\UnPublished\cookedPC\

Image of Directory Structure

2. In your .\UTGame\Config\UTEditor.ini add or modify the [ModPackages] section to be as follows:

[ModPackages]
ModPackagesInPath=..\UTGame\Src
ModOutputDir=..\UTGame\Unpublished\CookedPC\Script
ModPackages=NbLowLevel
ModPackages=NightbladeMod
ModPackages=NbAI

And you're done. There may be a better way to do this which I'm not aware of or things may change in the future, in which case I'll update this section.

Nightblade Resources:
The first thing to note is that our packages are either prefixed with "Th" or "Nb". The "Th" packages contain content ported from Thievery, so they are relatively low quality. We are slowly updating these over time. The "Nb" packages generally contain more recent content, either from our efforts to make Nightblade for UT2004, or updated and new content for UT3.

The CustomEnvironments directory contains all the static meshes and textures for use by maps. The CustomSounds directory contains all the Nightblade sounds, including ambient sounds and music that may be used in maps.


Setting up a map for play:
Once you have created a map, there are a couple of steps to making it playable ingame:

1. Add some player starts. Thieves use standard UT3 PlayerStarts at the moment, so place a few of these. Guards possess AI guards, so place some NbKnights in the map for them.

Image of NbKnight location in actor hierarchy

2. Open the World properties (reached through View->World Properties). In the WorldInfo tab you can set the map's Title and Author. Also in that tab is a GameTypesSupportedOnThisMap list, add an entry and select NbGameInfo. Finally you can set the MyMapInfo property to be a NbMapInfo, which can be used to configure various Nightblade-specific map settings, such as thief lives and the map time limit.

Image of WorldInfo properties

3. To test the map, run UT3 with the -UseUnpublished commandline option. This causes UT3 to use the contents of the Unpublished directory rather than the Published directory.


Publishing:
DGUnreal has written a great post on the steps involved in polishing and publishing an UT3 map, and most of it is relevant for Nightblade Maps as well.

It is worth noting that the cooking process bakes the Nightblade gametype into the map, meaning that the map will need to be re-released every time a new version of Nightblade is released. Alternatively you can just skip the cooking step and release the map in its uncooked state, which gets around this. The map will be much larger if you do that though.
immortius pisze:Mapper's Guide - Doors

First, some background. Doors in Nightblade are made up of two parts - a Door Control kismet object and the actual physical door(s) themselves. The door control keeps track of the door state and shares it between a number of actual doors, making double doors easy to set up.


Setting up a Simple Door
1. All doors and other movers use static meshes in UT3. So the first step is to select a door static mesh in the generic browser. Nightblade's doors are in a package called NbDoor.

Image of Door Selection

2. With the door mesh selected, right-click in one of the viewports hover over the Add Actor... menu option. You will see mixed into the UT3 options a number of Nightblade options. The relevant options for doors are the "Add NbDoor" and "Add NbDoor (Preconfigured)" choices.

"Add NbDoor (Preconfigured)" creates a door set up with a DoorControl, which is generally what you will want to use. "Add NbDoor" creates a door without a door control, which can be used to add additional doors to connect to an existing DoorControl - if you want to set up double doors, for instance.

For some reason, if you add a "NbDoor (Preconfigured)" without first having opened UnrealKismet at least once since opening UT3 Editor, the DoorControl doesn't get created (I guess this is an UT3 Editor bug), so open and close the Kismet editor and then add a "NbDoor (Preconfigured)". If this has worked (and kismet boxes aren't set to be hidden) then your door should appear with a friendly green kismet box around it.

Image of the Add Actor sub-menu highlighting NbDoor choices

3. Scale and position the door in the intended doorway, in the closed position. Please take note that the pivot point for Nightblade's doors is on one of the bottom corners (denoted by a red + in the viewports) - ensure that you place the door such that the pivot point is where you want the door to rotate around.

Image of positioned door

4. Right-click the door and select Find NbDoor_X in UnrealKismet. This should open UnrealKismet with the sequence relating to the door shown (it also opens a search window you can safely close). On the left of the sequence is the DoorControl. This contains the majority of the door settings:

bBreakable - can the door be damaged and eventually broken.
InitialDoorHealth - how much health the door has.
bInitialLocked - does the door start locked.
bPickable - can the door be picked.
fPickTime - how long it takes to pick the door's lock.
KeyTag - the tag of the key that can unlock this door.
OwningTeam - the team that owns this door, meaning they can open it even when locked.
damageSound - the sound the door makes when damaged.
lockedSound - the sound the door makes when locked.
unlockedSound - the sound the door makes when unlocked.

The properties for the NbDoor itself allow you to set the various opening and closing sounds for the door, under the InterpActor tab.

On the right is the Matinee sequence for the door. Double click this to open the matinee editor.

Image of the door's Kismet Sequence

5. Zoom out on the matinee sequence using the mouse wheel until you can see both red triangles. This denote the length of the sequence. Doors should open and close reasonably quickly, so click the right-triangle and drag it back until the sequence is 0.75 seconds long (you may need to change your timeline granuality in the toolbar to 0.05s first).

Next set the current time to 0.000 by moving the black line to the left edge. Select the Movement Track under MoverGroup and press enter to set the initial keypoint. A little red triangle should appear.

Then move the current time to the right-edge of the time sequence. Without closing the Matinee window, select your door in the world and rotate it to the open position. Then return to the matinee window, select the Movement track again and press enter to add the final keypoint.

If you move the black bar back and forth in the matinee window you should see your door moving between the open and closed position in the world now.

Image of the door's finished Matinee sequence

6. One final step is required to get the door functioning - by default, NbDoors have no collision (this is another UT3 editor thing). Luckily you can add collision to all doors at once, so if you need to place a lot of doors you can do this step once at the very end. Select your door. If necessary, right-click the door and select "Select all NbDoor". Then enter actor properties, open the Collision tab and for Collision Type select COLLIDE_BlockAll.

Image of the door's collision property


Door Lighting
At this stage your door should be fully functional in Nightblade. However, you will find that ingame the door won't be lit up except by ambient light and flares.

In UT3, the lighting system has been extended to include a number of lighting channels and various other options, giving precise if fiddly control over exactly what each light affects. The important channels are:

BSP - whether this light affects BSP geometry.
Static - whether this light affects static meshes (this is, the static meshes you place in the map, not the ones that are used for gameplay components like whistlers).
CompositeDynamic - this appears to be whether this light affects gameplay actors with light environments. Examples would be players and a lot of gameplay items like whistlers.
Dynamic - whether this light affects dynamic actors. The crucial example here are NbDoors and other movers.

Standard point lights and NbTorchLights are set to affect the BSP, Static and Composite Dynamic by default, so for a light to affect a door you will need to go in and switch on the Dynamic channel. You will probably also want to turn on CastDynamicShadows as well, which prevents the dynamic component of the light shining through walls and doors.

Be aware that having a lot of dynamic lights, especially overlapping, can drop performance. I recommend having only only one, maybe two lights on each side of a door set to affect the dynamic channel - the most significant one on either side.

Image of the Lighting properties with the important ones highlighted


Double Doors
Since your opulent mansion would be incomplete without a set of double doors, here's how to set a pair up.

1. First, set up a single door as described above.

2. Place your second door using the "Add NbDoor" option (not the preconfigured NbDoor).

3. Move, scale and rotate your door into closed position.

4. Open up the Kismet sequence for your first door, and then open the door's Matinee sequence.

5. Right-click under the original MoverGroup's movement track, and add a new empty group. Name it as you wish (you can also rename your original group). Right-click on the new group and add a movement track.

6. Close the Matinee window. You should see a new pink box on the bottom of the Matinee node in the Door sequence corresponding to the new matinee group. Select your second door in the viewport and then right-click in UnrealKismet. Choose "New Object var using NbDoor_x". This will add a node for the second door. Then click and drag a line from the new pink box to the second door's node. This links it to the second matinee track.

Image of the Kismet Sequence with a second door added

7. Open up the Matinee window and set up the key points for the second door, making sure to select the Movement track for your second MoverGroup before pressing enter.

Image of the double door's finished Matinee sequence

8. Your double door is now complete. (Don't forget to set its collision).


Door Handles
Door handles add a little extra detail to your map.

1. Add the door handle mesh you wish to use to the map as an Interp Actor. Interp Actors are another option under the "Add Actors" menu, these are UT3's movers.

2. Rotate, scale and otherwise move it to where you want it to appear on the door.

3. Select the door you want to attack the handle to and make a note of its name (it will say on the status bar Persistent Level.NbDoor_X. The NbDoor_X bit is what you are interested in).

4. Select the door handle and open up the actor properties. Under the Attachment Tab, type in the door's name as the Base. Also select bHardAttach.

Image of the attachment properties. Note that you don't need to type in the door's full name, just the last bit.

And that's it. All done. If you want to go further you can add extra matinee groups for the door handles and animate them a little when the door open and closes, although none of the door handles we currently have are set up for this.
:chase: :shoot: :guard:
ODPOWIEDZ