Unreal Engine 4.14 – quelles nouveautés?

Yes, une nouvelle mouture de notre moteur de jeu préféré ! Avant de lister toutes les nouveautés, je vous rappelle que vous trouverez l’historique des autres mises à jour sur cette page, mais surtout, n’hésitez pas à demander le “Guide 2015-2017 des nouveautés d’Unreal Engine” qui est gratuit – enfin, je ne vous demande que votre email pour pouvoir vous envoyer des trucs de temps en temps – et vous pouvez vous désabonner à tout moment – dans tous les cas, cela ne remplace pas le RSS. Il a été mis à jour avec 4.15, les inscrits ont reçu un email.

Rendu, Matériaux et Post-Process

Unreal Engine 4.14 introduit un nouveau moteur de rendu d’ombrages (optimisé pour la VR entre autres).

ue-414-image_1

Il permet de combiner les fonctionnalités d’éclairage avec l’anticrénelage à plusieurs échantillons (MSAA), le MSAA est préférable pour les projets VR .

Pour utiliser MSAA, définissez la valeur par défaut Anti-Aliasing Méthode dans les paramètres du projet de rendu:

ue-4-14-image_4

Les fonctionnalités gérées sont par exemple:

  • les lumières stationnaires  en prenant en compte les objets en mouvement (ombres dynamiques)
  • les réflexions multiples et planaires
  • Toutes les lumières pré calculées (lightmaps)
  • les ombres capsules

Les nouvelles fonctionnalités Ombres de contact (Contact Shadows) permettent un excellent détail des ombres dynamiques des objets complexes.

Les scenarii d’éclairage

L’éclairage précalculé pour de multiples configurations d’éclairage avec la même géométrie est maintenant possible.

ue-4-14-image_12

ue-4-14-image_13

Dans l’exemple ci-dessus, la lumière directionnelle, la lumière du ciel et skybox ont été placés dans un scénario d’éclairages appelé DayScenario. Les lampadaires ont été placés dans NightScenario. Vous imaginez les gains de productivité de votre workflow quand il s’agit de pouvoir utiliser les mêmes lieux à différents moments de la journée ?

Pour utiliser les scénarios d’éclairage:

  • clic droit sur un sous-niveau dans la fenêtre level windows et changer pour Lighting Scenario. Quand un niveau de scénario est rendu visible, ses lightmaps sont appliquées dans le monde.
  • Changer la méthode de diffusion de niveau Blueprint au niveau du scénario d’éclairage
  • Placer les meshes et les lumières dans ce niveau et construire l’éclairage
  • Dans le BeginPlay du niveau du level blueprint du niveau persistant, exécuter un Load Stream Level au niveau du scénario d’éclairage.

ue-4-14-image_15

Amélioration des lumières sur les objets translucides

ue-4-14-image_16

Dans le rendu différé, la nouvelle fonctionnalité d’ombrage peut être utilisée sur des surfaces translucides pour obtenir reflets spéculaires de multiples lumières.

Shading peau en haute-résolution

UE4 prend désormais en charge l‘ombrage de la peau en haute-résolution pour le  modèle d’ombrage Subsurface Profil. Ceci permet d’obtenir un très bon éclairage pour les détails comme les pores et les rides.

ue-4-14-image_18

Ci-dessus, éclairage obtenue avec le motif damier utilisé auparavant, et ci-après le nouvel affichage:

ue-4-14-image_19

Bon, j’avoue, avec cette image et sans possibilité de bouger autour de l’objet, c’est pas évident de voir la différence. Un petit zoom pour mieux voir:

unreal_engine_4-14_released_-_2016-11-19_11-27-45

Nouvel éclairage où chaque pixel contient des informations d’éclairage diffus et spéculaire dans un encodage RGBA. Cela nécessite au moins un format de couleur scène 64 bits avec un canal alpha complet.

Ce comportement peut être modifié en utilisant la variable console r.SSS.CheckerboardLes valeurs possibles pour cela sont: 0: Damier désactivé (résolution complète), 1: Damier activé (ancien comportement), 2: Automatique (par défaut)

Amélioration de la qualité de la “Reflection Capture”

Quand on utilise les “Reflection Capture” (voir tome 3 des cahiers d’unreal Engine), le moteur réalise un mixte entre l’émission spéculaire provenant de la capture avec la lumière indirecte émise par la lightmap.

ue-4-14-image_22

A gauche, on utilise le mixte, et pas à droite. Cela donne de bons résultats sur les surfaces rugueuses, mais pas sur les surfaces lisses. De fait, le mixage est désormais désactivé pour toute surface ayant un roughness > .3, puis un gradient (fade) sera appliqué jusqu’à .0. Cela donne ainsi de meilleurs résultats.
Et cela a d’ailleurs un impact sur l’environnement direct comme illustré ci-dessous:

image_23

Material attribute nodes

Travailler avec les Material Attributes est maintenant plus facile.

  • GetMaterialAttributes – Ce nœud est un remplacement compact pour BreakMaterialAttributes
  • SetMaterialAttributes – Ce nœud est un remplacement compact pour MakeMaterialAttributes
  • BlendMaterialAttributes – nouveau nœud pour permettre de faire plus facilement le mélange des matières Attributs structures.

La sélection d’un nœud montre la liste des pins actuelles dans le panneau de détails qui peuvent être étendues ou supprimés. Par exemple, la fonction ci-dessous prend un ensemble d’attributs mélange ensuite la couleur de base et Roughness à une surface rouge brillant.

ue-4-14-55

 

Animations

Éditeur d’animation Revamp

Les outils liés à l’animation ont été divisés en éditeurs d’assets distincts plutôt que d’utiliser un éditeur avec plusieurs modes.

ue-4-14-unreal_engine_4-14_released_-_2016-11-16_19-07-20

Beaucoup d’autres améliorations ont été apportées sur l’éditeur Skeletal Mesh, l’éditeur Skeleton, l’éditeur d’animation et l’éditeur de Blueprint animation.

Fenêtre courbe d’animation 

Vous pouvez maintenant modifier la courbe animations grâce à la nouvelle fenêtre dédiée. Les courbes sont visualisés en direct que vous les modifiez.

ue-4-14-image_45

Blueprint animation par défaut

Permet d’attribuer un Animation Blueprint à un skeletal mesh qui sera toujours en exécution quelque soit l’outil utilisé (dans le niveau, dans le sequencer, etc.).

ue-4-14-image_48

Pre-skinned local position

Les matériaux ont maintenant accès à la position de référence d’un skeletal mesh pour une utilisation dans les sorties per-vertex. Cela permet des effets localisés sur un personnage animé. Le nœud peut être partagé pour les maillages statiques pour lesquels il renvoie la position locale. L’exemple ci-dessous crée un motif en grille dans l’espace local, qui reste relatif à la maille du squelette pendant l’animation:

ue-4-14-57

ue-4-14-58

os virtuels

Ont été ajoutés des «os virtuels» à un squelette. Les os virtuels ne sont pas skinnables, mais contraints entre deux os existants sur le squelette. Par exemple, vous pouvez ajouter un joint, enfant d’une main, mais contraint à un joint de paume.

Child Animation Montages

Créer un Montage enfant basé sur un Montage parent, permet de  remplacer des clips d’animation. Utile pour ajouter des variations à un mouvement tout en garantissant qu’il n’aura pas d’incidence sur le gameplay.

ue-4-14-65

éditeur de lecteur média

Vous pouvez maintenant glisser déposer des fichiers depuis l’ordinateur dans la fenêtre du lecteur multimédia pour visualiser les fichiers vidéo sans devoir créer un asset FileMediaSource.

ue-4-14-77

Meshes et Génération procédurale

Génération automatique de LOD: Unreal Engine  réduit maintenant automatiquement le nombre de polygones de vos maillages statiques pour créer LODs

ue-4-14-image_10

L’animation ci-dessus montre cinq LODs qui ont été générés automatiquement. Chacun d’eux est la moitié du nombre de triangles comme le précédent.

Ce simplificateur de maille maintient les UV et donc les mêmes matériaux peuvent être utilisés, et les LOD peuvent partager la même lightmap.

 “Auto Compute LOD Distances” est un paramètre important parce que l’algorithme connaît la différence visuelle maxi possible pour déterminer le niveau d’erreur acceptable. Il va donc automatiquement calculer la taille de l’écran à utiliser pour chaque LOD.

Création de Static Mesh dans l’éditeur à partir de n’importe quel actor

Il suffit de faire un clic droit sur un actor dans le level, puis de cliquer sur “Convert Actor to Static Mesh” comme dans cette vidéo. cela fonctionne aussi avec les personnage skinnés: ainsi on peut prendre une pose et “extraire” le static mesh correspondant (pour faire une statue par exemple).
J’ai encore du mal à imaginer les applications de cette fonctionnalités, mais bon je suppose que cela doit être assez pratique. Je pense notamment à la génération procédurale et la possibilité d’exporter ainsi facilement ses créations. Mais il doit y avoir encore d’autres besoins auxquels je ne pense pas forcément.

Vector Noise dans les matériaux

ue-4-14-unreal_engine_4-14_disponible_-_2016-11-16_18-32-13

Le nouveau nœud “vector noise”  ajoute plusieurs fonctions avec des vecteurs 3D ou 4D . Tout ou partie du calcul être précalculé dans une texture en utilisant le Blueprint Draw Material to Render Target introduit en 4.13. Ces nœuds fournissent une alternative à la création de textures générées avec un outil externe. Les nouvelles fonctions sont les suivantes :

  1. Cellnoise : Renvoie une couleur aléatoire pour chaque cellule dans une grille 3D. Les résultats peuvent donc fournir un moyen fiable pour ajouter un effet aléatoire à un matériau.
  2. Perlin 3D Noise : Calcule une version de Perlin Noise Simplex avec sortie vecteur 3D. Chaque composant de sortie est compris entre -1 et 1.
  3. Perlin Gradient : Calcule le gradient 3D analytique d’un scalaire bruit Perlin Simplex. La sortie est sur quatre canaux, où les trois premiers (RGB) sont le gradient, et le quatrième (A) est le bruit scalaire. Ceci est utile pour les bosses et pour les flow mapssur une surface
  4. Perlin Curl : Calcule la boucle 3D d’un vecteur de bruit Perlin Simplex. La sortie est un vecteur 3D. Ceci est utile pour l’écoulement de fluides ou de particules.
  5. Voronoi : Calcule le même bruit Voronoi que le nœud de matériau scalar Noise. Le bruit de Voronoi scalaire éparpille les points dans l’espace 3D et renvoie la distance la plus proche. La version vectorielle du bruit renvoie l’emplacement du point le plus proche en RGB, et la distance en A. Surtout couplé avec Cellnoise, cela peut permettre à un comportement aléatoire par cellule de Voronoï.

Ci-dessous, un matériau pierre réalisé en utilisant le composant à distance du vecteur de bruit / Voronoi pour moduler quelques bosses de surface et se fondre dans la mousse dans les fissures, et la position de la graine avec Vector Noise / Cellnoise pour changer la couleur et hauteur des bosses par roche.

ue-4-14-image_36

Encore des éléments qui ajoutent aux possibilité de génération procédurale d’UE4, afin d’ajouter plus d’aléatoire dans les matériaux.

Child actor templates

Les composants ajoutés aux Child Actor Components peuvent avoir leurs propriétés personnalisées via Child Actor Templates.

ue-4-14-image_46

Une fois que vous ajoutez un Child Actor Component, vous verrez un modèle extensible dans le panneau Détails de l’éditeur de Blueprint. De là, vous pouvez accéder à toutes les propriétés du Child Actor y compris les variables publiques.

Amélioration du composant Câble

Les câbles peuvent maintenant avoir un rendu nettement plus réaliste : le moteur de jeu considère leurs collisions avec l’environnement (y compris avec friction) et permet d’y attacher des objets et des effets.

Landscapes

Editeur de paysage en VR

Vous pouvez maintenant créer et sculpter des matériaux de paysage terrain et de peinture à l’aide des contrôleurs de mouvement en VR!

ue-4-14-image_49

outil de rotation de paysages

L’outil miroir de paysage (landscape mirror tool) peut maintenant inverser la géométrie parallèlement au plan de miroir, pour créer des cartes multijoueur diagonalement opposées.

ue-4-14-67

Menus et Widgets

Les fontes peuvent maintenant être utilisées en version “outline” dans l’UI:
image_31
Tous les widgets possèdent donc un “outiline size”, mais aussi un “outline material” pouvant être utilisé pour réaliser divers effets comme:

Physique et particules

Upgrade de PhysX en 3.4

Le moteur physique inclus, PhysX, a été mis à jour vers la dernière version, ce qui améliore fortement la performance ; de nouvelles fonctionnalités du moteur physique seront intégrées dans les versions à venir du moteur de jeu.

ue-4-14-image_39

Cette version de PhysX permet la détection continue de Collision (CCD) sur les objets cinématiques, ce qui permet des collisions précises entre corps rigides en mouvement rapide. C’est important si vous tirer avec un projectile comme une balle de fusil dans un mur par exemple.

Prise en charge des véhicules améliorée

Les développeurs ont changé la façon dont les forces sont appliquées au niveau des pneus. Auparavant, elles étaient appliquées au barycentre du véhicule.

Les déplacements des véhicules n’étaient pas toujours gérés de manière très réaliste : les forces qui s’appliquaient sur les pneus étaient considérées sur le véhicule lui-même et non sur le pneu. Ainsi, le moteur n’arrivait pas à simuler un véhicule qui tanguait.

ue-4-14-50

Simple Wheeled Vehicle Movement Component permet la suspension de la roue et la friction des pneus sans s’ennuyer avec les complexités du moteur et la simulation de la transmission. Ce composant vous permet d’appliquer facilement le couple aux pneus.

Amélioration du cloth skinning

A été ajoutée la possibilité de calculer nos propres données mesh-to-mesh skinning pour les vêtements, donc plutôt que d’utiliser les données de rendu exportées dans un fichier .apx ou .apb, nous utilisons maintenant ce que UE4 a déjà depuis l’asset APEX-exporté et Reskin.

Cela corrige des soucis comme les normals qui pouvaient être mal appliqués après import comme ci-dessous:

ue-4-14-_-_2016-11-16_21-18-27

Plugins et Technologies Tiers

Support de nvidia ansel

7866368ee03a77c4f93d26c942770

Prendre des screenshots en Super résolution ou des photos à 360°, et les retoucher comme un pro… c’est possible grâce à Nvidia Ansel – je vous conseille la lecture de cet article.

Sous UE4, cela se matérialise par un plugin qui permet d’accéder à l’outil dans une session standalone. On peut aussi le contrôler via les blueprints grâce à la classe Player Camera Manager.

Nouveau plugin MIDI

image_66

Permet de connecter directement son synthétiseur par exemple et de dialoguer avec lui via des ordres “midi”, ces derniers étant accessibles par les Blueprints via un MIDI Device Manager. Il suffit ensuite de faire un break sur la structure et d’accéder à un tas de variables.

Sequencer (ex-Matinee)

Amélioration de la Camera Rig Crane

Pour le tournage de films, on utilise des sortes de grues sur lesquelles on fixe une caméra. Pour les besoins du sequencer, un même dispositif a été développé il y a quelques temps. Existe également le système de rail sur lequel se déplace la caméra.

Le comportement de la grue imite maintenant parfaitement celui d’une véritable une grue:

enregistrer de l’audio dans une séquence

ue-4-14-61

Vous pouvez maintenant enregistrer de l’audio à partir d’un microphone pendant l’enregistrement dans une séquence.

amélioration pose driver

Le nœud Pose driver permet à un os de conduire d’autres aspects de l’animation, basé sur un jeu d’exemples. Il peut maintenant être une cible de morphing, par exemple la conduite d’un os épaule pour la rotation du bras.

ue-4-14-62

Pour les mobiles

Vulkan est maintenant géré sur les plateformes Android

Cela était déjà possible avec quelques manipulations sous Windows par exemple, mais avec la version 14, c’est intégré pour Android.

  • UE4 supporte les appareils sous Android 7 (Nougat) avec pilotes Vulkan, ainsi que le Galaxy S7 Samsung avec mise à jour OTA récente.
  • De nombreux problèmes de rendu ont été corrigés.
  • Le rendu passera automatiquement à OpenGL ES s’il est lancé sur un appareil Android non compatible Vulkan.

ue-4-14-51

Support de profondeur personnalisée sur mobiles

depuis Scene Depth, Custom Depth ou Scene Color.

ue-4-14-52

Comme ça nécessite des post-traitements, Mobile HDR doit être activé et la fonction ne fonctionne pas actuellement pour tout mobile avec MSAA activé.

Bibliothèque blueprint pour mobiles 

La nouvelle bibliothèque Mobile Patch Utilities Blueprint library contient toutes les fonctionnalités requises pour permettre un jeu sur mobile de télécharger et installer le contenu et les correctifs à partir du cloud.

Amélioration du composant Scene Capture

AMAZON GAMECIRCLE PLUGIN POUR KINDLE FIRE

Un nouveau plugin en ligne Subsystem GameCircle est maintenant inclus!

GameCircle vous permet de partager vos exploits et vos scores avec vos amis, directement depuis votre Kindle Fire. Grâce à la technologie de synchronisation de GameCircle, vous pouvez enregistrer vos progrès dans un jeu et le reprendre sur n’importe lequel de vos appareils Kindle compatibles. Vous pouvez inviter des amis qui possèdent également un Kindle Fire en recherchant leur nom d’utilisateur ou en vous connectant sur Facebook lorsque votre appareil est connecté au Wi-Fi.

C’est désormais facilité grâce à ce plugin:

ue-4-14-71

Support Android sur linux

Codeworks pour Android de NVIDIA pour Linux est la meilleure façon de mettre en place les outils de NDK et SDK nécessaires. En outre, OpenJDK 1.8 doit être installé; set JAVA_HOME pointer vers votre installation.

 Vulkan Android sur Linux n’est pas encore pris en charge.

Réalité virtuelle

Tout un lot d’améliorations et d’optimisations concernant la VR qui reste l’un de chevaux de bataille d’Epic Games pour son moteur de jeu. On en a vu certains précédemment comme l’éditeur de paysage ou l’amélioration du rendu, mais voici un autre élément à prendre en compte.
VR chargement de films

Le moteur prend désormais en charge les films sur Oculus, GearVR, SteamVR et PSVR. Pour utiliser l’écran de démarrage, vous pouvez définir une texture en utilisant le noeud “Splash Screen Set” ou choisir de voir automatiquement apparaître une carte avec le noeud “Activer Auto Loading Splash Screen”.

Support de VRWorks 2.1: VR SLI,  Lens Matched Shading (Pascal), Multi Res Shading (Maxwell) et Single Pass Stereo sont aussi intégrées et permettent de gagner pas mal de performances (jusqu’à 30% rien qu’avec le LMS/MRS).

Debogage

Morph Target debug View Mode

Permet de voir quels sommets sont affectés par chaque cible de morphing.

ue-1-41-64

Live GPU profiler

fournit des statistiques pour les principales catégories de rendu. Pour l’utiliser, entrez la commande de la console ‘stat gpu’ ou allez dans l’éditeur via le sous-menu ‘Stat’ dans le menu déroulant Options dropdown.

ue-4-14-73

Support de Visual studio 15

Si vous avez plusieurs versions de Visual Studio, vous pouvez sélectionner celle que vous voulez utiliser par  section «Code source» dans «Préférences Editor.

Conclusion

Voilà, ça fait encore beaucoup à intégrer en si peu de temps… je ne vous parlerai pas par exemple des nouvelles structures de données comme les Maps (des tableaux, mais avec une clé d’accès qui peut être textuels pour indexer un élément) et les Sets (comme les tableaux, mais avec seulement des éléments uniques), mais cela peut aussi se révéler fort utile pour alléger les blueprints et optimiser son code.

Je vous ai listé le plus important, mais vous trouverez des compléments sur le thread d’origine sur le site d’Epic Games.

 
 

Ces articles pourraient aussi vous intéresser …