DE UNITY À
UNREAL
ENGINE 4
Yannick Comte – Meetup UE4 Lyon #1
Qui suis-je ?
■ Chef de projet / développeur de jeux
video enVR @Wanadev
■ Développeur indépendant
@DemonixisGames
■ Auteur de différents blogs
■ Contributeur open source #github
■ Co-createur du Meetup Unity Lyon
Sommaire
■ Un peu d'histoire
■ A la découverte de l'Unreal Editor
■ Workflow Unity vs Unreal
■ Programmation et Scripting
■ Rendering
■ Conclusion : A quand la suite ?
Un peu d'histoire...
■ Unreal Engine 1 – 1998
■ Unreal Engine 2 - 2002
■ Unreal Engine 3 – 2004
■ Unreal Engine 4 – 2014
– Totalement gratuit depuis 2015
– Open source sur github
– 5% de Royalties ou licence
spécifique
https://docs.unrealengine.com/en-
US/GettingStarted/FromUnity/index.html
A LA
DÉCOUVERTE D'UNREAL
EDITOR
Unity Editor vs
Unreal Editor
■ Navigateur d’assets
■ Visualiseur d'objets
■ Inspecteur
■ Création d’objets / matériaux / etc…
■ Level Building…
Unity Editor vs
Unreal Editor
■ Unity : X = Left,Y =Yp, Z = Forward
■ UE4 : X = Forward,Y = Right, Z = Up
■ Unity : 1 unite = 1m
■ UE4 : 1 unite = 1cm
Player Settings vs
Project Settings
■ Edit > Project Settings
■ Tous les paramètres y sont regroupés
■ Sauvegardés dans un fichier de configuration ini
■ On peut surcharger ce fichiers ini par plateforme
Package Manager vs
Plugin explorer
■ Edit > Plugins
■ Une liste énorme de plugins à active/désactiver
■ Possibilité de créer un plugin et de l’exporter
■ Possibilité d’ajouter des plugins externe (Store ou
pas)
Input Manager 1/2
■ Disponible dans Edit > Project Settings > Input
■ Vide par défaut !
■ Création des axes (float) et des actions (bool)
■ Ajout des différentes possibilités
■ Facilité de prise en charge multiplatforme
■ Binding manuel en C++
■ Binding automatique en Blueprint
Input Manager 2/2
■ Un Event est automatiquement
disponible en Blueprint
■ Il suffit de l’appeler et d’executer le code
necessaire
■ En C++ il faut surcharger la fonction
SetupPlayerInput
WORKFLOW UNITY
VS UNREAL
GameObject
vs Actor
■ Actor est similaire à GameObject
– Conteneur +Transform
– Ne peut pas recevoir d’Input
■ Pawn et Character : Actors spécialisées
– Comportement de joueurs
– Peuvent recevoir des Input
■ Le Blueprint (ou classe C++ custom) est
similaire au Prefab
– Construction paramétrable (ideal pour du
level building)
– Réutilisable partout dans le projet
Blueprint vs
Prefab
■ La partieViewport permet
de personnaliser l’objet
■ On peut ajouter des
ActorComponent
■ Et des SceneComponent
■ L’ActorComponent est très
similaire au MonoBehaviour
■ Le SceneComponent est un
peu comme un GameObject
avec un seul MonoBehaviour
dessus
PROGRAMMATION
ET SCRIPTING
Le Framework Gameplay
■ Il est optionel
■ Mais recommandé car il simplifie et sépare les données
■ Il est étudié pour le multijoueur mais fonctionne parfaitement en standalone
■ Game Mode : Définie le type de gameplay (serveur / standalone uniquement)
■ Game Instance : Instance statique du jeu (client / serveur)
■ Game State : Informations pour les clients (ex. nb de joueurs) (serveur / client)
■ Player State : Informations concernant le joueur en cours (seveur / clients)
■ Player Pawn : Le type de joueur à spawner
■ Spectator : Le type de spectator à spawner
■ https://docs.unrealengine.com/en-US/Gameplay/Framework/index.html
C# vs Blueprint vs C++
■ Tous les objets dérivent de UObject vs
UnityEngine.Object
■ Un Blueprint est avant tout une classe C++ éditable
graphiquement avec un éditeur de script graphique
■ Un Blueprint peut dériver d'une classe C++
■ Une classe C++ ne peut pas dérivée d'un Blueprint
■ Un projet Blueprint peut avoir du C++
■ Un projet C++ peut avoir du Blueprint
■ En réalité il est recommandé d'avoir les deux ;-)
A propos du C#
■ Il n'est pas possible nativement de faire du C#
■ Il existe des plugins pour faire du C#, du Python et
d'autres langages dans UE4
■ USharp est le meilleur choix pour cela !
■ Open Source (github) et mis à jour quotidiennement
■ Ce n'est pas une solution pour un gros projet tripeA
■ Parfait pour apprendre l'API d'Unreal Engine ou faire de
petits projets
■ https://github.com/pixeltris/USharp
RENDERING
Legacy Rendering vs SRP vs UE4
■ Deferred Renderer sur PC et Consoles
■ Forward Renderer optimisé sur Mobile etWebGL
■ Possibilité d'activer un Forward Renderer+ sur PC uniquement
■ Les nouveaux SRP sur Unity sont comparables aux renderer
d'UE4
■ Lightweight RenderPipeline => Forward Mobile/WebGL
■ HDRP Forward+/Deferred => Deferred Renderer
Shaders
■ Editeur graphique de shader
■ Attention, par défaut un shader par material, ce
qui n’est pas optimal
■ Utiliser des Material Instance (proche de ce que
fait Unity)
■ Artist Friendly !
ENVRAC
EnVrac...
■ UE4 Landscape > UnityTerrain
■ UE4 Foliage > Meshes instanciés sur un terrain
■ Sequencer >Timeline
■ Epic Launcher > Unity Hub
■ Etc...
Pour finir...
■ Passer d’Unity à Unreal Engine 4 n’est pas trop compliqué car ce sont
deux moteurs de jeux fonctionnant sur des principes similaires
■ Il faut cependant découvrir le Framework qui une fois en main fait
gagner un paquet de temps
■ La gestion des assets est très lourde comparé à Unity
■ L’aspect cross-platform est très dévelopé par Epic Games
■ Pas de services comme Cloud Build, mais des services
Multiplayers/Network qui arrivent dans l’année, gratuitement 
QUESTION ? MERCI
!

De Unity à Unreal Engine 4

  • 1.
    DE UNITY À UNREAL ENGINE4 Yannick Comte – Meetup UE4 Lyon #1
  • 2.
    Qui suis-je ? ■Chef de projet / développeur de jeux video enVR @Wanadev ■ Développeur indépendant @DemonixisGames ■ Auteur de différents blogs ■ Contributeur open source #github ■ Co-createur du Meetup Unity Lyon
  • 3.
    Sommaire ■ Un peud'histoire ■ A la découverte de l'Unreal Editor ■ Workflow Unity vs Unreal ■ Programmation et Scripting ■ Rendering ■ Conclusion : A quand la suite ?
  • 4.
    Un peu d'histoire... ■Unreal Engine 1 – 1998 ■ Unreal Engine 2 - 2002 ■ Unreal Engine 3 – 2004 ■ Unreal Engine 4 – 2014 – Totalement gratuit depuis 2015 – Open source sur github – 5% de Royalties ou licence spécifique
  • 5.
  • 6.
  • 7.
    Unity Editor vs UnrealEditor ■ Navigateur d’assets ■ Visualiseur d'objets ■ Inspecteur ■ Création d’objets / matériaux / etc… ■ Level Building…
  • 8.
    Unity Editor vs UnrealEditor ■ Unity : X = Left,Y =Yp, Z = Forward ■ UE4 : X = Forward,Y = Right, Z = Up ■ Unity : 1 unite = 1m ■ UE4 : 1 unite = 1cm
  • 9.
    Player Settings vs ProjectSettings ■ Edit > Project Settings ■ Tous les paramètres y sont regroupés ■ Sauvegardés dans un fichier de configuration ini ■ On peut surcharger ce fichiers ini par plateforme
  • 10.
    Package Manager vs Pluginexplorer ■ Edit > Plugins ■ Une liste énorme de plugins à active/désactiver ■ Possibilité de créer un plugin et de l’exporter ■ Possibilité d’ajouter des plugins externe (Store ou pas)
  • 11.
    Input Manager 1/2 ■Disponible dans Edit > Project Settings > Input ■ Vide par défaut ! ■ Création des axes (float) et des actions (bool) ■ Ajout des différentes possibilités ■ Facilité de prise en charge multiplatforme ■ Binding manuel en C++ ■ Binding automatique en Blueprint
  • 12.
    Input Manager 2/2 ■Un Event est automatiquement disponible en Blueprint ■ Il suffit de l’appeler et d’executer le code necessaire ■ En C++ il faut surcharger la fonction SetupPlayerInput
  • 13.
  • 14.
    GameObject vs Actor ■ Actorest similaire à GameObject – Conteneur +Transform – Ne peut pas recevoir d’Input ■ Pawn et Character : Actors spécialisées – Comportement de joueurs – Peuvent recevoir des Input ■ Le Blueprint (ou classe C++ custom) est similaire au Prefab – Construction paramétrable (ideal pour du level building) – Réutilisable partout dans le projet
  • 15.
    Blueprint vs Prefab ■ LapartieViewport permet de personnaliser l’objet ■ On peut ajouter des ActorComponent ■ Et des SceneComponent ■ L’ActorComponent est très similaire au MonoBehaviour ■ Le SceneComponent est un peu comme un GameObject avec un seul MonoBehaviour dessus
  • 16.
  • 17.
    Le Framework Gameplay ■Il est optionel ■ Mais recommandé car il simplifie et sépare les données ■ Il est étudié pour le multijoueur mais fonctionne parfaitement en standalone ■ Game Mode : Définie le type de gameplay (serveur / standalone uniquement) ■ Game Instance : Instance statique du jeu (client / serveur) ■ Game State : Informations pour les clients (ex. nb de joueurs) (serveur / client) ■ Player State : Informations concernant le joueur en cours (seveur / clients) ■ Player Pawn : Le type de joueur à spawner ■ Spectator : Le type de spectator à spawner ■ https://docs.unrealengine.com/en-US/Gameplay/Framework/index.html
  • 18.
    C# vs Blueprintvs C++ ■ Tous les objets dérivent de UObject vs UnityEngine.Object ■ Un Blueprint est avant tout une classe C++ éditable graphiquement avec un éditeur de script graphique ■ Un Blueprint peut dériver d'une classe C++ ■ Une classe C++ ne peut pas dérivée d'un Blueprint ■ Un projet Blueprint peut avoir du C++ ■ Un projet C++ peut avoir du Blueprint ■ En réalité il est recommandé d'avoir les deux ;-)
  • 19.
    A propos duC# ■ Il n'est pas possible nativement de faire du C# ■ Il existe des plugins pour faire du C#, du Python et d'autres langages dans UE4 ■ USharp est le meilleur choix pour cela ! ■ Open Source (github) et mis à jour quotidiennement ■ Ce n'est pas une solution pour un gros projet tripeA ■ Parfait pour apprendre l'API d'Unreal Engine ou faire de petits projets ■ https://github.com/pixeltris/USharp
  • 20.
  • 21.
    Legacy Rendering vsSRP vs UE4 ■ Deferred Renderer sur PC et Consoles ■ Forward Renderer optimisé sur Mobile etWebGL ■ Possibilité d'activer un Forward Renderer+ sur PC uniquement ■ Les nouveaux SRP sur Unity sont comparables aux renderer d'UE4 ■ Lightweight RenderPipeline => Forward Mobile/WebGL ■ HDRP Forward+/Deferred => Deferred Renderer
  • 22.
    Shaders ■ Editeur graphiquede shader ■ Attention, par défaut un shader par material, ce qui n’est pas optimal ■ Utiliser des Material Instance (proche de ce que fait Unity) ■ Artist Friendly !
  • 23.
  • 24.
    EnVrac... ■ UE4 Landscape> UnityTerrain ■ UE4 Foliage > Meshes instanciés sur un terrain ■ Sequencer >Timeline ■ Epic Launcher > Unity Hub ■ Etc...
  • 25.
    Pour finir... ■ Passerd’Unity à Unreal Engine 4 n’est pas trop compliqué car ce sont deux moteurs de jeux fonctionnant sur des principes similaires ■ Il faut cependant découvrir le Framework qui une fois en main fait gagner un paquet de temps ■ La gestion des assets est très lourde comparé à Unity ■ L’aspect cross-platform est très dévelopé par Epic Games ■ Pas de services comme Cloud Build, mais des services Multiplayers/Network qui arrivent dans l’année, gratuitement 
  • 26.