Mise à jour Unreal Engine 4.12, quoi de neuf?

par | 6 Juin 2016

Epic vient de mettre à jour son moteur Unreal Engine en version 4.12. Des mises à jour en voici, en voilà, pour notre plus grand bonheur…. et tout un tas de nouveautés et d’améliorations à découvrir !

Sequencer: outil d’animation

Sequencer est un outil d’animation permettant de réaliser des cinématiques en temps réel, il est le successeur de Matinee (vous pourrez importer vos animations effectuées sous Matinee). Je vous en ai souvent parlé dans mes livres – on l’attendait, pouvait déjà le testé depuis la version 4.7… voilà, c’est officiel – le Matinee nouveau est arrivé ! Il possède de nombreuses fonctionnalités comme le keyframing automatique, les caméras cinématographiques, et l’enregistrement de gameplay en direct.

Il est prévu pour combiner la puissance d’éditeurs non linéaires avec des techniques d’animation 3D.

image_1

Il permet aussi de faciliter la collaboration sur les grands projets d’animation grâce à un flux de travail non-linéaire.

L’interface est très simple d’utilisation et sur les bases de la majorité des logiciels 3D et de Matinee. Pour ceux qui connaissent bien matinee, ce dernier souffrait beaucoup de son intégration partielle au moteur de génération 4 – il était surtout un portage de la version 3. Qui n’a pas déjà pesté en devant placer un actor Matinee sur la scène ? Là, on hérite des propriétés habituelles en terme de Timeline et autres outils communs aux autres fonctions d’UE4. Pour un nouveau venu, c’est beaucoup plus logique !

De nombreux outils de caméras ont été améliorés: focales, rigcamera et viewport, … Cela facilite la création de plans plus réalistes.

Sequence recording vous permet d’enregistrer une partie du jeu et d’y ajouter des éléments ou de les modifier.

image_4

La documentation est en ligne ici.

L’éditeur VR (réalité virtuelle)

L’éditeur VR est disponible pour vous permettre de naviguer librement dans la scène en VR grâce aux contrôleurs de mouvement tout en éditant. Vous pouvez sélectionner et déplacer les objets, en placer de nouveaux et même accéder à l’interface utilisateur de l’éditeur, tout en étant immergé dans la VR.

La bibliothèque de contenus est aussi accessible, avec les outils de placement précis.

image_6

Cette fonction nécessite actuellement soit un Vive HTC ou un Oculus touch comme matériel de développement. Pour l’ essayer, il suffit de mettre sur ON « Enable VR Editing » dans la section expérimentale des Préférences de l’éditeur.

Cette fonction est encore expérimentale mais offre déjà de belles possibilités. Personnellement, je l’ai testée et je trouve que c’est assez pratique de pouvoir naviguer en VR dans son level, de déplacer tel ou tel objet… bref, pour composer une scène c’est génial. Mais dès qu’il faut interagir avec une fenêtre comme la fenêtre « Details » par exemple, ça devient l’horreur car il faut se coller à la fenêtre pour arriver à lire. C’est que la police d’écriture, la taille de cette dernière sur les écrans de VR est quasiment illisible.. Bref, c’est un peu comme un menu desktop qu’il faudrait adapter à un mobile. Attendons que ces fenêtres soient redéveloppées pour la VR et là on aura véritablement un outil très intéressant. Il faut laisser le temps au temps…

Pour en savoir plus, c’est ici.

Support de la plateforme Daydream

Daydream de Google est une nouvelle plate-forme VR pour mobiles. UE4 inclut un support complet pour cette plate-forme, y compris le contrôleur de mouvement.

Pour activer le support, allez sur Plugins dans l’éditeur, et activer « Google VR » et « Controller Google VR. » Je vous avais déjà fait un article là dessus, alors je passe plus rapidement.

Support OSVR 

UE4 supporte maintenant pleinement OSVR, la plateforme de réalité Open Source qui est au coeur du casque de VR de Razer.

https://www.youtube.com/watch?v=dxeQVBwyh8Y

Pour plus d’infos:  http://www.osvr.org/

image_13

L’aperçu de rendu Vulkan

Un aperçu rapide de rendu mobile est disponible grâce à l’API graphique Vulkan.

image_14

Mises à jour des SDK

image_30

Async compute est maintenant pris en charge pour Xbox One.

Les reflets

Réflexion planaire en temps réel:

Il y a un coût en calculs pour utiliser cette fonction, cependant, la qualité de la réflexion est superbe.

image_10

A gauche l’ancienne version.

Pour l’utiliser, il faut autoriser: « Support global clip plane for Planar Reflections » dans Rendering project settings et relancer l’éditeur.

Les matériaux réfléchissants à proximité seront automatiquement affectés par la réflexion plane et leurs normales seront utilisées pour modifier la réflexion, ce qui permet des ondes simulées.

Réflexions de haute qualité

Possibilité de coder les normales et tangentes en 16 bits par vecteurs de canal pour un compromis entre la qualité et la mémoire supplémentaire nécessaire. Cette option, « Use High Precision Tangent Basis », peut être trouvée dans la section Build Settings de l’éditeur Static Mesh.

image_11

Résolutions personnalisées pour « Sky cubemaps » et « Reflection Probes ». Possibilité de choisir la résolution qui convient le mieux en fonction de la performance, la mémoire et les compromis de qualité.

« Cubemaps » personnalisés pour Reflection Probes pour détailler plus ou moins une partie.

« High Precision GBuffer Normal Encoding »: possibilité de sélectionner un format de codage GBuffer normal de haute précision

Ombrages

Possibilité d’utiliser plusieurs cartes normales avec des matériaux de revêtement transparent pour obtenir un ombrage réaliste pour des surfaces comme la fibre de carbone.

image_12

Gauche: ex UE4 Clear Coat , Centre: nouveau UE4 Clear Coat avec fond normal, Droite: Photo réelle – on en est pas loin non ?

Cette option doit être activée via les paramètres du projet: Rendu -> Clear Coat Use Dual Normal. Il faut placer un *Clear Coat Bottom Normal*.

Les améliorations pour mobiles

Post traitement de haute qualité

« filmic tonemapper » fonctionne sur les appareils mobiles. Meilleure qualité de profondeur de champ gaussien sur les appareils mobiles avec le soutien de ES3.

image_15

Amélioration des ombrages pour les mobiles

Les maps d’ombre en cascade pour une seule lumière fixe sont désormais prises en charge dans le moteur de rendu mobile!

image_17

La fonction utilise un texture sampler supplémentaire, mais peut être désactivée via les paramètres du projet: Rendering -> Mobile -> Combined Static and CSM Shadowing qui libérera l’échantillonneur pour l’utilisation des matériaux.

Les particules sous Android et iOS

Les particules GPU avec champs de vecteurs fonctionnent pour les mobiles. Il faut que l’appareil prenne en charge 32 bits à virgule flottante cibles de rendu avec le soutien MRT (Apple avec A8 + (iPhone 6, iPad Air 2, iPad Mini 4, et plus récent, Android 6.0 avec Adreno 4xx et Mali-T7xx GPU (Galaxy Note 4, note 5, S6, S7, Nexus 6P et autres).

Décors

Herbe et feuillage évolutifs

Un curseur permet de régler les niveaux de détail.

image_20

Ceci par l’option « Enable Density Scaling » dans la section Scalability de FoliageType. La mise à l’échelle de densité à appliquer à l’herbe et au feuillage à chaque niveau est configuré avec le « grass.DensityScale » et « foliage.DensityScale » dans les  sections [FoliageQuality] de BaseScalability.ini et peut être redéfinie dans DefaultScalability.ini de votre jeu.

Collisions

Le paysage prend en charge la collision simplifié du joueur. La Simple Collision Mip Level setting vous permet de choisir le niveau LOD de paysage à utiliser pour la collision simplifié. La valeur Collision Mip Level est toujours utilisée pour spécifier le niveau LOD du paysage à utiliser pour une collision détaillée.

Collision peut maintenant être généré pour les Spline meshes créés lors de l’exécution.

Animations

Twist Corrective node 

Le nouveau nœud Twist permet d’utiliser les valeurs de la courbe comme cibles de morphing. C’est basé sur la torsion d’un os par rapport à l’autre. Par exemple, quand le cou est trop tourné dans un sens, vous pouvez appliquer une cible Morph au cou afin de créer un look plus naturel.

image_22

Embedeed composite animations

Vous pouvez maintenant intégrer un AnimComposite dans une autre AnimMontage ou AnimComposite, vous permettant de créer votre propre asset d’animation de façon plus flexible. Dans l’image ci-dessous, TEST_Montage contient TEST_AnimComposite, qui contient lui-même un certain nombre d’autres séquences d’animation.

image_33

image_34

Meshes

Selective LOD pour collision mesh

Possibilité de choisir le LOD d’un Static Mesh à utiliser pour une collision «complexe» (per-poly). Cela permet d’importer ou de générer une représentation de collision plus simple pour un maillage, pour réduire l’utilisation de mémoire sur des mesh high-poly.

image_35

Collision par défaut pour les meshes

Les Static Meshes supportent la Collision par défaut, ils vont donc utiliser les paramètres de collision de l’asset StaticMesh. Cela facilite la spécification des informations de collision dans un endroit sans avoir à mettre à jour chaque cas particulier.

Full Scene Importation

Avec Full Scene Importation vous pouvez importer une scène complète réalisée avec Max / Maya / Blender dans l’éditeur. Rien que ça !!!!

Un nouvel asset Scène FBX est créé pour permettre de ré-importer. La version 4.12 permet d’importer des scènes qui incluent des skeletal meshes. Pour essayer la fonctionnalité, allez dans File > Import Scene, et sélectionnez un environnement FBX à importer. Rien que ça, c’est une super avancée !

Actor fusion

Vous pouvez maintenant facilement fusionner les mesh actors ensemble à droite dans la fenêtre de niveau. Cela permet d’obtenir de meilleures performances.

L’inspecteur de Pixel

Le nouvel outil Inspecteur de Pixel permet de cliquer sur un pixel dans la scène et de visualiser le matériel et de l’état de rendu qui a contribué à sa couleur.

Pour le lancer: « Developer Tools » dans la barre d’outils et cocher « Enable Pixel Inspector »

Réseau

Coté réplication, des optimisations significatives ont été réalisées, sauvant ainsi plusieurs cycles de CPU. C’est surtout au niveau de la surveillance de ce qui change que le système à été optimisé, évitant ainsi de mettre à jour via le réseau des propriétés inchangées.
On annonce une amélioration « massive » des performances, rien de moins !
Character movement speed hack protection

Les jeux en réseau sont souvent la cible de hackers qui tentent d’obtenir des avantages par les exploits. Les jeux conçus en utilisant la fonctionnalité non modifiée de déplacement de personnages  étaient sensibles à cet exploit. Une détection de ce style d’action a été mise en place de façon à limiter ces actions.

Les sons

UE4 Sound Mixes

UE4 Sound Mixes permet d’ajuster dynamiquement les propriétés de classe sonores. Avec 4.12, les mélanges sonores remplacent dynamiquement les ajustements de classe sonores de Blueprints en utilisant une nouvelle fonction de Blueprint, « Set Sound Mix Class Override ».

Audio localization

4.12 améliore le support intégré pour la localisation audio, entendez ici la traduction quand on parle de localisation.

image_38

Le texte parlé est maintenant rassemblé dans des assets et inclus dans vos fichiers PO pour la traduction avec votre autre texte reposant sur l’asset. L’enregistrement et l’importation de l’audio sont facilités pour vos assets d’onde de dialogue. Dans le tome 4 des cahiers d’Unreal Engine, je pointais déjà du doigt cette lacune.

C++/Blueprints

Blueprints en C++

Pour améliorer l’exécution des Blueprints, une fonctionnalité permet de packager les Blueprints en code source natif.

image_19

Pour le permettre: Packaging Settings: Experimental => Nativize Blueprint Assets

Il faudrait faire des tests de performance pour voir s’il y a un changement significatif. J’avais cru comprendre que les Blueprints étaient déjà convertis en C++, puis compilés pour le Build final de l’application. Mais dans ce cas, à quoi sert cette fonction ? Là, je ne peux pas vous en dire plus, j’ai besoin de faire quelques tests pour comprendre.

Des integers et des bitmask ! Si on coche bitmask sur un entier, on peut alors gérer individuellement les éléments – ça fonctionne autant en Blueprint qu’en C++. Cela va permettre surtout de pouvoir plus facilement s’interfacer avec des API externes ou optimiser certaines choses avec les materials par exemple.

image_31
 

Pour programmer sous C ++, il faudra maintenant Visual Studio 2015, c’est le minimum  !

Voilà, vous trouverez sur le site d’origine plus d’infos concernant les patch de corrections appliqués, mais on va dire que les principales évolutions ont été décrites ici.

Encore une fois, c’est assez lourd à digérer. Personnellement, je trouve que ces évolutions sont très biens, même si cela me force à mettre à jour plus rapidement mes bouquins sur le sujet. Mais J’ai aussi peur que cela ne décourage les nouveaux qui se disent qu’ils n’arriveront jamais à suivre… J’ai envie de leur dire: c’est pas grave – vous n’avez pas besoin de tout savoir. L’important c’est de pouvoir utiliser l’outil pour vos besoins et en cours de route, vous découvrirez progressivement tout plein de fonctions qui vous seront très utiles. Mais bon, si vous cherchez à devenir un kador d’UE4, bon courage, ça va être une activité à temps plein !

Référence: https://www.unrealengine.com/blog/unreal-engine-4-12-released
 

Découvrez nos derniers numéros !

5 Commentaires

  1. CB3D

    Sacrée mise à jour !
    La partie reflections… Yes ! Yes ! Yes !!

    Réponse
  2. NOBLE

    Pas mal d’évolution, c’est vrai que cela fait beaucoup à digérer mais on va pas se plaindre d’avoir un produit qui évolue en permanence !!!
    Dès que je sors de mes travaux, je me replonge dans mon apprentissage de ce merveilleux outil !

    Réponse
  3. Luc Morel

    Ils font un super boulot les mecs… On les sens passionnés.
    Si quelqu’un fait des tests concernant les perfs Blueprint/native C++, ça m’interesse grandement ! 🙂
    Super article, complet !

    Réponse
  4. Melvine

    Bonjour, merci pour cet article.
    Qu’en est il de l’exportation en HTML5 à l’heure d’aujourd’hui? Unity peut il encore faire l’objet de reflexions quant au choix de son moteur de jeu pour développer une application multi-platformes?
    Quid de la performance (language C vs javascript) ?

    Réponse
  5. greg

    Je n’ai pas une grande expérience de l’HTML5 sous UE4. J’ai juste réalisé quelques tests qui se sont avérés fonctionnels, mais il ne faut pas encore imaginer développer un projet et se dire à la fin: et si j’exportais vers HTML5 ? C’est pas encore automatisé à ce point. Mais ce qui est certain, c’est que cela fonctionne beaucoup mieux qu’à l’annonce de la sortie il y a a près de 2 ans.
    Oui, bien sûr Unity est un choix raisonnable également – Après c’est juste une question de choix: je trouve pour ma part qu’Unreal Engine reste la Rolls des moteurs 3D, mais peut-être qu’Unity est plus « friendly » coté exportation…
    Coté performance, il faut choisir entre portabilité web et performances, on ne peut pas avoir les deux. Maintenant, tout ce qui est réalisé par le GPU le reste par le GPU, donc tout dépend le projet… Faut pas s’attendre à faire du MMO en HTML5 aujourd’hui (ou alors, juste du chat et de la position 2D).

    Réponse

Laisser un commentaire

Ces articles pourraient aussi vous intéresser …