Journal de bord

Journal de bord

Par Swing Swing Submarine Blog créé le 08/01/10 Mis à jour le 15/09/14 à 14h49

Ajouter aux favoris
Signaler
Programmatech

Salut les GBloggueurs,

Aujourd'hui nous lançons une nouvelle catégorie de billet : Programmatech.

Sous ce nom venu tout droit du futur, nous essaierons de vous faire découvrir des outils utiles pour créer des jeux vidéo. Que ce soit des outils que nous utilisons à SSS, ou d'autres que nous étudions par curiosité.

Pour ce premier volet, je vous propose un tutoriel sur Unity. C'est un éditeur de jeux, utilisé notamment par le studio Punchers Impact.

Unity 3D logo

Même si vous n'y connaissez rien, vous allez pouvoir vous faufiler dans les backstages de la création d'un mini jeu.

Alors sans plus attendre, vous trouverez un tutoriel détaillé sur ce billet :

TUTORIEL UNITY 3D - VERSION TEXTE

Et pour les plus impatients, ou ceux qui ne veulent pas lire, voici la vidéo qui suit à peu près le contenu du tutoriel texte :

EDIT : Pour les encore plus impatients (et pour ceux qui veulent comparer), voici une archive contenant notre premier tutoriel complété :

FICHIERS UNITY DU TUTORIEL COMPLET
(extraire l'archive et lancer le fichier "MyScene.unity" qui se trouve dans le répertoire "Assets")

N'hésitez pas à poser vos questions dans les commentaires de ce billet.

EDIT 2 : Vous trouverez les créations de GBloggueurs dans les commentaires, ainsi que quelques petits exemples supplémentaires pour aller plus loin après ce tuto 1.

Le prochain Programmatech parlera d'un outil de création choisi par William (chacun son tour). En attendant, amusez vous bien avec Unity !

Guillaume

Ajouter à mes favoris Commenter (37)

Commentaires

SeeDreeks
Signaler
SeeDreeks
Je n'ai pas encore tout lu mais vraiment merci, c'est une superbe initiative.
Je pense récupérer le logiciel chez moi et suivre ce tutoriel. Bien sûr si j'ai des questions je reviendrais poster ici.
Swing Swing Submarine
Signaler
Swing Swing Submarine
Mais pas de quoi SeeDreeks.
Hésites surtout à poser des questions, surtout si c'est expliqué comme un chien :)

Je viens de rajouter une archive contenant ce tutoriel complété. Au cas où, ça peut servir.

Guillaume
Enimal
Signaler
Enimal
Merci pour ce tutoriel, je n'hésiterais pas moi non plus à vous harceler si j'ai un problème.
SeeDreeks
Signaler
SeeDreeks
Bon ça y est je viens de m'y mettre entre hier soir et ce matin (là il faut vraiment que je parte bosser d'ailleurs). Vraiment très simple votre tutoriel. On y arrive sans se prendre trop la tête. Le seul "quick" que j'ai eu, était dû à un mauvais copier-coller de ma part.
En tout cas j'ai bien assimilé cette première étape et en attendant le prochain tuto, je pense tenter d'autres choses. Merci encore.
Swing Swing Submarine
Signaler
Swing Swing Submarine
@SeeDreeks:
Merci du retour, de rien pour le tuto. J'ai pris un truc simple pour commencer (pas un FPS tout de suite). Et on complètera bientôt comme je le dis à la fin du tuto texte par un mot sur le HUD, et un script un peu plus complexe (mais pas trop hein) pour gérer la victoire ou la défaite, ainsi que le problème de rotation que l'on observe quand on combine trop toutes les rotations (le fameux problème de "Gimbal Lock").
Mais l'important c'est que tu es saisi les 2 trucs clés dans Unity : les notions "Game Object" et "Component", après tu peux partir explorer :) D'ailleurs bonne exploration :)

@Enimal (et les autres) : ouep hésitez pas si c'est pas clair ^^, et même si ça l'est mais pour faire partager vos créations, si vous avez fait des labyrinthes sympatoches. Ou si vous avez carrément fait un truc tout autre :P

Guillaume
Enimal
Signaler
Enimal
J'ai fait un fps qui se passe dans une citée sous marine dans l'océan atlantique :)

Sinon, je supose donc que l'on ne peux pas créer de jeux en 2D dans unity ?
SeeDreeks
Signaler
SeeDreeks
Enimial... je veux voir ça !
Swing Swing Submarine
Signaler
Swing Swing Submarine
@Enimal:
Tu peux créer des jeux en 2D avec Unity. Après c'est plus ou moins une histoire de bidouille.
Pour la caméra, en 3D on utilise en général une caméra dite "perspective", c'est à dire qu'on a des -enfin un- point de fuite.
Mais vous remarquerez que dans l'inspector des caméras dans Unity, on peut passer la caméra en "Orthogonale", c'est à dire qu'on à plus de point de fuite. Du coup on peut placer une caméra le long d'un plan formé par 2 axes (par exemple X/Y) et hop, on peut ensuite placer des "plans texturés" pour faire des sortes de sprites.

C'est comme cela qu'on procède pour Seasons (on utilise pas Unity, mais Blender + moteur maison, et c'est le même principe).

Là où ça devient un peu de la "bidouille", c'est si on veut utiliser le moteur physique d'Unity pour les collisions. On aura plutôt tendance à utiliser formes physiques 3D, donc le monde physique, si on le visualisait, aurait la représentation d'un jeu en 2.5D. Vosu savez, les jeux 3D mais vu de côté :). Comme on le souligne dans le tuto, une forme physique peut avoir une tout autre allure que la forme visuelle à laquelle elle est attachée. Du coup là on aura plus tendance à utiliser des plans 2D pour la partie visuelle et des Boites 3D (cubes étirés ou non) pour la partie physique.
Tout ça parce qu'Unity utilise un moteur 3D et que l'on risque d'avoir des surprises (bug de collision) si on utilise des formes 2D (plans) pour gérer les collisions, vu que les plans en questions seront tous parallèles ET sur un même plan (oui, prenez un aspirine, ça ira).

Enfin bref, tu me donnes une bonne idée de tutoriel là, faire de la 2D avec Unity. Mais je vais déjà compléter celui-ci avec les HUD (qui pourront être réutilisé de toute façon pour un truc plus 2D), et d'autres trucs.

Pour les curieux, je vous conseille de tester ce jeu : Paper Moon :
http://blurst.com/paper-moon/
Fait par les mecs de Flashbang. Ils prototype qu'avec Unity. Du coup ce jeu là ne déroge pas à la règle... et il a un aspect pure 2D. C'est jouable en ligne avec le player Unity.

@SeeDreeks: hehe, moi aussi je veux voir ça Enimal :P

Guillaume
Swing Swing Submarine
Signaler
Swing Swing Submarine
En fait je viens de rejouer à Paper Moon, et c'est un mauvais choix d'illustration car le jeu n'utilise pas une caméra orthogonale mais bien perspective. Mais c'est un jeu type 2D quand même :) (ils ont conservé une caméra perspective à cause de la feature principale du jeu qui consiste à ramener des objets sur le plan principal. Du coup il aurait été difficile de discerner les arrière plan/premier plan si on avait eu une caméra orthogonale).

Guillaume
Enimal
Signaler
Enimal
Heu.. je crois avoir compris tes explications, enfin je crois.
Sinon vous l'attendiez tous, voici mon jeu qui va révolutionner le monde :

http://sam02m3.free....bert/haloa.html

Non sans blague, j'ai créer une pièce, et aussi pitoyable soit elle ça ma prit des heures pour la faire (oui je suis très lent et j'ai du temps à perdre)

Vous en pensez quoi ? je vais me faire embaucher par Valve ?
Swing Swing Submarine
Signaler
Swing Swing Submarine
@Enimal: Hey ! Mais tu te débrouilles ! Du coup t'as trouvé tout seul qu'il fallait faire un projet en acceptant la librairie standard par défaut de Unity (pour avoir des composants en plus, car dans la vidéo du tuto je dis comme un con de pas importer les trucs par défaut parce qu'on en a pas besoin, mais pour ceux qui veulent expérimenté ça aurait été mieux que je ferme mon clapet).
T'as donc trouvé le character controller et la FPS camera, et aussi comment mettre des matériaux et des textures... Hmmm, t'es pas un débutant dans le domaine ? Je me trompe ? :)
En tous les cas c'est cool.
Je suis agréablement surpris par tout ce que tu as pu faire, surtout si tu commence juste à toucher un éditeur de jeu ! Bravo.
(et merci pour le poster Meet Me At The Banana Disco)

Pour le temps mis à faire ta pièce, t'inquiètes, c'est tout à fait normal de passer du temps sur des trucs qu'on fait pour la première fois. A SSS aussi parfois on passe du temps sur des trucs qu'on a jamais abordé auparavant.
Faut se dire que ça ira que plus vite les prochaines fois ;)

Guillaume
SeeDreeks
Signaler
SeeDreeks
Sympa Enimal. Je suis loin d'avoir fait tout ça encore. A partir du tuto de Guillaume j'ai bien une idée que je voudrais développer mais il va falloir que je bidouille sévère (pour le coup je suis vraiment un noob en 3D). Et puis il y a aussi le manque de temps car comme pour ta pièce je pense que ça va m'en prendre beaucoup.
Swing Swing Submarine
Signaler
Swing Swing Submarine
@SeeDreeks
Si tu veux des composants supplémentaires, n'hésites pas à créer un projet en ne décochant pas la case "Standard Assets.unityPackage" (tu l'avais peut être pas décoché, tant mieux).

Et si t'as des questions sur comment faire ce que tu voudrais faire, n'hésites pas à en faire part ici :)

Guillaume
SeeDreeks
Signaler
SeeDreeks
Ah non justement je l'avais gardé. J'ai d'ailleurs ajouté des textures sur le tuto (ma sphere est devenu un roc, un pic, que dis-je... une péninsule) et j'ai pu voir aussi l'eau (que je n'ai pas réussi à ne mettre que dans le bac). Maintenant, je voudrais faire un vrai labyrinthe avec une caméra à la troisième personne sur la boule genre Monkey Island. Je pense que ton prochain tuto pourra m'aider à le faire donc je vais continuer à tester des choses en l'attendant.
En tout cas merci pour le tuto et pour ces échanges.
Enimal
Signaler
Enimal
C'est bien la première fois que je fais ce genre de truc, je suis plus que débutant dans le domaine, mais j'ai fouillé dans l'interface et vu un autre tuto en ligne. J'ai appris au fur et a mesure, la lumière, les collider, les textures, la capsule avec les données FPS.
D'ailleurs j'ai eu un problème, j'ai voulu intégrer un spot lumineux à la vision FPS, ce que j'ai réussi, mais cette "lampe torche" n'était que horizontale,la lumière se déplace horizontalement en fonction de la visée en fps, mais elle ne suit pas l'axe vertical.
En ce qui concerne le sol, j'avais trouvé l'image d'une dalle sur internet, mais lorsque je l'appliquai au sol, la dalle se déformait pour avoir la taille du sol, alors que je voulais que le motif se répète, alors j'ai créer des cube de la taille d'une dalle que j'ai copier et coller des 10aines de fois pour faire le sol, il n'y a pas une fonction sur unity qui permet de répéter une texture sur une surface au lieu de l'étaler ?

PS : personnellement la pièce que j'ai créer me fait peur
PS2: au fait, je voulais aussi créer une "télévision" affichant une vidéo, mais je crois que l'intégration de vidéo n'est pas disponible dans la version gratuite de unity.
PS3: J'attends le tuto pour faire de la 2D avec impatience :)

PS4, je me demande si je ne vais pas créer une sorte de "maison" dans laquelle je mettrai des photos de famille, c'est toujours plus original qu'un album photo.
Enimal
Signaler
Enimal
voila mon problème :
http://sam02m3.free..../FPS light.html
Je sais je flood
Swing Swing Submarine
Signaler
Swing Swing Submarine
@SeeDreeks: t'as bien fait de le garder, en fait je l'ai enlevé pour que le rar soit moins gros à télécharger pour le projet tuto. Et content que tu es trouvé également l'utilisation des matériaux (comme Enimal). Je te prépare un petit exemple de caméra qui suit la boule dans quelques instants...

@Enimal:
Je t'ai fais un petit projet (du coup il est gros en poids car j'ai utilisé les "standard assets" en créant le projet).
http://www.swingswin...tSpotLight.html

et le fichier rar du projet (un peu gros :():
http://www.swingswin...mAndTexture.rar

En gros pour répondre à tes 2 problèmes:
- pour que la spot light suivent la caméra, j'ai simplement fait en sorte que la spot light soit "fille" de la caméra, du coup j'ai fait un glissé/déposé dans l'onglet "Hierarchy". J'ai aussi mis une capsule visuelle en fille pour que tu vois comment ça bouge pendant l'exécution (la capsule est seulement visible dans l'onglet "Scene")

- pour les textures à faire répéter, ça existe et cela s'appelle le "Tiling". Une fois que tu as appliqué un matériau sur un objet, clique sur celui-ci, et dans son Inspector, tu verras une partie Material où tu peux régler le tiling.
En gros le tiling indique combien de fois la texture va être répété horizontalement (en x) et verticalement (en y) sur ton objet. Dans l'exemple que je link ici, j'ai mis le tinling sur 3/3 parce que mon objet (un gros cube étiré en guise de sol) a une surface carrée. Rien n'empêche d'allonger le sol dans une direction et de régler le tiling pour que ta texture ne fasse pas "étirée".

Guillaume
Swing Swing Submarine
Signaler
Swing Swing Submarine
@SeeDreeks:
Hop, j'ai fait un petit exemple en reprenant la scène du tuto.

http://www.swingswin...dPersonCam.html

et le fichier rar du projet:

http://www.swingswin...rdPersonCam.rar

J'ai juste texturé la sphère et modifier le script du Ground pour qu'il n'y ait plus le problème de "Gimbal Lock" (c'est en quelque sorte un spoiler d'un prochain tuto :P) et j'ai surtout créé le projet en prenant soin de garder les "standard defaut assets" dans le projet.
Ce qui fait qu'on se retrouve avec un script "Smooth Follow" (qui se trouve dans le menu [Component >> Camera-Control >> Smooth Follow]).
J'ai ensuite tweaké les paramètre de ce script dans l'inspector pour pas que le follow fasse tourner la caméra mais juste la déplacer, et pour que la caméra soit plus proche de l'objet à suivre.
Il ne faut pas oublier de spécifier l'objet à suivre, ça se passe aussi dans l'inspector de la caméra, dans les paramètres du script "Smooth Follow (Script)". Là on à un champ "Target" et si on appuie sur la petite flèche, on obtient une liste défilante de tous les objets de la scène. On choisit la sphère (dans mon exemple linké elle s'appelle "Ball").

Après y'a possibilité de faire un suivi plus complexe. Pour ce faire, rien ne t'empêche d'aller voir le code du script "Smooth Follow" inclut dans la scène. Mais je reviendrais certainement dessus dans un tuto. Parce que expliquer dans un commentaire n'est pas chose aisée :)

J'espère que ça pourra t'aider pour poursuivre ton MonkeyBall :P

Guillaume
Enimal
Signaler
Enimal
Merci, mes 2 problèmes sont réglés, la lampe torche marche, et le sol possède maintenant de jolis carreaux.
Mais plus j'avance plus je rencontre des difficultés, comment je peux faire pour créer des objets, que je ne peux pas construire avec de simples cubes ou sphères ?
Je voulais par exemple, créer un lustre pour que la lumière venant du plafond ne vienne pas de nul part, mais je n'ai pas réussi, et je ne sais pas non plus comment rendre une matière transparente (comme du verre)
Enfin, je vais arrêter de vous poser des questions, et je vais commencer a chercher par moi même.
SeeDreeks
Signaler
SeeDreeks
Oh merci ! je regarderais ça plus tard car je dois m'occuper de mon fils je ne pourrais pas être très assidu. mais dès que je m'y repense, je posterais mes résultat ici.
Swing Swing Submarine
Signaler
Swing Swing Submarine
@Enimal:
Si tu veux créer des objets complexes, tu vas devoir te tourner vers des logiciels spécialisés comme 3DS Max, ou surtout mon préféré : Blender.
Blender est gratuit (et open source). Il te permettra de créer des objets 3d car c'est un logiciel prévu pour l'édition de maillage 3D. Ce que ne fait pas Unity.

http://www.blender.org/

Après, il se peut que trouve des objets sur internet déjà tout faits, comme sur http://e2-production...es/PDdownloads/ ou encore http://www.blendermodels.org/
Attention toutefois, certains modèles sont destinés au rendu non temps réel (pour faire des films d'animations) et sont très peu adapté au jeu vidéo du fait du nombre de polygones important les composants.

L'apprentissage d'un logiciel de la sorte peu être long :( Mais tu pourras trouver de l'aide sur le site de Blender, et sur d'autres sites comme http://www.3dvf.com

Dernière alternative: composer des objets "complexes" grâce à la composition d'objets plus simple à l'intérieur d'un Prefab.
Certes le résultat ne sera pas très réaliste... mais ça peut suffire pour certaines choses.
Je comptais aussi faire un tutoriel sur les prefab. Ou sinon le te mettrais un exemple de prefab ici dans la soirée.
Des jeux "next-gen" comme 3D Dot Game Heroes arrive à composer avec une contrainte forte : celle de n'avoir aucun modèle 3D très compliqué :) ()

Si jamais tu trouves des modèles tout faits, tu pourras les importer dans Unity en faisant un clic droit dans l'onglet "Hierarchy", puis "Import New Asset...". Et les utiliser dans un composant "Mesh Filter" pour sélectionner le maillage dans ta Hierarchy, et un autre composant "Mesh Renderer" pour afficher le maillage à l'écran.

Après j'ai pas encore trop testé les formats de fichier supportés, mais il est possible de passer par Blender pour effectuer des conversions de fichiers (importer dans Blender pour exporter dans un format différent).

Pour les matières transparente, je peux te faire un exemple, là tout de suite je dois m'absenter mais dans le week end :)

"vous poser des questions" ?! >> Tu peux (t'es même obligé) de me tutoyer :P Sinon ça fait pas très "jeux vidéo industry style" ;)
Et les questions ne dérangent pas, au contraire, sinon on aurait pas proposé des tutos sur le blog ^^

@SeeDreeks:
Bon courage avec le petit, c'est bien plus compliqué que Unity :) Y'a pas de composant déjà tout fait pour changer les couches et autres joyeusetés !

Guillaume
Swing Swing Submarine
Signaler
Swing Swing Submarine
y'a aussi ce site pour les bases de modèle 3D (c'est peut être réservé qu'au utilisateurs Virtools, un autre éditeur):
http://www.3dvia.com...CFdkB4wodW27SYg
SeeDreeks
Signaler
SeeDreeks
Tiens je viens de tout lire et c'est marrant Guillaume que tu parles de 3D dot Game Heroes. Je pensais justement m'imposer ce genre de contrainte pour créer des objets. Je pensais aussi à Picross 3D qui en quelque sorte donne des modèles à refaire sur un logiciel 3D.
Sinon j'ai utilisé la caméra "smooth follow" mais j'ai ce fameux problème de rotation. Je n'ai pas trop compris ce que tu voulais dire par :"...twiké les paramètres de ce script...". Et j'ai ouvert ton fichier pour voir ce que tu y avais fait, mais je me suis retrouvé avec un projet vide. Peut être que ça vient du fait que je sois sur mac ? Même ton .html ne fonctionne pas.
Bref je vais continuer de fouiller pour trouver une solution. J'ai même pas pu profiter du spoiler pour le prochain tuto. tongue.gif
SeeDreeks
Signaler
SeeDreeks
oups ! j'ai trouvé : rotation = 0 c'est tout.
Enimal
Signaler
Enimal
Houa, tout ça m'a l'air très compliqué guillaume, et comme tu l'a dit (tu vois je te tutoie) les objets proposés sont vraiment très lourds, du coup je m'efforce de faire des choses moins compliquées.

SeeDreeks je suis impatient de voir ce que tu vas faire, c'est vrai que ça prend beaucoup de temps, mais c'est marrant de faire son propre "jeux vidéo"

Édito

Grâce à ce mini-devblog en français, vous pourrez suivre l'activité de notre minuscule studio de développement indépendant Swing Swing Submarine.

Nous sommes une petite équipe d'hommes et de chats passionnés qui souhaitent partager de nouvelles expériences interactives avec les joueurs du monde entier, et ceux de Gameblog en font bien évidemment partie !

--------------------------------------------------------

Quelques liens utiles :

> Site officiel <

> Twitter <

> Facebook <

Archives

Favoris