Dernière mise à jour : 22/06/2017 à 15h37

Current Project : ...

Index des tutoriaux

La Fluid Surface Info

Ouvrez la carte sur laquelle vous souhaitez placer de l'eau. Dans mon cas, il s'agira du terrain que j'ai complété lors du précédent tutorial. Dans l'actor Browser, cliquez sur le petit "+" à coté de "info", et sélectionnez FluidSurfaceInfo :

Le FluidSurfaceInfo dans l'actor browser

Placez l'actor au centre de l'endroit où vous voulez mettre de l'eau :

FSI par défaut

L'actor apparait, ainsi qu'une surface non texturée. Tout d'abord, assignons lui une texture d'eau (je prendrais la texture "Oceanglass" du package "awglobal" : pour cela, sélectionnez une texture, puis, double cliquez sur votre FluidSurfaceInfo, et dans l'onglet "display", cliquez sur "skin", puis sur le bouton "ajout" (add) qui apparait. Cliquez ensuite sur le bouton "util" (use) pour utiliser la texture sélectionnée :

Le FluidSurfaceInfo retexturé avec un shader

Maintenant, il faut ajuster la taille de votre fluid surface info. Dans les propriétés de l'actor, dans l'onglet "FluidSurfaceInfo", vous pouvez modifier les dimensions de la surface en ajustant les paramètres FluidXSize et FluidYsize (paramétrés par défaut sur 48). Attention tout de même, si vous augmentez trop cette valeur, la multiplication des triangles qui composent votre FSI pourrait causer des ralentissements important sur des machines modestes. Aussi, il existe une astuce simple mais efficace pour multiplier la taille des FSI sans trop augmenter votre nombre de triangle :

Vu que mon lac a des dimensions respectables, je vais augmenter FluidXsize et FluidYsize à 50 (dépasser 60 est rarement une bonne idée, pour les raisons citées ci-dessus, cela commence à créer des problèmes de performances), mais ma FSI est encore bien trop petite pour remplir mon lac :

L'eau ne remplit pas le bassin

L'astuce consiste à ne pas augmenter le nombre de triangles, mais la taille des triangles qui composent la FSI. Pour cela, il suffit d'aller dans l'onglet display des propriétés, et d'augmenter la valeur "drawscale" : elle est par défaut à 1, donc si vous mettez 2, votre FSI doublera de taille. Dans mon cas, j'ai mis Drawscale à 3, voici le résultat :

La surface de l'eau est enfin à la bonne taille

Le résultat est très bien, Rebuildons.
Si vous avez placé votre FSI dans un terrain, vous vous apercevrez que la fsi ne bouge qu'à peine, les vagues semblent de pas tenir compte du terrain. En effet, il faut indiquer à votre FSI contre quel terrain rebondir. Pour cela, dans l'onglet "FluidSurfaceInfo" des propriétés de votre Fluid Surface Info, cliquez sur la propriété "ClampTerrain" : plusieurs boutons apparaissent dont un bouton "Trouver" (find). Cliquez dessus puis cliquez sur votre terrain.

ClampTerrain

Le champ se remplit et votre FSI commence à tenir compte de votre terrain. Rebuildez pour faire bonne mesure.

Les Vagues

Si vous avez besoin de grandes vagues ou que vous souhaitez agiter un peu votre FluidSurfaceInfo, vous allez voir qu'il n'y a pas de paramètre pour cela dans les propriétés de la FluidSurfaceInfo. En effet, il va falloir faire appel à un actor particulier appelé de manière fort pertinente "FluidSurfaceOscillator", se trouvant dans l'arborescence des actors :

Le FluidSurfaceOscillator dans l'actor browser

Ajoutez-le quelque part dans la carte, puis déplacez-le pour le mettre un peu au dessus de la surface de l'eau :

L'opscillator dans la map

Pour fonctionner, il faut indiquer à cet actor sur quelle FluidSurfaceInfo il devra agir. Dans l'onglet "FluidSurfaceOscillator", cliquez sur la propriété "FluidInfo", sur le bouton "trouver" qui apparait, puis sur la surface de votre eau.

Spécification de la surface liquide

Si vous rebuildez, vous verrez peut-être que votre FluidSurfaceOscillator commence déjà à faire des vagues. Elles sont très faibles, aussi nous allons tripoter un peu les paramètres de l'onglet "FluidSurfaceOscillator".

Des vagues commencent à naitre

Bien sur, rien ne vous empêche de mettre plusieurs oscillateurs sur votre FluidSurfaceInfo. Pour ma part, deux suffiront avec les réglages ci-dessus.

Deux Oscillators

Bien sur, rien ne vous empêche de mettre plusieurs FluidSurfaceInfo dans un niveau. D'ailleurs vous n'êtes pas forcé de la mettre dans un terrain, vous pouvez aussi la placer dans un bassin en BSP pour faire une piscine ou un récepteur d'eaux usées ou un réservoir de produits chimique ou tout autre idée que vous avez en tête, si vous avez une texture correspondante à appliquer dessus.

Néanmoins, si vous testez votre carte et que vous entrez dans l'eau, vous remarquerez un énorme détail assez dérangeant : vous avez la surface de l'eau, mais en dessous, ce n'est pas de l'eau. Il va donc falloir indiquer à l'éditeur que la partie de la map placée en dessous du FluidSurfaceInfo est constituée d'eau et que donc les joueurs y sont en apnée et peuvent nager.

Le Liquide

Nous allons créer un brush que nous placerons sous la surface de la FluidSurfaceInfo puis nous ajouterons ce volume en tant que volume liquide.

Pour créer votre brush, le mieux est de fabriquer un brush de 256*256*256, puis, avec le vertex editing, de donner les mêmes dimensions au brush que la FluidSurfaceInfo.

Volume correspondant au liquide

Ensuite, dans la vue de coté, placez ce volume juste sous la surface noire de la FSI et étendez le vers le bas pour qu'il remplisse toute la hauteur du bassin.

Le colume remplit tout l'espace

Ensuite, pour ajouter le volume en tant que volume d'eau, il faut cliquer sur le bouton "addvolume" :Ajouter un volume Quand vous cliquez dessus, s'ouvre une longue liste de volumes différents à choisir. Dans notre cas, il faudra ajouter un WaterVolume :

WaterVolume

Quand vous avez cliqué dessus, déplacez votre brush rouge et vous verrez que le volume est apparu en rose.

2005-2016, by Hellkeeper.

Valid XHTML 1.1 CSS 2.1