Unreal Engine mise à jour 4.17

Hello les amis, je crois que je n’ai jamais été aussi en retard pour vous parler des nouveautés apportées par la version 4.17 de UE4… Mais c’est l’effet “vacances” ! Bon, c’est vrai, pour moi ce sera à partir du 15 Septembre… mais en attendant j’ai beaucoup bossé, et je n’avais pas trop envie de publier sur le blog… voilà, en fait j’étais en vacances de blog et ça fait du bien de temps à autres. Comme cela, je peux reprendre de plus belle ! Bon, au sommaire, pas mal de choses intéressantes… et notamment l’arrivée à maturité du Sequencer ! Epic semble aussi vouloir se tourner progressivement vers la Réalité Augmentée, avec notamment l’intégration de l’ARKit d’Apple, mais également d’autres fonctionnalités de base qui vont dans ce sens. Pour ma part, je suis heureux que l’Asset Management Framework passe en mode production car cela permet de rendre un projet beaucoup plus modulaire sans avoir à créer tout un bazard en C++.  Et puis, c’est le support de la nouvelle Xbox One X qui fait son entrée. Enfin, pour la génération procédurale, on est heureux de voir apparaitre de nouvelles fonctionnalités BP telles que les fonctions Sobol 2D et 3D. Voilà, c’est juste un petit aperçu de ce qui vous attend ci-après. Bonne lecture !

Amélioration du sequenceur

Bon, je n’ai pas arrêté de vous dire que Matinee, c’est terminé et que le Sequencer est là pour le remplace. Je pense que c’est chose faite: on peut dire qu’avec la version 4.17, il acquiert la maturité suffisante, tout en donnant plus d’homogénéité au produit, Matinee était une sorte de reliquat de la version 3 du moteur.

Auto-key a été simplifié.

Sequencer edits et Level Edits

Allow Sequencer Edits Only” permet d’isoler les changements réalisés. Cela ne va créer de nouvelles tracks que s’il n’existe pas déjà de keyframe – et cela ne va pas entrer en conflit avec d’autres keyframes existants. Il n’y aura pas de propagation par exemple.

Allow Level Edits Only” permet de travailler sur les propriétés par défaut des objets. 

Divers

On trouvera, entre autres, l’implémentation des “Attenuation settings” pour les audio attachés à des actors, la possibilité de  spécifier des règles pour attacher ou détacher des sections, plus d’options de cinématique dans le Level Sequence Player, des Key Time ajouté aux propriétés Vector, Transform, Color key, des raccourcis clavier  “étape suivante/ précédente”  tir (Shift + “,” and Shift + “.”), etc. 

Intégration dans le World Outliner: World Outliner montre l’ensemble des séquences auxquelles un acteur est lié. Et ça c’est top quand même pour avoir une vue d’ensemble.

Mélanger les sections du sequencer

Pour créer des transitions en douceur avec facilité (2D / 3D transforms, vecteurs,  couleurs, floats , etc.):

  • Toutes les sections supportées se mélangent “gracieusement” (j’ai voulu harder la traduction stricte) quand il y a un chevauchement pour produire une valeur unique appliquée à l’objet.
  • Les sections qui se chevauchent sur la même la ligne sont interpolées automatiquement lorsque c’est possible.
  • Les pistes d’animation sont interpolées automatiquement
  • De nombreuses fonctions sont disponibles en standard (linéaire, polynomiale, facilité exp in / out, etc.). Vous pouvez également spécifier un asset courbe ou mettre en œuvre vos propres fonctions de mélange personnalisé à l’aide de l’interface IMovieSceneEasingFunction (également disponible dans BP).
  • Les “Transform sections” peuvent désormais fonctionner sur une combinaison de canaux sans affecter le reste de la transformation (soit seulement Localisation et rotation)

Si l’animation des personnages, des animaux et des objets du monde est déjà considéré comme un métier à part entière, avec des spécialisations, c’était souvent réalisé directement dans le modeleur, sous 3DSMax, Maya, Blender, etc.

Mais quand il s’agit de travailler une cinématique complète en 3D Temps-réel, les animateurs étaient souvent frustrés par les outils proposés. Avec le Sequencer, il devient possible de réaliser des cinématiques époustoufflantes grâce à des outils qu’on ne trouvait jusqu’à présent qu’en précalcul.  De fait, on peut vraiment dire qu’il y a une spécialisation à prendre, dès aujourd’hui, pour les animateurs qui veulent travailler dans le monde du jeu vidéo ou dans tous les domaines requérant le temps-réel. C’est même un métier à part entière car la cinématique n’est plus figée puisqu’elle peut prendre en compte de nombreuses interactions.

Rendu

Nouveau:  Composure Compositing Plugin 

À la suite de la démonstration de “The Human Race”  à la GDC 2017, en partenariat avec The Mill et General Motors, Unreal Engine 4.17 inclut ce nouveau plugin, fonctionnant à la fois en C ++ et blueprint, et conçu pour créer facilement une composition temps réel complexe. Cela permet de mélanger facilement de la vidéo (temps-réel ou non) avec des objets 3D. Ca sniffe bon la réalité augmentée tout ça 😉 – Oui, c’est exactement ça, regardez la vidéo suivante:

Un véhicule “réel” est équipé de “QR Codes” permettant d’identifier précisément ses différentes surfaces. Grâce à cela, UE4 peut positionner précisément les objets virtuels sur cet objet réel.  Bon, ça reste du “Early Access”, ce n’est donc pas à utiliser en production de suite.

C’est encore une démonstration de la volonté d’Epic Games de faire en sorte que son moteur ne soit pas exclusivement utilisé par le monde du jeu vidéo. Je vous rappelle cet article de l’an dernier sur la question. Ici, cela peut permettre de tourner une publicité… interactive (ou on peut changer la couleur, le modèle, etc.) ou bien préparer un film… On imagine même pas les applications dans une émission en direct ou le public peut faire divers choix en appelant un numéro ou en twittant ! Bon, je ne vais pas donner trop de conseils gratuits sinon on ne va plus me payer mon consulting 😉

Caractéristiques du plugin:

  • Créé une liaison entre un Player Controller et un Texture Render Target 2D pour remplacer le pipeline de rendu du moteur par défaut
  • Import des cinématiques du Sequencer, permettant des modifications “après coup”.
  • Parametric lens distorsion: générer une UV displacement map depuis  OpenCV standard camera calibration model .
  • UVMap déforme des textures selon une UV displacement map  et des matrices UV avec flexibilité du matériau.
  • Stand-alone bloom: recréer des effets de composition comme des halos lumineux autour des objets.
  • Correction des couleurs, Chromatic aberration

Voilà, et le tout est accompagné d’un projet example et de helpers pour les Blueprints. 

Le moteur a également évolué pour apporter plus de souplesse au plugin, ces fonctionnalités pouvant également être utilisées par ailleurs comme le Support expérimental du canal alpha dans la chaîne de post-traitement du moteur: Circle DOF, TemporalAA, Motion Blur et Bloom. . Si cela vous intéresse, je vous invite à consulter le Thread d’origine

Technologie DataSmith

Pour l‘architecture et le design, la boîte à outils simplifiée et la technologie datasmith est beaucoup plus pratique, comme cela a été démontré lors du SIGGRAPH 2017. Datasmith  aide artistes et concepteurs à simplifier l’importation de données dans Unreal Engine depuis plus de 20 sources de CAO / DCC, y compris Autodesk 3ds Max. Il en résulte un gain de temps significatif.

Voici un avant/après de ce qu’il est possible de faire:

blogAssets_2017_JULY+2017_Datasmith+Beta_Datasmith_Announce_Stacked-770x856-0fca21796261ca7f803e85e535486b82d9a8a2f9.jpg

Nouveau:  Image Plate Actor and Sequencer Track (Experimental)

Cela permet l’affichage de séquences précises d’images en plein écran lorsque l’actor est relié à une caméra.

Bon, sur le coup, je n’ai pas tout compris. Heureusement, un peu de documentation est venu compléter tout ça:

En gros, on peut utiliser des images (issues de vidéos ou non) pour constituer le background de l’acteur .En bougeant la caméra, cela bouge automatiquement l’image qui est utilisée comme background, donnant ainsi une impression d’immersion dans une scène alors qu’il ne s’agit que d’une image. Cette forme là ne permet pas le temps-réel, mais pourquoi ne pas imaginer à l’avenir que la séquence d’images proviennent d’une webcam? Bref, encore un effort vers l’utilisation de la réalité Augmentée par Epic Games.

Nouveau:  Global Shader Support pour Plugins

Vous pouvez maintenant ajouter de nouveaux shaders à l’intérieur des Plugins et des projets (Plugin et modules du projet avec shaders globaux nécessitent l’utilisation de la PostConfigInit en phase de chargement).

Plugins et projets peuvent fournir leurs propres Shaders. Vous pouvez regarder le plugin LensDistortion comme exemple simple (Engine/Plugins/Compositing/LensDistortion). Personnellement, je n’ai pas renconté le problème, mais je me souviens que mon collègue Marien vauciférait contre Epic à cause de cela, car pour un plugin ça n’allait pas, il fallait recompiler le moteur il me semble… Enfin, bref, c’est dispo maintenant, il suffit de respecter les éléments suivants:

  • Les fichiers USF ne doivent être situés dans le répertoire privé.
  • Les appels à IMPLEMENT_SHADER_TYPE, doivent  inclure le chemin complet du fichier de shaders USF (par exemple «Engine/Private/Foo.usf» ou «plugin/FooBar/Private/MyComputeShader.usf»).
  • Les fichiers C ++ générés doivent être mis en correspondance dans le répertoire /Engine/Generated/ virtual directory.
  • Shaders /directory nécessite au moins un répertoire privé ou public. Le répertoire généré / ne devrait pas exister.

Structure du fichier du répertoire Shader
Les fichiers de shaders ont été divisés en USF et une nouvelle extension de fichier USH.

  • Les fichiers USH sont utilisés pour les fichiers d’en-tête de shaders qui ne contiennent pas un point d’entrée de shaders et qui ne devraient contenir que d’autres fichiers de shaders.
  • les fichiers USF seraient les seuls fichiers ne pouvant être inclus qui ont les points d’entrée de shaders.

De plus, les fichiers de shaders ont été séparés sous les dossiers publics et privés. Tout comme avec le code source du moteur, l”API publique doit être placée dans des fichiers dans un dossier public, alors que les implémentations sont placés dans le dossier privé.

Nouveau: Les dépendances entre les plug-ins

Les plugins peuvent maintenant déclarer des dépendances sur d’autres plugins que le moteur utilisera pour activer automatiquement et charger ces plugins . Les dépendances peuvent être répertoriées dans un .uplugin en utilisant la même syntaxe que les fichiers .uproject.

Nouveau: Bent Normal Maps and Reflection Occlusion: amélioration de l’éclairage

Les Bent normals, chékoédéo ? Littéralement, des normals (perpendiculaires aux faces) tordues ! Bon, ça n’explique rien je suis d’accord. En fait, on parle surtout d’une map supplémentaire qui est utilisée pour le calcul de l’occlusion ambiante (AO). Je ne vais pas revenir sur ce qu’est l’AO, mais cela correspond grosso modo à une partie de l’ombrage que l’objet projette sur lui-même. C’est plus large que cela, mais cela donne une idée à ceux qui ne maitrisent pas cet aspect. En quoi la Bent Normal Map apporte t-elle du réalisme ? On se rapproche d’avant du modèle d’illumination globale (GI) tout en conservant de bonnes performances. En fait, les bents normals sont utilisées à la place des normals donc il n’y a aucune perte de perfomance, tout est précalculé. Un algorithme qualifié d’un peu magique par Epic va tordre ces normals pour lui donner des détails supplémentaires améliorant le rendu indirect. Le plus gros impact étant que l’on perd moins de lumière durant l’occlusion. 

Ces informations sont aussi utilisées pour l’occlusion de la réflexion. L’AO est traditionnellement une occlusion la lumière diffuse indirecte. La Reflection occlusion est l’occlusion pour lumière indirecte de type spéculaire. Cela fonctionne en coupant le lobe spéculaire visible avec le cône ou un cône représentant la partie non occluse de l’hémisphère décrit par la bent normal comme axe du cône et la quantité AO comme angle de cône…. Oulala, moi je traduis comme je peux, mais ces calculs d’illumination dépassent mes connaissances en lancé de rayon acquise à l’université  ! Personnellement, je préfère implémenter l’algo correspondant à une formule plutôt que d’écrire cette dernière. Si cela vous intéresse, je vous conseille d’étudier le code source ! Ce qu’il faut retenir, c’est que cela peut réduire les fuites de lumière spéculaires de manière significative, en particulier lorsque les données SSR pour la réflection ne sont pas disponibles.

Enfin, Epic a ajouté une approximation multi-rebond pour l’occlusion. Au lieu de l’AO ou d’un oùbrage d’occlusion de réflexion ua premier rebond, on utilise une approximation de ce qu’entraîneraient beaucoup de rebonds. Les matériaux brillants reçoivent moins de noir et les matériaux colorés sont plus saturés.

Avant:

Après:

Nouveau: Asset Management Framework Production

L’Asset Manager qui avait été introduit en Early Access dès la 4.16 – utilise les Blueprints et est prêt pour la production !

Il permet, à l’exécution, ou sous l’éditeur mais c’est moins intéressant, de lister tous les assets d’un répertoire, que cela soit des maps ou d’autres types d’objets, de blueprints, etc. Ainsi, il fournit un framework pour faciliter la création de quêtes, d’armes, ou de héros et de les charger sur demande. il dispose également d’un onglet “Asset Manager” dans les paramètres du projet peut être utilisé pour mettre en place les règles de votre jeu, et faciliter les packaging et le releasing. 

Il est donc possible de charger  ces mêmes assets de manière asynchrone, à la demande, allégeant ainsi me chargement ou même la diffusion d’un jeu si vous téléchargez les assets en fonction des besoins.

C’est vraiment intéressant car vous pouvez ainsi distribuer de nouveaux assets après avoir releaser votre jeu. C’est d’autant plus intéressant si vous avez opté pour un free to play et que votre modèle économique repose sur la vente d’objets, de personnages ou de quêtes supplémentaires.

Pour utiliser le gestionnaire d’assets, appeler des fonctions sur la classe native UAssetManager (qui peut être sous-classée pour votre jeu), ou appeler des fonctions Blueprints de la catégorie d’Asset Manager, comme Async Load Primary Asset.

PhysX

Nouveau: Ajout du support pour Async PhysX Cooking: La préparation des données de collision PhysX est supportée grâce à la mise à jour du ProceduralMeshComponent. Cela permet de précalculer plusieurs ProceduralMeshComponents en parallèle et en dehors du fil de jeu, évitant ainsi accrocs lors de l’exécution.

Nouveau: Durée de cooking Plugin PhysX sur le suport mobile: Possibilité d’activer ou désactiver le précalcul des données de collision PhysX par Plugin au lieu de devoir tout recompiler…

Optimisations : Les tâches PhysX sont maintenant regroupées ensemble pour réduire la charge, avec p.BatchPhysXTasksSize. Ce compromis de parallèlisme doit être réglé en fonction de votre jeu.

Nouveau: Outils Vêtements (Experimental)

  • Le framework “clothing Paint Tool” a été repensé pour permettre d’ajouter plus de fonctionnalités à l’avenir. Si vous ne connaissez pas l’outil, je vous engage à aller voir cette page. C’est vrai qu’il s’agit d’outils assez récent (4.16) que je n’ai pas encore eu l’occasion personnellement d’utiliser.
  • La simulation peut-être faite à posterio et le changement d’asset ne pose pas de soucis (par rapport à l’approche “one shot” précédente)
  • support de “masks” de vêtements: permet de définir plusieurs masques que l’on peut échanger au cours du développement tout en testant différentes configurations.
  • Framework outils remanié pour peintre le tissu:
    • Ajout peinture de vêtements lisses
    • Ajout remplissage de vêtements
    • Ajout du panneau d’édition de configuration à l’onglet de vêtements pour éviter d’avoir à sortir de l’onglet ‘Asset Details’.

Animation

Améliorations de la fonctionnnalité “Two bones IK”

Vous avez maintenant un meilleur contrôle sur les articulations contrôlées par deux os IK avec la nouvelle option « AllowTwist » qui vérifie si les joints au milieu peuvent se tordre. Cela peut être particulièrement utile pour les configurations de bras mécaniques.

Allow Twist Desactivé

Allow Twist Activé

L’option « Maintain Effector Relative Rotation » est complétée par une nouvelle option « Enable Debug Draw », comme indiqué ci-dessous:

Nouveau: Make Dynamic Additive Node pour Animation Blueprints

Un nouveau nœud “Make Dynamic Additive” dans l’animation Blueprint prend une pose de base et une pose cible comme entrées et crée la pose additive lors de l’exécution. Cela peut être particulièrement utile lorsque vous travaillez avec des performances live: la capture de mouvement en live, ou d’autres situations où les données d’animation sont transmises au moteur Unreal lors de l’exécution. Il peut également vous permettre d’utiliser un seul asset de séquence d’animation comme remplacement ou additif, économisant la mémoire disque pour un faible coût d’exécution.

Nouveau: le Live editing d’animation Blueprints (expérimental)

Les Animation Blueprints peuvent maintenant être édités en direct et recompilés tout en jouant dans l’éditeur, ce qui permet des itérations beaucoup plus rapides. C’est même transparent, on ne se rend pas compte qu’il y a recompilation au final:

Lors du choix d’une instance Blueprint d’animation pour déboguer dans le niveau, la fenêtre de l’éditeur Blueprint d’animation est maintenant «connectée» à cette instance et affiche un miroir de l’état d’animation de l’instance.

Nouveau: Baking Pose lors de la suppression de Bones

Possibilité de spécifier une animation Pose à utiliser pour reskinning  les vertices dans Skeletal Mesh LOD pour lesquels les os d’origine sont supprimés, au lieu de les pondérer le plus proche parent d’os.

Nouveau: Aperçu Additional Meshes avec CopyPose

Dans les outils d’animation, “Additional Meshes” qui permet d’afficher un aperçu de meshes modulaire utilise désormais le nœud «Copy Pose » au lieu de « MasterPose ». Cela signifie qu’il peut prendre en charge les meshes qui ne partagent pas un squelette et les os sont copiés par nom, ce qui rend plus souple.

Nouveau: Filtres des dossiers dans Anim Asset Browser

Le navigateur d’Animation peut désormais filtrer sur la base d’un certain nombre de dossiers sélectionnés. Le nombre de filtres disponibles est contrôlé par un paramètre dans la préférence de l’éditeur.

Matériaux

Améliorations Mesh Editor Matériaux et Sections Panel

L’interface pour l’édition des matériaux et des sections Mesh a été condensée pour permettre aux artistes d’être plus productifs lors de l’édition des meshes. Ce changement affecte à la fois le statique Mesh Editor et Skeletal Mesh Editor.

Le défilement a été réduit en fusionnant le contrôle de Lods dans le même panel permettant de travailler sur un LOD, la synchronisation du LOD modifié avec la fenêtre LOD. Cela permet à l’utilisateur de voir toujours le LOD en cours de modification dans la fenêtre.

Nouveau: Amélioration du précalcul de materials (expérimental)

Il est désormais possible d’effectuer un certain nombre de précalculs (baking) sur les Materials des Static et des Skeletal Meshes.

Note: nécessite l’activation de l’Asset Material Baking setting dans la partie expérimentale dans lEditor Preferences. Je n’ai pas encore testé, j’avoue que cela me laisse perplexe… quel type de précalcul peut-être réalisé ici et qui ne l’était pas avant ?

Son

Le Streaming Audio n’est plus expérimental: Il contient un certain nombre de corrections dans cette version.

Nouveau: Stereo Layers Unified Across Platforms

Toutes les plateformes VR prennent désormais en charge les couches stéréo out-of-the-box par UE4. Vous pouvez maintenant utiliser des layers stéréo à travers toute plate-forme, sans devoir faire attention aux différences fonctionnelles entre plates-formes.

Tirage au sort de l’ordre des layers

Pour fournir un comportement similaire pour la commande de Stereo Layer sur toutes les plateformes. Pour les plates-formes qui le supportent, il est possible de revenir à l’ancien comportement en réglant les vr.StereoLayers.bMixLayerPriorities à 1.

Développement sur consoles et VR

Nouveau: Support Xbox One X

Vous pouvez désormais développer pour la Xbox One X, la compilation est suffisante, de plus, ce qui a été fait pour la Xbone one pourra être réutilisé.

Nouveau: support écran VR Spectator pour Oculus, Vive et amélioration pour PSVR

Le Spectator Screen est la sortie “connectée à un appareil de VR, souvent une télé ou un écran, permettant à d’autres personnes de voir ce que le joueur voit dans son casque… mais sans la stéréo ! Ainsi, quand un utilisateur utilise le HMD, d’autres personnes peuvent observer ou d’interagir avec l’expérience.

Vous pouvez maintenant dessiner n’importe qu’elle texture, y compris render targets ou interface utilisateur, à l’écran Spectator, en plus ou à la place d’une vue de ce qui est affiché en VR. Un système simple de mise en page est accessible aux Blueprints. La plupart des modes de débogage sont maintenant disponibles sur toutes les plateformes.

Pour plus d’ informations sur l’ajout du support VR Spectator  à votre projet, consultez la doc Virtual Reality Spectator  Screen.

Nouveau: ARKit Support (Experimental)

Support de ARKit pour iOS en version expérimentale. Cette technologie d’Apple est compatible avec les appareils équipés au minimum du processeur A9 et d’iOS 11. de nombreuses utilisations sont envisageables.

Ce plugin est basé sur les travaux de l’équipe de Wingnut, mis en valeur lors de la conférence de presse d’Apple WWDC. Il permet aux développeurs d’utiliser les fonctionnalités avant le support officiel  d’Apple dans iOS 11.

C’est assez impressionnant quand on voit la stabilité du bouzin, en comparaison de technos comme OpenCV. Ce qui est dommage, c’est qu’on est limité à Apple et que cela ne correspond pas aux habitudes d’Epic de ne proposer des fonctionnalités que sur une seule plateforme. Doit-on s’attendre sous peu à un implémentation de ces fonctionnalités sur PC avec un autre système ? Je l’espère pour ma part… Dans tous les cas, on voit bien qu’Epic s’investi de plus en plus dans la Réalité Augmentée, après avoir obtenu de super résultats en Réalité virtuelle. Normalement, il est prévu le support binauculaire des téléphones google et de la technologie Tango… Mais ça va donner quoi avec le monoculaire des téléphones traditionnels ? Et pour l’instant, il n’y a que peu de smartphones qui sont compatibles… Bref, affaire à suivre. En tous cas, chez Ekstra Reality, on fait le pari de l’ARKit:

Nouveau:  VR mode camera Previews

Pour vous aider à faire du level design en mode VR, c’est à dire en immersion directe, un mode preview de caméra a été mis en place sous l’éditeur. La sélection d’une caméra dans une scène ou d’un actor qui contient une caméra comme un personnage, vous donnera automatiquement un aperçu dans le monde de ce que la caméra voit. Vous pouvez épingler cet aperçu comme l’aperçu de la caméra de bureau, et déplacer le panel dans le monde.

 Nouveau: direct Multiview Support pour Daydream

MultiView Direct peut maintenant être utilisé sur la plate-forme Daydream (google VR). Direct multiview  travaille avec le compositeur Daydream pour supprimer une copie plein écran, ce qui améliore les performances et réduit la surcharge de la mémoire de la fonction.

Nouveau: Google Plugin pour Tango UE4 (expérimental)

Unreal Engine 4.17 inclut un support expérimental pour le projet Google Tango sur Android. On en parlait ci-avant justement. Le plugin prend en charge le suivi de mouvement à six axes, l’apprentissage de la zone, la reconstruction de l’environnement, et d’autres fonctionnalités de Google Tango.

Remarque: l’API et les interfaces peuvent changer dans les versions ultérieures du moteur.

Nouveau: UMG / Slate Clipping 2.0

Slate a un nouveau système de clipping qui prend en charge le découpage en layers complexes avec des transformations arbitraires. Pour mieux comprendre, voir cette vidéo:

Blueprints

 

Nouveau: Blueprint Compilation Manager

Il réduit le temps de compilation de blueprints de 40 à 50%! Voilà, c’est tout, sortez, y-a plus rien à voir ! Voilà, on ne sait pas forcément pourquoi, mais cela a été amélioré. Remarque: Vous pouvez désactiver le nouveau gestionnaire de compilation dans les paramètres du projet s’il provoque des problèmes avec un projet existant.

Nouveau: registre des assets dans Blueprints

Le Registre des assets peut maintenant être utilisé dans Blueprints pour trouver rapidement des informations sur les actifs!

Nouveau:  Blueprint Property Accessors

Les variables natives peuvent maintenant utiliser le balisage UProperty pour être utilisées en Blueprints via UFunction accessors, même si la propriété avait été exposée directement à l’aide BlueprintReadOnly ou balisage BlueprintReadWrite.

Nouveau: Orphan Pins

Une nouvelle fonctionnalité “Orphan Pin” a été ajoutée pour éviter des bugs mystérieux comme le résultat du retrait de pins!

Chaque fois qu’un pin connecté, en cours d’utilisation, est retirée d’un nœud, plutôt que de la faire disparaître tranquillement, brisant toutes les connexions, elle sera désormais retenue comme orpheline, et une erreur ou d’un avertissement sera émis.

Nouveau:  Sobol Blueprint and Material Nodes

Plusieurs nœuds ont été ajoutés pour générer des emplacements de points en utilisant la séquence quasi-aléatoire Sobol.

La séquence Sobol peut générer des points avec un grand nombre de dimensions indépendantes. Les nœuds Blueprints Random Sobol Float donnent la valeur d’une seule dimension. Ceux- ci peuvent être combinés ensemble pour créer des distributions 2D ou 3D.

Les nœuds Blueprints  Random Sobol Cell 2D placent des points 2D Sobol dans les cellules d’une grille 2D. Cela permet de contrôler la densité en plaçant un nombre différent de points dans chaque cellule. Le nœud Sobol de matériau fournit les mêmes emplacements de points 2D que le nœud Random Sobol 2D avec une grille de 256×256 cellules fixe. Cet exemple place un nombre variable d’arbres dans chaque cellule, avec un matériau sur le terrain qui montre les cellules et dessine un point sous le premier arbre placé dans chaque cellule.

Le noeud Blueprint Random Sobol Cell 3D fait la même chose pour les points en 3D dans une grille 3D. Cet exemple met quatre sphères dans chaque cellule à l’ intérieur de la pyramide.

Le noeud Temporal Sobol utilise une autre séquence 2D Sobol au niveau de chaque pixel, cyclant à travers un autre ensemble de points de chaque trame. Cela peut être utile pour les effets faits pour se fondre dans plusieurs cadres avec anticrénelage temporel

1 échantillon par pixel, sans TAA

4 échantillons par pixel, sans TAA

4 échantillons par pixel, avec TAA

Nouveau: Texture-based Importance Sampling Blueprint nodes

Importance sampling place des points d’échantillonnage selon une fonction de densité donnée. Des nœuds Blueprints ont été ajoutés pour permettre le placement flexible en 2D, utilisant une texture. Le Blueprint  Make Importance Texture traite la texture pour l’utilisation et le Blueprint Importance Sample donne les emplacements des points entraînés par la densité prévue.

Voici quatre exemples de placement de sphères en fonction de la luminance de quatre textures différentes.

  • La première varie en douceur, dense au centre, moins dense vers l’extérieur.
  • Le second est uniforme dans le centre et moins dense le long du bord.
  • Le troisième est totalement uniforme  dans l’hexagone.
  • Le quatrième est dense dans les anneaux blancs et moins dense dans les anneaux rouges.

Ci-dessous, huit sources lumineuses sont placées en fonction de la texture cible rouge et blanc. La taille et la couleur de la source est proportionnelle à la densité locale.

Android/iOS

Android Toolchain et SDK mis à jour 

Android toolchain supporte maintenant les applications NDK 14b et NDK 15 en expérimental. Google Play Services a été mis à niveau vers 9.8.0 ainsi que les bibliothèques de support Android nécessaires.

A partir de cette version Gradle est pris en charge comme option expérimentale. Cette option est activée par projet dans les paramètres du projet Android avec la case à cocher «Enable Gradle instead of Ant [Experimental]».

Réduction de la taille de l’exé Mobile sur iOS et Android

Pour Android, on utilise désormais le drapeau -ICF qui permet d’économiser environ 5 Mo non compressés

Pour iOS,  des exceptions pour ObjectiveC par défaut sont désactivées entraînant une économie d’environ 6,5 Mo de la taille de l’exécutable. Il est aussi possible de désactiver le code inline pour iOS builds.

Nouveau: Mobile Separate Translucency

Les objets translucides marqués comme « Mobile Separate Translucency » seront rendus séparément après le Blom et la profondeur de champ. Cette option se trouve dans la Translucency section de l’éditeur de matériaux.

La translucidité séparée nécessite que l’option MobileHDR soit activée et MSAA désactivée, sinon elle sera rendue comme translucidité normale.

Nouveau: sRGB sur Android haut de gamme

Les applications Android conçues avec OpenGL ES3.1 ou Vulkan utiliseront désormais un échantillonnage sRGB natif au lieu de l’imiter –> meilleure résolution des couleurs de perception des textures sur les appareils.

Nouveau: Android Aspect Ratio Support ultra-grand écran

Unreal Engine 4,17 prend en charge des ratios ultra-large, pour supporter des périphériques grand écran tels que le Samsung Galaxy S8.

Par défaut, le ratio maximal supporté est de 2,1 (largeur/ hauteur). Le format par défaut peut être modifié dans la section Project Settings .

Nouveau: Ajout du support audio Unreal sur plusieurs nouvelles plateformes (Early Access)

Le nouveau système audio Unreal est supporté sur Android, avec l’amélioration des performances et des solutions pour le stuttering. Il y aussi support pour PlayStation 4, Xbox One, iOS et Mac OS.

Nouveau: Analyse statique avec PVS-Studio

UE4 prend désormais en charge l’analyseur statique PVS-Studio (disponible séparément). Pour le permettre, ajoutez -StaticAnalyzer = PVSStudio à la ligne de commande UnrealBuildTool. C’est assez intéressant si vous souhaitez améliorer votre code, repérer les séquences inutiles, voir des erreurs directement grâce à cet analyseur statique.

SOURCE: https://www.unrealengine.com/en-US/blog/unreal-engine-4-17-released

 

Une réflexion sur « Unreal Engine mise à jour 4.17 »

Laisser un commentaire