JULIEN MEYER

Développeur C++ Unreal Engine

Video: Unreal Engine 5.2 - Procedural Content Generation

A PROPOS

Bienvenue !

Je m’appelle Julien MEYER et je suis passionné par le développement informatique et la 3D.


C’est pourquoi je me spécialise dans le puissant langage qu’est le C++ que j’allie avec Unreal Engine pour pouvoir créer de superbes produits et expériences.


N’hésitez pas à explorer mon univers et à venir en discuter avec moi par e-mail ou autour d’un verre :)


Bonne visite.

PROJETS

01 - Game and AI simulation mechanics in C++.

02 - Engine-ready 3D assets.

03 - Ray Tracing and Shaders in C++.

01 - Game & AI simulation mechanics

Softwares: Blender, Unreal Engine 5.1

Plateforme: C++, Git, UE

Projet le plus conséquent sur lequel j’ai pu travailler à ce jour. Que ce soit l’utilisation de la trigonométrie et des vecteurs pour calculer l’angle et la direction d’un mouvement afin de déterminer la réaction d’un objet/acteur physique, la gestion des classes acteurs avec les concepts clés de la programmation en C++ tels que l’héritage, l’encapsulation ou le polymorphisme, j’ai ici fait appel à énormément de facteurs techniques pour donner vie à ce qui semble s’apparenter à un jeu-vidéo mais qui peut être utilisé dans des applications telles que l’entrainement d’IA à réseau neuronal, la simulation, la réalité virtuelle ou même dans des tests de robotique pour n’en citer que quelques uns.


Unreal Engine étant un moteur très permissif dans le sens ou il est possible de ne pas écrire une seule ligne de code grâce à son système de Blueprint, j’ai ici pris le pari de ne pas utiliser celui-ci et de tout réaliser en C++ pour comprendre les différents enjeux, qu’ils soient techniques, de performances, ou de temps d’itération lorsque l’on vient à sérieusement travailler avec cet outil.


Comme cité plus haut, beaucoup d’aspects techniques liés de près ou de loin au moteur ont été utilisés et plutôt que de faire un long discours sur ceux-ci, je vous donne une liste non exhaustive de ceux que j’ai pu utiliser en accordance avec mon projet C++.


Sans plus attendre, la voici:

  • Vecteurs(calculs, magnitude, normalisation, rotation).
  • Reflection et garbage control.
  • Template functions, macros.
  • Actors, pawns, capsules, skeletal meshes, enhanced inputs.
  • Animation blueprint.
  • Inverse Kinematics.
  • Collision, overlaps, delegates.
  • Sockets, IK Rig, IK Retargeter.
  • Animation Montages.
  • States(w/ Enumerations).
  • Meta Sounds.
  • Collision box, box trace, dynamic arrays.
  • Interfaces.
  • Rootmotion animations.
  • Motion warping.
  • Niagara components.
  • Destructible meshes, field system.
  • Widgets, HUD, overlays.
  • Blendspaces.
  • AI navigation, states, actions.
  • Tags, timers.
  • BP templates.
  • Data structures, design patterns, algorithmes.

Montage d’animation couvrant les différents angles de projection sous Unreal Engine ainsi que le rendu en temps réel.

Contenu de la fonction C++ avec la logique de calcul des vecteurs pour déclencher les différents éléments sous le moteur UE.


  • Je store la position de l’acteur touché dans un container de type FVector à 3 points puis je le soustrais au vecteur de l’acteur qui exécute la fonction afin de savoir d'où vient l’impact.
  • Je fais ensuite le produit scalaire du vecteur qui pointe le devant et de celui qui indique l’impact afin d’avoir la valeur de cosinus Thêta pour normaliser le vecteur et donc avoir sa direction.
  • Grace à la fonction arc cosinus je peux obtenir la valeur Thêta qui me permettra par la suite de définir quel est l’angle une fois converti en degrés.


Il ne reste plus qu’à définir les différents cas de figure qui dépendront de l’angle obtenu Thêta pour pouvoir jouer l’animation correspondante.

Démonstration du système de navigation AI utilisant des fonctions C++ pour pouvoir naviguer entre des points prédéfinis grâce à des Arrays.

Liste de fonctions constituant la classe de l’acteur AI avec notamment certaines des fonctions permettant de définir ses comportements et actions de manière indépendante.


Ici, la fonction ChoosePatrolTarget(); permet d’ajouter un ou plusieurs points de patrouille qui sont eux stockés dans un array de type AActor*.


Si il y a plus d’un point, l’acteur patrouillera de manière aléatoire entre ces points. Parfait pour étonner un joueur peu aguerri !

Gameplay mechanics demo.

02 - Engine-ready 3D asset

Softwares: Blender, Unreal Engine 5.1

Dans ce projet, j’ai réalisé la création d’assets 3D dédiés à l’utilisation en temps réel pour un jeu 3D nécessitant une variété d’armes blanches devant être utilisées par le joueur.


Le but étant de créer un objet sur un thème prédéfini pouvant être observé et utilisé à la fois de près ou de loin, j’ai donc optimisé ses formes et ses textures via la création d’une version High-Poly et Low-Poly répondant aux besoins de performances et de qualité.


Dans un soucis de rendu photo réaliste dans un premier temps et de performances dans un deuxième temps, j’ai exporté les différentes textures sous différentes résolutions allant de la 1K à de la 4K que j’ai pu reconnecter aux modèles 3D respectifs sous Unreal Engine pour que le moteur de rendu produise un résultat fidèle en temps réel.

03 - Ray Tracing and Shaders in C++

Plateforme: C++, CMake, Git

Projet open source en C++ permettant de créer un Ray Tracer, une technique utilisée pour modéliser le déplacement de la lumière dans un espace.


Beaucoup de domaines utilisent ce procédé que ce soit pour les plus généraux comme le cinéma et les jeux vidéos ou pour des domaines plus spécifiques comme ceux de l’architecture et de l’ingénierie.


Je me sers ici d’une base existante mais enseignée par des exercices pour aller recréer entièrement le cœur de ce système de Ray Tracing afin de pouvoir venir l’améliorer et le partager avec les autres contributeurs en ligne.


https://github.com/RayTracing/raytracing.github.io/


Mon but ici est d’obtenir de fortes connaissances dans le domaine des vecteurs et du calcul de ceux-ci afin de pouvoir à mon tour partager un programme qui pourra répondre à des besoins spécifiques liés à la science ou aux technologies nouvelles grâce à des architectures dédiées et des algorithmes optimisés.


C’est un projet sur lequel je suis encore en train d’investir de mon temps afin de bien le développer et d’apprendre de mon coté. Veuillez comprendre que cette section viendra à être mise a jour.

Ici, les pixels sont générés ligne par ligne sur une dimension d’image prédéfinie afin de venir y afficher un dégradé de couleurs via les valeurs RGB et un static_cast.

W.I.P

EXPERIENCES

CS Group

Software Engineer

Nov 2023 - Today

  • Développement de nouvelles fonctionnalités C++ et Javascript/React dans un environnement déployé avec QT5 pour moteur 3D temps réel propriétaire.
  • Gestion d'interfaces GUI avec QT Designer via QSS et ressources QRC.
  • Intégration continue, correction de bugs, tests, intégration et maintenance de plusieurs applications.

Formation

C++ and Unreal Engine Software Engineering

Apr 2022 - Sep 2023

  • Expérience pratique dans les principes du développement logiciel, des structures de données et des algorithmes en C++.
  • Utilisation de la librairie STL jusqu'à C++ 17 et du code source moteur UE 5.1.
  • Exploration des différentes technologies d'Unreal Engine pour développer des expériences de pointe.
  • Collaboration avec des professionnels du secteur et d'autres apprenants pour obtenir, partager et challenger des idées et relever des défis concrets.

Capgemini Engineering

UX/UI Designer for AIRBUS

Feb 2019 - Mar 2021

  • Direction de la refonte interface et expérience utilisateur de deux applications web.
  • Réalisation des prototypes interactifs, tests et conception des composants graphiques.
  • Intégration complète du Design System Airbus et gestion des contraintes produit associées.
  • Conception d'expériences utilisateurs adaptées aux contraintes liées à la big data et à l'affichage de ces données.
  • Expérience dans un environnement Scrum/Agile.

Freelance

UX/UI Designer

Jul 2018 - Oct 2018

  • Audits UX et ateliers utilisateurs, incluant des entretiens et des groupes de discussion.
  • Mise en place de tests d'utilisabilité utilisateur, tels que le System Usability Scale (SUS).
  • Approche de conception itérative pour l'amélioration continue du produit.
  • Création des interfaces utilisateur, wireframes, prototypes et représentation visuelle des indicateurs de performance (KPI).

Fabulous Pictures

Project Manager

Aug 2016 - Nov 2016

  • Gestion d’équipes sur des projets internationaux entre la Corée du Sud, l’Europe et les Etats-Unis.
  • Traductions dans trois langues différentes et travail d'interprétation pour favoriser une meilleure communication dans un environnement multiculturel, y compris avec les clients.
  • Conception de documents commerciaux dans le domaine de l’audiovisuel.

Trampoline Design Studio

UX Designer

Dec 2015 - Feb 2016

  • Étude de marché et définition de stratégie d’analyser des besoins, des points douloureux et des points clés d’App mobile.
  • Recherches utilisateur quantitatives et qualitatives à l'aide de différentes méthodes telles que des enquêtes, des tests d'utilisabilité, des tests A/B et des analyses diverses.
  • Création de mood boards, de cartes utilisateur, de flux utilisateurs, de wireframes, de prototypes et de maquettes.

ETUDES

Master of Multimedia Design

Hanyang University, Seoul, Coree du Sud

Sep 2014 - Jul 2016

  • Master en conception UX/UI et maîtrise des fondamentaux de la conception analogique et numérique.
  • Thèse sur la réalité virtuelle(VR) en mettant l'accent sur les éléments qui favorisent l'immersion et les limitations induites par les technologies actuelles.

Licence d’Arts Visuels

Université Toulouse - Jean Jaurès, France

Sep 2010 - Jul 2013

  • Développement de compétences artistiques et numériques avec options développement informatique.
  • Thèse sur des sujets liés à l'art contemporain et l'anatomie humaine.

CERTIFICATIONS

Unreal Engine 5 C++ The Ultimate Game Developer Course

Udemy

Sep 2023

The Ultimate Git Course - with Applications in Unreal Engine

Udemy

Feb 2023

C++ Programming - From Beginner to Beyond

Udemy

Jan 2023

UX-PM Level 2

UX Alliance

Jun 2020

COMPETENCES

Blender

Competent

80

Un​real Engine 5

75

C++ (UE framework, C++14/17, S​TL)

75

Object Oriented Programming

70

Git, Gitlab, GitHub, Git LFS, SVN

65

Sk​etch, Figma

65

Ad​obe Suite

60

Be​ginner

Advanced

Pro

Mon objectif!

ENTRONS EN CONTACT !

Coordonnées

JUMEY31@GMAIL.COM

+33 7 61 70 80 49

Suivez moi