Aller au menu - Aller au contenu

Icône Comme au cinéma

Mise à jour : 22/07/2009
1 414 visites depuis 7 jours, dont 16 sur ce chapitre classé 94/786
Vous voulez jouer à l'apprenti cinéaste ? Ca tombe bien, Half-Life a tout prévu : caméras, effets de fondu etc... Tout pour commencer une carrière de metteur en scène quoi ;)
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Les caméras

Entités concernées : trigger_camera, info_target et path_corner
Type d'entités : entités-point
Difficulté : moyen

Elles sont vraiment pratiques dans une map multijoueurs Half-Life ou Counter-Strike, et dans un mod solo elles rajoutent un effet d'ambiance car on peut alors suivre le joueur à la troisième personne.
De qui s'agit-il ? Des caméras bien entendu !

Les développeurs de Counter-Strike nous encouragent d'ailleurs à mettre des caméras dans nos maps. Alors, vous savez ce qu'il vous reste à faire... ;)

Pour intégrer une caméra dans sa map, il faut placer une entité-point trigger_camera à l'endroit voulu. Ceux qui utilisent le FGD de Counter-Strike devraient voir ceci (sinon c'est un gros cube bien moche) :

Image utilisateur

Notez qu'il n'y a aucune différence entre les caméras de Half-Life et celles de Counter-Strike.
Il existe 2 types de caméras :
  • Les caméras fixes : lorsque vous regardez une telle caméra, celle-ci reste fixe et vise toujours le même endroit. Elle est assez simple à configurer.
  • Les caméras mouvantes : ce type de caméra se déplace en suivant un parcours précis. Idéal notamment pour simuler une caméra du surveillance. Seul problème : elle est un peu compliquée à mettre en place.


Les caméras fixes



Placez un trigger_camera à l'endroit où vous voulez mettre votre caméra. Une caméra est invisible pour le joueur, c'est juste une indication sur sa position. Si vous voulez "dessiner" une caméra pour plus de réalisme, il va falloir la créer vous-même avec des blocs !
Pour l'instant on se contentera d'une caméra invisible, car en général peu de mappeurs prennent la peine de représenter la caméra.

Placez ensuite une entité info_target à l'endroit où la caméra doit viser. C'est cette entité (invisible elle aussi) que la caméra regardera.

Schématiquement ça donne ceci :

Image utilisateur

Le schéma vous dit tout : le trigger_camera prendra Target = "nomdelacible", et info_target prendra Name = "nomdelacible".
Cela suffit pour faire une caméra qui fonctionne ! Pensez toutefois à mettre un nom (Name) à votre caméra pour pouvoir l'appeler à l'aide d'un bouton ou d'un trigger (sinon vous ne pourrez jamais vous en servir pendant le jeu !).

Voici les quelques nouveaux attributs à connaître :
  • Hold Time : temps pendant lequel le joueur regardera la caméra (en secondes). Je vous conseille de mettre moins de 10 secondes, parce que sinon ça fait un peu trop long à attendre pour le joueur.
  • Initial Speed : vitesse initale de déplacement de la caméra. A utiliser pour les caméras mouvantes.
  • Acceleration units/sec² : accélération de la caméra (en unités par seconde au carré). Euh, l'unité est un peu complexe, alors si vous n'êtes pas sûr de vous n'essayez pas de toucher à cet attribut ;)
  • Stop Deceleration units/sec² : décélération de la caméra, lors de son arrêt (en unités par seconde au carré)
3 flags vraiment intéressants sont à noter :
  • Start At Player : la caméra part du joueur pour se rendre vers la cible (on a l'impression de "sortir" des yeux du joueur, ça donne un assez bon effet). A utiliser seulement si la caméra est assez proche du joueur.
  • Follow Player : la cible de la caméra devient le joueur (en clair, l'attribut Target ne sert plus à rien). La caméra suivra donc vos déplacements.
  • Freeze Player : le joueur ne peut pas bouger lorsqu'il regarde la caméra (c'est souvent utile !).


Les caméras mouvantes



Il y a plusieurs méthodes pour se servir de caméras mouvantes. Dans tous les cas, l'objectif est de faire en sorte que la caméra ne soit pas fixe : elle doit bouger, soit autour d'un objet, soit changer de cible.

Si vous devez changer de cible, ce qui est assez simple à mettre en place en fait, utilisez l'attribut "Path_corner", qui indiquera le nom du premier path_corner à regarder. Faites ensuite une boucle avec les path_corner qui doivent s'appeler entre eux, exactement comme vous l'avez appris pour le fonctionnement des trains de Half-Life.
Je ne vous refait pas l'explication ici, ce serait trop long, alors que tout est expliqué en détail dans le chapitre sur les véhicules.

Autre technique : elle consiste à lier la caméra avec un func_train. Vous devez mettre pour cible à la caméra le nom du train, de telle sorte que la caméra suive le mouvement de ce train. Bien entendu, vous devez savoir configurer un train auparavant.
Le train peut être un vrai train modélisé, mais vous pouvez aussi "tricher" : créez un petit bloc, transformez-le en train, et faites en sorte que le train soit invisible. Ainsi, il y aura un petit bloc invisible qui se baladera dans votre map, pendant que la caméra suivra son mouvement ! ;)

Comme vous pouvez le voir, tout ceci est très lié avec les trains. Alors apprenez avant à vous servir des trains, et vous verrez alors que faire une caméra mouvante n'est pas tellement compliqué ;)
Si toutefois vous n'y arrivez pas, ne vous bloquez pas là-dessus. Il est tellement plus simple de faire une caméra fixe ! En plus, la plupart des mappeurs mettent des caméras fixes dans leurs maps, et c'est le plus souvent amplement suffisant ! Faites plusieurs caméras si nécessaire...

Les caméras de la mort

Entités concernées : info_intermission et info_target
Type d'entités : entités-point
Difficulté : facile (si on sait se servir d'une caméra fixe)

Sous ce nom bizarre de caméra de la mort, se cache en fait un type de caméra peu connu fait pour le mode multijoueurs seulement. Et je ne vous cacherai pas que, même si je ne l'ai pas testé sous Counter-Strike, c'est une caméra qui fonctionnera surtout sous Half-Life Multijoueurs ;)

Le fonctionnement est on ne peut plus simple : placez un info_intermission, comme si c'était la caméra. Placez ensuite un info_target comme vous l'avez fait pour la caméra fixe.
Remplissez ensuite les attributs de ces entités (il n'y a rien de plus simple puisque chacune de ces entités n'a qu'un seul attribut !).
Si vous n'y arrivez pas, c'est que vous n'avez pas lu le fonctionnement des caméras fixes ci-dessus. Relisez-le plus attentivement, parce que vous n'avez aucune excuse : c'est très très très simple :)

Inutile de faire un bouton pour appeler ce type de caméra. Celle-ci sera déclenchée automatiquement 6 secondes après la mort du joueur si celui-ci ne fait rien.
Enfin bon, reconnaissons que ce type d'entité a peu d'intérêt, parce qu'en multijoueurs Half-Life on respawn tout de suite pour refoncer comme un bourrin dans la bataille. Une vraie boucherie quoi ;) Mais si vous êtes un mappeur attentionné, alors placez quelques-unes de ces entités dans votre map pour les joueurs qui voudraient attendre un peu avant de retourner au combat (quelles mauviettes !).

Effet de fondu

Entités concernées : env_fade
Type d'entités : entité-point
Difficulté : assez facile

Voilà une entité qui permet de créer de bons effets de fondu assez facilement, grâce à un procédé de décoloration dernière génération qui nécessite des cartes graphiques très très poussées ! (pour ceux qui n'auraient pas compris je rigole, lol : l'effet est sympa, mais n'importe quel PC peut le faire !)
Si vous mettez un env_fade dans votre map (assorti avec un trigger pour le déclencher, pensez à bien renseigner les attributs Name et Target comme vous avez appris à le faire), vous pourrez en quelques clics faire des effets qui surprendront le joueur !

Regardez plutôt les attributs de cette entité, vous allez en apprendre beaucoup ! J'ai volontairement enlevé l'attribut "Name" : si vous vous demandez à quoi il sert, il serait grand temps de revoir les premiers chapitres de cette Partie II du cours ;)
  • Duration (seconds) : temps que dure la décoloration (en secondes). Par défaut, c'est une transition de 2 secondes, mais vous pouvez mettre plus si vous voulez faire durer le plaisir ;)
  • Hold Fade (seconds) : temps pendant lequel l'écran restera décoloré (en secondes). A ne pas confondre avec "Duration", qui indique le temps que met l'écran à se décolorer !
  • Fade Alpha : puissance de la décoloration (valeur entre 0 et 255, 0 = rien, 255 = totale). En général on met 255, car avec cette valeur l'écran devient complètement opaque (on ne voit plus le jeu, on a un écran d'une seule et même couleur !).
  • Fade Color (R G B) : c'est la couleur vers laquelle l'écran va fondre. Indiquez les composantes Rouge Vert Bleu, ou bien servez-vous du bouton "Pick color", c'est plus simple ! Par défaut, c'est 0 0 0, c'est à dire noir complet. Mais si vous voulez que l'écran vire au rouge sang, mettez 255 0 0 !
Grâce aux flags vous pouvez avoir plusieurs variantes de cette entité :
  • Fade From : produit exactement l'effet inverse. C'est-à-dire que l'écran part de la couleur opaque et revient progressivement dans le jeu.
  • Modulate : un flag à tester absolument ! Au lieu de passer vers un écran opaque, le joueur sera toujours dans le jeu, mais la couleur indiquée de "Fade Color" apparaîtra comme dominante à l'écran ! Un effet ex-tra par exemple si vous mettez une couleur rouge : le joueur évoluera dans un monde tout rouge, comme s'il avait été mortellement touché.
  • Activator Only : seul celui qui aura activé le env_fade subira la décoloration. On ne s'en servira donc que dans une partie multijoueurs, pour éviter que tout le monde voie son écran virer au rouge parce qu'un blaireau a appuyé sur un bouton sans le faire exprès... :p

Afficher du texte

Entités concernées : env_message
Type d'entités : entité-point
Difficulté : assez facile

Cette entité sera en réalité utilisée si vous faites votre propre mod. Si vous vous en servez sur un mod déjà existant vous risqueriez d'avoir des problèmes, car cette entité a besoin d'un fichier appelé "titles.txt" pour fonctionner.
Quoi je parle chinois ? Bon, ouvrez le fichier Half-Life\valve\titles.txt. Vous allez comprendre... Descendez un peu, au début il n'y a que des paramètres. Par exemple, voici un extrait de ce fichier :

CR28
{
SUJET :
Gordon Freeman
Homme, 27 ans
}

CR29
{
FORMATION :
Diplômé en Physique Théorique
Institut de Technologie du Massachusetts
}

CR30
{
POSTE :
Chercheur
}

CR31
{
AFFECTATION :
Laboratoire des Matériaux Anormaux
}


Ca ne vous rappelle rien ???
Eh oui ! C'est le texte qui s'affiche lorsque vous démarrez une partie solo de Half-Life, tout au début du jeu ! Ce fichier contient donc tous les messages qui apparaissent à l'écran du joueur.
Chaque partie fonctionne comme ceci :

NomDuTexte
{
Texte à afficher...
}


A vous donc de créer ce fichier "titles.txt" dans le répertoire de votre mod. Je vous conseille de vous baser sur celui de Half-Life pour voir comment il fonctionne. De préférence, numérotez chaque message comme ils l'ont fait pour Half-Life (CR01, CR02, CR03...)

A quoi sert notre entité env_message dans l'histoire ? Permettez son déclenchement à l'aide d'un trigger pour commencer...
Utilisez l'attribut "Message Name" pour indiquer le nom du message à afficher (par exemple CR08). Voilà c'est tout ! Tout les paramètres (couleur, durée d'affichage...) sont à indiquer dans le fichier titles.txt.
A noter que env_message peut aussi déclencher un petit son, comme le ferait un ambient_generic.

Vous comprenez maintenant l'importance cruciale du fichier titles.txt pour celui qui veut créer son mod solo, avec un scénario à lui et tout et tout :)
Pourquoi ne pas créer une grande aventure interactive en 3D grâce à Half-Life ? Vous connaissez maintenant tout ce qu'il faut savoir : caméra, effets de fondu, textes pour le scénario etc etc...
Chapitre précédent Sommaire Chapitre suivant

Partager

1 commentaire pour "Comme au cinéma"
Note moyenne : 3.81 / 4 (47 votes)
Pseudo Commentaire
Hors ligne Cloud # Posté le 01/08/2006 à 22:53:02
Avatar

Bonjour bonjour!

Grande question: Comment faire pour, à partir des caméras, créer une cinématique où on n'est pas encore dans la peau du personnage ? (une intro quoi)


Je sais que c'est possible, ça avait été fait dans l'intro d'un ancien mod solo, Redemption si mes souvenirs sont exacts. (Ce mod n'existe plus depuis que la beta de Counter-Strike n'existe plus ;) )

D'avance merci

Edit: Ah ben si, on dirait que ça existe encore:
http://www.maverickdev.com/redemption/redemption.htm

Autre exemple de cinématique: quand on est capturé par 2 soldats, dans Half-Life.

Red Wind
 

Voir tous les commentaires