Your First Eternal Silence Level/Old

From Valve Developer Community
Jump to: navigation, search
Your First Eternal Silence Level

To do: Please add or edit this to make it easier to understand.

Image Description
Place a reference model so you can align your hangar bay door. The proper models will have a _scaled or _infantry at the end of the model name.

This destroyer model is models/capships/gm_destroyer_test_infantry.mdl

Build a approximate hangar inside the model. Be sure to align it to the grid. The hangar pictured here is 2048*1024*896 hollowed outward 32 units.
Keeping the reference on the grid, align it so the edge doesn't enter the model.
Make a front wall, so the edge of the bay ends inside the wall.
Use the clipping tool to cut out the door of the hangar. Ensure to clip past the model, so there are no gaps.
Select the model, and place it in a visgroup called reference.
Texture the outside and center of the wall with esmod/genericblacktexture.

Make the wall a func_detail, so it will not mess up visibility.

Hide the reference, and build a skybox around the hangar entrance.

Make sure there is plenty of room for a gunship to clear the hangar in every direction.

Hide func_details, and cut a hole in the skybox wall around the hangar. Make sure there are no leaks.
Create a brush the size of the opening tools/toolsnodraw.

Tie it to the entity func_spaceteleport Align it in the center of the bay door, as shown.

Note: The teleport brush should only be large enough to clear the collision model of the reference.

Texture the inside wall with esmod/ngm_hangarshield or esmod/utf_hangarshield.

Change the texture scale to 1.

Place a space_camera entity near the teleport.
Place a info_vehicle_spawn in the hangar. (This will help test the transition)

Change the ship class to utf_interceptor, as it is the most maneuverable.

Create a trigger brush, and tie it to the entity func_subsystem. Call it ngm_sub; set it's initial team to NGM, and it's parent capship to ngm.

Place a info_es_spawn near it. Set it's parent subsystem to ngm_sub

Repeat this for the UTF.

The spacebox and skybox are placed near the origin. Move the map over to make room for it.
Place two space_capships near the origin. Make the ships the same orientation as the reference.

Call them ngm and utf, and set their appropriate initial teams and models.

Create a box around the ships, and a smaller one near it. These will be the spacebox and skybox respectively.

Place a sky_camera in the skybox, with it's scale set to 1000.

Note: The 3d skybox must extend past the infantry sections. If you notice a hall of mirrors effect, make the 3d skybox boundaries larger, or increase the scale.

Going back to the space_camera, name it ngm_cam1_in.

Change it's pitch yaw roll to point out into space.

Set it's partner cam to ngm_cam1_out

Set it's partner capship to ngm.

Change the func_spaceteleport's name to ngm_tele1_in

Change it's angle of normal to the space_camera's angles.

Set it's space_camera to ngm_cam1_in.

Set it to end touch based.

Enable the reference, and turn on scaling texture lock. Select the reference, the teleport, and the camera. Group these objects

Duplicate them, and scale them by .025.

Change the copy's reference prop to the scaled down version.
Turn off grid alignment, and in the 2d views align the group as best as you can.

Delete the scaled reference prop. or Delete the space_capship, and change the prop_static reference prop to the space_capship for perfect alignment.

Rename this space_camera to ngm_cam1_out.

Change it's partner cam to ngm_cam1_in

Change it's scale to space.

Clear the capship value.

Rename the func_spaceteleport to ngm_tele1_out

Change it's camera to ngm_cam1_out

Set end touch based to no.

Fill the transition box with a playerclip. This stops players from exiting the ships outside the bay doors.
Hollow out a trigger, and tie it to func_desertion. This turns players around before they crash into the boundaries.
Change the 2d skybox to something interesting.
Done! Be sure to compile vis to get the spacebox to work properly