Rattrapage d'informations :)

Génération du Rez de Chaussée

Je mis prend un peu tard pour commencer mon carnet de bord mais j'avais besoins de temps pour commencer mon algorithme sur Unreal Engine. Je suis passé par plusieurs stade, je me suis d'abord demandé comment je pourrais organiser mon code pour que l'on puisse utiliser l'outils pour toute sorte de bâtiments. 
J'ai donc divisé mes façades en plusieurs parties, a la verticale dans un premiers temps on retrouve en premier lieux les fondations puis les rez de chaussée, les étages et le toit. Pour ce qui est des modules horizontal on peu découper le rez de chaussée peu être composé de modules "Porte", "Fenêtre", "Mur vide" et les "Coins". Ce sera en partie les même chose pour les étages avec le module de "Porte" en moins. 
Je me suis donc en premier lieux attaquer au Rez de chaussée. Pour ce faire il fallait que je puisse placer correctement mes modules, notamment grâce au bounding box. Elles me permettent de récupérer les dimensions du module en X, Y et Z. Je peu donc placer le prochain module en fonction du premier. Pour ce faire j'utilise également les splines, l'idée est de donner une coordonner en X a cette spline, quand la coordonner devient plus grande que celle de la bounding boxe du module, je place un second module a la suite.

Il a fallu que je laisser un peu d'amplitude a cette distance car il y avait des valeur a 3 chiffres après la virgule donc dans certains cas le module suivant n'était pas poser.

Le processus de génération est donc le suivant :
  • Je commence par enregistrer les différentes coordonnées dans des listes ( 4 en tout, une pour chaque côté).
  • Ensuite je transfère ces listes vers des listes de travail dans lesquelles je pourrais supprimer au fur à mesure des données.
  • A cette étape, pour chaque côté je créer des nouvelles listes, une pour chaque type de module(porte, mur vide, fenêtre,...) afin de leur attribuer des coordonnées aléatoire prit dans la liste de travail. 
  • Grace aux listes créé juste avant, je peux donc placer mes modules facilement.
Génération des étages avec un test sur l'utilisation des sockets

Une fois le rez de chaussée terminé pour sa première version j'ai fais un peu de rangement dans mes Blueprint en faisant des fonctions réutilisable. A la suite j'ai donc pu facilement dupliquer la fonction du rez de chaussée pour faire les étages afin de tester la verticalité sachant qu'il y aura pas mal de changement dans la fonction des étages. Mais cela ma permis de me rendre compte que j'avais fais une erreur avec les "StaticMesh", cela faisait ramer pas mal, j'ai donc remplacer les "StaticMesh" par des "instancedStaticMesh" en prenant soins de désactiver les shadows, les collisions afin de libérer de la puissance de calcule. Ces deux options seront géré par un mesh placer au milieu du building et qui sera scaler a la même taille que le building, c'est donc le mesh qui fera la collision et l'ombre porté du building.