Apprenez à créer un jeu de course avec blender sans code python

 

_________________________________________________________________________________________

 

NOUVEAU : RENDEZ-VOUS SUR MON NOUVEAU SITE POUR VOIR TOUS LES TUTORIELS :

 

CLIQUEZ ICI 

__________________________________________________________________________________________

 

 

 

Créer un jeu de course avec Blender sans code Python


 

Prérequis : Connaître succinctement l'interface de blender pour la modélisation.

 

 

      INTRODUCTION

 

Vous avez sans doute déjà remarqué qu'il est très difficile de trouver des tutoriaux en français sur le Game Blender.

Et lorsque l'on cherche des tutos pour pouvoir faire un jeu de course (voiture, vaisseau etc...) sans code python en ayant un minimum de réalisme et bien là... c'est le néant ! Surpris

 

Le but de ce tutoriel et donc de vous amener à la création d'un jeu jouable que vous pourrez refaire sans aide, et que vous pourrez améliorer et traficoter à votre sauce ! Pas de recette miracle, pas de programmation, juste des notions et des astuces pour comprendre chaque étape.

Il est à noter qu'il ne s'agit que d'un récapitulatif des différents tests et essais que j'ai réalisés pour comprendre le fonctionnement du Game Blender, il est donc évident que ce n'est pas la meilleure solution,  loin de là, mais elle fonctionne et elle peut permettre de démarrer la création de jeux avec Blender, c'est une technique qui pourra relativement facilement être amélioré avec un peu de recherche.

Bon, trève de bavardages, on lance Blender et à vos souris ! Cool


 

      I/ L'INTERFACE DU GAME BLENDER

 

Nous allons donc commencer par le commencement et voir où on va principalement travailler après la modélisation.

Allez hop on clique sur l'icone "Logic" tout à gauche (sorte de Pacman) ou tout simplement  sur "F4"."

 

Nous y voilà, on peut diviser cette fenêtre en 2 grosses catégories.

D'un côté dans tout ce qui est violet et rose on règle l'objet par rapport au Game Blender (c'est à dire de quelle façon il sera "lu" lorsque le jeu sera lancé). De l'autre les logic bricks (sensors, controllers, actuators) que je ne développerai pas (car très bien expliqué sur beaucoup de sites) servent à gérer les intéractions entre objets pendant le jeu.

C'est assez simpliste mais on peut résumer comme ça : en gros pour chaque objet on régle son système de collision, ses frottements puis on va régler les intéractions avec le clavier, les autres objets.

 

Voilà nous développerons plus en détail lorsqu'on en sera aux réglages du vaisseau Clin d'oeil


 

 

       II/ CREER UN VAISSEAU

 

Puisqu'une image vaut mieux qu'un long discours voici comment vous y prendre pour avoir un vaisseau tres simple parfait pour ce tutoriel Cool. Si vous n'arrivez pas à le modéliser, il faudra vous référer aux prérequis du tutoriel.

ATTENTION : pensez à former votre vaisseau à partir d'un cube de rayon=1 (cube de départ) pour éviter que les valeurs des forces de déplacements indiquées dans le tutoriel ne correspondent pas avec votre vaisseau. C'est très important !

 

Hebergeur d'images

(cliquez sur l'image pour l'agrandir)

NB : Je vous encourage vivement à créer votre propre vaisseau.Langue tirée


     

 

       III/ CREER UN PARCOURS GRACE AUX COURBES DE BEZIER

 

C'est maintenant que ça va se compliquer très légérement.

Plutôt que de s'embêter à modéliser tout un parcours (ce qui serait très long et fastidieux), on va donc créer une courbe de bézier (qui va en plus arrondir les virages, côtes et descentes ) puis on dessinera la forme transversale du parcours.

 

   1/ la courbe de Bézier

Avant de créer la courbe on va remettre le curseur au point de départ : "shift" + "C"  puis on clique sur "C" pour repositionner la vue.

Maintenant on fait : "Espace" > Add > Curve > Bezier Curve. On obtient ainsi ce qui est sur la capture (1) , on coche et décoche comme indiqué sur l'image (1).

On passe ensuite en mode Edit et à partir de la capture (2), vous pouvez extruder ( touche "E" ) les points où passe votre courbe comme bon vous semble. Une fois que vous avez un parcours qui vous convient on peut passer à l'étape suivante.

 

Hebergeur d'images    Hebergeur d'images

Capture (1) - Cliquer pour agrandir                                          Capture (2) - Cliquer pour agrandir

 

 

   2/ le cercle de Bézier

"Encore Bézier, pfff....."  non non non il ne faut pas dire ça, c'est extremement utile Langue tirée

Maintenant que la forme du parcours est établie, il va falloir lui donner un volume (là pour l'instant ça risque dêtre difficile de rester dessus pendant le jeu Clin d'oeil.

Pour cela on va faire un cercle de Bézier : "Espace" > Add > Curve > Bezier Circle (en voilà un jolie cercle qui apparaît )

On va se mettre dans la vue du haut (touche "7" du pavé numérique) en mode edit et on va déformer le cercle comme dans la capture (3) ci-dessous.

Vous pouvez déplacer le cercle et le placer où vous le souhaitez ( pas de rotation), celà n'aura aucune incidence sur la suite.

Hebergeur d'images

Capture (3) - Cliquer pour agrandir

Pensez aussi à renommer le cercle ( par exemple dans la capture ci-dessus je l'ai renommé : a )

 

Voilà arrivé le moment de vérité *roulement de tambours* ... On va envoyer le cercle sur la courbe. Pour celà, on va séléctionner la courbe de bézier et rajouter le nom que vous avez donné à votre cercle dans le champs : Bev Ob. (voir capture ci-dessous)

 

Hebergeur d'images

Capture (4) - Cliquer pour agrandir

 

Normalement vous devriez obtenir un truc du genre de la capture ci-dessous :

Hebergeur d'images

Capture (5) - Cliquer pour agrandir

 

ATTENTION : Vous pouver remarquer sur la capture par exemple que le parcours est trop petit, il faut donc l'adapter au vaisseau. Pour celà rien de plus simple, si le problème vient de la taille du parcours il suffit de grossir, en mode objet, la courbe de bézier. Si le problème vient de la "largeur de piste", il suffit d'aggrandir le cercle de bézier de la même façon.

 

Conclusion : voilà normalement vous avez tout ce qu'il faut en main pour pouvoir créer vos propres parcours ! On va passer à la partie suivante.


 

 

      IV/ REGLER LES PARAMETRES DE BASE DU VAISSEAU

Là, on entre dans le vif du sujet, le Game Blender ! "qui a dit : enfin... ?!!" Clin d'oeil

 /!\  Bon ,si vous avez peur que votre création ne corresponde pas avec le tutoriel pour la suite (vaisseau trop gros par exemple) je vous fournis le fichier .blend avec lequel nous allons réaliser la suite :  cliquez ici pour le télécharger . Comme ça pas d'excuse !

 

Avant d'aller mettre le nez dans la fenêtre logic (F4), il va falloir transformer le terrain en un mesh car sinon il n'apparaîtera lorsqu'on lancera le jeu (ce qui serait légèrement gênant Rigolant). Ce n'est pas bien compliqué, séléctionnez votre courbe de bézier  et faites Alt + C.

A noter :

Le terrain étant assez petit pour l'instant il n'y a pas de problème, il n'y a pas un nombre abairant de polygones. Mais lorsque vous vous attaquerez à un vrai terrain, il faudra baisser le nombre de polygones. Ne vous amusez pas alors à supprimer des points et à recréer les polygones...Juste avant de transformer la courbe en mesh séléctionnez le cercle de bézier et baissez la DefResolU dans le menu Editing (F9 )

Et voilà, pour le tuto pas de problème mais méfiez vous, une fois la courbe transformée en mesh, il vous sera impossible de la modifier donc ne faites cette transformation que lorsque vous êtes sur d'avoir terminé votre parcours.

Bon allé, maintenant on s'attaque au jeu !

On va faire un petit cours très rapide pour comprendre la manipulation à faire. On pourrait très facilement régler toute la physique du vaisseau dans l'environnement en choississant de le rendre soit dynamic soit rigid body. Mais là...Problème !

Si on choisi Dynamic, on se retrouve avec un vaisseau qui se déplacera très très bien par rapport au terrain, mais il restera toujours DROIT, impossible de l'incliner... ce qui n'est pas très réaliste.

Si maintenant on choisi Rigid body, le vaisseau va s'incliner parfaitement avec le terrain mais pendant les mouvements dès qu'il rencontrera un Edge du terrain il va "sauter", ce qui rend le jeu impossible à jouer.

Voilà le dilem, soit on a un jeu qui est tout sauf réaliste, soit on a un jeu impossible à jouer... vous préférez quoi ? Clin d'oeil

On va ruser, ce sera beaucoup plus compliqué mais on aura un déplacement identique à un objet en dynamic qui s'inclinera en fonction du terrain (petite astuce que j'ai trouvé et nommé "technique du pivot").

Pour l'instant on s'occupe simplement des déplacements sur le terrain sans s'occuper de l'inclinaison. On va donc créer un objet dynamic qui sera le parent du vaisseau situé en dessous de lui et le vaisseau sera un Rigid body .

Pour créer l'objet en question séléctionnez le vaisseau, faites Maj + S et choisissez Cursor > Séléction. Maintenant le curseur est situé sur le vaisseau, au tour de l'objet maitenant : Faites "Espace" > Add > Mesh > Icosphere > OK ,  On l'applatie à 0.6, on réduit sa largeur à 0.8, et on la descend de 1.3, on obtient alors ça :

tut01

 

Ensuite séléctionnez le vaisseau PUIS le l'icosphere (pour cela : maintenez appuyé la touche Maj pendant que vous cliquez sur l'icosphere) et faites Control + P comme ça on a parenté le vaisseau à l'icosphere. Lorsque l'icosphere bougera, le vaisseau fera la même chose.

 

Avant de passer dans la fenêtre logic , je vous conseil de renommer vos objets, pour la suite je laisserai l'icosphere nommé sphere, mais la vaisseau sera renommé "vaisseau".

Voilà ? Bon hop on clique sur F4 pour aller dans la fenêtre logic.

Pour chaque objets complétez comme dans les captures suivantes :

capture 6 pour "sphere", cpature 7 pour "vaisseau". ATTENTION A BIEN TOUT REGARDER

Hebergeur d'images Hebergeur d'images

Capture (6) - Cliquer pour agrandir                                     Capture (7) - Cliquer pour agrandir


Quelques explciations pour ceux qui ne connaissent pas :

Pour relier les differentes blocs, cliquez sur un rond, restez cliquez et relachez sur le rond en face.

La sphere à un damp ce qui a pour effet d'amplifier les frottements (pour que le vaisseau freine rapidement) , c'est pourquoi anisotropique est coché et que Z=0 : On annule les frottements lorsque l'on tombe, ce qui évite de tomber tout doucement Sourire (toutefois, plus tard dans le tuto, on verra comment amplifier encore la chute).

 

Une fois nos deux objets réglés , on peut tester le jeu ; appuyez sur P (pour quitter le jeu il faut appuyer sur Echap ). Pensez à bien positionner la vue, on s'occupe de la camera dans la partie suivante.


 

 

       V/ PARAMETRER LA CAMERA EN POURSUITE

Nouvelle étape, celle-ci va être plus courte et plutôt constituée de manips au clavier étant donné qu'il n'y a pas grand chose à comprendre. En gros on va placer une camera parenté à un Empty, et l'Empty sera chargé de poursuivre le vaisseau. Ce n'est pas compliqué mais il faut le savoir Clin d'oeil

go !

1/ Supprimez la camera.

2/ Séléctionnez le vaisseau et faites  Maj + S --> Cursor > Sélection.

3/ Espace > Add > Empty.

4/ Déplacez l'Empty vers l'arriere du vaisseau de 4.

5/ Séléctionnez l'Empty et faites Maj + S --> Cursor > Sélection.

6/ Espace > Add > Camera.

7/ Séléctionnez la camera PUIS l'Empty (en laissant appuyé Maj) et faites Ctrl + P > Make parent

 

Vous devriez avoir cela :

Hebergeur d'images

 

2eme étape : réglez l'Empty comme dans la capture ci dessous :

 

Hebergeur d'images

Capture (8) - Cliquer pour agrandir

C'est fini, c'était facile non ?


PS :

- Pour que le jeu se lance avec la camera il faut vous placer en vue camera avant de lancer le jeu ( 0 au Pavé Nunémique)

- Si vous ne voyez pas assez loin lorsque vous lancez votre jeu, vous pouvez allongé votre vue en augmentant "end" ici (après avoir séléctionné votre camera) :

Hebergeur d'images

 

       VI/ INTERACTION TERRAIN/VAISSEAU

Bon, nous voilà dans la partie la plus délicate, il va falloir bien suivre...

Le but est de trouver un moyen pour que le vaisseau capte l'inclinaison du terrain pour pouvoir la suivre, j'ai nommé ma petite idée ( bête comme bonjour Rigolant) technique du pivot. Voilà l'éxplication :

Hebergeur d'images

cliquer pour agrandir

 

 

Pour mieux comprendre :

1/ On créé deux pavés qui vont servir de détécteurs, un à l'avant captera lorsque le terrain montera, l'autre à l'arrière captera quand celui-ci descendera

2/ On va donc faire monter le pavé de devant lorsque le terrain montera (et vice versa avec à l'arrière lorsqu'il descendera) et en même temps on fait descendre celui à l'arrière.

3/ Ainsi une fois à l'équilibre, aucun des deux blocs n'est en collision (paske contrairement au schema les blocs seront légérement au dessus du sol lorsqu'il est droit) pour éviter un phénomène de vibration

4/ Puis lorsque la pente va s'adoucir le bloc de derrière ( vice versa avec l'avant si c'était une descente) va remonter et faire descendre le bloc de devant.

En bref les blocs suivent le "niveau" du terrain, il n'y a plus qu'à faire tourner le vaisseau lorsque les blocs montent et descendent et le tour est joué !

Ce système fonctionne pour devant et derrière , mais aussi pour droite et gauche.

 

COMPRIS ? Alors on attaque !

on va commencer par creer les pavés, espace > Add > mesh > cube (diminuez sa taille et choisissez lui une taille correct comme dans la capture ci-dessous). Placez le à l'avant, avec le bas du cube légérement au dessus du bas de la sphere. Dupliquez ensuite le cube ( maj + D ) et déplacez le à l'arrière du vaisseau SANS faire varier Z.

Pour plus de lisibilité , vous pouvez cliquer sur view (en bas a gauche de vontre fenêtre principale) et selectionner Orthographic.

Vous devez obtenir quelque chose comme ca :

Hebergeur d'images

Capture (9) - Cliquer pour agrandir

 

Renommez le cube de devant : "devant" , le cube de derrière "derrière".

On les parentent à "sphere" : séléctionnez un des cube puis avec la touche Maj enfoncé séléctionnez "sphere" faites Ctrl + P > Make parent. Faites la même manipulation avec le deuxième cube.

Vous pouvez vérifier que les cubes suivent bien la sphere en lançant le jeu.

Direction la fenêtre logic maintenant (F4) :

1/ Réglez "devant" et "derrière" en sensor :

sensor

 

2/ Séléctionnez "devant" , "derrière", et "vaisseau" (en laissant appuyé la touche Maj lorsque vous séléctionnez) et faites les réglages comme ci-dessous :

Hebergeur d'images

Capture (10) - Cliquer pour agrandir

Les couleurs ont été mises pour vous aider à placer vos liaisons entre blocs

Vous aurez sans doute remarqué qu'il a été rajouté la property "sol" au niveau du sensor des collisions. C'est tout simplement pour que les cubes ne captent les collisions QU'avec les objets auxquels vous ajouterez la property sol de la façon suivante :

Séléctionnez le terrain et ajoutez la property sol comme ci-dessous :

Hebergeur d'images

Capture (11) - Cliquer pour agrandir

 

Et voila le tour est joué, vous pouvez tester en lançant le jeu, si vous avez tout réalisé correctement, votre vaisseau devrait s'incliner vers le haut ou vers le bas.

 

Bon, je ne vais pas tout répéter pour "droite" et "gauche" étant donné que c'est exactement le même principe, je vous donne juste les liaisons ( "devant" et "derrière" sont volontairement cachés pour éviter qu'il y ait trop de laisons à l'écran).

Hebergeur d'images

Capture (12) - Cliquer pour agrandir

 

Une fois vos branchements réussis vous pourrez tester votre jeu et observer les déplacements des cubes, une fois que vous en aurez assez, on va les rendre invisible.

 

Séléctionnez à tour de rôle "devant", "derrière", "gauche", "droite", et "sphere" , et pour chacun cliquez sur invisible dans la fenêtre logic en haut à gauche.

 

Une dernière chose : si vous trouvez que votre vaisseau tombe trop lentement, il vous suffira de créer pour "sphere" un sensor collision, d'y ajouter le property : sol , et d'y cocher Inv (pour inverser : sera lu si il n'y a pas de collision). Puis il faudra relier le sensor à un effector Motion qui donnera une force sur l'axe Z négative, à vous de le regler comme bon vous semble cette force en fcontion de la vitesse à laquelle vous voulez qu'il tombe.


 

Voila c'est fini, votre jeu est encore loin d'être terminé, mais il est jouable. D'autres tutoriaux seront réalisés pour par exemple obtenir un rendu toon avec les contours pendant le jeu, texturer etc...

J'éspere qu'il vous a plu et que vous avez tout compris, à très bientôt !!

Commentaires (63)

1. greg 23/09/2009

bonjour et merci pour ce tuto je commence dès mon actuel projet fini.

2. jbam (site web) 11/10/2009

un enorme merci pour ce tuto .
c'est exactement ce que je cherchais, je commence direct
vivement la suite :) .
voici quelque idee a rajouter (menu, IA, chrono, sauvegarde, score, barre de vie, ......) bref tout pour faire un jeu complet :) .
merci merci merci :)

3. Admin 11/10/2009

Hello et merci.

Je prend les idées en note et je vais m'y pencher .

A très bientôt.

4. Oaio 03/11/2009

Merci, ta technique est vraiment bien pensée !

5. otto 26/11/2009

Merci, ce tuto est super!
vivement la suite

6. aza 09/12/2009

Ouais merci ! mais j'ai ptit problème mon vaisseau il glisse sur la sphere et traverse le terrain je fais quoi?

7. Admin 09/12/2009

Salut, à mon avis tu as du mal régler les paramètres soit du vaisseau (sa sphère qui sert à la collision), soit du terrain.

As tu bien pensé à régler la partie gauche pour la sphère ( IV) ? Car pour moi le problème vient de là.

Si c'est autre chose, fais le moi savoir.

A+++

8. soul-link 24/12/2009

Merci pour le tut mais j'ai remarquer que dans les montées le vaisseau ralenti beaucoup trop car la sphère reste horizontal...et donc ça devient rapidement incontrôlable (même en réglant la friction...)

9. loser 01/01/2010

jai du mal a faire le terrain le vaisseau tiens bas sur un cube comme terrai

10. Admin 02/01/2010

Pour loser : Tu devrais refaire le tuto, tu as du louper des passages.

Pour soul-link : Oui c'est exact mais on y peut rien, c'est le type de collision qui veut ça. Si tu veux régler ce problème sans avoir à mettre de Python, Il te suffit de mettre une boite détectant les collisions juste devant ton vaisseau (puis tu règles sa hauteur en fonction de le pente à partir de laquelle le ralentissement ne te conviens plus) et lors de la collision tu rajoutes un léger mouvement vers le haut pour compenser *les frottements* qui deviennent trop intenses.

A++++

11. Darkosyx 06/03/2010

Merci, sa fait longtemps que je cherchais des tuto pour ca

12. lilian 25/04/2010

quel version atu utiliser dans la 2.46 ce n'est pas pariel dans le tableau logic.

13. lilian 25/04/2010

j'ai oublier de dire MERCI MERCI

14. Admin 28/04/2010

Il faut blender 2.49 pour que le tuto soit compatible.

On peut encore la télécharger (même si maintenant la version 2.5 commence à être bien stable)

Désolé du retard !

Et merci à tous pour vos remerciements lol
A+++

15. Hunty 06/05/2010

Merci pour ce magnifique tuto :)
Mais j'utilise la 2.49 et je ne trouve pas le 'sensor' dans le menu déroulant pour le mettre sur 'devant' et 'derrière' :s

16. Hunty 06/05/2010

Je l'ai trouvé c'est bon, en fait j'avais la 2.48 ^^'

17. Davy 02/06/2010

Super, exactement ce que je cherchais
merci

18. vectro 13/06/2010

meci pour le tuto C super (mem si j'y arive pas trop) mais au mouin j'arive a deplasser des objets

19. Blendamateur 10/07/2010

Merci pour tuto c'est pas tout les jour qu'on en trouve sur ce sujet

Encore merci

20. Blendamateur 10/07/2010

Par contre on fait comment pour créer un 2e niveau

Voir plus de commentaires
Ajouter un commentaire

Vous utilisez un logiciel de type AdBlock, qui bloque le service de captchas publicitaires utilisé sur ce site. Pour pouvoir envoyer votre message, désactivez Adblock.

Créer un site gratuit avec e-monsite - Signaler un contenu illicite sur ce site

×