Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Mapping > [HL2] Général > Les NPC de Half Life 2 > Les bases > L'animation > Lecture du tutoriel

L'animation

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : Tortue facile
Visualisations : 3 410

Plus d'informations Plus d'informations
Si un NPC est capable de bouger tout seul pour se déplacer dans le jeu, on peut aussi le configurer pour qu'il exécute certains mouvements (que l'on aura judicieusement choisis), ce qui rendra le jeu plus immersif.

Si avoir l'image (les mouvements du NPC) c'est déjà bien, avoir du son (les paroles) c'est encore mieux :p , vous allez voir qu'on peut aussi faire parler les NPCs avec un certain réalisme :-°
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Le mouvement

Voyons tout d'abord comment faire pour que notre NPC exécute une animation précise à un moment précis.
Pour cela on utilise l'entité scripted_sequence, qui n'est pas facile à utiliser convenablement mais je vais tenter de vous l'expliquer du mieux que je peux car une fois qu'on la maîtrise, on est capable de réaliser des séquences aussi bien que celle du jeu original.

Pour commencer



Avant toute chose il faut connaître les séquences que notre NPC est capable d'exécuter. Pour cela c'est très simple, il suffit de sélectionner un NPC, d'éditer ses propriétés et de regarder dans l'onglet Model. On y trouve une liste de toutes les actions que le NPC est capable d'exécuter.

C'est aussi très pratique car certaines séquences (comme Alyx sautant par dessus une rambarde, Mossman appuyant sur un bouton) doivent êtres placées à l'unité près pour éviter des aberrations.

Pour mon tuto je vais prendre le npc_alyx et lui donner comme nom alyx (c'est pas original mais c'est simple ;) ).

Explications



Pour le NPC c'est très simple il suffit juste de lui donner un nom, comme ici j'utilise Alyx je mets le champ Weapons sur Nothing pour éviter quelques problèmes.

Regardons maintenant en détail l'entité scripted_sequence:

Image utilisateur


L'onglet Class Info


Ce n'est pas obligé de remplir tous les champs, seuls certains sont importants, d'autres sont utilisés de manière exceptionnelle.

L'onglet Flags


Les Flags doivent êtres utilisés en complément: par exemple si vous voulez qu'un NPC soit assis puis qu'il exécute une autre animation au moment ou vous déclenchez un trigger, il faut mettre dans le champ Pre Action Idle Animation et cocher les Flags Start on Spawn et Loop in Post Idle. Avec cela il sera assis en continu jusqu'à ce que la scripted sequence soit déclenchée.

Exercice



C'est ce que j'appelle un exercice guidé, je vous dis comment faire étape par étape pour voir si vous avez bien compris.

Alyx est sur un bloc de 64 de hauteur (vous allez comprendre pourquoi), elle vous aperçoit,elle va alors vers une rambarde au bord de ce bloque, saute par dessus et une fois arrivé en bas nous fait une jolie pirouette :p
Pourquoi le bloc sur lequel se trouve Alyx doit il avoir une hauteur de 64 ?

Tout simplement parce que lorsqu'un NPC exécute une scripted_sequence, il ne tient pas compte de l'environnement autour de lui (il traverse le plancher, les autres NPCs, etc) et l'animation que vous allez utiliser jumpdownsm est configuré de telle sorte qu'Alyx saute et retombe 64 unités plus bas.
J'ai trouvé l'animation jumpdownsm, mais comment je fais pour savoir où placer exactement ma scripted_sequence ?

C'est simple prends ton NPC, lorsque tu es dans l'onglet Model, le NPC exécute en boucle l'animation que tu as choisie, cela te permet de placer à l'unité près le NPC pour qu'il soit en phase avec l'environnement. Voilà ce que ça donne avec Alyx qui saute par dessus la balustrade:

Image utilisateur


Maintenant que l'on sait où doit se placer le NPC pour exécuter son animation, il suffit de placer la scripted_sequence de façon à ce qu'elle soit centré sur le NPC et collée sur le sol. Si je mets le mot collée en rouge et en gros c'est important, si la scripted_sequence n'est pas sur le sol, le NPC va bien exécuter son animation mais il aura l'impression de flotter en l'air. Voilà ce que ça donne avec Alyx:

Vue de dessus: la scripted_sequence et Alyx sont alignées.

Image utilisateur


Vue latérale: la scripted_sequence est collée au sol.

Image utilisateur


Maintenant configurons la scripted_sequence:

ChampValeurExplications
Name sautalyx On lui donne un nom afin de pouvoir la déclencher par un trigger.
Target NPC alyx On a donné au npc_alyx le nom d'alyx.
Action Animation jumpdownsm C'est de nom de l'animation que le npc_alyx va exécuter.
Post Action Idle Animation FlipLeft C'est le nom de l'animation que va exécuter le NPC après l'action principale (ici une roulade vers la gauche).
Move To Position Walk Le NPC va marcher pour se rendre à la scripted sequence afin d'exécuter l'animation.


Il ne reste plus qu'à configurer un trigger_once et le tour est joué:

My output namedTargets entities namedVia this input
ON Trigger sautalyx Begin Sequence


Et voilà maintenant vous savez utiliser les scipted_sequence comme il faut mais on peut en faire plus.

Pour en faire plus



Vous avez essayé des combinaisons d'animations et vous commencez à arriver à faire quelque chose de potable, mais comme vous l'avez sûrement vu, votre NPC est capable de faire un grand nombre d'animations.

Tout d'abord vous voyez que pour certaines animations de votre NPC est tout cassé :( , c'est normal car ces animations là sont utilisées en complément des animations principales (les doigts, les lèvres et d'autres membres qui bougent), ils ne faut donc pas les utiliser.

On peut aussi faire en sorte que votre NPC se rende à la scripted_sequence d'une façon non conventionnelle: pour cela il faut mettre dans le champ Custom Move Animation le nom d'une animation qui permet au NPC de se déplacer d'une certaine manière (Crouch_walk_all ;accroupi, run_protected_all; court en se protégeant la tête).

Mais le meilleur c'est qu'on peut aussi faire parler les NPCs, on va voir ça tout de suite.

La parole

Si vous êtes encore vivant après cette longue et difficile partie sur les scripted_sequence vous allez pouvoir vous reposer avec l'entité logic_choreographed_scene :D .

Sa configuration est à la fois très simple et très compliquée:
Si je dis que la configuration est très compliquée, c'est parce que pour avoir un aperçu des paroles contenues dans un fichier VCD, il y a pas 36 solutions: il faut utiliser le logiciel Face Poser qui est dans le SDK. Si il n'y a pas besoin de le configurer (Steam le fait automatiquement ;) ), il est un peut plus dur à utiliser.

Je ne vais pas vous faire un tuto sur son utilisation (enfin pas tout de suite ;) )mais juste vous apprendre à l'utiliser pour choisir les paroles qu'il vous faut.

Tout d'abord dans le SDK de Steam cliquez sur Face Poser:

Image utilisateur


Il s'ouvre et vous voyez une mosaïque de fenêtres ; vous sauvez pas :D c'est pas si compliqué ;) que ça.

En fait les fichiers VCD sont composés:Euh o_O j'ai pas tout compris là.

C'est normal :D , en fait la grande force de Half Life 2, c'est la synchronisation des lèvres du NPC avec les paroles :-° . Bon on va faire un essai pour vous montrez comment le logiciel marche:

Tout d'abord il nous faut un modèle: on va prendre Barney, pour cela il faut faire File puis Load Model et cliquer sur Barney.jpg pour charger le modèle.

Ensuite il nous faut charger une scène, pour cela allez dans Choregraphy puis Load et choisissez la scène sdk_barney1.

Ensuite cliquez sur le bouton lecture et vous voyez et entendez Barney parler d'une histoire de bière (hommage à Half Life 1).

Voilà comment utiliser le logiciel à votre niveau, il est assez simple pour cette action mais vous devez déjà vous poser la question:
Je n'ai le choix qu'entre 6 chorégraphies, mais où sont les autres ?

Elles sont dans le fichier half-life 2 content.gcf, il va nous falloir les extraire de ce fichier pour pouvoir les utiliser avec le logiciel Face Poser et pour cela il va falloir télécharger le logiciel GCFScape.

Pour utiliser ce logiciel Steam doit être éteint.

Une fois le logiciel installé faites Files puis Open et aller dans le répertoire où se trouve le fichier half-life 2 content.gcf qui est par défaut: Code : Autre
1
C:\Program Files\Valve\Steam\SteamApps

Ensuite (après l'avoir ouvert) faites un clic droit sur le dossier scenes puis Extract et choisissez un répertoire de destination. Maintenant vous pouvez choisir n'importe quelle scène et la faire jouer par le logiciel Face Poser ;) .

Q.C.M.

Quelle entité permet d'animer un personnage?

Statistiques de réponses au QCM


Allez maintenant vous n'avez plus qu'à vous exercer car c'est en forgeant que l'on devient forgeron. Et pour cela il n'y a rien de mieux qu'un petit TP :D .
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 14/12/2006 à 16:49:11
Modifié : le 22/08/2008 à 15:49:51
Avancement : 0%
Licence : Copie non autorisée

2 commentaires

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 85 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0298s (0.0183s)