Added a new anim node: AnimNext Parameters. This injects parameters into the AnimNext stack for all leafwards nodes.
Added a new way of binding to parameters on anim nodes.
- Added indirection to UAnimGraphNode_Base to allow different 'binding types' to be authored by deriving from UAnimGraphNodeBinding
- Added new binding type for AnimNext parameters
- Moved existing binding code (inc UI widget creation) into UAnimGraphNodeBinding_Base
- Binding types can be selected on a per-node or per-anim BP basis
Reworked FParamStack API a little
- Allow for better error checking when pushing/popping stack layers. Pushed layers can now only be subsequently popped by passing in the handle of the pushed layer.
- Standalone layers are now wrapped in an opaque handle rather than returning a unique ptr
- GetParamData APIs now perform more involved type checking, allowing derived object types & type conversions to be implemented
Improved parameter type sandboxing for automated tests. If running low-level type tests while execution was happening on another thread, the editor could crash because of invalidating already-existing types.
Lots of other small fixes to get workflows nicer and end-to-end functionality working
#rb Nicholas.Frechette,Jaime.Cifuentes,Jurre.deBaare
[CL 26455905 by thomas sarkanen in ue5-main branch]
Make TangentsType have an explicit 'Default' value, which will currently map to ExternallyProvided. ExternallyProvided is also renamed to "From Dynamic Mesh" in the UI.
#jira UE-187523
#rb ryan.schmidt
[CL 26433246 by jimmy andrews in ue5-main branch]
The iorequest duration is very close to the actual latency as seen from the game client code.
#jira UE-188791
#rb paul.chipchase
#rnx
- Submitted on the behalf of PJ.Kack
[CL 26430435 by paul chipchase in ue5-main branch]
There were two bugs that happened rarely:
1) We could have some of the replicated player properties sent to the client, while others weren't. In particular, we would get the LastKnownPosition on the client, but not the LastKnownStatus, which meant we would update and stay stopped, instead of playing. This change therefore adds a custom NetSerialize method on the replicated properties struct so that it is sent as a consistent whole.
2) The other bug had to do with stray network packages making it after "important" RPCs such as Stop and Finish. Sometimes, after the client has stopped from these RPCs, we would get PostNetReceive called with statuses that predate these RPCs. This often meant that, after stopping/finishing playback, the client would re-update to one of the last frames of the sequence. This could easily result in stuck cameras or black (fade) screens. Now we add a serial number to the synchronized properties so that we can ignore these outdated messages.
Other changes include adding some new logging, and simplifying/standardizing existing logging.
#rb david.bromberg
[CL 26411751 by ludovic chabant in ue5-main branch]
- Titles should have migrated to Named Chunk installation at this point.
#jira UE-163419
#rb Justin.Marcus, Tomasz.Obrebski, Wojciech.Krywult
[CL 26407969 by david harvey in ue5-main branch]
Platforms that do support uniform buffer objects can now provide batched primitive data through UBO. There is a limit UBO range that can be accessed in shaders, so we group instances into batches that fit into this limit. Switch uses 64KB views, other platfroms16KB views. For each primitive we allocate 512Bytes and 256Bytes for instance. Mobile platforms that do not support UBO will use a desktop version of GPUScene.
There are a few things that still missing: Dynamic mesh passes, static lighting
#rb ola.olsson, benjamin.rouveyrol
[CL 26354848 by marc audy in ue5-main branch]
- Made Simulator deice strings for IOS platforms, iPhone0,0 - AppleTV0,0 - VisionOS0,0, since before they were just "arm"
#rb adam.kinge
[CL 26353255 by Josh Adams in ue5-main branch]
- Find and FindAndSetFirstZeroBit updated to use FindFromImpl internally, as they perform the same search logic.
- FindAndSetLastZeroBit updated to use FindLast internally, as it performs the same search logic.
- Unit tests added for TestFindLast, TestFindAndSetFirstZeroBit and TestFindAndSetLastZeroBit
#rb Steve.Robb
[CL 26343861 by nick edwards in ue5-main branch]
When UE_FNAME_OUTLINE_NUMBER is enabled the number is part of the name entry so we can format the name before tracing it.
#rb robert.millar,johan.torp
#jira UE-189546
[CL 26340314 by johan berg in ue5-main branch]
Note: This doesn't impact any OS specific dialogs
Breaking: FCoreDelegates::ModalErrorMessage is now called FCoreDelegates::ModalMessageDialog and takes an extra EAppMsgCategory argument
#jira
#rb Dave.Belanger
[CL 26322954 by jamie dale in ue5-main branch]