Archives

Archive pour le mot-clef ‘3D’

16
Jan 10

Unity 3D : Test d’intégration avec WordPress

Bonjour tout le monde,

Je commence cette année (euh… bonne année au fait) avec un petit test d’intégration de Unity3D dans WordPress.

En fait c’est un test pas vraiment poussé car il sert juste à vérifier le fonctionnement du plugin Unity WordPress Blog Plugin (donc vous vous douterez bien que c’est sensé fonctionner du premier coup).

Mais ce test va tout de même servir à vous montrer que Unity3D c’est super. En effet, l’exemple suivant est une application bête et méchante d’un tutorial de Will Goldstone et nécessite tout au plus 1h de travail et 0 lignes de codes. Preuve de la facilité d’accès de cet IDE.

Pour essayer, il suffit de cliquer sur l’image, puis de se déplacer avec les touches directionnelles ou ZQSD, et la barre espace pour sauter.

Bien sûr, Unity3D n’est pas uniquement destiné aux débutants. Si vous touchez un peu au scripts, les possibilités deviennent vite infinies. Et j’espère bien vous le prouver dans mes prochains billets. Mais pour cela, il va falloir attendre un petit peu 😉

En attendant, voici un peu de publicité pour le portail francophone de la communauté Unity3D : Unity3D-France. Vous y trouverez toute l’actualité Unity3D, de très bons tutos, et un forum d’entraide déjà bien actif.

9
Déc 09

Unity3D : Projet d’apprentissage

Depuis quelques temps déjà j’hésitais à me lancer dans le développement d’application 3D temps réel, mais je ne savais pas trop par où commencer. Puis après quelques discussions avec un graphiste bien plus au courant que moi dans ce domaine (Steph3D pour les intimes), j’ai appris l’existence de Unity.

Logo de Unity

Logo de Unity

Qu’est-ce que Unity? C’est une plateforme de développement destinée à la 3D temps réel. Elle a l’avantage par rapport à la concurrence de réunir :

  • Une utilisation simple. Mêmes les graphistes ne sachant pas développer peuvent arriver à faire des scènes magnifiques.
  • Une souplesse de programmation. Les développeurs ont accès à une panoplie de fonctions de bases vraiment complète, sans pour autant être limités par celles-ci. Il est possible, en mettant les mains dans le cambouis, d’arriver à un résultat vraiment poussé digne des grands jeux next-gen.
  • Une communauté active. Il est facile d’obtenir de l’aide sur une fonction et il n’est pas rare de voir quelqu’un partager ses scripts. Il est rarement nécessaire de devoir réinventer la roue.
  • Une bonne portabilité. Unity permet de développer pour Windows/MacOS voir même iPhone selon la version. De plus il est possible de compiler soit un stand alone, soit d’intégrer sa scène sur une page web. Pour la deuxième option, tout personne ayant installé le plugin Unity3D (au même titre que Flash ou Silverlight) pourra utiliser votre application directement depuis son navigateur, tout en gardant des performances 3D dignes de ce nom.

La liste des fonctionnalités est encore longue, mais celles-ci sont les plus notables. Cerise sur le gâteau? Alors que Unity existait en version pro à 1500$ et en version Indie à 200$, la version Indie est récemment devenue gratuite, sans pour autant sacrifier les possibilités commerciales restées inchangées!

Pour la partie qui nous intéresse, le développement, Unity laisse le choix entre 2 langages : Javascript et C# (basé sur mono). Au développeur de choisir selon ses habitudes. Mais nous ne sommes pas limités à un seul de ces deux langages. En effet, il est possible d’utiliser ET des scripts Javascript ET des scripts C# au sein d’un même projet, ce qui n’est pas négligeable lorsqu’on travaille en équipe.

Je parle de scripts, car le développement avec Unity n’est pas de la programmation à proprement parler, mais du scripting. Un script Unity contient par défaut une méthode Start() et une méthode Update() définissant son comportement et est réutilisable à l’infini. En effet, une fois un script créé, il suffit de le lier à n’importe quel objet de la scène pour que cet objet l’utilise (par le biais des méthodes Start et Update). A savoir qu’un même objet n’est pas limité à un seul script. Une caméra peut, par exemple, contenir un script de déplacement, ainsi qu’un script d’effet (par exemple changer la focale). De par ce fait, l’aspect communautaire est grandement facilité, un script pouvant être partagé et réutilisé sans aucune modification nécessaire.

A savoir que le côté « script » ne limite aucunement les possibilités de développement. Voici par exemple une démo, effectuée par notre graphiste (Steph3D pour les intimes) :

Matrix SandBox Alpha

Au programme : gestion de plus de 10 000 objets tout en restant fluide, utilisation de shaders, de systèmes de particules, gestion de la caméra (pour les déplacements), de la gravité etc. Une ancienne version du projet peut être testée sur cette page en « Web Browser Integration » (d’autres démo sont disponibles sur son site).

En bref, Unity c’est super pour commencer, et même pour continuer. Nouvel objectif donc : arriver à maitriser le monstre. J’ai pour but d’arriver à la fin de cette année scolaire, avec assez de bagage technique pour pouvoir gérer une scène Unity complexe, voir un petit jeu.

Depuis mes débuts dans le monde informatique, mon rêve est de pouvoir un jour travailler dans le domaine de la 3D temps réel (et aussi dans les IHM mais ça c’est une autre histoire). Enfin au tout début c’était surtout « je veux faire des jeux vidéos », mais une fois compris que ça ne voulait rien dire car cela ne correspondait pas à un seul domaine, j’ai donc recompilé mon rêve pour le rendre plus réalisable.

Mais cela n’est qu’histoire ancienne, car j’ai maintenant les compétences et les outils pour mettre un pied dans ce monde de fou.