Créer un système de munitions

Document sans nom


Créer un système de munitions



Introduction


Nous allons dans ce tutoriel créer la base d’un 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 l’axe 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 l’avant. On constate que si on passe en vue de caméra (NumPad 0) on voit le perso du dessus. Il faut donc supprimer l’ancienne 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 qu’elle suive ses mouvements. Donc on sélectionne la caméra avec Clic droit si ce n’est pas déjà fait PUIS le cube toujours avec Clic droit (l’ordre 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 l’avant de la caméra. On passe ensuite en vue caméra (NumPad 0) : le curseur est au milieu de la vue (si ce n’est pas le cas faites-le). Puis on fait Barre Espace > Add > Mesh > Plane. On sélectionne d’abord 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 qu’il 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 l’image il est caché):


Ca y est notre scène est prête. Passons maintenant au jeu…

Etape 2 : Les physics


On va s’occuper des physics, c’est à 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 n’y touche pas. Vous remarquerez le bouton « Bounds » en dessous, on clique dessus et voilà c’est 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 l’aide d’un script Python, que je ne vais expliquer parce que ça serait trop long, mais je vais vous donner la marche à suivre pour l’utiliser.

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 l’objet (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 l’information des sensors, etc…Nous allons surtout parler du controller « Python ». La dernière colonne représente les actuators, qui sont les actions de l’objet.

On clique sur « Always » dans les sensors, et dans la liste déroulante qui s’affiche 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 l’actuator (« Motion ») on clique sur la deuxième case de la ligne dLoc, qui représente l’axe 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’à l’anneau à gauche du controller, puis on recommence avec la bille à droite du controller jusqu’à l’anneau de l’actuator.

Je vais maintenant expliquer ce que l’on a fait. On vient de dire : si on appuie sur « touche fléchée du haut » alors déplacer l’objet le long de l’axe des Y, c’est-à-dire l’avant. 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 d’abord 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 l’explorateur qui s’ouvre 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 qu’on a créé.

Très important : On renomme l’actuator 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


C’est 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 n’est 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 qu’on 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, qu’on 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 qu’on relie entre eux. On les laisse comme ils sont. Dans l’actuator (« 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, qu’on lance le jeu et qu’on clic-gauche, les balles partent !!!

Mais il reste encore un problème. Si on clic-gauche plein de fois d’affilée, ça fait beaucoup de balles !!! A moins d’avoir une mitraillette, c’est 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 l’actuator : dans « Prop: » on met Munitions et dans « Value: » on met 1.

Bon si on lance le jeu maintenant ça fait pas grand-chose, c’est juste qu’on peut tirer qu’au 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 qu’on 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 qu’on 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 d’affilée.

Conclusion


Ca y est, le tutoriel est terminé...
Maintenant, vous avez les connaissances pour créer d’autres 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 d’autres que l’on 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.

Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
The Blender Clan 'tchat Buy (5 Pcs) New Samsung Galaxy S23 Ultra 256GB $4,495 Website: www.cutebitelectronics.com 0 35 06/02 10:37:12
emailychang01 
Questions & Réponses [non résolu] Blender et OBJ 0 62 01/02 11:09:31
stigmamax 
Mes premières images sous Blender (débutants) 2.80 ---> 3.00 ? 2 121 31/01 15:27:50
HarDrive 
The Blender Clan 'tchat Buy (50 Pieces) New Samsung Galaxy Z Flip4 128GB Unlocked $17,450 0 92 26/01 07:44:35
emailychang01 
The Blender Clan 'tchat Buy (30 Pcs) New Mac mini M2 (2023) 256GB SSD $8,970: www.cutebitelectronics.com 0 58 25/01 11:02:28
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) New iMac M1 24-inch (2021) 512GB SSD $44,950 Website: www.cutebitelectronics.com 0 82 24/01 09:21:49
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) Macbook Air M2 13.6-inch 512GB SSD $54,950 Website: www.cutebitelectronics.com 0 88 23/01 09:20:38
emailychang01 
Questions & Réponses circuit avec dévers 3 125 22/01 18:42:26
moonboots 
The Blender Clan 'tchat Buy (50 Pcs) MacBook Pro M2 14-inch 512GB SSD $79,950 0 78 21/01 10:19:51
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Air 10.9-inch (2022) 256GB Wi-Fi + Cellular $24,950 0 105 20/01 08:43:41
emailychang01 
The Blender Clan 'tchat Buy (50 Pcs) New Mac mini M2 (2023) 256GB SSD $9,950 Website: www.cutebitelectronics.com 0 105 19/01 08:19:28
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces ) New Apple iPad Mini 8.3-inch (2021) 256GB Wi-Fi + Cellular $22,450 0 79 18/01 08:46:54
emailychang01 
Hors Sujet !! Victime de piratage 0 150 18/01 00:01:38
Lylo 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Pro 12.9-Inches 2021 1TB Wifi + Cellular $69,950 0 99 17/01 09:54:03
emailychang01 
The Blender Clan 'tchat Buy (50 Pieces) New Apple iPad Pro 11-Inches 2021 2TB Wifi + Cellular $79,950 0 101 14/01 19:23:01
emailychang01 
Questions & Réponses [non résolu] Material preview et résolution 0 133 13/01 10:13:25
zeromeetsinfinity 
The Blender Clan 'tchat Buy (50 Pieces) New Original Unlocked Apple iPhone 13 Pro Max 5G 1TB $54,950 0 107 12/01 09:21:35
emailychang01 
Hors Sujet !! Verifpro.net - paypal, ebay, banks, crypto, docs and more! 0 120 11/01 18:57:13
julien_costa 
The Blender Clan 'tchat Buy (50 Pieces) New Original Unlocked Apple iPhone 12 Pro 5G 512GB $24,950 0 108 11/01 07:45:50
emailychang01 
Questions & Réponses [non résolu] Soucis de pivots et rotations à l'import dans un fichier fbx avec parents/enfants 0 4757 10/01 16:32:57
Brice_Willus 

Qui est en ligne
159 utilisateur(s) en ligne (dont 1 sur Tutoriels)

Membre(s): 0
Invité(s): 159


plus...
Nouveaux membres
MathiasFul 18/8/2022
VicenteZcl 18/8/2022
OlivaL1007 18/8/2022
Adrian8943 18/8/2022
NorbertoGe 18/8/2022
VeronaKais 18/8/2022
BettieSile 18/8/2022
DarylTier 18/8/2022
BretParkhi 18/8/2022
LeoTrotter 18/8/2022
Dernier Ajout
2020-09-24.jpg

Evènements à venir
Fev 15
Anniversaire de Dany
Fev 23
anniversaire de windspirit
Mar 14
Anniversaire de AMV12
plus 229 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2021 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445