Tutorial: Beam & Sprite Effects Last edited 14 years ago2010-07-19 17:03:10 UTC

You are viewing an older revision of this wiki page. The current revision may be more detailed and up-to-date. Click here to see the current revision of this page.

This article was converted from a previous version of TWHL and may need to be reviewed

  1. The formatting may be incorrect due to differences in the WikiCode processing engine, it needs to be revised and reformatted
  2. Some information may be out of date
  3. After the article is re-formatted and updated, remove this notice and the Review Required category.
  4. 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.

Download attachment

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_bubbles
captioncaption
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_funnel
captioncaption
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]
captioncaption
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 effect
Go 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: 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): 1
train1 : 1.1
train2 : 1.1
shocksound (ambience): 1
shockwave#1 (env_beam): 1.5

That'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. 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: .5
Width of beam: 16-20
Amount of noise: 0-60
Sprite name: sprites/lgtning.spr
strike again time: -.5

Flags: 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!

11 Comments

Commented 14 years ago2010-07-19 19:42:15 UTC Comment #100928
A great guide on the basic effect entities and on making more advanced effects.
Commented 14 years ago2010-07-20 20:26:48 UTC Comment #100929
Very nice! I never figured out the ring effect before. Thanks!
Commented 14 years ago2010-07-22 15:44:01 UTC Comment #100930
After experimenting with env_shooter, I came to the conclusion that it only works with non animated sprite effects, I tested it with several animated custom sprites and they did not work, I'll add this to the tutorial.
Commented 14 years ago2010-07-26 16:15:17 UTC Comment #100931
Good timing considering the current competition, and I think this will help, at least it will help me. :)
Commented 14 years ago2010-07-28 08:12:30 UTC Comment #100932
Well done!
Commented 14 years ago2010-10-03 15:16:23 UTC Comment #100933
Really amazing effects, help full RMF for noobs! :D

Thanks Skals.
Commented 14 years ago2010-10-03 15:43:00 UTC Comment #100934
No problem :).
Commented 12 years ago2012-01-16 01:31:09 UTC Comment #100935
Great tutorial sir! this helped me with hotdog's 2012 contest, Thank you! :P
Commented 11 years ago2013-10-16 21:06:28 UTC Comment #100936
Thanks for this!.
Commented 9 years ago2015-11-22 07:03:18 UTC Comment #100937
Thank you so much! Especially for the alien teleport effect. I recently started mapping and I was so frustrated because of the fact that I couldn't figure out how people do it on their mods and/or Sven Co-op maps.

This website is awesome!
Commented 7 years ago2017-11-07 05:39:05 UTC Comment #100938
Ingenious. Shows that there's no magic. You've got to kill the cow to make some burgers sometimes!

You must log in to post a comment. You can login or register a new account.