This article was converted from a previous version of TWHL and may need to be reviewed
- The formatting may be incorrect due to differences in the WikiCode processing engine, it needs to be revised and reformatted
- Some information may be out of date
- After the article is re-formatted and updated, remove this notice and the Review Required category.
- Some older tutorials are no longer useful, or they duplicate information from other tutorials and entity guides. In this case, delete the page after merging any relevant information into other pages. Contact an admin to delete a page.
The goldsource engine is full of wonderful and useful entities, sadly however a lot of them are hugely unused and many mappers do not realise the brilliance of these entities. That's why I made this tutorial. Hi I'm Skals, and In this tutorial I am going to show you the possibilities of sprite based entities in particular and teach you how to use all of them for some astounding effects in your maps!
Note:
Before we begin this tutorial, you are required to know how to create basic beams and lasers (see here:
Laser and Beam Effects Tutorial)
and how to create basic sprites with env_sprite (see here:
Using sprites tutorial)
Right, now that that's sorted, Lets begin with the tutorial, I'll start with the easiest.
Env_bubblescaption This is a simple
brush based entity used to create simple water bubble effects on any given location, just create any brush and tie it to env_bubble (texture does not matter). The size of the brush will determine where the chosen amounts of bubbles will spawn, they will not leave this brush.
Lets look at the
properties.
Name: The name of the entity, can be used to turn it on or off.
Bubble density: The amount of bubbles you want the brush to contain per current.
Bubble frequency: The frequency interval between each bubble current.
Speed of current: The speed of the current a.k.a. the speed of each individual bubble.
6-32 are good values.
Flag:
Start Off. Self explanatory.
Env_funnelcaption Now this is one of my favourite entities; it's basically a stand alone effect, it has no properties besides it's name for the trigger, It creates a massive amount of sprites at once and either forces them to fly away from it or fly directly into the entity. If you remember the Mission in half-life where the test chamber was destroyed and the alien invasion began, this effect was used there for massive amounts of sprites that came out of the big beam. The downside of this entity however is that you cannot choose the sprites it creates, but it's still a very good entity in some situations. Note:
To see what this entity does with your own eyes (it's pretty amazing), view the example map I added. You have to compile it first.Properties:
Name: Self explanatory.
Flags:
Reverse: Normally the entity sucks in the sprites from thin air, but with this ticked it pushes them out rather quickly back into the air
(hence forth its called reverse).
[u]Env_shooter[/u]
caption Now this is an extremely good and very flexible entity, one of my favourites. It is used to either spit out models like gibs
OR sprites! You can select any sprite, set the properties correctly, and the entity will chuck them out onto the floor where they live for how long you choose.
Properties:
Name: Self explanatory
Pitch Yaw Roll (Y Z X): You can select in which direction they are spat out from the entity.
Number of Gibs: The number of gibs or sprites it spits out. If you select
2 it will spit out two of the same model or sprite you selected. simple.
Delay between shots: The time delay between each model or sprite is spat out. If you only chose one this is useless to you.
Gib Velocity: This is roughly the units it will fly before it hits the floor from the entity, if you select
256 it will fly roughly
256 units till it hits the floor (roughly speaking of course, If you put the entity high it may travel longer.)
Course Variance: This determines the randomness of each item spat out. If you set it to 0 they will travel in the same direction always, but a value like
0.5 will spit them differently yet roughly in the same direction. Feel free to experiment with this to your liking.
Gib Life: Once the model or sprite is spat out, how long will it live before It de-spawns / disappears? This determines it.
Render FX: Just like for normal sprites, you can change the FX of these as well.
Render Mode:
Additive would be the best value here, feel free to experiment however.
FX Amount (1 - 255): The visibility of the sprite, just like for most other entities.
FX Colour (R G B): You can change the colour to your liking of the chosen sprite.
Model or Sprite Name: Enter the sprite name here.
Note:
Hammer only lets you select models in this window, but do not fear. simply create an env_sprite, select your chosen sprites path and copy+paste it into this tab, it will work!Material Sound: A small amount of selectable sounds for each spat entity. The choice is not large, I'd advice adding an
ambience_generic instead.
Gib Sprite Scale: The scale of each model or sprite.
Gib Skin: If you are using models for this, select the skin here. For sprites this tab is useless.
Flags:
Repeatable: The only flag, self explanatory. You can repeat the entity to your liking!
Edit Note:
After experimenting with env_shooter, I now believe that animated sprites do not work for this entity, I tested several default hl motion sprites with this entity and they do not work, so keep that in mind. All other sprites should be ok.That's it for the unused sprite entities section!
Go to page 2 for the beam shockwave effectGo to page 3 for the alien teleport effect.
There is more stuff I'd like you to learn besides the first three entities. In this second part of the tutorial I will cover two Advanced yet very nice uses for the env_beam entity. The two I am talking about are Houndeye
Shockwaves and the
Alien Teleport effects.
Let me begin with the
Shockwaves.Warning:
This requires a big and advanced entity setup, do not attempt it if you cannot do it!Do you remember the shockwave blasts given off by houndeyes from half-life? It is possible to create a very similar and very good looking effect in game, although It requires some hard work. Note:
If you are mapping for Spirit of half-life, the [font=purple]env_shockwave entity does this. This tutorial Is simply for doing the same thing in half-life.[/font]
Here are the entities required that I used to create this effect:
- 1 Env_beam entity
- 1 Ambience_generic
- 2 func_trains
- 4 Path_corners
- 1 Multi_manager
- A trigger
I don't recommend doing this unless you are an Advanced mapper.
This is how to do it:
1. Create an
Env_beam entity. Tick these flags:
Toggle,
Ring.
Name it
Shockwave. Now set it's
Brightness to
25 and Make the
colour anything you want, I made mine light blue. Make The
Radius 256. In the
life tab, set the value to
.5, Make the
Width of beam
112, and the
sprite name sprites/shockwave.spr. Set the
texture scroll rate to
100 and make the
strike again time -.5. Note:
Feel free to experiment with these values but leave the others untouched. Now you have the beam sorted, lets move on to the other entities.
2. Now create two
func_trains. Make them both completely invisible to sight by making their texture {BLUE and setting their
render mode to
Solid and
FX Amount to
255. Tick the
flag Not Solid and make their
Speed 256.
Now Finally, Give both
trains a separate
name, I named my trains
Train 1 and
Train 2. Afterwards go back to the
Env_beam and make the
Starting Entity to
train 1 and
Ending Entity to
train 2.Simple? Not really.
3. I take it that you know how to create
Path_corners for
trains? Simply do this: For each train create two
Path_corners, name them appropriately, We are trying to create the effect that the beam is quickly expanding from the created location, so make the starting
path_corners for each train stand in the exact same spot, then make the ending
path_corners and move them approx
256 units into the opposite directions of each other, Leave them there. Finally give the starting
path_corners the "
wait for retrigger"
flag.
4. Finally, create an
Ambience_generic with the
Wav name:
houndeye/he_blast3.wav.
Now all you need is a
multi_manager. Here is how yours should look, do not tweak these unless you want to experiment with the beam.
Multi_manager:
shockwave (env_beam):
1train1 :
1.1train2 :
1.1shocksound (ambience):
1shockwave#1 (env_beam):
1.5That's It. If you done it correctly Your shockwave will work good.
To Recap:
The multi_manager triggers the Env_beam, which then turns itself on, The multi_manager then triggers the sound and both trains at the same time. Both trains move in the opposite direction from each other and since the Env_beam is targeting both trains and has the ring flag checked, It looks as if it's expanding in both directions quickly. Then finally the multi_manager triggers the Env_beam once more and before the trains stop it turns off. The trains are still moving once the beam turns off, they move back to their starting spot and get halted due to the "wait for retrigger" flag back at the starting position and now you can repeat the entire process.Go to page 3 for Alien Teleport effect
Finally, The last part of my tutorial!
The Alien Teleport Effect.You may have seen it before many times in half-life, I'm talking about the beam effect that is used when an alien is spawned. This one is a lot easier to make than the shockwave.
Here are the
entities I used to create it:
- 1 monstermaker
- 1 env_beam
- 1 info_target
- 1 env_sprite
- 2 ambient_generic
- 1 multi_manager
- A trigger
1. Create one
env_sprite, make the sprite name any teleport effect you wish, I used the
sprites/c-tele1.spr sprite. Make it
Additive and Scale it as you wish.
2. Create ambient_generics, I created two for a better teleport sound, but It doesn't matter as long as there is any sound. The debris sound folder contains good teleporting sounds, I used the sounds
debris/beamstart7.wav and
debris/beamstart2.wav.
3. Now create the
monstermaker. Any monster to your liking will do, Make sure you place it inside the
sprite so it looks right.
4. Finally create the
beam. I made mine green. Fiddle around with it as you like, but I recommend that you leave these properties like listed below:
Life:
.5Width of beam:
16-20Amount of noise:
0-60Sprite name:
sprites/lgtning.sprstrike again time:
-.5Flags:
Toggle,
End Sparks,
Decal End.
For the starting entity, create a single
info_target and make it the starting entity for the
beam, do not create any ending entity.
5. Now put the
info_target inside the
env_sprite and put the
monstermaker inside the
env_sprite as well. Create a
Multi_manager and make it trigger the
env_beam,
ambience,
env_sprite and
monstermaker all at the same time. Don't forget to turn the
env_beam off with the same
multi_manager, simply add the exact
env_beam value but 1 second later, it'll get triggered twice, second time being it turned off. If the
monstermaker has more than one monster don't forget to turn it off with the
multi_manager as well.
To recap: When the
multi_manager gets triggered, it creates the
env_beam, the
monster and the
sprite all at the same time, it plays the
sounds and then shortly after it turns off the
beam and the
monstermaker. If you done it correctly you should also be able to retrigger the
multi_manager as much as you like.
That's It for my tutorial! I hope you learned something today.
I have included a tutorial map for each of the entities of effects I mentioned in this tutorial, It is a .rmf. Compile it to see the effects in game or view it for help!If you have any problems understanding this tutorial please give me a PM!
Thanks Skals.
This website is awesome!