Un peu d'électricité

Les câbles

Entités

Type

Description

move_rope

Point

Point de départ d'un câble

keyframe_rope

Point

Point d'attache d'un câble

Après les lampes, pourquoi ne pas voir les câbles ? Ben oui, ce sont eux qui vont servir à acheminer l'électricité, et ainsi donner plus de réalisme.

Faire des câbles est quelque chose de relativement simple. Un câble est caractérisé par une entité de départ, (le move_rope) et des points d'attache (des keyframe_rope).

Donc, un simple câble aura un début (move_rope) et une fin, qui sera son seul point d'attache, en plus que le move_rope.

Allez, placez dans votre map le move_rope. Remplissez sa propriété Next Keyframe en mettant cable_1. Ensuite, créez un keyframe_rope, que vous nommerez cable_1.

Image utilisateur

La propriété Next Keyframe indique le point d'attache suivant du câble. Vous pouvez mettre autant de keyframe_rope que vous le voulez. Il vous suffit de tous les nommer et de remplir correctement leur propriété Next Keyframe.

Comme propriétés, nous avons ceci :

  • Slack : c'est la tension (la courbure) du câble. N'ayez pas peur de mettre une valeur importante comme 100 voir 150.

  • Type : c'est le type de câble. On laisse généralement Rope. Si on met sur Rigid, les effets du Slack sont annulés (ben oui, le câble est rigide et non courbé ^^ ).

  • Subdivision : c'est le nombre de câbles. Vous pouvez mettre une valeur allant de 1 à 8. Si vous mettez 5, il y aura 5 câbles qui partiront du point A pour arriver au point B. Plus il y a de câbles, plus le moteur graphique doit calculer. C'est pourquoi il n'est pas bon de mettre plus de 3 câbles ;) .

  • Width : comme vous l'aurez deviné, c'est la grosseur du câble. Une valeur de 1 ou de 2 est raisonnable. Les valeurs décimales sont aussi acceptées, comme 0.5 ;) .

  • Collide with world : si vous voulez que le câble se cogne contre les autres éléments.

  • Start dangling : si le câble semble séparé de son point d'accroche (pas super utile comme truc).

  • Breakable : si le câble peut être cassé.

Voilà, c'est tout pour les câbles :) .

Image utilisateur

Les étincelles

Entités

Type

Description

env_spark

Point

Permet de créer des étincelles

env_spark vous permet de créer des étincelles. C'est assez pratique pour mettre de l'ambiance, comme dans une salle à moitié inondée et pleine d'appareils électriques.

Pour mettre des étincelles, placez un env_spark où vous souhaitez en avoir. Ensuite, paramétrez l'entité :

  • Max Delay : le temps maximum entre deux étincelles.

  • Magnitude : c'est l'intensité des étincelles. Vous avez le choix entre Petite, Moyenne et Grande (en anglais ^^ ).

  • Spark Trail Length : c'est le longueur de la traînée des étincelles.

Il y a aussi quelques flags :

  • Start On : très important ça.

  • Glow : mettre un effet de lueur.

  • Silent : pas de bruit.

  • Directional : pour orienter les étincelles suivant un angle (le Pitch Yaw Roll).

Un petit laser fixe

Entités

Type

Description

info_target

Point

Représente un point de l'espace devant être utilisé par une autre entité

env_beam

Point

Crée un faisceau entre deux info_target

Comme nous sommes dans l'électricité, je vais vous parler des lasers. Mettre quelques rayons lasers peut ajouter un peu d'ambiance dans votre map.

Pour mettre en place un laser, il nous faut trois entités : deux info_target et un env_beam. Les info_target sont des entités qui n'ont pas d'utilité précise, si ce n'est de représenter un point. Les paramètres du laser se définiront avec l'env_beam.

Bon, placez un premier info_target où vous désirez que votre laser commence. Vous nommerez cette entité laser_1a. Ensuite, vous placez le deuxième info_target où vous voulez que votre laser finisse. Appelez cette dernière laser_1b.

Voilà, les points de départ et d'arrivée de votre laser sont placés. Il ne reste plus qu'à les « attacher » entre eux. C'est ce que nous allons faire avec l'env_beam.

Placez votre env_beam où vous voulez, ça n'a pas d'importance. Ouvrez ses propriétés, et dans Start Entity, mettez laser_1a. Dans End Entity, mettez laser_1b. Voilà, votre laser est presque fini :) .

Voici mon exemple (j'ai placé des models pour faire les « générateurs » du laser, pour ne pas qu'il sorte du mur comme par magie ^^ ) :

Image utilisateur

Il reste d'autres propriétés. Et certaines sont importantes :

  • Beam color : c'est la couleur du laser. Moi, comme mes points de départ et d'arrivée sont rouges, je mets mon laser en rouge.

  • Life : ça c'est la durée pendant laquelle votre laser va rester activé avant de s'éteindre puis de se rallumer. Moi je mets 0, pour que le laser soit permanent.

  • Width of Beam : c'est l'épaisseur du laser.

  • Amount of noise : plus la valeur que vous allez entrer ici est grande, plus votre laser va s'agiter, un peu comme un éclair.

  • Damage / Second : les points de vie qui seront retirés par seconde si le joueur passe dans ce laser.

N'oubliez pas de cocher le flag Start On, sinon votre laser ne sera pas déclenché par défaut. Il y a d'autres flags intéressants comme Start/EndSparks qui définissent si vous voulez des étincelles au début/à la fin de votre laser.

Image utilisateur

La lampe qui balance

Entités

Type

Description

phys_ballsocket

Point

Permet de faire bouger un point par rapport à un autre.

Une lampe qui se balance, ça vous dit ?

Eh ben je vais vous expliquer comment en faire une :) .

Pourquoi tu n'as pas expliqué ça dans le mini-tuto sur les lampes ?

Parce qu'on n'avait pas encore étudié les câbles :D .

Cette petite partie va donc faire intervenir un peu tout ce qu'on a déjà vu, comme les câbles, les models physiques et les lampes.

Pour commencer, au plafond, créez une entité move_rope. Paramétrez-la comme suit :

Citation : Entité

Next KayFrame : fil_1
Width : 1
Position Interpolator : Linear

Maintenant, placez une entité keyframe_rope, à la hauteur où vous désirez que votre lampe soit, avec ces propriétés :

Citation : Entité

Name : fil_1
Parent : lampe_1
Width : 1

Donc, souvenez-vous, ceci est le câble (le fil) de la lampe.

Maintenant, créez un prop_physics. Ce sera notre lampe. Vous devez la placer juste sous le keyframe_rope. Paramétrez-le comme suit :

Citation : Entité

Name : lampe_1
World Model : models/props_c17/lamp_standard_off01.mdl

Remarquez, la propriété Parent du keyframe_rope contient le nom du prop_physics. Cela veut dire que ce keyframe_rope, ou plutôt le bout du fil est parenté (« attaché ») au prop_physics. Ca aura pour effet de faire balancer le bout du fil en même temps que la lampe si le joueur tire dessus.

Voici ce que vous devriez avoir :

Image utilisateur

Bon, continuons. Placez un phys_ballsocket sur le move_rope. phys_ballsocket que vous paramétrez comme ceci :

Citation : Entité

Entity 1 : lampe_1

Cette entité bizarre marque l'origine du système de balancement. La première entité liée à cette dernière est le prop_physics (lampe_1). En réalité, et pour faire bref, le phys_ballsocket va s'occuper de gérer le balancement.

Nous avons presque fini. Il ne reste plus qu'à placer la lumière. Placez un point_spotlight juste sous la lampe :

Citation : Entité

Parent : lampe_1
Color : 238 232 221
Pitch Yaw Roll : 90 0 0
Spotlight Length : 256
Spotlight Width : 60

Citation : Flags à cocher

Start On
No Dynamic Light

Vous voyez, le point_spotlight est parenté avec lampe_1. Si la lampe bouge, le faisceau bougera aussi :) .

Juste sous le point_spotlight, créez un light_spot avec ces paramètres :

Citation : Entité

Picth Yaw Roll : 90 0 0
Brightness : 238 232 221 200
Inner : 0
Outer : 50
Pitch : -90

Image utilisateur

Mais, c'est bizarre ça, le light_spot n'est pas parenté à la lampe ?

Non. C'est tout à fait possible de le faire, mais alors il faut utiliser un light_dynamic en lieu et place du light_spot. Mais le light_dynamic a un très gros problème : il demande beaucoup de ressources et de calculs et en particulier pour les petites configurations.

Vous pourrez tester dans le jeu, on ne remarque pas trop que la source lumineuse est fixe, car le point_spotlight donne l'impression que la lumière suit vraiment la lampe.

Image utilisateur