{"id":73,"date":"2013-06-23T20:45:00","date_gmt":"2013-06-23T19:45:00","guid":{"rendered":"http:\/\/oneiricworlds.com\/en\/index.php\/2013\/06\/23\/steven-the-seagull\/"},"modified":"2016-04-11T19:40:05","modified_gmt":"2016-04-11T18:40:05","slug":"steven-the-seagull","status":"publish","type":"post","link":"https:\/\/oneiricworlds.com\/fr\/2013\/06\/steven-the-seagull\/","title":{"rendered":"Steven la mouette"},"content":{"rendered":"<p>Salut tout le monde,<\/p>\n<p>R\u00e9cemment, j&rsquo;ai voulu travailler sur quelque chose qui n&rsquo;est absolument pas n\u00e9cessaire pour le jeu, mais qui peut rajouter \u00e9norm\u00e9ment en terme d&rsquo;atmosph\u00e8re. Dans les quelques jeux auxquels j&rsquo;ai jou\u00e9, j&rsquo;ai toujours particuli\u00e8rement appr\u00e9ci\u00e9 les moments o\u00f9 le joueur peut se promener librement et d\u00e9couvrir la faune. Dans mon jeu, j&rsquo;aimerais arriver \u00e0 recr\u00e9er ce sentiment en proposant un monde ouvert recouvert d&rsquo;un oc\u00e9an et parsem\u00e9 de quelques \u00eeles (pas forc\u00e9ment immense, mais suffisamment pour se balader).<\/p>\n<p>J&rsquo;ai donc choisi de travailler sur quelque chose qui se verra beaucoup pendant le jeu: le ciel, la mer, les oiseaux et les poissons.<\/p>\n<p>Voil\u00e0 ce que \u00e7a donne:<\/p>\n<div style=\"clear: both; text-align: center;\">\n<p><iframe loading=\"lazy\" src=\"https:\/\/www.youtube.com\/embed\/vU2EcZXP6rg\" width=\"420\" height=\"315\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n<\/div>\n<div style=\"text-align: center;\">\n<p><i>Une petite vid\u00e9o: l&rsquo;eau, le ciel, la vie!<\/i><\/p>\n<div style=\"text-align: left;\"><\/div>\n<\/div>\n<h3>I &#8211; L&rsquo;Oc\u00e9an<\/h3>\n<p>Pour l&rsquo;oc\u00e9an, je me suis impos\u00e9 une contrainte technique: je ne veux pas que l&rsquo;eau soit transparente, et on ne pourra pas aller sous l&rsquo;eau. Pourquoi?<\/p>\n<ul>\n<li>Parce que, techniquement, les shaders transparents demandent plus de puissance de calcul et ne sont pas adapt\u00e9s \u00e0 toutes les cartes graphiques.<\/li>\n<li>Parce que \u00e7a demande de mod\u00e9liser tout ce qu&rsquo;il pourrait y avoir sous l&rsquo;eau, ce qui peut \u00eatre \u00e9norme pour un monde ouvert.<\/li>\n<li>Parce que si le joueur peut VOIR ce qu&rsquo;il y a sous l&rsquo;eau, il VOUDRA y aller. J&rsquo;ai d\u00e9j\u00e0 pr\u00e9vu d&rsquo;autoriser le joueur \u00e0 voler \u00e0 un certain stade du jeu, et j&rsquo;imagine que \u00e7a devrait \u00eatre suffisant pour contribuer \u00e0 la sensation de libert\u00e9.<\/li>\n<li>Parce que je suis un fan de \u00ab\u00a0Beyong Good and Evil\u00a0\u00bb et \u00ab\u00a0Zelda Windwaker\u00a0\u00bb et que dans ces 2 jeux, l&rsquo;oc\u00e9an n&rsquo;est pas transparent (bien que dans des styles tr\u00e8s diff\u00e9rents), ce qui prouve qu&rsquo;il n&rsquo;y a pas besoin de cr\u00e9er quelque chose de r\u00e9aliste pour que la sensation v\u00e9hicul\u00e9e soit puissante.<\/li>\n<\/ul>\n<p>Notez bien que \u00e7a ne signifie pas que je ne veux pas un oc\u00e9an <strong>r\u00e9fl\u00e9chissant<\/strong>. J&rsquo;ai donc pass\u00e9 pas mal de temps \u00e0 mettre en place un oc\u00e9an purement r\u00e9fl\u00e9chissant avec quelques vagues d&rsquo;un blanc pur (style cartoon oblige) \u00e0 partir du shader d&rsquo;eau propos\u00e9 par Unity.<\/p>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/3.bp.blogspot.com\/-ZH2MNSC9HCE\/UcdPc2SjFnI\/AAAAAAAAGi4\/YZZvMvxtI58\/s1600\/20130612_172145.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/3.bp.blogspot.com\/-ZH2MNSC9HCE\/UcdPc2SjFnI\/AAAAAAAAGi4\/YZZvMvxtI58\/s320\/20130612_172145.png\" alt=\"\" width=\"320\" height=\"179\" border=\"0\" \/><\/a><\/div>\n<div style=\"text-align: center;\"><i>L&rsquo;eau, le ciel, le vent<\/i><\/div>\n<p>&nbsp;<\/p>\n<h3>II &#8211; Le ciel<\/h3>\n<p>Pour le ciel, je voulais que le joueur ressente un espace infini. J&rsquo;ai pens\u00e9 qu&rsquo;ajouter du vent pourrait accentuer cette id\u00e9e. J&rsquo;ai donc cr\u00e9\u00e9 des sortes d&rsquo;ondes blanches z\u00e9brant le ciel, accompagn\u00e9 du bruit du vent. J&rsquo;ai mis en place quelques nuages qui tournent au dessus de la ligne d&rsquo;horizon. Tout \u00e7a est fait de mani\u00e8re dynamique et al\u00e9atoire. Peut-\u00eatre que je rajouterai un gestionnaire de m\u00e9t\u00e9o par la suite, pour accentuer l&rsquo;immersion (pluie, soleil, etc&#8230;)<\/p>\n<p>Actuellement, le ciel est essentiellement fait d&rsquo;une seule couleur (cyan), mais cela va changer aussi.<\/p>\n<h3>III &#8211; La vie<\/h3>\n<p>Mais la partie la plus longue fut de cr\u00e9er les premiers oiseaux et poissons \u00ab\u00a0vivants\u00a0\u00bb. Le processus est le m\u00eame pour les 2. Je commence par cr\u00e9er un mod\u00e8le 3D dans Blender comme ceci:<\/p>\n<div style=\"clear: both; text-align: center;\"><a style=\"margin-left: 1em; margin-right: 1em;\" href=\"http:\/\/2.bp.blogspot.com\/-PJv1Jn0TIro\/UcdTNazALQI\/AAAAAAAAGjI\/6L06qKkfWkE\/s1600\/seagull5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/2.bp.blogspot.com\/-PJv1Jn0TIro\/UcdTNazALQI\/AAAAAAAAGjI\/6L06qKkfWkE\/s320\/seagull5.jpg\" alt=\"\" width=\"320\" height=\"180\" border=\"0\" \/><\/a><\/div>\n<div style=\"text-align: center;\"><i>Steven la mouette dans Blender. La magie derri\u00e8re chaque jeu vid\u00e9o peut se r\u00e9duire \u00e0 un tas plus ou moins gros de triangles reli\u00e9s entre eux et sur lesquels on vient plaquer des images (textures). Pour les plus tatillons d&rsquo;entre vous, oui, la texture est tr\u00e8s loin d&rsquo;\u00eatre optimis\u00e9e.<br \/>\n<\/i><\/div>\n<div style=\"text-align: center;\"><\/div>\n<p>Bien s\u00fbr, j&rsquo;utilise BEAUCOUP de r\u00e9f\u00e9rences. Ensuite, je cr\u00e9e 3 animations de base pour ma mouette (appelons-l\u00e0 Steven): un simple battement d&rsquo;aile, un vol plan\u00e9, et un cri. Chaque animation doit \u00eatre cyclique, c&rsquo;est \u00e0 dire qu&rsquo;elle doit pouvoir \u00eatre jou\u00e9e en boucle sans qu&rsquo;on remarque de \u00ab\u00a0cassure\u00a0\u00bb entre la derni\u00e8re et la 1\u00e8re image.<\/p>\n<p>Ensuite, dans Unity, je rajoute \u00ab\u00a0l&rsquo;intelligence\u00a0\u00bb (ou plut\u00f4t la b\u00eatise, tout d\u00e9pend comment on le voit) de Steven: il change d&rsquo;animation de mani\u00e8re al\u00e9atoire, en boucle. Bien s\u00fbr, lorsqu&rsquo;il crie, j&rsquo;ai rajout\u00e9 le bruit correspondant. Ensuite, j&rsquo;ai cod\u00e9 un algorithme basique qui le fait aller vers un but donn\u00e9 (une sorte de correction proportionnelle pour les automaticiens qui liraient ces lignes). Je ne rentrerai pas dans les d\u00e9tails car c&rsquo;est un peu plus complexe que \u00e7a, mais l&rsquo;id\u00e9e principale est celle-l\u00e0.<\/p>\n<p>C&rsquo;est \u00e0 peu pr\u00e8s la m\u00eame chose pour les poissons, si ce n&rsquo;est que j&rsquo;ai du rajouter une animation de saut. Tout ceci est al\u00e9atoire, et chaque poisson et\/ou oiseau suit un point particulier (qui peut \u00eatre chang\u00e9 dynamiquement, ce qui devrait, en th\u00e9orie, me permettre de les faire suivre un bateau par exemple).<\/p>\n<p>Et tout ce beau monde se d\u00e9place en harmonie comme vous pouvez le voir sur la vid\u00e9o ci-dessus.<\/p>\n<p>Ce sera tout pour aujourd&rsquo;hui!<\/p>\n<p>Si vous avez trouv\u00e9 \u00e7a int\u00e9ressant, n&rsquo;h\u00e9sitez pas \u00e0 partag\u00e9, blogger, tweeter, en parler \u00e0 vos amis, etc&#8230;<\/p>\n<p>A+<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Salut tout le monde, R\u00e9cemment, j&rsquo;ai voulu travailler sur quelque chose qui n&rsquo;est absolument pas n\u00e9cessaire pour le jeu, mais qui peut rajouter \u00e9norm\u00e9ment en terme d&rsquo;atmosph\u00e8re. Dans les quelques jeux auxquels j&rsquo;ai jou\u00e9, j&rsquo;ai toujours particuli\u00e8rement appr\u00e9ci\u00e9 les moments o\u00f9 le joueur peut se promener librement et d\u00e9couvrir la faune. Dans mon jeu, j&rsquo;aimerais [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":191,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[13],"class_list":["post-73","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev","tag-blender"],"_links":{"self":[{"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/posts\/73","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/comments?post=73"}],"version-history":[{"count":5,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/posts\/73\/revisions"}],"predecessor-version":[{"id":415,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/posts\/73\/revisions\/415"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/media\/191"}],"wp:attachment":[{"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/media?parent=73"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/categories?post=73"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oneiricworlds.com\/fr\/wp-json\/wp\/v2\/tags?post=73"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}