2019-12-26 14:45:42 -05:00
|
|
|
// Copyright Epic Games, Inc. All Rights Reserved.
|
2017-06-21 10:25:35 -04:00
|
|
|
|
|
|
|
|
#include "BoneControllers/AnimNode_Constraint.h"
|
|
|
|
|
#include "AnimationCoreLibrary.h"
|
|
|
|
|
#include "AnimationRuntime.h"
|
2023-06-21 09:46:47 -04:00
|
|
|
#include "Animation/AnimStats.h"
|
2017-06-21 10:25:35 -04:00
|
|
|
#include "SceneManagement.h"
|
|
|
|
|
#include "Components/SkeletalMeshComponent.h"
|
2019-12-13 11:07:03 -05:00
|
|
|
#include "Animation/AnimTrace.h"
|
|
|
|
|
|
2022-09-24 13:57:58 -04:00
|
|
|
#include UE_INLINE_GENERATED_CPP_BY_NAME(AnimNode_Constraint)
|
|
|
|
|
|
2017-06-21 10:25:35 -04:00
|
|
|
/////////////////////////////////////////////////////
|
|
|
|
|
// FAnimNode_Constraint
|
|
|
|
|
|
|
|
|
|
FAnimNode_Constraint::FAnimNode_Constraint()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FAnimNode_Constraint::GatherDebugData(FNodeDebugData& DebugData)
|
|
|
|
|
{
|
2019-07-16 11:49:59 -04:00
|
|
|
DECLARE_SCOPE_HIERARCHICAL_COUNTER_ANIMNODE(GatherDebugData)
|
2017-06-21 10:25:35 -04:00
|
|
|
const float ActualBiasedAlpha = AlphaScaleBias.ApplyTo(Alpha);
|
|
|
|
|
|
|
|
|
|
FString DebugLine = DebugData.GetNodeName(this);
|
|
|
|
|
DebugLine += FString::Printf(TEXT("(Alpha: %.1f%%)"), ActualBiasedAlpha*100.f);
|
|
|
|
|
DebugData.AddDebugItem(DebugLine);
|
|
|
|
|
|
|
|
|
|
const int32 ConstraintNum = ConstraintSetup.Num();
|
|
|
|
|
for (int32 ConstraintIndex = 0; ConstraintIndex < ConstraintNum; ++ConstraintIndex)
|
|
|
|
|
{
|
|
|
|
|
const FConstraint& Constraint = ConstraintSetup[ConstraintIndex];
|
|
|
|
|
const float Weight = ConstraintWeights[ConstraintIndex];
|
|
|
|
|
DebugLine = FString::Printf(TEXT(" Target : %s (%0.2f) "), *Constraint.TargetBone.BoneName.ToString(), Weight);
|
|
|
|
|
DebugData.AddDebugItem(DebugLine);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ComponentPose.GatherDebugData(DebugData);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FAnimNode_Constraint::EvaluateSkeletalControl_AnyThread(FComponentSpacePoseContext& Output, TArray<FBoneTransform>& OutBoneTransforms)
|
|
|
|
|
{
|
2019-07-16 11:49:59 -04:00
|
|
|
DECLARE_SCOPE_HIERARCHICAL_COUNTER_ANIMNODE(EvaluateSkeletalControl_AnyThread)
|
2023-06-06 10:07:01 -04:00
|
|
|
ANIM_MT_SCOPE_CYCLE_COUNTER_VERBOSE(Constraint, !IsInGameThread());
|
|
|
|
|
|
2017-06-21 10:25:35 -04:00
|
|
|
const FBoneContainer& BoneContainer = Output.Pose.GetPose().GetBoneContainer();
|
|
|
|
|
const int32 ConstraintNum = ConstraintSetup.Num();
|
|
|
|
|
#if WITH_EDITOR
|
|
|
|
|
CachedTargetTransforms.Empty();
|
|
|
|
|
#endif // WITH_EDITOR
|
|
|
|
|
for (int32 ConstraintIndex = 0; ConstraintIndex < ConstraintNum; ++ConstraintIndex)
|
|
|
|
|
{
|
|
|
|
|
const FConstraint& Constraint = ConstraintSetup[ConstraintIndex];
|
|
|
|
|
const float Weight = ConstraintWeights[ConstraintIndex];
|
|
|
|
|
|
Copying //UE4/Dev-AnimPhys to //UE4/Dev-Main (Source: //UE4/Dev-AnimPhys @ 3780324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3760710 by Thomas.Sarkanen
Fix crash deleting primitives in PhAT
Crash in tooltip generation for shapes. Tree items still exist in the frame before the tree gets regenerated (as the widget defers their destruction a frame), so they can end up pointing at out of date data.
#jira UE-52404 - Crash deleting bodies
#tests deleted primitives in PhAT
Change 3760798 by Martin.Wilson
Initialize PosesToEvaluate so that we don't get stale data crashes after reinitializing
#Jira UE-52343
Change 3761312 by Martin.Wilson
Fix for infrequent crash on module start up
Change 3761333 by Danny.Bouimad
Fixed the Cable actor test correctly, shouldn't fail on cooked platforms any more!
Change 3761550 by Aaron.McLeran
Engine changes requested by oculus for spatializer interface
Change 3761728 by Martin.Wilson
Fix crash when undoing a change on a skeletal mesh that uses virtual bones
#Jira UE-52475
Change 3762032 by Ethan.Geller
#jira UE-49076 Implement PR for VOIP bug fix on Mac
Change 3762109 by Aaron.McLeran
Enabling bAllowAnyoneToDestroyMe on audio components
Change 3762125 by Aaron.McLeran
Checking in missing file
Change 3762568 by Aaron.McLeran
Fixing ogg vorbis 5.1 channel ordering channel maps in audio mixer
Fix is to create separate 5.1 channel maps for various output channel counts and pull those channel maps if the source file was decoded from vorbis. This pattern is copied from old xaudio2source code which handles 5.1 channel mapping seperately. Alternative solution would be to swizzle vorbis channels during cook, but this would break backward compatibility. We'll consider that solution in the future once we remove the old audio engine code.
Change 3762571 by Aaron.McLeran
Adding multichannel file support.
- Spoofing the multi-channel file importer tool by allowing a single multichannel file to generate data in the same way
- Moved the wave serializer code from audio capture plugin to audio.h/.cpp for general use
Change 3762626 by Aaron.McLeran
Adding ability to automatically tag ambisonics files.
Change 3762627 by Aaron.McLeran
Fixing up source buses to be more useful
- Added pre and post source effect bus sends types.
- Adjusted where in the source generation pipeline distance-based filtering is applied to a source. Source audio is sent to source buses immediately after source effect chain generation and before per-source distance-based filters are applied and distance attenuation.
Change 3762652 by Aaron.McLeran
Fix for device hot swap
Change 3762725 by Ethan.Geller
Fixing multichannel indices so that it matches the multichannel cook
Change 3762738 by Ethan.Geller
Add ambisonics plugin support
Change 3762739 by Ethan.Geller
Updating oculus audio plugin
- Base implementation by Peter Sterling at Oculus
- Ambisonics decoding using Oculus API implemented by Ethan
Change 3763687 by Martin.Wilson
Fix bug in GUID customization that leaves editor in an active transaction + Expose core property set code so other guid customizations can reuse it
#Jira UE-52510
Change 3764412 by Ethan.Geller
Fix the incremental build, pt 2
Change 3764721 by Ethan.Geller
Fix the build, take 3
Change 3764767 by Martin.Wilson
Rebuild array children properties when an item is added. Solves missing item crash if the user immediately tries to set the value of the new item
#Jira UE-52537
Change 3764845 by Aaron.McLeran
Making audio devices call flush after update and before endplay is called to ensure flush is called on audio devices.
Prevents hang on releasing sound wave procedural references in GC.
Change 3766047 by Thomas.Sarkanen
Pinnable command list widget
Added a new "pinnable command list" widget. Shift-clicking a menu option in either the skeleton tree filter or the viewport menus will 'pin' the command outside of the menu. This allows for easier access to commands that are frequently used.
Minor Slate change - added virtual(s) to FUICommandList so commands can be forwarded when executed.
#jira UE-51807 - Add 'quick filter' and visualization toggles UI to PhAT
Change 3766111 by Thomas.Sarkanen
CIS fix
Change 3766273 by Lina.Halper
Rename PostBlendPhysics to FinalizeAnimationUpdate
Change 3768507 by Thomas.Sarkanen
CIS fix
Change 3768637 by James.Golding
Add 'GetSectionFromProceduralMesh' util function
#jira UE-49262
Change 3768649 by Lina.Halper
Moved the automation test to tests folder
#jira:UE-46250
Change 3768675 by Benn.Gallagher
Fixed incorrect deprecated angular velocity accessor.
Change 3768776 by Benn.Gallagher
Fix for skeletal mesh editor crash importing more than 5 LODs
#jira UE-52263
Change 3768804 by Martin.Wilson
Live Link Virtual subjects
Virtuals subjects are created within the client and contain the bones of multiple real subjects
Change 3768874 by Martin.Wilson
UAnimSequenceBase is now entirely exported with ENGINE_API
#Jira UE-48020
Change 3769318 by Lina.Halper
- Animation system owns previous bone transform with revision number, so that it can send to renderer when render recreated.
- Framenumber still exists because clothing system uses it, and I'm planning to talk to Benn about it next week when he comes back
#jira: UEAP-272
Change 3769714 by Lina.Halper
Fix CIS
Change 3770672 by James.Golding
Expose API for changing 'Use CCD' flag at runtime
#jira UE-50332
Change 3770675 by James.Golding
Add test map for 'Set Use CCD' function
Change 3770711 by Thomas.Sarkanen
Multi viewports and bone-locked cameras in animation editor viewports
All animation-related editors now have the ability to open up to 4 seperate viewports onto the same scene, each with their own settings.
Fixed up bounds following to actually work correctly (now follows without lag).
Added the ability to follow (and orbit) a specified bone as well.
#jira UE-47127 - Add the Ability to Open Multiple Viewports on the Same Scene.
#jira UE-49690 - "Camera Follow" in Persona Editor cannot be enabled
Change 3770786 by Lina.Halper
Support curve in copy pose node
#jira: UE-50182
Change 3770943 by James.Golding
Fix 'NODEBUG' option for PVD CONNECT console command (should only send profile data)
Fix from Kier at NVIDIA
#jira UE-52444
Change 3771145 by Benn.Gallagher
Added ability to control whether or not a post process instance runs on a skeletal mesh component. Exposed both to blueprints and anim editor suite
#jira UE-49747
Change 3772262 by Benn.Gallagher
Defaulted the clothing create menu to use the skeletal mesh physics asset
#jira UE-51607
Change 3772389 by Thomas.Sarkanen
Added a keyboard shortcut to toggle between body and constraint selection
Shortcut is Ctrl+T by default.
#jira UE-51804 - Add a quick switch between selected constraints and bodies
Change 3772393 by Thomas.Sarkanen
Constraints are now displayed only once in the physics asset editor tree view
User constraints are still displayed twice, however.
#jira UE-51808 - Constraints in PhAT should only be displayed once in the tree
Change 3772404 by James.Golding
Fix Modify Curve AnimNode not calling CacheBones on source pose
#jira UE-52129
Change 3772418 by Benn.Gallagher
Allowed clothing visualizations to be enabled while clothing paint mode is active.
Fixed crash attempting to visualize backstops when the clothing data has no backstops.
#jira UE-47042
Change 3772964 by Thomas.Sarkanen
Expose sequence recording settings in Persona editors
Added layout extender to Persona module, so external tabs can now be added to all Persona-based editors easily.
Added a structure details view to edit the default animation settings.
Hooked default animation settings up to Persona animation recording.
#jira UE-48416 - Set Frame Rate and Length of Recordings in Persona in Editor
Change 3772967 by Martin.Wilson
Add NativeBeginPlay function to AnimInstance
#jira UE-51351
PR #4135: Add NativeBeginPlay to AnimInstance (Contributed by Vaei)
Change 3772986 by Thomas.Sarkanen
Added "Show Only Selected Constraints" to the physics asset editor
#jira UE-51805 - Add 'show only selected constraints' option to PhAT
Change 3773012 by Benn.Gallagher
Added facility to debug skel mesh component to extend the viewport text seen in skeletal mesh editor and added lines for current cloth value
#jira UE-42354
Change 3773132 by Martin.Wilson
Added Uncheck all unconnected pins for BreakStruct nodes
#jira UE-51136
PR #4110: Uncheck all unconnected pins from BreakStruct node... (Contributed by projectgheist)
Change 3773158 by Benn.Gallagher
Added auto-range feature to cloth view ranges, and a way for tools to extend those ranges when necessary
#jira UE-48109
Change 3773895 by Jurre.deBaare
Move material baking out of experimental
#fix Removed experimental settings gating around Material Baking functionality
#jira UE-52685
Change 3773898 by Jurre.deBaare
Change log message wording when Simplygon fails to initialise to ensure it does not block CIS (error triggers a CIS error and will halt the build)
Change 3773899 by Jurre.deBaare
Add keybind for switching between paint / erase color while mesh painting
#fix Added new command for switching fore and background colors in the mesh painter (defaults to X as shortcut)
#jira UE-52197
Change 3773900 by Jurre.deBaare
Hotkey to enable and disable post processing in the preview scene settings
#fix Added hotkey and command for toggling Post Processing in Preview Scenes
#jira UE-48111
Change 3773933 by Martin.Wilson
Add missing file (for live link monolithic build failure)
Change 3773949 by Jurre.deBaare
Right click add selected to HLOD cluster / create cluster
#fix Partially implemented the request, added context menu to HLOD level nodes in the HLOD outliner treeview to allow creating a new cluster from the current level viewport selection
#jira UE-48334
Change 3773950 by Jurre.deBaare
HLOD cluster drawing should not use AHLODSelectionActor but regular in-viewport drawing
#fix removed old behaviour using a spawned actor to represent a selected HLOD cluster, and replaced it will simple debug drawing (this is a lot less bug prone and much cleaner)
#jira UE-49094
Change 3773964 by James.Golding
Mark FBodyInstance::ResponseToChannels_DEPRECATED as 'WITH_EDITORONLY_DATA'
#jira UE-52545
Change 3773978 by Thomas.Sarkanen
Allow edits to physics sim options to be undone/redone
Added RF_Transactional to the object
#jira UE-48046 - Undo/redo does not work in Physics Asset Editor's Physics/Details menu
Change 3773982 by Martin.Wilson
Add pre and post conversion callbacks to root motion conversion in character movement component
#jira UE-51966
Change 3773988 by Thomas.Sarkanen
Duplicating CL 3773896 from Fortnite:
Push non-rendered anim updates back onto the worker thread
Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation).
#jira UE-46710 - Animation updates run on the main thread when Evaluation task doesnt run
Change 3773999 by Martin.Wilson
Fix incorrect merge
Change 3774030 by Thomas.Sarkanen
Renamed "Create Joints" to "Create Constraints"
#jira UE-50861 - New Physics Asset window reads "Joints" instead of "Constraint"
Change 3774031 by Thomas.Sarkanen
Fixed typo in comment
#jira UE-50841 - Typo in Vertex Weighting Type setting when creating new Physics Asset
Change 3774200 by Lina.Halper
Fix crash with empty element in the constraint setup
#jira: UE-52686
Change 3774236 by Ori.Cohen
Fix crash when destructible component doesn't mark its killed actors as IgnoreActiveActors
#jira UE-52320
Change 3774284 by James.Golding
Fix constructor order CIS error in AudioMicerSubmix.cpp
Change 3774511 by James.Golding
Fix up removed RevisionNumber param
Change 3774724 by Lina.Halper
Fix of motion blur change of previous bone transform
Change 3775493 by Thomas.Sarkanen
Duplicating CL 3775488 from Fortnite:
Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks
#jira FORT-61157 - Run anim update on worker, even if not visible
Change 3775508 by James.Golding
Fix compilation without PhysX, move DeferredReleaseCallback outside WITH_PHYSX block
Change 3775538 by James.Golding
Fix Mac CIS due to missing virtual destructor in IDeferredReleaseCallback
Change 3775921 by Ori.Cohen
Better fix for destructible crash (also fix CIS)
#jira UE-52762
Change 3776054 by Benn.Gallagher
Fixed crash deleting max distance mask from a clothing data entry.
#jira UE-52723
Change 3776063 by Thomas.Sarkanen
Fix static analysis warning
Change 3776331 by Jurre.deBaare
Hierarchical LOD Outliner scrollbar doesn't appear
#fix removed AutoHeight from parent vertical box around HLOD outliner details view
#jira UE-52756
Change 3776704 by Martin.Wilson
Fix array properties not always refreshing when new items are added
#UE-52760
Change 3776755 by Thomas.Sarkanen
Duplicating CL 3776656 from Fortnite:
Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components
This was causing AIs to get stuck in montage playback in some circumstances
#jira FORT-61324, FORT-60558
Change 3777385 by Aaron.McLeran
#jira UE-52786 Fix for broken spatialization on xaudio2, old audio engine.
Change 3778233 by Lina.Halper
Removed android from oculus audio platform
Change 3778714 by Ethan.Geller
#jira UE-52818 remove Android from Oculus Audio platforms
Change 3779004 by Lina.Halper
Include "Features/IModularFeatures.h" to cpp
Fix build error
Change 3780324 by Thomas.Sarkanen
Duplicating CL 3778679 from Fortnite-Main:
Fix 100% Linux server crash - dont attempt to run threaded work in a single-threaded environment
We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously.
#jira FORT-61548
Change 3763999 by Ethan.Geller
remove space from ambisonics mixer name, fix build
Change 3774470 by James.Golding
Merging //UE4/Dev-Main to Dev-AnimPhys (//UE4/Dev-AnimPhys) @ 3774039
[CL 3780967 by Thomas Sarkanen in Main branch]
2017-11-30 12:07:08 -05:00
|
|
|
if (Weight > ZERO_ANIMWEIGHT_THRESH && Constraint.IsValidToEvaluate(BoneContainer) && Constraint.ConstraintDataIndex != INDEX_NONE)
|
2017-06-21 10:25:35 -04:00
|
|
|
{
|
Copying //UE4/Dev-AnimPhys to //UE4/Dev-Main (Source: //UE4/Dev-AnimPhys @ 3780324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3760710 by Thomas.Sarkanen
Fix crash deleting primitives in PhAT
Crash in tooltip generation for shapes. Tree items still exist in the frame before the tree gets regenerated (as the widget defers their destruction a frame), so they can end up pointing at out of date data.
#jira UE-52404 - Crash deleting bodies
#tests deleted primitives in PhAT
Change 3760798 by Martin.Wilson
Initialize PosesToEvaluate so that we don't get stale data crashes after reinitializing
#Jira UE-52343
Change 3761312 by Martin.Wilson
Fix for infrequent crash on module start up
Change 3761333 by Danny.Bouimad
Fixed the Cable actor test correctly, shouldn't fail on cooked platforms any more!
Change 3761550 by Aaron.McLeran
Engine changes requested by oculus for spatializer interface
Change 3761728 by Martin.Wilson
Fix crash when undoing a change on a skeletal mesh that uses virtual bones
#Jira UE-52475
Change 3762032 by Ethan.Geller
#jira UE-49076 Implement PR for VOIP bug fix on Mac
Change 3762109 by Aaron.McLeran
Enabling bAllowAnyoneToDestroyMe on audio components
Change 3762125 by Aaron.McLeran
Checking in missing file
Change 3762568 by Aaron.McLeran
Fixing ogg vorbis 5.1 channel ordering channel maps in audio mixer
Fix is to create separate 5.1 channel maps for various output channel counts and pull those channel maps if the source file was decoded from vorbis. This pattern is copied from old xaudio2source code which handles 5.1 channel mapping seperately. Alternative solution would be to swizzle vorbis channels during cook, but this would break backward compatibility. We'll consider that solution in the future once we remove the old audio engine code.
Change 3762571 by Aaron.McLeran
Adding multichannel file support.
- Spoofing the multi-channel file importer tool by allowing a single multichannel file to generate data in the same way
- Moved the wave serializer code from audio capture plugin to audio.h/.cpp for general use
Change 3762626 by Aaron.McLeran
Adding ability to automatically tag ambisonics files.
Change 3762627 by Aaron.McLeran
Fixing up source buses to be more useful
- Added pre and post source effect bus sends types.
- Adjusted where in the source generation pipeline distance-based filtering is applied to a source. Source audio is sent to source buses immediately after source effect chain generation and before per-source distance-based filters are applied and distance attenuation.
Change 3762652 by Aaron.McLeran
Fix for device hot swap
Change 3762725 by Ethan.Geller
Fixing multichannel indices so that it matches the multichannel cook
Change 3762738 by Ethan.Geller
Add ambisonics plugin support
Change 3762739 by Ethan.Geller
Updating oculus audio plugin
- Base implementation by Peter Sterling at Oculus
- Ambisonics decoding using Oculus API implemented by Ethan
Change 3763687 by Martin.Wilson
Fix bug in GUID customization that leaves editor in an active transaction + Expose core property set code so other guid customizations can reuse it
#Jira UE-52510
Change 3764412 by Ethan.Geller
Fix the incremental build, pt 2
Change 3764721 by Ethan.Geller
Fix the build, take 3
Change 3764767 by Martin.Wilson
Rebuild array children properties when an item is added. Solves missing item crash if the user immediately tries to set the value of the new item
#Jira UE-52537
Change 3764845 by Aaron.McLeran
Making audio devices call flush after update and before endplay is called to ensure flush is called on audio devices.
Prevents hang on releasing sound wave procedural references in GC.
Change 3766047 by Thomas.Sarkanen
Pinnable command list widget
Added a new "pinnable command list" widget. Shift-clicking a menu option in either the skeleton tree filter or the viewport menus will 'pin' the command outside of the menu. This allows for easier access to commands that are frequently used.
Minor Slate change - added virtual(s) to FUICommandList so commands can be forwarded when executed.
#jira UE-51807 - Add 'quick filter' and visualization toggles UI to PhAT
Change 3766111 by Thomas.Sarkanen
CIS fix
Change 3766273 by Lina.Halper
Rename PostBlendPhysics to FinalizeAnimationUpdate
Change 3768507 by Thomas.Sarkanen
CIS fix
Change 3768637 by James.Golding
Add 'GetSectionFromProceduralMesh' util function
#jira UE-49262
Change 3768649 by Lina.Halper
Moved the automation test to tests folder
#jira:UE-46250
Change 3768675 by Benn.Gallagher
Fixed incorrect deprecated angular velocity accessor.
Change 3768776 by Benn.Gallagher
Fix for skeletal mesh editor crash importing more than 5 LODs
#jira UE-52263
Change 3768804 by Martin.Wilson
Live Link Virtual subjects
Virtuals subjects are created within the client and contain the bones of multiple real subjects
Change 3768874 by Martin.Wilson
UAnimSequenceBase is now entirely exported with ENGINE_API
#Jira UE-48020
Change 3769318 by Lina.Halper
- Animation system owns previous bone transform with revision number, so that it can send to renderer when render recreated.
- Framenumber still exists because clothing system uses it, and I'm planning to talk to Benn about it next week when he comes back
#jira: UEAP-272
Change 3769714 by Lina.Halper
Fix CIS
Change 3770672 by James.Golding
Expose API for changing 'Use CCD' flag at runtime
#jira UE-50332
Change 3770675 by James.Golding
Add test map for 'Set Use CCD' function
Change 3770711 by Thomas.Sarkanen
Multi viewports and bone-locked cameras in animation editor viewports
All animation-related editors now have the ability to open up to 4 seperate viewports onto the same scene, each with their own settings.
Fixed up bounds following to actually work correctly (now follows without lag).
Added the ability to follow (and orbit) a specified bone as well.
#jira UE-47127 - Add the Ability to Open Multiple Viewports on the Same Scene.
#jira UE-49690 - "Camera Follow" in Persona Editor cannot be enabled
Change 3770786 by Lina.Halper
Support curve in copy pose node
#jira: UE-50182
Change 3770943 by James.Golding
Fix 'NODEBUG' option for PVD CONNECT console command (should only send profile data)
Fix from Kier at NVIDIA
#jira UE-52444
Change 3771145 by Benn.Gallagher
Added ability to control whether or not a post process instance runs on a skeletal mesh component. Exposed both to blueprints and anim editor suite
#jira UE-49747
Change 3772262 by Benn.Gallagher
Defaulted the clothing create menu to use the skeletal mesh physics asset
#jira UE-51607
Change 3772389 by Thomas.Sarkanen
Added a keyboard shortcut to toggle between body and constraint selection
Shortcut is Ctrl+T by default.
#jira UE-51804 - Add a quick switch between selected constraints and bodies
Change 3772393 by Thomas.Sarkanen
Constraints are now displayed only once in the physics asset editor tree view
User constraints are still displayed twice, however.
#jira UE-51808 - Constraints in PhAT should only be displayed once in the tree
Change 3772404 by James.Golding
Fix Modify Curve AnimNode not calling CacheBones on source pose
#jira UE-52129
Change 3772418 by Benn.Gallagher
Allowed clothing visualizations to be enabled while clothing paint mode is active.
Fixed crash attempting to visualize backstops when the clothing data has no backstops.
#jira UE-47042
Change 3772964 by Thomas.Sarkanen
Expose sequence recording settings in Persona editors
Added layout extender to Persona module, so external tabs can now be added to all Persona-based editors easily.
Added a structure details view to edit the default animation settings.
Hooked default animation settings up to Persona animation recording.
#jira UE-48416 - Set Frame Rate and Length of Recordings in Persona in Editor
Change 3772967 by Martin.Wilson
Add NativeBeginPlay function to AnimInstance
#jira UE-51351
PR #4135: Add NativeBeginPlay to AnimInstance (Contributed by Vaei)
Change 3772986 by Thomas.Sarkanen
Added "Show Only Selected Constraints" to the physics asset editor
#jira UE-51805 - Add 'show only selected constraints' option to PhAT
Change 3773012 by Benn.Gallagher
Added facility to debug skel mesh component to extend the viewport text seen in skeletal mesh editor and added lines for current cloth value
#jira UE-42354
Change 3773132 by Martin.Wilson
Added Uncheck all unconnected pins for BreakStruct nodes
#jira UE-51136
PR #4110: Uncheck all unconnected pins from BreakStruct node... (Contributed by projectgheist)
Change 3773158 by Benn.Gallagher
Added auto-range feature to cloth view ranges, and a way for tools to extend those ranges when necessary
#jira UE-48109
Change 3773895 by Jurre.deBaare
Move material baking out of experimental
#fix Removed experimental settings gating around Material Baking functionality
#jira UE-52685
Change 3773898 by Jurre.deBaare
Change log message wording when Simplygon fails to initialise to ensure it does not block CIS (error triggers a CIS error and will halt the build)
Change 3773899 by Jurre.deBaare
Add keybind for switching between paint / erase color while mesh painting
#fix Added new command for switching fore and background colors in the mesh painter (defaults to X as shortcut)
#jira UE-52197
Change 3773900 by Jurre.deBaare
Hotkey to enable and disable post processing in the preview scene settings
#fix Added hotkey and command for toggling Post Processing in Preview Scenes
#jira UE-48111
Change 3773933 by Martin.Wilson
Add missing file (for live link monolithic build failure)
Change 3773949 by Jurre.deBaare
Right click add selected to HLOD cluster / create cluster
#fix Partially implemented the request, added context menu to HLOD level nodes in the HLOD outliner treeview to allow creating a new cluster from the current level viewport selection
#jira UE-48334
Change 3773950 by Jurre.deBaare
HLOD cluster drawing should not use AHLODSelectionActor but regular in-viewport drawing
#fix removed old behaviour using a spawned actor to represent a selected HLOD cluster, and replaced it will simple debug drawing (this is a lot less bug prone and much cleaner)
#jira UE-49094
Change 3773964 by James.Golding
Mark FBodyInstance::ResponseToChannels_DEPRECATED as 'WITH_EDITORONLY_DATA'
#jira UE-52545
Change 3773978 by Thomas.Sarkanen
Allow edits to physics sim options to be undone/redone
Added RF_Transactional to the object
#jira UE-48046 - Undo/redo does not work in Physics Asset Editor's Physics/Details menu
Change 3773982 by Martin.Wilson
Add pre and post conversion callbacks to root motion conversion in character movement component
#jira UE-51966
Change 3773988 by Thomas.Sarkanen
Duplicating CL 3773896 from Fortnite:
Push non-rendered anim updates back onto the worker thread
Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation).
#jira UE-46710 - Animation updates run on the main thread when Evaluation task doesnt run
Change 3773999 by Martin.Wilson
Fix incorrect merge
Change 3774030 by Thomas.Sarkanen
Renamed "Create Joints" to "Create Constraints"
#jira UE-50861 - New Physics Asset window reads "Joints" instead of "Constraint"
Change 3774031 by Thomas.Sarkanen
Fixed typo in comment
#jira UE-50841 - Typo in Vertex Weighting Type setting when creating new Physics Asset
Change 3774200 by Lina.Halper
Fix crash with empty element in the constraint setup
#jira: UE-52686
Change 3774236 by Ori.Cohen
Fix crash when destructible component doesn't mark its killed actors as IgnoreActiveActors
#jira UE-52320
Change 3774284 by James.Golding
Fix constructor order CIS error in AudioMicerSubmix.cpp
Change 3774511 by James.Golding
Fix up removed RevisionNumber param
Change 3774724 by Lina.Halper
Fix of motion blur change of previous bone transform
Change 3775493 by Thomas.Sarkanen
Duplicating CL 3775488 from Fortnite:
Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks
#jira FORT-61157 - Run anim update on worker, even if not visible
Change 3775508 by James.Golding
Fix compilation without PhysX, move DeferredReleaseCallback outside WITH_PHYSX block
Change 3775538 by James.Golding
Fix Mac CIS due to missing virtual destructor in IDeferredReleaseCallback
Change 3775921 by Ori.Cohen
Better fix for destructible crash (also fix CIS)
#jira UE-52762
Change 3776054 by Benn.Gallagher
Fixed crash deleting max distance mask from a clothing data entry.
#jira UE-52723
Change 3776063 by Thomas.Sarkanen
Fix static analysis warning
Change 3776331 by Jurre.deBaare
Hierarchical LOD Outliner scrollbar doesn't appear
#fix removed AutoHeight from parent vertical box around HLOD outliner details view
#jira UE-52756
Change 3776704 by Martin.Wilson
Fix array properties not always refreshing when new items are added
#UE-52760
Change 3776755 by Thomas.Sarkanen
Duplicating CL 3776656 from Fortnite:
Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components
This was causing AIs to get stuck in montage playback in some circumstances
#jira FORT-61324, FORT-60558
Change 3777385 by Aaron.McLeran
#jira UE-52786 Fix for broken spatialization on xaudio2, old audio engine.
Change 3778233 by Lina.Halper
Removed android from oculus audio platform
Change 3778714 by Ethan.Geller
#jira UE-52818 remove Android from Oculus Audio platforms
Change 3779004 by Lina.Halper
Include "Features/IModularFeatures.h" to cpp
Fix build error
Change 3780324 by Thomas.Sarkanen
Duplicating CL 3778679 from Fortnite-Main:
Fix 100% Linux server crash - dont attempt to run threaded work in a single-threaded environment
We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously.
#jira FORT-61548
Change 3763999 by Ethan.Geller
remove space from ambisonics mixer name, fix build
Change 3774470 by James.Golding
Merging //UE4/Dev-Main to Dev-AnimPhys (//UE4/Dev-AnimPhys) @ 3774039
[CL 3780967 by Thomas Sarkanen in Main branch]
2017-11-30 12:07:08 -05:00
|
|
|
ConstraintData[Constraint.ConstraintDataIndex].Weight = Weight;
|
|
|
|
|
ConstraintData[Constraint.ConstraintDataIndex].CurrentTransform = Output.Pose.GetComponentSpaceTransform(Constraint.TargetBone.CachedCompactPoseIndex);
|
2017-06-21 10:25:35 -04:00
|
|
|
|
|
|
|
|
#if WITH_EDITOR
|
Copying //UE4/Dev-AnimPhys to //UE4/Dev-Main (Source: //UE4/Dev-AnimPhys @ 3780324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3760710 by Thomas.Sarkanen
Fix crash deleting primitives in PhAT
Crash in tooltip generation for shapes. Tree items still exist in the frame before the tree gets regenerated (as the widget defers their destruction a frame), so they can end up pointing at out of date data.
#jira UE-52404 - Crash deleting bodies
#tests deleted primitives in PhAT
Change 3760798 by Martin.Wilson
Initialize PosesToEvaluate so that we don't get stale data crashes after reinitializing
#Jira UE-52343
Change 3761312 by Martin.Wilson
Fix for infrequent crash on module start up
Change 3761333 by Danny.Bouimad
Fixed the Cable actor test correctly, shouldn't fail on cooked platforms any more!
Change 3761550 by Aaron.McLeran
Engine changes requested by oculus for spatializer interface
Change 3761728 by Martin.Wilson
Fix crash when undoing a change on a skeletal mesh that uses virtual bones
#Jira UE-52475
Change 3762032 by Ethan.Geller
#jira UE-49076 Implement PR for VOIP bug fix on Mac
Change 3762109 by Aaron.McLeran
Enabling bAllowAnyoneToDestroyMe on audio components
Change 3762125 by Aaron.McLeran
Checking in missing file
Change 3762568 by Aaron.McLeran
Fixing ogg vorbis 5.1 channel ordering channel maps in audio mixer
Fix is to create separate 5.1 channel maps for various output channel counts and pull those channel maps if the source file was decoded from vorbis. This pattern is copied from old xaudio2source code which handles 5.1 channel mapping seperately. Alternative solution would be to swizzle vorbis channels during cook, but this would break backward compatibility. We'll consider that solution in the future once we remove the old audio engine code.
Change 3762571 by Aaron.McLeran
Adding multichannel file support.
- Spoofing the multi-channel file importer tool by allowing a single multichannel file to generate data in the same way
- Moved the wave serializer code from audio capture plugin to audio.h/.cpp for general use
Change 3762626 by Aaron.McLeran
Adding ability to automatically tag ambisonics files.
Change 3762627 by Aaron.McLeran
Fixing up source buses to be more useful
- Added pre and post source effect bus sends types.
- Adjusted where in the source generation pipeline distance-based filtering is applied to a source. Source audio is sent to source buses immediately after source effect chain generation and before per-source distance-based filters are applied and distance attenuation.
Change 3762652 by Aaron.McLeran
Fix for device hot swap
Change 3762725 by Ethan.Geller
Fixing multichannel indices so that it matches the multichannel cook
Change 3762738 by Ethan.Geller
Add ambisonics plugin support
Change 3762739 by Ethan.Geller
Updating oculus audio plugin
- Base implementation by Peter Sterling at Oculus
- Ambisonics decoding using Oculus API implemented by Ethan
Change 3763687 by Martin.Wilson
Fix bug in GUID customization that leaves editor in an active transaction + Expose core property set code so other guid customizations can reuse it
#Jira UE-52510
Change 3764412 by Ethan.Geller
Fix the incremental build, pt 2
Change 3764721 by Ethan.Geller
Fix the build, take 3
Change 3764767 by Martin.Wilson
Rebuild array children properties when an item is added. Solves missing item crash if the user immediately tries to set the value of the new item
#Jira UE-52537
Change 3764845 by Aaron.McLeran
Making audio devices call flush after update and before endplay is called to ensure flush is called on audio devices.
Prevents hang on releasing sound wave procedural references in GC.
Change 3766047 by Thomas.Sarkanen
Pinnable command list widget
Added a new "pinnable command list" widget. Shift-clicking a menu option in either the skeleton tree filter or the viewport menus will 'pin' the command outside of the menu. This allows for easier access to commands that are frequently used.
Minor Slate change - added virtual(s) to FUICommandList so commands can be forwarded when executed.
#jira UE-51807 - Add 'quick filter' and visualization toggles UI to PhAT
Change 3766111 by Thomas.Sarkanen
CIS fix
Change 3766273 by Lina.Halper
Rename PostBlendPhysics to FinalizeAnimationUpdate
Change 3768507 by Thomas.Sarkanen
CIS fix
Change 3768637 by James.Golding
Add 'GetSectionFromProceduralMesh' util function
#jira UE-49262
Change 3768649 by Lina.Halper
Moved the automation test to tests folder
#jira:UE-46250
Change 3768675 by Benn.Gallagher
Fixed incorrect deprecated angular velocity accessor.
Change 3768776 by Benn.Gallagher
Fix for skeletal mesh editor crash importing more than 5 LODs
#jira UE-52263
Change 3768804 by Martin.Wilson
Live Link Virtual subjects
Virtuals subjects are created within the client and contain the bones of multiple real subjects
Change 3768874 by Martin.Wilson
UAnimSequenceBase is now entirely exported with ENGINE_API
#Jira UE-48020
Change 3769318 by Lina.Halper
- Animation system owns previous bone transform with revision number, so that it can send to renderer when render recreated.
- Framenumber still exists because clothing system uses it, and I'm planning to talk to Benn about it next week when he comes back
#jira: UEAP-272
Change 3769714 by Lina.Halper
Fix CIS
Change 3770672 by James.Golding
Expose API for changing 'Use CCD' flag at runtime
#jira UE-50332
Change 3770675 by James.Golding
Add test map for 'Set Use CCD' function
Change 3770711 by Thomas.Sarkanen
Multi viewports and bone-locked cameras in animation editor viewports
All animation-related editors now have the ability to open up to 4 seperate viewports onto the same scene, each with their own settings.
Fixed up bounds following to actually work correctly (now follows without lag).
Added the ability to follow (and orbit) a specified bone as well.
#jira UE-47127 - Add the Ability to Open Multiple Viewports on the Same Scene.
#jira UE-49690 - "Camera Follow" in Persona Editor cannot be enabled
Change 3770786 by Lina.Halper
Support curve in copy pose node
#jira: UE-50182
Change 3770943 by James.Golding
Fix 'NODEBUG' option for PVD CONNECT console command (should only send profile data)
Fix from Kier at NVIDIA
#jira UE-52444
Change 3771145 by Benn.Gallagher
Added ability to control whether or not a post process instance runs on a skeletal mesh component. Exposed both to blueprints and anim editor suite
#jira UE-49747
Change 3772262 by Benn.Gallagher
Defaulted the clothing create menu to use the skeletal mesh physics asset
#jira UE-51607
Change 3772389 by Thomas.Sarkanen
Added a keyboard shortcut to toggle between body and constraint selection
Shortcut is Ctrl+T by default.
#jira UE-51804 - Add a quick switch between selected constraints and bodies
Change 3772393 by Thomas.Sarkanen
Constraints are now displayed only once in the physics asset editor tree view
User constraints are still displayed twice, however.
#jira UE-51808 - Constraints in PhAT should only be displayed once in the tree
Change 3772404 by James.Golding
Fix Modify Curve AnimNode not calling CacheBones on source pose
#jira UE-52129
Change 3772418 by Benn.Gallagher
Allowed clothing visualizations to be enabled while clothing paint mode is active.
Fixed crash attempting to visualize backstops when the clothing data has no backstops.
#jira UE-47042
Change 3772964 by Thomas.Sarkanen
Expose sequence recording settings in Persona editors
Added layout extender to Persona module, so external tabs can now be added to all Persona-based editors easily.
Added a structure details view to edit the default animation settings.
Hooked default animation settings up to Persona animation recording.
#jira UE-48416 - Set Frame Rate and Length of Recordings in Persona in Editor
Change 3772967 by Martin.Wilson
Add NativeBeginPlay function to AnimInstance
#jira UE-51351
PR #4135: Add NativeBeginPlay to AnimInstance (Contributed by Vaei)
Change 3772986 by Thomas.Sarkanen
Added "Show Only Selected Constraints" to the physics asset editor
#jira UE-51805 - Add 'show only selected constraints' option to PhAT
Change 3773012 by Benn.Gallagher
Added facility to debug skel mesh component to extend the viewport text seen in skeletal mesh editor and added lines for current cloth value
#jira UE-42354
Change 3773132 by Martin.Wilson
Added Uncheck all unconnected pins for BreakStruct nodes
#jira UE-51136
PR #4110: Uncheck all unconnected pins from BreakStruct node... (Contributed by projectgheist)
Change 3773158 by Benn.Gallagher
Added auto-range feature to cloth view ranges, and a way for tools to extend those ranges when necessary
#jira UE-48109
Change 3773895 by Jurre.deBaare
Move material baking out of experimental
#fix Removed experimental settings gating around Material Baking functionality
#jira UE-52685
Change 3773898 by Jurre.deBaare
Change log message wording when Simplygon fails to initialise to ensure it does not block CIS (error triggers a CIS error and will halt the build)
Change 3773899 by Jurre.deBaare
Add keybind for switching between paint / erase color while mesh painting
#fix Added new command for switching fore and background colors in the mesh painter (defaults to X as shortcut)
#jira UE-52197
Change 3773900 by Jurre.deBaare
Hotkey to enable and disable post processing in the preview scene settings
#fix Added hotkey and command for toggling Post Processing in Preview Scenes
#jira UE-48111
Change 3773933 by Martin.Wilson
Add missing file (for live link monolithic build failure)
Change 3773949 by Jurre.deBaare
Right click add selected to HLOD cluster / create cluster
#fix Partially implemented the request, added context menu to HLOD level nodes in the HLOD outliner treeview to allow creating a new cluster from the current level viewport selection
#jira UE-48334
Change 3773950 by Jurre.deBaare
HLOD cluster drawing should not use AHLODSelectionActor but regular in-viewport drawing
#fix removed old behaviour using a spawned actor to represent a selected HLOD cluster, and replaced it will simple debug drawing (this is a lot less bug prone and much cleaner)
#jira UE-49094
Change 3773964 by James.Golding
Mark FBodyInstance::ResponseToChannels_DEPRECATED as 'WITH_EDITORONLY_DATA'
#jira UE-52545
Change 3773978 by Thomas.Sarkanen
Allow edits to physics sim options to be undone/redone
Added RF_Transactional to the object
#jira UE-48046 - Undo/redo does not work in Physics Asset Editor's Physics/Details menu
Change 3773982 by Martin.Wilson
Add pre and post conversion callbacks to root motion conversion in character movement component
#jira UE-51966
Change 3773988 by Thomas.Sarkanen
Duplicating CL 3773896 from Fortnite:
Push non-rendered anim updates back onto the worker thread
Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation).
#jira UE-46710 - Animation updates run on the main thread when Evaluation task doesnt run
Change 3773999 by Martin.Wilson
Fix incorrect merge
Change 3774030 by Thomas.Sarkanen
Renamed "Create Joints" to "Create Constraints"
#jira UE-50861 - New Physics Asset window reads "Joints" instead of "Constraint"
Change 3774031 by Thomas.Sarkanen
Fixed typo in comment
#jira UE-50841 - Typo in Vertex Weighting Type setting when creating new Physics Asset
Change 3774200 by Lina.Halper
Fix crash with empty element in the constraint setup
#jira: UE-52686
Change 3774236 by Ori.Cohen
Fix crash when destructible component doesn't mark its killed actors as IgnoreActiveActors
#jira UE-52320
Change 3774284 by James.Golding
Fix constructor order CIS error in AudioMicerSubmix.cpp
Change 3774511 by James.Golding
Fix up removed RevisionNumber param
Change 3774724 by Lina.Halper
Fix of motion blur change of previous bone transform
Change 3775493 by Thomas.Sarkanen
Duplicating CL 3775488 from Fortnite:
Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks
#jira FORT-61157 - Run anim update on worker, even if not visible
Change 3775508 by James.Golding
Fix compilation without PhysX, move DeferredReleaseCallback outside WITH_PHYSX block
Change 3775538 by James.Golding
Fix Mac CIS due to missing virtual destructor in IDeferredReleaseCallback
Change 3775921 by Ori.Cohen
Better fix for destructible crash (also fix CIS)
#jira UE-52762
Change 3776054 by Benn.Gallagher
Fixed crash deleting max distance mask from a clothing data entry.
#jira UE-52723
Change 3776063 by Thomas.Sarkanen
Fix static analysis warning
Change 3776331 by Jurre.deBaare
Hierarchical LOD Outliner scrollbar doesn't appear
#fix removed AutoHeight from parent vertical box around HLOD outliner details view
#jira UE-52756
Change 3776704 by Martin.Wilson
Fix array properties not always refreshing when new items are added
#UE-52760
Change 3776755 by Thomas.Sarkanen
Duplicating CL 3776656 from Fortnite:
Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components
This was causing AIs to get stuck in montage playback in some circumstances
#jira FORT-61324, FORT-60558
Change 3777385 by Aaron.McLeran
#jira UE-52786 Fix for broken spatialization on xaudio2, old audio engine.
Change 3778233 by Lina.Halper
Removed android from oculus audio platform
Change 3778714 by Ethan.Geller
#jira UE-52818 remove Android from Oculus Audio platforms
Change 3779004 by Lina.Halper
Include "Features/IModularFeatures.h" to cpp
Fix build error
Change 3780324 by Thomas.Sarkanen
Duplicating CL 3778679 from Fortnite-Main:
Fix 100% Linux server crash - dont attempt to run threaded work in a single-threaded environment
We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously.
#jira FORT-61548
Change 3763999 by Ethan.Geller
remove space from ambisonics mixer name, fix build
Change 3774470 by James.Golding
Merging //UE4/Dev-Main to Dev-AnimPhys (//UE4/Dev-AnimPhys) @ 3774039
[CL 3780967 by Thomas Sarkanen in Main branch]
2017-11-30 12:07:08 -05:00
|
|
|
CachedTargetTransforms.Add(ConstraintData[Constraint.ConstraintDataIndex].CurrentTransform);
|
2017-06-21 10:25:35 -04:00
|
|
|
#endif // WITH_EDITOR
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ConstraintData.Num() > 0)
|
|
|
|
|
{
|
|
|
|
|
FTransform SourceTransform = Output.Pose.GetComponentSpaceTransform(BoneToModify.CachedCompactPoseIndex);
|
2018-09-25 10:11:35 -04:00
|
|
|
// for constraint anim node, we always use identity as base
|
|
|
|
|
FTransform ConstrainedTransform = AnimationCore::SolveConstraints(SourceTransform, FTransform::Identity, ConstraintData);
|
|
|
|
|
OutBoneTransforms.Add(FBoneTransform(BoneToModify.CachedCompactPoseIndex, ConstrainedTransform));
|
2017-06-21 10:25:35 -04:00
|
|
|
|
|
|
|
|
#if WITH_EDITOR
|
|
|
|
|
CachedOriginalTransform = SourceTransform;
|
|
|
|
|
CachedConstrainedTransform = ConstrainedTransform;
|
|
|
|
|
#endif // WITH_EDITOR
|
|
|
|
|
}
|
2019-12-13 11:07:03 -05:00
|
|
|
|
|
|
|
|
#if ANIM_TRACE_ENABLED
|
|
|
|
|
for (int32 ConstraintIndex = 0; ConstraintIndex < ConstraintNum; ++ConstraintIndex)
|
|
|
|
|
{
|
|
|
|
|
TRACE_ANIM_NODE_VALUE(Output, *ConstraintSetup[ConstraintIndex].TargetBone.BoneName.ToString(), ConstraintWeights[ConstraintIndex]);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
2017-06-21 10:25:35 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool FAnimNode_Constraint::IsValidToEvaluate(const USkeleton* Skeleton, const FBoneContainer& RequiredBones)
|
|
|
|
|
{
|
|
|
|
|
// if any of them are valid
|
|
|
|
|
bool bHaveValidConstraint = false;
|
|
|
|
|
|
|
|
|
|
for (int32 ConstraintIndex = 0; ConstraintIndex<ConstraintSetup.Num() ; ++ConstraintIndex)
|
|
|
|
|
{
|
|
|
|
|
FConstraint& Constraint = ConstraintSetup[ConstraintIndex];
|
|
|
|
|
// make sure it has weight
|
|
|
|
|
if (ConstraintWeights[ConstraintIndex] > ZERO_ANIMWEIGHT_THRESH)
|
|
|
|
|
{
|
|
|
|
|
bHaveValidConstraint |= Constraint.IsValidToEvaluate(RequiredBones);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (bHaveValidConstraint && BoneToModify.IsValidToEvaluate(RequiredBones));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FAnimNode_Constraint::InitializeBoneReferences(const FBoneContainer& RequiredBones)
|
|
|
|
|
{
|
2019-07-16 11:49:59 -04:00
|
|
|
DECLARE_SCOPE_HIERARCHICAL_COUNTER_ANIMNODE(InitializeBoneReferences)
|
2017-06-21 10:25:35 -04:00
|
|
|
BoneToModify.Initialize(RequiredBones);
|
|
|
|
|
|
|
|
|
|
ConstraintData.Reset(ConstraintSetup.Num());
|
|
|
|
|
|
|
|
|
|
const int32 ConstraintNum = ConstraintSetup.Num();
|
|
|
|
|
|
|
|
|
|
if (BoneToModify.IsValidToEvaluate(RequiredBones))
|
|
|
|
|
{
|
|
|
|
|
FTransform SourceTransform = FAnimationRuntime::GetComponentSpaceRefPose(BoneToModify.CachedCompactPoseIndex, RequiredBones);
|
2018-09-25 10:11:35 -04:00
|
|
|
|
2017-06-21 10:25:35 -04:00
|
|
|
for (int32 ConstraintIndex = 0; ConstraintIndex < ConstraintNum; ++ConstraintIndex)
|
|
|
|
|
{
|
|
|
|
|
FConstraint& Constraint = ConstraintSetup[ConstraintIndex];
|
|
|
|
|
Constraint.Initialize(RequiredBones);
|
|
|
|
|
|
|
|
|
|
if (Constraint.TargetBone.IsValidToEvaluate(RequiredBones))
|
|
|
|
|
{
|
|
|
|
|
FConstraintData NewConstraintData(FTransformConstraintDescription(Constraint.TransformType), Constraint.TargetBone.BoneName, 0.f, Constraint.OffsetOption != EConstraintOffsetOption::None);
|
|
|
|
|
// copy the axes filter options, later figure out cleaner way to do this (constructor)
|
|
|
|
|
NewConstraintData.Constraint.ConstraintDescription->AxesFilterOption = Constraint.PerAxis;
|
|
|
|
|
|
|
|
|
|
FTransform TargetTransform = (NewConstraintData.bMaintainOffset) ? FAnimationRuntime::GetComponentSpaceRefPose(Constraint.TargetBone.CachedCompactPoseIndex, RequiredBones) : FTransform::Identity;
|
2018-09-25 10:11:35 -04:00
|
|
|
|
|
|
|
|
// for constraint anim node, we always use identity as base
|
|
|
|
|
NewConstraintData.SaveInverseOffset(SourceTransform, TargetTransform, FTransform::Identity);
|
2017-06-21 10:25:35 -04:00
|
|
|
|
Copying //UE4/Dev-AnimPhys to //UE4/Dev-Main (Source: //UE4/Dev-AnimPhys @ 3780324)
#lockdown Nick.Penwarden
#rb none
#rnx
============================
MAJOR FEATURES & CHANGES
============================
Change 3760710 by Thomas.Sarkanen
Fix crash deleting primitives in PhAT
Crash in tooltip generation for shapes. Tree items still exist in the frame before the tree gets regenerated (as the widget defers their destruction a frame), so they can end up pointing at out of date data.
#jira UE-52404 - Crash deleting bodies
#tests deleted primitives in PhAT
Change 3760798 by Martin.Wilson
Initialize PosesToEvaluate so that we don't get stale data crashes after reinitializing
#Jira UE-52343
Change 3761312 by Martin.Wilson
Fix for infrequent crash on module start up
Change 3761333 by Danny.Bouimad
Fixed the Cable actor test correctly, shouldn't fail on cooked platforms any more!
Change 3761550 by Aaron.McLeran
Engine changes requested by oculus for spatializer interface
Change 3761728 by Martin.Wilson
Fix crash when undoing a change on a skeletal mesh that uses virtual bones
#Jira UE-52475
Change 3762032 by Ethan.Geller
#jira UE-49076 Implement PR for VOIP bug fix on Mac
Change 3762109 by Aaron.McLeran
Enabling bAllowAnyoneToDestroyMe on audio components
Change 3762125 by Aaron.McLeran
Checking in missing file
Change 3762568 by Aaron.McLeran
Fixing ogg vorbis 5.1 channel ordering channel maps in audio mixer
Fix is to create separate 5.1 channel maps for various output channel counts and pull those channel maps if the source file was decoded from vorbis. This pattern is copied from old xaudio2source code which handles 5.1 channel mapping seperately. Alternative solution would be to swizzle vorbis channels during cook, but this would break backward compatibility. We'll consider that solution in the future once we remove the old audio engine code.
Change 3762571 by Aaron.McLeran
Adding multichannel file support.
- Spoofing the multi-channel file importer tool by allowing a single multichannel file to generate data in the same way
- Moved the wave serializer code from audio capture plugin to audio.h/.cpp for general use
Change 3762626 by Aaron.McLeran
Adding ability to automatically tag ambisonics files.
Change 3762627 by Aaron.McLeran
Fixing up source buses to be more useful
- Added pre and post source effect bus sends types.
- Adjusted where in the source generation pipeline distance-based filtering is applied to a source. Source audio is sent to source buses immediately after source effect chain generation and before per-source distance-based filters are applied and distance attenuation.
Change 3762652 by Aaron.McLeran
Fix for device hot swap
Change 3762725 by Ethan.Geller
Fixing multichannel indices so that it matches the multichannel cook
Change 3762738 by Ethan.Geller
Add ambisonics plugin support
Change 3762739 by Ethan.Geller
Updating oculus audio plugin
- Base implementation by Peter Sterling at Oculus
- Ambisonics decoding using Oculus API implemented by Ethan
Change 3763687 by Martin.Wilson
Fix bug in GUID customization that leaves editor in an active transaction + Expose core property set code so other guid customizations can reuse it
#Jira UE-52510
Change 3764412 by Ethan.Geller
Fix the incremental build, pt 2
Change 3764721 by Ethan.Geller
Fix the build, take 3
Change 3764767 by Martin.Wilson
Rebuild array children properties when an item is added. Solves missing item crash if the user immediately tries to set the value of the new item
#Jira UE-52537
Change 3764845 by Aaron.McLeran
Making audio devices call flush after update and before endplay is called to ensure flush is called on audio devices.
Prevents hang on releasing sound wave procedural references in GC.
Change 3766047 by Thomas.Sarkanen
Pinnable command list widget
Added a new "pinnable command list" widget. Shift-clicking a menu option in either the skeleton tree filter or the viewport menus will 'pin' the command outside of the menu. This allows for easier access to commands that are frequently used.
Minor Slate change - added virtual(s) to FUICommandList so commands can be forwarded when executed.
#jira UE-51807 - Add 'quick filter' and visualization toggles UI to PhAT
Change 3766111 by Thomas.Sarkanen
CIS fix
Change 3766273 by Lina.Halper
Rename PostBlendPhysics to FinalizeAnimationUpdate
Change 3768507 by Thomas.Sarkanen
CIS fix
Change 3768637 by James.Golding
Add 'GetSectionFromProceduralMesh' util function
#jira UE-49262
Change 3768649 by Lina.Halper
Moved the automation test to tests folder
#jira:UE-46250
Change 3768675 by Benn.Gallagher
Fixed incorrect deprecated angular velocity accessor.
Change 3768776 by Benn.Gallagher
Fix for skeletal mesh editor crash importing more than 5 LODs
#jira UE-52263
Change 3768804 by Martin.Wilson
Live Link Virtual subjects
Virtuals subjects are created within the client and contain the bones of multiple real subjects
Change 3768874 by Martin.Wilson
UAnimSequenceBase is now entirely exported with ENGINE_API
#Jira UE-48020
Change 3769318 by Lina.Halper
- Animation system owns previous bone transform with revision number, so that it can send to renderer when render recreated.
- Framenumber still exists because clothing system uses it, and I'm planning to talk to Benn about it next week when he comes back
#jira: UEAP-272
Change 3769714 by Lina.Halper
Fix CIS
Change 3770672 by James.Golding
Expose API for changing 'Use CCD' flag at runtime
#jira UE-50332
Change 3770675 by James.Golding
Add test map for 'Set Use CCD' function
Change 3770711 by Thomas.Sarkanen
Multi viewports and bone-locked cameras in animation editor viewports
All animation-related editors now have the ability to open up to 4 seperate viewports onto the same scene, each with their own settings.
Fixed up bounds following to actually work correctly (now follows without lag).
Added the ability to follow (and orbit) a specified bone as well.
#jira UE-47127 - Add the Ability to Open Multiple Viewports on the Same Scene.
#jira UE-49690 - "Camera Follow" in Persona Editor cannot be enabled
Change 3770786 by Lina.Halper
Support curve in copy pose node
#jira: UE-50182
Change 3770943 by James.Golding
Fix 'NODEBUG' option for PVD CONNECT console command (should only send profile data)
Fix from Kier at NVIDIA
#jira UE-52444
Change 3771145 by Benn.Gallagher
Added ability to control whether or not a post process instance runs on a skeletal mesh component. Exposed both to blueprints and anim editor suite
#jira UE-49747
Change 3772262 by Benn.Gallagher
Defaulted the clothing create menu to use the skeletal mesh physics asset
#jira UE-51607
Change 3772389 by Thomas.Sarkanen
Added a keyboard shortcut to toggle between body and constraint selection
Shortcut is Ctrl+T by default.
#jira UE-51804 - Add a quick switch between selected constraints and bodies
Change 3772393 by Thomas.Sarkanen
Constraints are now displayed only once in the physics asset editor tree view
User constraints are still displayed twice, however.
#jira UE-51808 - Constraints in PhAT should only be displayed once in the tree
Change 3772404 by James.Golding
Fix Modify Curve AnimNode not calling CacheBones on source pose
#jira UE-52129
Change 3772418 by Benn.Gallagher
Allowed clothing visualizations to be enabled while clothing paint mode is active.
Fixed crash attempting to visualize backstops when the clothing data has no backstops.
#jira UE-47042
Change 3772964 by Thomas.Sarkanen
Expose sequence recording settings in Persona editors
Added layout extender to Persona module, so external tabs can now be added to all Persona-based editors easily.
Added a structure details view to edit the default animation settings.
Hooked default animation settings up to Persona animation recording.
#jira UE-48416 - Set Frame Rate and Length of Recordings in Persona in Editor
Change 3772967 by Martin.Wilson
Add NativeBeginPlay function to AnimInstance
#jira UE-51351
PR #4135: Add NativeBeginPlay to AnimInstance (Contributed by Vaei)
Change 3772986 by Thomas.Sarkanen
Added "Show Only Selected Constraints" to the physics asset editor
#jira UE-51805 - Add 'show only selected constraints' option to PhAT
Change 3773012 by Benn.Gallagher
Added facility to debug skel mesh component to extend the viewport text seen in skeletal mesh editor and added lines for current cloth value
#jira UE-42354
Change 3773132 by Martin.Wilson
Added Uncheck all unconnected pins for BreakStruct nodes
#jira UE-51136
PR #4110: Uncheck all unconnected pins from BreakStruct node... (Contributed by projectgheist)
Change 3773158 by Benn.Gallagher
Added auto-range feature to cloth view ranges, and a way for tools to extend those ranges when necessary
#jira UE-48109
Change 3773895 by Jurre.deBaare
Move material baking out of experimental
#fix Removed experimental settings gating around Material Baking functionality
#jira UE-52685
Change 3773898 by Jurre.deBaare
Change log message wording when Simplygon fails to initialise to ensure it does not block CIS (error triggers a CIS error and will halt the build)
Change 3773899 by Jurre.deBaare
Add keybind for switching between paint / erase color while mesh painting
#fix Added new command for switching fore and background colors in the mesh painter (defaults to X as shortcut)
#jira UE-52197
Change 3773900 by Jurre.deBaare
Hotkey to enable and disable post processing in the preview scene settings
#fix Added hotkey and command for toggling Post Processing in Preview Scenes
#jira UE-48111
Change 3773933 by Martin.Wilson
Add missing file (for live link monolithic build failure)
Change 3773949 by Jurre.deBaare
Right click add selected to HLOD cluster / create cluster
#fix Partially implemented the request, added context menu to HLOD level nodes in the HLOD outliner treeview to allow creating a new cluster from the current level viewport selection
#jira UE-48334
Change 3773950 by Jurre.deBaare
HLOD cluster drawing should not use AHLODSelectionActor but regular in-viewport drawing
#fix removed old behaviour using a spawned actor to represent a selected HLOD cluster, and replaced it will simple debug drawing (this is a lot less bug prone and much cleaner)
#jira UE-49094
Change 3773964 by James.Golding
Mark FBodyInstance::ResponseToChannels_DEPRECATED as 'WITH_EDITORONLY_DATA'
#jira UE-52545
Change 3773978 by Thomas.Sarkanen
Allow edits to physics sim options to be undone/redone
Added RF_Transactional to the object
#jira UE-48046 - Undo/redo does not work in Physics Asset Editor's Physics/Details menu
Change 3773982 by Martin.Wilson
Add pre and post conversion callbacks to root motion conversion in character movement component
#jira UE-51966
Change 3773988 by Thomas.Sarkanen
Duplicating CL 3773896 from Fortnite:
Push non-rendered anim updates back onto the worker thread
Now when meshes are set to EMeshComponentUpdateFlag::AlwaysTickPose, we optionally kick of a task to perform parallel update only (no evaluation).
#jira UE-46710 - Animation updates run on the main thread when Evaluation task doesnt run
Change 3773999 by Martin.Wilson
Fix incorrect merge
Change 3774030 by Thomas.Sarkanen
Renamed "Create Joints" to "Create Constraints"
#jira UE-50861 - New Physics Asset window reads "Joints" instead of "Constraint"
Change 3774031 by Thomas.Sarkanen
Fixed typo in comment
#jira UE-50841 - Typo in Vertex Weighting Type setting when creating new Physics Asset
Change 3774200 by Lina.Halper
Fix crash with empty element in the constraint setup
#jira: UE-52686
Change 3774236 by Ori.Cohen
Fix crash when destructible component doesn't mark its killed actors as IgnoreActiveActors
#jira UE-52320
Change 3774284 by James.Golding
Fix constructor order CIS error in AudioMicerSubmix.cpp
Change 3774511 by James.Golding
Fix up removed RevisionNumber param
Change 3774724 by Lina.Halper
Fix of motion blur change of previous bone transform
Change 3775493 by Thomas.Sarkanen
Duplicating CL 3775488 from Fortnite:
Prevented skeletal meshes that are not being ticked due to URO from dispatching tick tasks
#jira FORT-61157 - Run anim update on worker, even if not visible
Change 3775508 by James.Golding
Fix compilation without PhysX, move DeferredReleaseCallback outside WITH_PHYSX block
Change 3775538 by James.Golding
Fix Mac CIS due to missing virtual destructor in IDeferredReleaseCallback
Change 3775921 by Ori.Cohen
Better fix for destructible crash (also fix CIS)
#jira UE-52762
Change 3776054 by Benn.Gallagher
Fixed crash deleting max distance mask from a clothing data entry.
#jira UE-52723
Change 3776063 by Thomas.Sarkanen
Fix static analysis warning
Change 3776331 by Jurre.deBaare
Hierarchical LOD Outliner scrollbar doesn't appear
#fix removed AutoHeight from parent vertical box around HLOD outliner details view
#jira UE-52756
Change 3776704 by Martin.Wilson
Fix array properties not always refreshing when new items are added
#UE-52760
Change 3776755 by Thomas.Sarkanen
Duplicating CL 3776656 from Fortnite:
Fix notifies not getting fired in cases where AlwaysTickPose was set on skeletal mesh components
This was causing AIs to get stuck in montage playback in some circumstances
#jira FORT-61324, FORT-60558
Change 3777385 by Aaron.McLeran
#jira UE-52786 Fix for broken spatialization on xaudio2, old audio engine.
Change 3778233 by Lina.Halper
Removed android from oculus audio platform
Change 3778714 by Ethan.Geller
#jira UE-52818 remove Android from Oculus Audio platforms
Change 3779004 by Lina.Halper
Include "Features/IModularFeatures.h" to cpp
Fix build error
Change 3780324 by Thomas.Sarkanen
Duplicating CL 3778679 from Fortnite-Main:
Fix 100% Linux server crash - dont attempt to run threaded work in a single-threaded environment
We dont attempt to run animation update work multi-threaded in the same conditions that we didnt attempt to run animation eval work previously.
#jira FORT-61548
Change 3763999 by Ethan.Geller
remove space from ambisonics mixer name, fix build
Change 3774470 by James.Golding
Merging //UE4/Dev-Main to Dev-AnimPhys (//UE4/Dev-AnimPhys) @ 3774039
[CL 3780967 by Thomas Sarkanen in Main branch]
2017-11-30 12:07:08 -05:00
|
|
|
Constraint.ConstraintDataIndex = ConstraintData.Add(NewConstraintData);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
Constraint.ConstraintDataIndex = INDEX_NONE;
|
2017-06-21 10:25:35 -04:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if WITH_EDITOR
|
|
|
|
|
// can't use World Draw functions because this is called from Render of viewport, AFTER ticking component,
|
|
|
|
|
// which means LineBatcher already has ticked, so it won't render anymore
|
|
|
|
|
// to use World Draw functions, we have to call this from tick of actor
|
|
|
|
|
void FAnimNode_Constraint::ConditionalDebugDraw(FPrimitiveDrawInterface* PDI, USkeletalMeshComponent* MeshComp) const
|
|
|
|
|
{
|
|
|
|
|
if (PDI && MeshComp)
|
|
|
|
|
{
|
|
|
|
|
// draw my transform
|
|
|
|
|
FTransform LocalToWorld = MeshComp->GetComponentTransform();
|
|
|
|
|
FTransform OriginalTransform = CachedOriginalTransform * LocalToWorld;
|
|
|
|
|
FTransform ConstrainedTransform = CachedConstrainedTransform * LocalToWorld;
|
|
|
|
|
|
|
|
|
|
DrawCoordinateSystem(PDI, OriginalTransform.GetLocation(), OriginalTransform.GetRotation().Rotator(), 20.f, SDPG_Foreground);
|
|
|
|
|
DrawCoordinateSystem(PDI, ConstrainedTransform.GetLocation(), ConstrainedTransform.GetRotation().Rotator(), 20.f, SDPG_Foreground);
|
|
|
|
|
|
|
|
|
|
// draw my target's transform for all targets
|
|
|
|
|
FVector SourceLocation = ConstrainedTransform.GetLocation();
|
|
|
|
|
for (int32 Index = 0; Index < CachedTargetTransforms.Num(); ++Index)
|
|
|
|
|
{
|
|
|
|
|
FTransform TargetTrasnform = CachedTargetTransforms[Index] * LocalToWorld;
|
|
|
|
|
DrawDashedLine(PDI, SourceLocation, TargetTrasnform.GetLocation(), FColor::Yellow, 5.f, SDPG_World);
|
|
|
|
|
DrawCoordinateSystem(PDI, TargetTrasnform.GetLocation(), TargetTrasnform.GetRotation().Rotator(), 20.f, SDPG_Foreground);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif // WITH_EDITOR
|
2022-09-24 13:57:58 -04:00
|
|
|
|