Créer un système de munitions
Créer un système de munitions
Introduction
Nous allons dans ce tutoriel créer la base dun FPS. Nous en profiterons pour aborder les notions de Property, de Logic Brick et vaguement de Python.
Les étapes de ce tutoriel iront en difficulté croissante.
Etape 1 : La scène
La scène va être simple : un personnage, une caméra, un sol et un système de tir.
On représentera le personnage par un simple cube. Un cube étant déjà présent dans la scène par défaut on ne touche à rien. On passe en vue de face (NumPad 1) et en mode Edit (Tab). On sélectionne les 4 vertices du haut avec B et on les déplace selon laxe des Z (G, Z) pour former un pavé. Puis on repasse en mode Object avec Tab, on va dans le panneau Edit (F9) et on clique sur « Center new », qui aura pour effet de replacer le centre du perso.
La caméra maintenant. Toujours en mode Edit on passe en vue de dessus (NumPad 7) et, nos 4 vertices toujours sélectionnés, on désélectionne les deux du bas avec B en utilisant le clic droit cette fois. Nous avons donc deux vertices sélectionnés, qui seront en haut en vue de dessus. Nous allons maintenant placer le curseur dessus. Donc Shift S > Cursor - > Selection. On repasse maintenant en mode Object (Tab) et on se place en vue de face (NumPad 1). Et on fait Barre Espace > Add > Camera. La caméra créée doit être orientée vers lavant. On constate que si on passe en vue de caméra (NumPad 0) on voit le perso du dessus. Il faut donc supprimer lancienne caméra, qui est en hauteur. On la sélectionne avec Clic droit et on appuie sur X (ou Suppr). En appuyant sur NumPad 0 on voit maintenant ce que verrait le perso.
Il faut aussi parenter la caméra au perso pour quelle suive ses mouvements. Donc on sélectionne la caméra avec Clic droit si ce nest pas déjà fait PUIS le cube toujours avec Clic droit (lordre est très important sinon ça ne marchera pas). On fait ensuite Ctrl+P et « Make parent ».
On va maintenant faire le sol. On se met en vue de dessus (NumPad 7) en mode Object et on fait Barre Espace > Add > Mesh > Plane. Blender passe automatiquement en mode Edit. On va scaler le Plane. On fait S et on tape la valeur 10 avec le pavé numérique. On repasse en mode Object et on passe en vue de face. Là on constate que notre sol est en hauteur !!! Pas de panique. On appuie sur G et on déplace le Plane vers le bas, juste en dessous de notre perso.
NB : Pour les besoins du jeu, il faut placer le sol en peu en dessous du perso, on verra pourquoi après.
On passe maintenant en vue de côté (NumPad 3) et on clique gauche sur lavant de la caméra. On passe ensuite en vue caméra (NumPad 0) : le curseur est au milieu de la vue (si ce nest pas le cas faites-le). Puis on fait Barre Espace > Add > Mesh > Plane. On sélectionne dabord ce Plane puis la caméra et on fait Ctrl+P et « Make Parent ».
Pour les balles on passe dans le calque 2 : sur la barre en bas du menu de la vue 3D il y a 20 carrés qui représentent les calques, on clique sur le deuxième pour passer dans le calque 2. Et là on crée en vue de face un cube : Barre Espace > Add > Mesh > Cube. Puis on clique sur S et on réduit le cube pour quil soit très petit (un petit carreau par exemple).
Si vous avez suivi correctement les explications, vous devriez en être là (avec le Plane sur la caméra en plus, sur limage il est caché):
Ca y est notre scène est prête. Passons maintenant au jeu
Etape 2 : Les physics
On va soccuper des physics, cest à dire les lois de la gravité, des forces, etc qui existent sur Terre.
On sélectionne le perso avec Clic droit et allez dans le panneau Logic (F4). Tout à gauche de ce panneau il y a un petit bouton « Actor », on clique dessus. Deux autres boutons apparaissent, on clique sur « Dynamic ». Et là au secours des boutons partout !!! Bonne nouvelle, on ny touche pas. Vous remarquerez le bouton « Bounds » en dessous, on clique dessus et voilà cest fini pour le perso.
On sélectionne ensuite le sol (toujours avec Clic droit) et dans le panneau Logic on clique cette fois aussi sur Actor et Bounds. Ne cliquez surtout pas sur Dynamic ou Ghost, sinon vous allez avoir de drôles de surprises en lançant le jeu !!!
Si on lance le jeu (P), notre personnage sera sur le sol. Mais il ne bouge pas !!! On va arranger ça.
Etape 3 : Les mouvements
Nous allons ici créer et paramétrer les mouvements de notre perso. Cela va entre autres demander laide dun script Python, que je ne vais expliquer parce que ça serait trop long, mais je vais vous donner la marche à suivre pour lutiliser.
On sélectionne le perso et on va dans le panneau Logic (F4) et là on clique sur les boutons « Add » (pas « Add property »). Les paramètres suivants apparaissent.
Petite explication : la première colonne représente les sensors, qui sont les détecteurs de lobjet (ils correspondent à la fonction « if » de la programmation). La deuxième colonne représente les controllers, qui sont le « cerveau » car ils décident comment passer linformation des sensors, etc Nous allons surtout parler du controller « Python ». La dernière colonne représente les actuators, qui sont les actions de lobjet.
On clique sur « Always » dans les sensors, et dans la liste déroulante qui saffiche on clique sur « Keyboard ». On clique sur le rectangle à côté de « Key » et on appuie sur la touche fléchée haut du clavier. « Up arrow » apparaît là où on a cliqué.
Dans lactuator (« Motion ») on clique sur la deuxième case de la ligne dLoc, qui représente laxe des Y, et on rentre la valeur 0.10.
Puis on clique sur la petite bille à droite du sensor et en laissant appuyé le clic on trace un trait jusquà lanneau à gauche du controller, puis on recommence avec la bille à droite du controller jusquà lanneau de lactuator.
Je vais maintenant expliquer ce que lon a fait. On vient de dire : si on appuie sur « touche fléchée du haut » alors déplacer lobjet le long de laxe des Y, cest-à-dire lavant. Lancez le jeu avec P ; si on appuie sur la flèche du haut, notre perso avance !!!
On va maintenant régler ses autres mouvements. On clique 3 fois sur chaque Add. On met les trois nouveaux sensors en Keyboard. Pour le premier on rentre « flèche du bas », le deuxième « flèche gauche » et le troisième « flèche droite ». On les relie chacun à un controller, et chaque nouveau controller à un actuator. Pour les actuators, on règle le premier (nouveau) sur -0.10 dans la deuxième colonne, le deuxième sur 0.05 dans la troisième colonne, et le dernier sur -0.05 dans la troisième colonne. Vous devez arriver à ça :
Tout dabord vous devez télecharger le script MouseLook.py. Puis on va dans le « Text Editor » et on clique sur le bouton à gauche de « Screen 12 » et on choisit « OPEN NEW ». On va chercher notre fichier dans lexplorateur qui souvre puis on clique sur « Open Text file ». Ce texte apparaît :
On retourne ensuite dans la vue 3d et on sélectionne la caméra et le cube. On clique sur les 3 boutons Add de la caméra et on ajoute un actuator au perso. On met le sensor en mode « Mouse », puis on clique sur « Left button » et on choisit « Movement ». On met cette fois-ci le controller en mode Python, et dans « Script : » on met le nom de notre script (pour moi MouseLook.py). On relie le controller au deux nouveaux actuators quon a créé.
Très important : On renomme lactuator de la caméra « LookUpDown » et celui du perso « LookLeftRight », et le sensor de la caméra « Mouse » (en respectant les majuscules) sinon le script ne marchera pas.
Voilà où vous devriez en être :
Dans la vue 3D on se place en vue caméra (NumPad 0) et on lance le jeu (P). Et là miracle ! Si on bouge la souris, la caméra (et donc la vue) suit !!!
Etape 4 : Le système de tir
Cest ici que les affaires se compliquent. Nous allons créer le système de tir.
On sélectionne le Plane de la caméra et on va dans le panneau Logic (F4) si ce nest pas fait. On lui ajoute 2 sensors, 2 controllers et 2 actuators. On laisse le premier sensor en Always. On le relie au premier controller quon relie au premier actuator. On met celui-ci en « Visibility ». Là on remplace le paramètre « Visibility » par « Invisibility ». On met maintenant le deuxième sensor en Mouse et on laisse « Left Button ». On le relie au deuxième controller, quon relie au deuxième actuator. On met celui-ci en « Edit Object » et on laisse le paramètre « Add Object ». Dans le champ « OB: » on rentre le nom du cube qui sert de balle (pour moi « Cube.001 »).
On lance le jeu et si on clique-gauche le cube apparaît, mais il ne bouge pas. On va y remédier.
On passe dans le calque 2 et on sélectionne la balle (le cube en fait). On lui met 1 sensor, 1 controller et 1 actuator quon relie entre eux. On les laisse comme ils sont. Dans lactuator (« Motion ») on met la troisième colonne de dLoc sur -0.30.
Vous devriez en être là :
Maintenant si on repasse dans le calque 1 et en vue caméra, quon lance le jeu et quon clic-gauche, les balles partent !!!
Mais il reste encore un problème. Si on clic-gauche plein de fois daffilée, ça fait beaucoup de balles !!! A moins davoir une mitraillette, cest pas possible de faire ça !!! Il va donc falloir faire un système de munitions.
Etape 5 : Le système de munitions
Cette dernière étape est très compliquée. Si vous la comprenez, vous serez en mesure de créer des jeux très perfectionnés.
On sélectionne le Plane qui tire les balles et on clique deux fois sur « Add Property ». Deux nouvelles lignes apparaissent. On clique sur Float et on sélectionne pour la première Timer et pour la deuxième Int. On renomme la première Property « Recharge » (dans « Name: ») et la deuxième « Munitions ».
On lui ajoute maintenant un sensor Property en mode Interval et un actuator Property en mode Add. On les relie au même controller que le clic gauche. Pour le sensor : dans « Prop: » on met Recharge, dans « Min: » on met 2 et dans « Max: » on met un 1 avec des dizaines de 0. Faites-vous plaisir, il faut que ce nombre soit très grand. Pour lactuator : dans « Prop: » on met Munitions et dans « Value: » on met 1.
Bon si on lance le jeu maintenant ça fait pas grand-chose, cest juste quon peut tirer quau bout de 2 secondes. A quoi ça sert ? Vous allez voir.
On crée un nouveau sensor Property, en mode Equal, un nouveau controller, et deux nouveaux actuators Property, en mode Assign cette fois. On relie le sensor au controller quon relie aux deux actuators. Pour le sensor : dans « Prop: » on met Munitions et dans « Value: » on met 5. Pour le premier actuator : dans « Prop: » on met Recharge et dans « Value: » on met 0. Pour le deuxième actuator on fait pareil sauf quon remplace Recharge par Munitions.
Après toutes ces étapes, le panneau Logic du Plane de tir ressemble à ça :
Si on lance le jeu on peut maintenant : se déplacer, viser avec la souris, on ne peut tirer que 5 balles daffilée.
Conclusion
Ca y est, le tutoriel est terminé...
Maintenant, vous avez les connaissances pour créer dautres jeux, qui pourront être plus perfectionnés.
Vous pouvez aussi améliorer votre FPS, en créant des ennemis, des décors (donc des textures), des sons, une croix de visée, on peut rendre le perso plus réaliste, ajouter une arme, ou dautres que lon peut ramasser, etc
Je laisse le blend au passage : Tuto_FPS
tutoriel rédigé pour le Blender Clan par granarc, janvier 2008
Les commentaires appartiennent à leurs auteurs. Nous ne sommes pas responsables de leur contenu.