Mise à jour Unreal Engine 4.12, quoi de neuf?

Epic vient de met­tre à jour son moteur Unre­al Engine en ver­sion 4.12. Des mis­es à jour en voici, en voilà, pour notre plus grand bon­heur.… et tout un tas de nou­veautés et d’améliorations à décou­vrir !

Sequencer: out­il d’animation

Sequencer est un out­il d’animation per­me­t­tant de réalis­er des ciné­ma­tiques en temps réel, il est le suc­cesseur de Mati­nee (vous pour­rez importer vos ani­ma­tions effec­tuées sous Mati­nee). Je vous en ai sou­vent par­lé dans mes livres — on l’attendait, pou­vait déjà le testé depuis la ver­sion 4.7… voilà, c’est offi­ciel — le Mati­nee nou­veau est arrivé ! Il pos­sède de nom­breuses fonc­tion­nal­ités comme le keyfram­ing automa­tique, les caméras ciné­matographiques, et l’enregistrement de game­play en direct.

Il est prévu pour com­bin­er la puis­sance d’éditeurs non linéaires avec des tech­niques d’animation 3D.

image_1

Il per­met aus­si de faciliter la col­lab­o­ra­tion sur les grands pro­jets d’animation grâce à un flux de tra­vail non-linéaire.

L’interface est très sim­ple d’utilisation et sur les bases de la majorité des logi­ciels 3D et de Mati­nee. Pour ceux qui con­nais­sent bien mati­nee, ce dernier souf­frait beau­coup de son inté­gra­tion par­tielle au moteur de généra­tion 4 — il était surtout un portage de la ver­sion 3. Qui n’a pas déjà pesté en devant plac­er un actor Mati­nee sur la scène ? Là, on hérite des pro­priétés habituelles en terme de Time­line et autres out­ils com­muns aux autres fonc­tions d’UE4. Pour un nou­veau venu, c’est beau­coup plus logique !

De nom­breux out­ils de caméras ont été améliorés: focales, rig­cam­era et view­port, … Cela facilite la créa­tion de plans plus réal­istes.

Sequence record­ing vous per­met d’enregistrer une par­tie du jeu et d’y ajouter des élé­ments ou de les mod­i­fi­er.

image_4

La doc­u­men­ta­tion est en ligne ici.

L’éditeur VR (réal­ité virtuelle)

L’éditeur VR est disponible pour vous per­me­t­tre de nav­iguer libre­ment dans la scène en VR grâce aux con­trôleurs de mou­ve­ment tout en édi­tant. Vous pou­vez sélec­tion­ner et déplac­er les objets, en plac­er de nou­veaux et même accéder à l’interface util­isa­teur de l’éditeur, tout en étant immergé dans la VR.

La bib­lio­thèque de con­tenus est aus­si acces­si­ble, avec les out­ils de place­ment pré­cis.

image_6

Cette fonc­tion néces­site actuelle­ment soit un Vive HTC ou un Ocu­lus touch comme matériel de développe­ment. Pour l’ essay­er, il suf­fit de met­tre sur ON “Enable VR Edit­ing” dans la sec­tion expéri­men­tale des Préférences de l’éditeur.

Cette fonc­tion est encore expéri­men­tale mais offre déjà de belles pos­si­bil­ités. Per­son­nelle­ment, je l’ai testée et je trou­ve que c’est assez pra­tique de pou­voir nav­iguer en VR dans son lev­el, de déplac­er tel ou tel objet… bref, pour com­pos­er une scène c’est génial. Mais dès qu’il faut inter­a­gir avec une fenêtre comme la fenêtre “Details” par exem­ple, ça devient l’horreur car il faut se coller à la fenêtre pour arriv­er à lire. C’est que la police d’écriture, la taille de cette dernière sur les écrans de VR est qua­si­ment illis­i­ble.. Bref, c’est un peu comme un menu desk­top qu’il faudrait adapter à un mobile. Atten­dons que ces fenêtres soient redévelop­pées pour la VR et là on aura véri­ta­ble­ment un out­il très intéres­sant. Il faut laiss­er le temps au temps…

Pour en savoir plus, c’est ici.

Sup­port de la plate­forme Day­dream

Day­dream de Google est une nou­velle plate-forme VR pour mobiles. UE4 inclut un sup­port com­plet pour cette plate-forme, y com­pris le con­trôleur de mou­ve­ment.

Pour activ­er le sup­port, allez sur Plu­g­ins dans l’éditeur, et activ­er “Google VR” et “Con­troller Google VR.” Je vous avais déjà fait un arti­cle là dessus, alors je passe plus rapi­de­ment.

Sup­port OSVR 

UE4 sup­porte main­tenant pleine­ment OSVR, la plate­forme de réal­ité Open Source qui est au coeur du casque de VR de Raz­er.

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

image_13

L’aperçu de ren­du Vulkan

Un aperçu rapi­de de ren­du mobile est disponible grâce à l’API graphique Vulkan.

image_14

Mis­es à jour des SDK

image_30

Async com­pute est main­tenant pris en charge pour Xbox One.

Les reflets

Réflex­ion planaire en temps réel:

Il y a un coût en cal­culs pour utilis­er cette fonc­tion, cepen­dant, la qual­ité de la réflex­ion est superbe.

image_10

A gauche l’ancienne ver­sion.

Pour l’utiliser, il faut autoris­er: “Sup­port glob­al clip plane for Pla­nar Reflec­tions” dans Ren­der­ing project set­tings et relancer l’éditeur.

Les matéri­aux réfléchissants à prox­im­ité seront automa­tique­ment affec­tés par la réflex­ion plane et leurs nor­males seront util­isées pour mod­i­fi­er la réflex­ion, ce qui per­met des ondes simulées.

Réflex­ions de haute qual­ité

Pos­si­bil­ité de coder les nor­males et tan­gentes en 16 bits par vecteurs de canal pour un com­pro­mis entre la qual­ité et la mémoire sup­plé­men­taire néces­saire. Cette option, “Use High Pre­ci­sion Tan­gent Basis”, peut être trou­vée dans la sec­tion Build Set­tings de l’éditeur Sta­t­ic Mesh.

image_11

Réso­lu­tions per­son­nal­isées pour “Sky cube­maps” et “Reflec­tion Probes”. Pos­si­bil­ité de choisir la réso­lu­tion qui con­vient le mieux en fonc­tion de la per­for­mance, la mémoire et les com­pro­mis de qual­ité.

Cube­maps” per­son­nal­isés pour Reflec­tion Probes pour détailler plus ou moins une par­tie.

High Pre­ci­sion GBuffer Nor­mal Encod­ing”: pos­si­bil­ité de sélec­tion­ner un for­mat de codage GBuffer nor­mal de haute pré­ci­sion

Ombrages

Pos­si­bil­ité d’utiliser plusieurs cartes nor­males avec des matéri­aux de revête­ment trans­par­ent pour obtenir un ombrage réal­iste pour des sur­faces comme la fibre de car­bone.

image_12

Gauche: ex UE4 Clear Coat , Cen­tre: nou­veau UE4 Clear Coat avec fond nor­mal, Droite: Pho­to réelle — on en est pas loin non ?

Cette option doit être activée via les paramètres du pro­jet: Ren­du -> Clear Coat Use Dual Nor­mal. Il faut plac­er un *Clear Coat Bot­tom Nor­mal*.

Les amélio­ra­tions pour mobiles

Post traite­ment de haute qual­ité

filmic tonemap­per” fonc­tionne sur les appareils mobiles. Meilleure qual­ité de pro­fondeur de champ gaussien sur les appareils mobiles avec le sou­tien de ES3.

image_15

Amélio­ra­tion des ombrages pour les mobiles

Les maps d’ombre en cas­cade pour une seule lumière fixe sont désor­mais pris­es en charge dans le moteur de ren­du mobile!

image_17

La fonc­tion utilise un tex­ture sam­pler sup­plé­men­taire, mais peut être dés­ac­tivée via les paramètres du pro­jet: Ren­der­ing -> Mobile -> Com­bined Sta­t­ic and CSM Shad­ow­ing qui libér­era l’échantillonneur pour l’utilisation des matéri­aux.

Les par­tic­ules sous Android et iOS

Les par­tic­ules GPU avec champs de vecteurs fonc­tion­nent pour les mobiles. Il faut que l’appareil prenne en charge 32 bits à vir­gule flot­tante cibles de ren­du avec le sou­tien 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 feuil­lage évo­lu­tifs

Un curseur per­met de régler les niveaux de détail.

image_20

Ceci par l’option “Enable Den­si­ty Scal­ing” dans la sec­tion Scal­a­bil­i­ty de FoliageType. La mise à l’échelle de den­sité à appli­quer à l’herbe et au feuil­lage à chaque niveau est con­fig­uré avec le “grass.DensityScale” et “foliage.DensityScale” dans les  sec­tions [Foliage­Qual­i­ty] de BaseScalability.ini et peut être redéfinie dans DefaultScalability.ini de votre jeu.

Col­li­sions

Le paysage prend en charge la col­li­sion sim­pli­fié du joueur. La Sim­ple Col­li­sion Mip Lev­el set­ting vous per­met de choisir le niveau LOD de paysage à utilis­er pour la col­li­sion sim­pli­fié. La valeur Col­li­sion Mip Lev­el est tou­jours util­isée pour spé­ci­fi­er le niveau LOD du paysage à utilis­er pour une col­li­sion détail­lée.

Col­li­sion peut main­tenant être généré pour les Spline mesh­es créés lors de l’exécution.

Ani­ma­tions

Twist Cor­rec­tive node 

Le nou­veau nœud Twist per­met d’utiliser les valeurs de la courbe comme cibles de mor­ph­ing. C’est basé sur la tor­sion d’un os par rap­port à l’autre. Par exem­ple, quand le cou est trop tourné dans un sens, vous pou­vez appli­quer une cible Morph au cou afin de créer un look plus naturel.

image_22

Embe­deed com­pos­ite ani­ma­tions

Vous pou­vez main­tenant inté­gr­er un Ani­m­Com­pos­ite dans une autre Ani­m­Mon­tage ou Ani­m­Com­pos­ite, vous per­me­t­tant de créer votre pro­pre asset d’animation de façon plus flex­i­ble. Dans l’image ci-dessous, TEST_Montage con­tient TEST_AnimComposite, qui con­tient lui-même un cer­tain nom­bre d’autres séquences d’animation.

image_33

image_34

Mesh­es

Selec­tive LOD pour col­li­sion mesh

Pos­si­bil­ité de choisir le LOD d’un Sta­t­ic Mesh à utilis­er pour une col­li­sion «com­plexe» (per-poly). Cela per­met d’importer ou de génér­er une représen­ta­tion de col­li­sion plus sim­ple pour un mail­lage, pour réduire l’utilisation de mémoire sur des mesh high-poly.

image_35

Col­li­sion par défaut pour les mesh­es

Les Sta­t­ic Mesh­es sup­por­t­ent la Col­li­sion par défaut, ils vont donc utilis­er les paramètres de col­li­sion de l’asset Sta­t­icMesh. Cela facilite la spé­ci­fi­ca­tion des infor­ma­tions de col­li­sion dans un endroit sans avoir à met­tre à jour chaque cas par­ti­c­uli­er.

Full Scene Impor­ta­tion

Avec Full Scene Impor­ta­tion vous pou­vez importer une scène com­plète réal­isée avec Max / Maya / Blender dans l’éditeur. Rien que ça !!!!

Un nou­v­el asset Scène FBX est créé pour per­me­t­tre de ré-importer. La ver­sion 4.12 per­met d’importer des scènes qui inclu­ent des skele­tal mesh­es. Pour essay­er la fonc­tion­nal­ité, allez dans File > Import Scene, et sélec­tion­nez un envi­ron­nement FBX à importer. Rien que ça, c’est une super avancée !

Actor fusion

Vous pou­vez main­tenant facile­ment fusion­ner les mesh actors ensem­ble à droite dans la fenêtre de niveau. Cela per­met d’obtenir de meilleures per­for­mances.

L’inspecteur de Pix­el

Le nou­v­el out­il Inspecteur de Pix­el per­met de cli­quer sur un pix­el dans la scène et de visu­alis­er le matériel et de l’état de ren­du qui a con­tribué à sa couleur.

Pour le lancer: “Devel­op­er Tools” dans la barre d’outils et cocher “Enable Pix­el Inspec­tor”

Réseau

Coté répli­ca­tion, des opti­mi­sa­tions sig­ni­fica­tives ont été réal­isées, sauvant ain­si plusieurs cycles de CPU. C’est surtout au niveau de la sur­veil­lance de ce qui change que le sys­tème à été opti­misé, évi­tant ain­si de met­tre à jour via le réseau des pro­priétés inchangées.

On annonce une amélio­ra­tion “mas­sive” des per­for­mances, rien de moins !

Char­ac­ter move­ment speed hack pro­tec­tion

Les jeux en réseau sont sou­vent la cible de hack­ers qui ten­tent d’obtenir des avan­tages par les exploits. Les jeux conçus en util­isant la fonc­tion­nal­ité non mod­i­fiée de déplace­ment de per­son­nages  étaient sen­si­bles à cet exploit. Une détec­tion de ce style d’action a été mise en place de façon à lim­iter ces actions.

Les sons

UE4 Sound Mix­es

UE4 Sound Mix­es per­met d’ajuster dynamique­ment les pro­priétés de classe sonores. Avec 4.12, les mélanges sonores rem­pla­cent dynamique­ment les ajuste­ments de classe sonores de Blue­prints en util­isant une nou­velle fonc­tion de Blue­print, “Set Sound Mix Class Over­ride”.

Audio local­iza­tion

4.12 améliore le sup­port inté­gré pour la local­i­sa­tion audio, enten­dez ici la tra­duc­tion quand on par­le de local­i­sa­tion.

image_38

Le texte par­lé est main­tenant rassem­blé dans des assets et inclus dans vos fichiers PO pour la tra­duc­tion avec votre autre texte reposant sur l’asset. L’enregistrement et l’importation de l’audio sont facil­ités pour vos assets d’onde de dia­logue. Dans le tome 4 des cahiers d’Unreal Engine, je pointais déjà du doigt cette lacune.

C++/Blueprints

Blue­prints en C++

Pour amélior­er l’exécution des Blue­prints, une fonc­tion­nal­ité per­met de pack­ager les Blue­prints en code source natif.

image_19

Pour le per­me­t­tre: Pack­ag­ing Set­tings: Exper­i­men­tal => Nativize Blue­print Assets

Il faudrait faire des tests de per­for­mance pour voir s’il y a un change­ment sig­ni­fi­catif. J’avais cru com­pren­dre que les Blue­prints étaient déjà con­ver­tis en C++, puis com­pilés pour le Build final de l’application. Mais dans ce cas, à quoi sert cette fonc­tion ? Là, je ne peux pas vous en dire plus, j’ai besoin de faire quelques tests pour com­pren­dre.

Des inte­gers et des bit­mask ! Si on coche bit­mask sur un entier, on peut alors gér­er indi­vidu­elle­ment les élé­ments — ça fonc­tionne autant en Blue­print qu’en C++. Cela va per­me­t­tre surtout de pou­voir plus facile­ment s’interfacer avec des API externes ou opti­miser cer­taines choses avec les mate­ri­als par exem­ple.

image_31

 

Pour pro­gram­mer sous C ++, il fau­dra main­tenant Visu­al Stu­dio 2015, c’est le min­i­mum  !

Voilà, vous trou­verez sur le site d’origine plus d’infos con­cer­nant les patch de cor­rec­tions appliqués, mais on va dire que les prin­ci­pales évo­lu­tions ont été décrites ici.

Encore une fois, c’est assez lourd à digér­er. Per­son­nelle­ment, je trou­ve que ces évo­lu­tions sont très biens, même si cela me force à met­tre à jour plus rapi­de­ment mes bouquins sur le sujet. Mais J’ai aus­si peur que cela ne décourage les nou­veaux qui se dis­ent qu’ils n’arriveront jamais à suiv­re… J’ai envie de leur dire: c’est pas grave — vous n’avez pas besoin de tout savoir. L’important c’est de pou­voir utilis­er l’outil pour vos besoins et en cours de route, vous décou­vrirez pro­gres­sive­ment tout plein de fonc­tions qui vous seront très utiles. Mais bon, si vous cherchez à devenir un kador d’UE4, bon courage, ça va être une activ­ité à temps plein !

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

 

5 réflexions sur « Mise à jour Unreal Engine 4.12, quoi de neuf? »

  1. Je n’ai pas une grande expéri­ence de l’HTML5 sous UE4. J’ai juste réal­isé quelques tests qui se sont avérés fonc­tion­nels, mais il ne faut pas encore imag­in­er dévelop­per un pro­jet et se dire à la fin: et si j’exportais vers HTML5 ? C’est pas encore automa­tisé à ce point. Mais ce qui est cer­tain, c’est que cela fonc­tionne beau­coup mieux qu’à l’annonce de la sor­tie il y a a près de 2 ans.
    Oui, bien sûr Uni­ty est un choix raisonnable égale­ment — Après c’est juste une ques­tion de choix: je trou­ve pour ma part qu’Unreal Engine reste la Rolls des moteurs 3D, mais peut-être qu’Unity est plus “friend­ly” coté expor­ta­tion…
    Coté per­for­mance, il faut choisir entre porta­bil­ité web et per­for­mances, on ne peut pas avoir les deux. Main­tenant, tout ce qui est réal­isé par le GPU le reste par le GPU, donc tout dépend le pro­jet… Faut pas s’attendre à faire du MMO en HTML5 aujourd’hui (ou alors, juste du chat et de la posi­tion 2D).

  2. Bon­jour, mer­ci pour cet arti­cle.

    Qu’en est il de l’exportation en HTML5 à l’heure d’aujourd’hui? Uni­ty peut il encore faire l’objet de reflex­ions quant au choix de son moteur de jeu pour dévelop­per une appli­ca­tion mul­ti-plat­formes?
    Quid de la per­for­mance (lan­guage C vs javascript) ?

  3. Ils font un super boulot les mecs… On les sens pas­sion­nés.
    Si quelqu’un fait des tests con­cer­nant les perfs Blueprint/native C++, ça m’interesse grande­ment ! 🙂

    Super arti­cle, com­plet !

  4. Pas mal d’évolution, c’est vrai que cela fait beau­coup à digér­er mais on va pas se plain­dre d’avoir un pro­duit qui évolue en per­ma­nence !!!
    Dès que je sors de mes travaux, je me rep­longe dans mon appren­tis­sage de ce mer­veilleux out­il !

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.