La version 4.18 d'Unreal Engine

Retour sur la dernière mise à jour d’Unreal Engine, avec la version 4.18. Si vous avez râté la 4.17, c’est ici.

Au sommaire, l’apparition des Volumetric Lightmaps, une nette entrée dans la Réalité Augmentée avec un framework unifié android/iOS, un nouvel outil “Cloth” Built-in, ainsi que l’accès anticipé au nouveau moteur Audio. Mais vous allez voir, il y a bien plus que cela !

RENDU, MATÉRIAUX, POST-PROCESS

Apparition des volumetric lightmaps

Les surface lightmaps servent au pré-calul de l’éclairage indirect sur les objets de type statiques, c’est à dire, n’étant pas en mouvement. Mais ces dernières ignorent les objets dynamiques comme les personnages, les effets de particules, ou la végétation brassée par le vent…  Pour cela, UE a introduit les volumetric Lightmaps. Évidemment, on ne peut pas utiliser ces cartes de la même façon, car on ne connait pas la position des objets avant l’exécution. De fait, ces volumes stockent une information similaire, mais dans une sorte de cache qui sera utilisé à l’exécution pour réaliser des interpolations entre valeurs, selon la position des différents objets. Comme il ne s’agit plus de surface, mais d’avoir une information “en tous points de l’espace”, on parle de volume… ou plus précisément de briques composées de 4x4x4 cellules. En réalité, c’est un peu plus complexe, car cela va dépendre du fait que l’objet existait ou non à l’origine. Un plus grand nombre de briques sont instanciées lorsqu’elles sont à proximité des objets statiques. Mais le principe est là.

Contrairement au “Sparse Volume Lighting Samples”, c’est à dire l’ancienne approche,

Comparaison détaillée:

Volumetric Lightmap  Volumes de lumière précalculés / cache d’éclairage indirect
Interpolation efficace sur GPU Interpolation coûteuse sur le processeur
Interpolation par pixel Interpolation par objet, même sur des composants instanciés
Appliqué au brouillard volumétrique Ne peut pas affecter le brouillard volumétrique
Placé avec une densité élevée autour de toutes les surfaces statiques Placé avec une densité élevée seulement sur les surfaces statiques, fuite fréquente des échantillons à faible densité
Les voxels frontaliers sont étirés pour couvrir la zone extérieure Importance Volume Noir indirect Extérieur Importance Volume
Ne prend pas actuellement en charge le streaming de niveau Prend en charge le streaming de niveau

Par l’ancienne méthode:

Par la nouvelle:

Si vous voulez faire vos propres tests, n’oubliez pas de cocher la case “Dynamic Indirect Lighting” sur votre source lumineuse 😉

Éclairage précalculé sur le brouillard volumétrique

Le Volumetric Fog interpole désormais l’éclairage précalculé sur sa position dans l’espace à l’aide des Volumetric Lightmaps, ce qui permet aux lumières stationnaires – dont l’éclairage indirect est stocké dans des lightmaps – d’affecter le brouillard. Les lumières statiques et émissives affectent le brouillard sans rien coûter, puisqu’elles sont toutes fusionnées dans la volumetric lightmap. La lumière du ciel suit maintenant les couleurs de la journée (lever/coucher de soleil).

Amélioration de la directionalité des skylights

Un cubemap filtré est utilisé avec une résolution par défaut beaucoup plus élevée. Le mip approprié est choisi en fonction de la taille des rayons pour éviter l’aliasing.

image alt text

1 – cubemap filtré Static Skylight, 2 – Puits de lumière statique d’origine

Nouveau: Éclairage indirect multi-rebond des puits de lumière

Support pour les multiples rebonds d’éclairage indirect provenant des Skylights statiques et fixes grâce à un nouveau paramètre «Num Sky Lighting Bounces» dans World Settings -> Lightmass.

1 – Rebondissement multiple des lucarnes, 2 – Rebondissement des lucarnes simples

Les matériaux doivent avoir une valeur diffuse élevée pour que les multiples rebondissements soient visibles dans la plupart des cas.

Support de prévisualisation avancé de Material Editor

L’éditeur de matériaux et l’éditeur d’instance de matériaux ont maintenant un système  de prévisualisation avancée”Advanced Preview Scenes” qui permet de modifier les paramètres de la scène tels que l’éclairage, les  environment cube maps, ainsi que la possibilité de faire pivoter l’environnement autour du preview mesh.

ANIMATIONS, SEQUENCER

AMELIORATION DU MEDIA FRAMEWORK

Le Framework Media prend désormais en charge la composition vidéo en temps réel, la synchronisation temporelle, les workflows simplifiés et  la capture vidéo (matérielle et VoIP). Sa stabilité et ses performances ont été également améliorées, ce qui n’est pas plus mal car je ne sais pas si vous avez essayé avant de passer des vidéos 4K type 360° plaquées dans une sphère… c’était pas top. Espérons que cela aille mieux désormais 😉

La lecture audio est maintenant intégrée à la nouvelle API Audio Mixer et utilise de nouveaux composants Sound Media (remplace Media Sound Waves) qui sont construits sur des composants de synthé pouvant être attachés à des acteurs de niveau et utilisés dans des widgets UMG.

AMELIORATION DU SEQUENCEUR

L’importation des FBX a été améliorée en ajoutant la possibilité d’importer des transformations statiques, d’ajouter des caméras cinématiques et l’option de forcer l’axe x avant, les pistes sont mieux dessinées et les touches ayant une double fonction apparaissent en rouge, le support du glisser/déposer a été ajouté et la possibilité de rejouer les scripts de construction lors du nettoyage.

NOUVEL EDITEUR D ASSETS PHYSIQUES

Le Physics Asset Editor (anciennement connu sous le nom de PhAT) a été entièrement remanié. L’interface utilisateur permet une vue améliorée du Skeleton Tree avec un meilleur filtrage et affichage de tous les éléments de la scène et une nouvelle vue pour configurer visuellement les contraintes entre les corps en utilisant des nœuds. Vous pouvez même créer des boucles de contraintes.

Les animations peuvent maintenant être choisies à tout moment, mises en pause, nettoyées, etc.

Il est dorénavant possible de générer automatiquement des corps physiques en utilisant plusieurs convex hulls par os. Cela permet d’obtenir une approximation de la géométrie non convexe à l’aide de plusieurs coques convexes ! Il fallait y penser…

Animation Montage Time Stretch Curve

Il est possible d’ajouter une piste Time Stretch Curve à un montage d’animation pour contrôler la vitesse de lecture afin de maintenir la vitesse de lecture normale du Montage tout en ralentissant sélectivement d’autres parties du Montage.

Pour utiliser la courbe Time Stretch, créer une courbe flottante nommée MontageTimeStretchCurve dans le montage et ajouter des clés pour définir la courbe.

Améliorations du noeud d’animation RigidBody

Le noeud RigidBody prend désormais en charge un espace de simulation du root bone,  This is useful for the case where an attached Skeletal Mesh is counter rotated from a player capsule.

Améliorations de la convivialité de l’éditeur Blendspace

Il est possible de faire glisser la punaise de prévisualisation (verte) sur la grille tout en maintenant la touche Maj enfoncée.

PHYSIQUE ET PARTICULES

OUTILS VETEMENTS

Un tout nouvel outil “built-in” a été mise en place sous l’éditeur pour gérer les vêtements. Il n’est donc plus nécessaire de passer par Apex de Nvidia.

Une fenêtre “Vêtements” permet d’éditer un ensemble de propriétés spécifiques aux vêtements qui fournissent plus de contrôle sur les contraintes d’habillement, l’élimination sélective des sommets d’auto-collision, l’échelle d’inertie. Les outils de peinture améliorés permettent de peindre “la déformabilité du vêtement” directement sur le maillage. Les nouveaux outils de peinture incluent: Brosse, Dégradé, Lisse, Remplissage. Les paramètres peints peuvent être désactivés au lieu d’être écrasés pour faciliter l’itération.

Les outils d’habillement ont été intégrés aux assets physiques pour la création de collisions. Il est également plus facile de créer des données de vêtements dans l’éditeur de maillage squelette en cliquant avec le bouton droit sur la section de maillage à convertir.

PROGRAMMATION: BLUEPRINT ET C++

Recherche de blueprints

La fonctionnalité de recherche globale Find in Blueprints permet de trouver rapidement quelque chose dans plusieurs Blueprints, et ce, sans avoir à ouvrir préalablement une fenêtre derecherche Blueprint. Rappelez vous quand vous faites une recherche dans un BP, et que vous étendez à tous les BP…. vous êtes toujours dépendant de cette première fenêtre… si vous la fermez, vous perdez votre recherche. Là, c’est bien une fenêtre de recherche globale qu’on peut appeler avec CTRL-MAJ-F (en mode BP Edition).

Array Reordering
Glisser et déposer des éléments pour les réorganiser dans un tableau: Toutes les arrays configurées via Blueprints et C ++ sont réordonnables par défaut. Pour désactiver le comportement par défaut et créer un tableau d’ordre fixe en C ++, utiliser les métadonnées EditFixedOrder.

Visual studio code

Il est possible d’utiliser Visual Studio Code pour écrire du code sur toutes les plates-formes UE4. Pour l’utiliser, sélectionner “Visual Studio Code” comme IDE préféré dans la boîte de dialogue des préférences de l’éditeur, ou ajouter l’argument -vscode lors de la génération de fichiers de projet sur la ligne de commande. Toutes les plates-formes doivent également avoir installé les environnements d’exécution .NET Core 2.0, qui peuvent être obtenus à partir du site Web Microsoft .NET Core .

Pour utiliser Visual Studio Code pour générer et déboguer tous les types de projets, certaines extensions supplémentaires sont requises. Sur toutes les plates-formes, assurez-vous que l’extension Microsoft C / C ++ et l’extension C # sont installées. Sous Linux et Mac, l’extension “Mono Debug” est nécessaire pour déboguer les projets C #, et l’extension “LLDB Debugger” est nécessaire pour déboguer les projets C ++. En outre, afin de déboguer des projets C #, le runtime mono doit être installé:

  • On OS X: brew install mono
  • Sous Linux: sudo apt-get installation mono-complète

Mise à jour des SDK

  • IDE Version the Build farm compiles against
    • Visual Studio: Visual Studio 2015 Update 3
    • Xcode: XCode 9.0
  • Android:
    • NDK 12b
    • Installer 1r6u1
  • HTML5: emscripten toolchain to 1.37.19
  • Linux: v10_clang-5.0.0-centos7
  • Steam: 1.39
  • Oculus Runtime: 1.17
  • SteamVR: 1.39
  • Switch: 1.7.0, 3.5.1 + NEX 4.2.0; Firmware Version 3.0.1-1.0
  • PS4:
    • 4.508.111
    • Firmware Version 4.730.001
    • Supported IDE: Visual Studio 2015, Visual Studio 2013
  • Xbox One:
    • XDK: June 2017 QFE3 for all all Xbox consoles (XB, XB1-S, XB1-X)
    • Firmware Version: October 2017 Preview 3 (versuib 16291.1000.170913-1900)
    • Supported IDE: Visual Studio 2015
  • macOS: Support for macOS 10.13 High Sierra has been added as a fully supported platform!
  • iOS: SDK 11
  • tvOS: SDK 11

SONS ET MUSIQUES

MOTEUR AUDIO UNREAL (accès anticipé)

Améliorations de l’architecture de plug-in audio

La spatialisation des sources binaurales basées sur les objets, l’occlusion de la source et la réverbération principale sont mieux réalisées grâce à une meilleure intégration dans le moteur. Ces effets nécessitent un support de plug-in audio spécial.

Source Bus

Le source bus permet à plusieurs sources sonores d’envoyer et de former une seule source en temps réel, d’acheminer l’audio vers une source audio 3D.

Nouveaux effets de sous-mixage 

  • Delay : Cet effet simule un délai de diffusion simple sur l’audio envoyé au sous-mixage.
  • Tap Delay : Effet de retard multicanal complexe qui permet une quantité arbitraire de taps (“échos”) pouvant être ajoutés, modifiés et supprimés indépendamment via une API Blueprint puissante pendant l’exécution.
  • Flexiverb: Algorithme de réverbération monocanal peu coûteux et optimisé pour optimiser la densité d’écho avec le moins de multiplications possibles. Cet effet est le mieux adapté pour émuler une réverbération de petite taille sur des plates-formes où les ressources du processeur sont limitées.

RÉALITÉ VIRTUELLE ET AUGMENTÉE (VR/AR)

SUPPORT DES KITS DE REALITE AUGMENTEE (ARKit d’Apple et ARCore de Google)

Nouveau: Apple ARKit iOS 11
Unreal Engine 4.18 inclut un support en production de l’ARKit d’Apple dans iOS11.

Les flux de travail ont été simplifiés en utilisant les composants de l’infrastructure existante, une bonne gestion de la caméra passthrough a été ajoutée et une amélioration des performances et de prédiction. Téléchargez le projet ARSample pour voir ce qui a changé pour 4.18. Les projets ARKit créés en utilisant 4.17 devront être mis à jour pour fonctionner en 4.18.

Nouveau: Prise en charge de Google ARCore Developer Preview


J’ai écrit un article sur la question si vous voulez en savoir plus.

Prise en charge de SteamVR sur Mac
UE4 supporte officiellement la VR sur Mac via SteamVR. Toutes les interfaces auxquelles vous êtes habitué sur PC sont disponibles sur Mac, il est donc facile de transférer votre projet sur Mac pour le lancer. La mise à jour s’accompagne de la prise en charge de Metal 2 et de nombreuses autres optimisations d’exécution.

MOBILES, CONSOLES ET HTML5

Simplification des certificats et signatures sur iOS

Il n’est plus nécessaire d’installer votre clé privée ou vos certificats à l’aide de Keychain Access sur le Mac distant

Desktop-Class Forward Renderer sur iOS (expérimental)

Unreal Engine 4.18 contient le Desktop-Class Forward Renderer utilisé dans la démo de Wingnut AR à la WWDC 2017! (appareils iOS dotés d’un processeur A9 ou version ultérieure exécutant iOS 10.3 ou version ultérieure, avec une version A10X).

Android

Gradle activé par défaut pour Android pour l’emballage des APK Android.

Plugin de caméra Android

Unreal Engine a maintenant un plugin optionnel pour donner accès aux caméras avant et arrière sur les appareils Android. L’activation du plug-in ajoute un nouveau panneau de Paramètres du projet. Top !

HTML5

WebAssembly est désormais activé par défaut pour les projets HTML 5, permettant de créer des jeux complexes pour le Web, qui se chargent rapidement et fonctionnent correctement (Euh….).

A noter que le multithreading n’est pas encore disponible sur WebAssembly.

Conclusion

Voilà, vous trouverez comme d’habitude plus de détails dans le thread d’origine d’Epic, et en attendant, je vous dis à très vite pour la prochaine mise à jour… non, pas trop vite quand même, je n’ai même pas le temps de tout tester 😉

Sinon, regardez cette vidéo qui reprend les principales nouveautés :

Ces articles pourraient aussi vous intéresser …