4 min read

Week 02: Thursday

29.7k lines changed
140 commits
77 modules
75 devs


Experimental

UAF Dataflow EditorDataStorageFeatures ProceduralVegetationEditor MovieSceneAnimMixer EditorTRSGizmo MutablePopulation UIFramework FastGeoStreaming


Modules

UbaCommon CoreUObject EngineBuild Engine EngineShaders UnrealEd UnrealGameSync Jupiter Core MainFrame (+23 more)


Plugins

Mutable AudioInsights StateTree PCG MediaViewer ControlRig GameInput AutomatedPerfTesting GameplayInsights IKRig (+14 more)


Commits

2110a94 DataflowEditor
Dataflow paint tool : add support for value picker and update shortcut to match the new skeletal weight painting tool

#rb trivial
#Synced-CL 49632091

[CL 49644381 by cedric caillaud in ue5-main branch]

16ac722 TedsDebugger
[TEDS Debugger] Add Discovery Tab

#rb ronald.koppers
#jira UE-360020
#Synced-CL 49652531

[CL 49664181 by jayden sansom in ue5-main branch]

371cc9a ProceduralVegetationEditor
First implementation of 2D growth data extraction algrithm

This CL implements the remaining parts if the APIX 2D growth data import algorithm, such that it is possible to generate valid growth data from a 2D image inside of PVE. This CL also moves code which is shared between the 2D and 3D importers from PVImporter_StaticMesh to PVImportHelpers.

Overview:
- Implement remaining 2D growth data import algorithm
- TriangulateCurvesAndSplitEdges
- ComputeVertexScale2D
- FindEndPoints2D
- FindRootPoints2D
- Add support for importing multi-plant assets
- PV::Import::Helper::FillGrowthDataFromBranchHierarchyDescription
- PV::Import::Helper::FillGrowthDataFromFoliageDescription
- PV::Import::Helper::GenerateGrowthDataFromPlantDescription
- Refactor PVImportHelper to allow for sharing of functionality between 2D and 3D importer
- PV::Import::Helper::ComputeBranchHierarchies
- PV::Import::Helper::ComputeLengthFromRoot: Fix issue that caused the wrong branch to be selected as parent branch during import (PVE-167)
- PV::Import::Helper::TraceBranches
- PV::Import::Helper::ExtractBranchHierarchies
- PV::Import::Helper::ConvertMeshBranchHierarchiesToBranchDescription

Main files of interest for this review:
- PVImporter_Texture2D: This file contains the main new algorithms added to complete the 2D growth data importer (TriangulateCurvesAndSplitEdges, ComputeVertexScale2D, FindEndPoints2D, FindRootPoints2D)
- PVImporter_StaticMesh: Shared functionality have been moved out of this file (TDynamicMeshVertexAttributeDefinition, ComputeLengthFromRoot, DrawBranchCurves, RemoveBranchCurveOverlaps, ExtractBranchesFromBranchCurves)
- PVImportHelpers: This file now contains shared import functionality between the 2D and 3D importer. ComputeLengthFromRoot and TraceBranches (new name for DrawBranchCurves) have been re-worked to solve issue PVE-167.

JIRAs:
https://jira.it.epicgames.com/browse/PVE-88
https://jira.it.epicgames.com/browse/PVE-91
https://jira.it.epicgames.com/browse/PVE-167

#rb Sohail.Siddiqui
#Synced-CL 49615590

[CL 49649817 by mans isaksson in ue5-main branch]

8dee340 DataflowEditor
Dataflow paint tools : Add keyboard shortcut information to tooltips when relevant
( value picker, mirror buttons, selection grow, shrink, flood, color ramp options )
- Added an method to inputChord class to get the modifier key from it

#rb trivial
#Synced-CL 49632091

[CL 49661474 by cedric caillaud in ue5-main branch]

6a5fb51 ProceduralVegetation
[PVE] Mesh twisting fix
Issue: Calculation of Up Vector for each point was being calculated wrongly, which caused mesh twisting, especially on sharp corners
Fix: Up Vector is now calculated w.r.t the previous Point Up Vector, which works in all cases. Also there was no point of over-calculating AimVector as that was already fine.

#rb Sohail.Siddiqui
#jira none
#Synced-CL 49590164

[CL 49647717 by tayyab ejaz in ue5-main branch]

bb3d118 TedsOutliner
[Outliner][Bug] Fix Package Short Name column not appearing with the TEDS Hybrid Outliner enabled (Level Column was overwritting it since the legacy merges them into one column)

#jira UE-359863
#rb aditya.ravichandran
#Synced-CL 49649433

[CL 49651809 by jayden sansom in ue5-main branch]

8e81a82 UAF
Add UAF Asset Data structure to encapsulate an asset that can be used to generate a UAF graph or system.

The goal of this changelist is to:
* Allow specialization of assets where a UObject* may not be appropriate. For example in control rig, we want to specify a UClass instead of a UObject
* Allow extra data to be passed around with the object pointer, for example a animation sequence could have a specific playback speed. This could only be achieved in the past by the user specifically authoring factory params which exposes a lot of possibilities to the user, some of which are illegal (e.g. they can add any additive trait).
* Provide a layer of abstraction between what the user wants to play (UAFAssetData) and how it will actually be played (trait data). This gives more flexibility in the future to change trait data without breaking user data.
* Allow for specialized UI depending on the asset data type
* Add control rig as a UAF asset type

#lockdown marc.audy

#rb JeanFrancois.Dube, Thomas.Sarkanen
#jira UE-359983
#tests unit tests, manual testing anim sandbox (editor and cooked game)

#Synced-CL 49656583

[CL 49657215 by jack potter in ue5-main branch]

352111c UAFMirroring
Anim Mixer: Fix mirroring support of skeletal animation sections.

As the first step of supporting mirroring in the mixer, this gets it working in a backwards-compatible way with skeletal animation sections, where the mirror data table is
specified as a property on the Skeletal Animation Section.

We do this by using the existing Mirror Evaluation Task, which is refactored out of the trait file, as well as moving the runtime instance data responsible for mirroring into the task itself rather than leaving it in the trait.

We then append an additional mirroring evaluation task in the case we want to mirror. This strategy allows us to use mirroring on any kind of animation section going forward. That functionality will come in a later changelist.

[REVIEW] [at]ue-sequencer, [at]lucas.dower
#jira UE-239015
#rb roland.munguia

#Synced-CL 49622961

[CL 49648022 by david bromberg in ue5-main branch]

c384998 UAFAnimGraph
[UAF][ANIM] Allow Option To Supply AnimInstance Class For Legacy Montages
- Some Gameplay Assumes Instance Class Types for Callback Hooks When completing Montage. Being able to specify the AnimInstance to use allows for Greater Control when Playing Legacy Montages

#lockdown Kevin.Baxtrom
#rb jaqueline.wieland, jose.villarroel
#Synced-CL 49653144

[CL 49660094 by melyssa battison in ue5-main branch]

abc2045 DataflowNodes
Dataflow : texture to attribute node : listen to texture change for real time update of the graph

#rb trivial
#Synced-CL 49632091

[CL 49643752 by cedric caillaud in ue5-main branch]

(+130 more)


Experimental lists all experimental plugins touched today.

Modules shows the top engine modules ranked by impact score.

Plugins shows the top plugins ranked by impact score.

Commits highlights the most significant changes ranked by impact score.

Main Radar is experimental and generated automatically from Unreal Engine's
ue5-main branch. It may make mistakes, and I'm improving it day by day. If something looks off, please let me know — feedback helps make it better.

This project is part of my broader work at
Mundus Creatus.