You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rb None #lockdown Nick.Penwarden ========================== MAJOR FEATURES + CHANGES ========================== Change 2825716 on 2016/01/12 by Marc.Audy Fix GrabDebugSnapshot virtual function definitions in Ocean Change 2828462 on 2016/01/14 by Marc.Audy Back out changelist 2825716 Change 3153526 on 2016/10/06 by Zak.Middleton #ue4 - Fix CharacterMovement hanging on to a bad/penetrating floor check result and not continuing to check for a valid floor. Only occured if bAlwaysCheckFloor was false. This could in rare situations cause the character to continue to attempt to depenetrate an object far away from it until another floor check occured. To prevent this we now force a floor check after the depenetration. Related to OR-14528. Change 3153580 on 2016/10/06 by Benn.Gallagher Skeletal LOD workflow refactor. Now we track source files for LODs to save time when reimporting LODs often. It's still possible to pick new files and overwrite the current settings. #jira UE-36588 Change 3154264 on 2016/10/06 by Aaron.McLeran UE-37004 UE-37005 Fixing stat soundwaves Change 3154560 on 2016/10/07 by James.Golding UE-20739 Fix auto box in Morph Target Preview panel Change 3154776 on 2016/10/07 by Ben.Zeigler #Fortnite Change the ability UI to use the Tag UI data instead of the Tag Categories, as Tag Categories were redundant and are being removed in the tag refactor. I'm not sure this code is actually in use any more. Change 3154954 on 2016/10/07 by Ben.Zeigler Move GameplayTagsEditor to a plugin, and change GameplayTagsManager to be accessed directly without the module load overhead, as it is part of the engine module set. Performance improvements to GameplayTags to maintain a ParentTag list when tag containers get modified. It does a quick update on add, and a slow recompute on other changes. This leads to a 10x improvement in IncludeParent queries Replace RemoveAllTags and RemoveAllTagsKeepSlack with Reset, which already existed but didnt work correctly. Removed the Category map from gameplay tags, games are using other systems to do translateable text. Significant internal changes to GameplayTagsManager, moved from 3 redundant maps to 1 map and removed unused functionality Change 3154955 on 2016/10/07 by Ben.Zeigler Game compile fixes for changes to GameplayTags module and API. Removed redundant calls to remove tags, TagContainer uses Reset() like other container types Change 3154995 on 2016/10/07 by Aaron.McLeran UE-37012 fix compile issue Change 3155009 on 2016/10/07 by Aaron.McLeran UE-37009 Ensure failed for FXAudio2SoundBuffer::Seek() in XAudio2Buffer.cpp - Removing ensure and using if statement instead. It looks possible for decompression state to fail to be created, that state is logged elsewhere. Change 3155128 on 2016/10/07 by Ben.Zeigler Add old location of GameplayTagsEditor to junk manifest Change3155268on 2016/10/07 by Aaron.McLeran UE-37024 Set Sound Mix Class Override still Playing Sounds in Certain Conditions Change 3155561 on 2016/10/07 by Ben.Zeigler GameplayTag fixes made based on code review feedback: Deprecate custom node for making a literal gameplay tag container and add proper make and break functions to the blueprint library Remove direct access to the tag container internals as it has always been unsafe Add many missing utility functions to the library and change things to pass FGameplayTag by value. TagContainers must still be passed by reference though as they are large Fix case where comparing two containers with the tags in different orders would fail Remove deprecated serialization entirely, print error when trying to load very old tags Add RemoveAllTags and RemoveAllTagsKeepSlack back to container, but deprecate them Change 3155842 on 2016/10/07 by dan.reynolds AEOverview Update - Attenuation Shapes Test Map + Counting Test Assets Change 3156779 on 2016/10/10 by Richard.Hinckley Fixing/reordering comments for basic types. Change 3156926 on 2016/10/10 by Ben.Zeigler Remove deprecated gameplay ability system code involving non-BP gameplay effects and ActiveGameplayEffectQueries Change 3156998 on 2016/10/10 by Jon.Nabozny Include K2Node_BaseAsyncAction.h in K2Node_AsyncAction.h to fix compile issue. Change 3158732 on 2016/10/11 by Zak.Middleton #ue4 - Don't allow the first move in SafeMoveUpdatedComponent() to ignore penetration when slowly moving out of an object. We really want to pop out completely using the MTD as fast as possible or we can fall through the object in a longer direction. #jira UE-28610 Change 3159208 on 2016/10/11 by dan.reynolds Added ancillary SoundClass Passive Mix Modifier Duration Test map Change 3159211 on 2016/10/11 by Aaron.McLeran UE-37193 Fixing passive sound mix modifier Change 3159278 on 2016/10/11 by dan.reynolds AEOverviewMain integration with the SCO Passive Mix Modifier Duration Test map for additional testing purposes. Also tweaks and clean-up of SCOverviewPassMixModDuration map and associated Platform_Blueprint Change 3159596 on 2016/10/12 by danny.bouimad Updates to TM-Meshbake Change 3159629 on 2016/10/12 by James.Golding Add ModifyCurve anim node Make GetPinAssociatedProperty const correct Change 3159705 on 2016/10/12 by James.Golding Add 'ApplyMode' and 'Alpha' options to ModifyCurve node Change 3159959 on 2016/10/12 by John.Abercrombie Integrate CL 3159892 from //Fortnite/Main/... Fixed the Blackboard component pausing but never being unpaused if we ended up restarting the Behavior Tree instead of continuing #ue4 Change 3160014 on 2016/10/12 by Lukasz.Furman pass on gameplay debugger in Simulate in Editor mode #jira UE-36123 Change 3160027 on 2016/10/12 by Lukasz.Furman fixed behavior tree task restart conditions copy of CL 3159145 #ue4 Change 3160129 on 2016/10/12 by Lukasz.Furman gameplay debugger refactor: removed deprecated code #ue4 Change 3160389 on 2016/10/12 by Lukasz.Furman added missing include path to gameplay debugger module #ue4 Change 3160408 on 2016/10/12 by Lukasz.Furman refactored sanity checks in gameplay debugger EdMode to keep static analysis happy #ue4 Change3161143on 2016/10/13 by James.Golding UE-37208 UE-37207 Fix AnimNode_ModifyCruve CIS error Change 3161227 on 2016/10/13 by danny.bouimad More changes to meshmergemap Change 3161777 on 2016/10/13 by Ben.Zeigler API changes for GameplayTag and Container, and fix Redirect loading Remove Match type and empty count as match bool from common API In C++ use MatchTag/MatchAny/HasTag/HasAny/HasAll with *Exact variants for exact matching. Old C++ API is still there but I will deprecate and remove soon In Blueprint use MatchTag/MatchAny/HasTag/HasAny/HasAll with bool parameter for as the bool is more clear. I was able to convert old functions to new ones as no one was overriding the options I removed Undeprecate the old make literal node and temporarily set GameplayTags in container to be editable. We're not allowed to deprecate things until our internal games fix their usage. Change 3162095 on 2016/10/13 by Jon.Nabozny Fix bad default screen resolution in Platformer Game. #jira UE-34901 Change 3163351 on 2016/10/14 by Marc.Audy Avoid duplicate accessor calls Change 3163364 on 2016/10/14 by Marc.Audy Eliminate auto Use ForEachObjectWithOuter Change 3163367 on 2016/10/14 by Marc.Audy Use ForEachObjectWithOuter instead of GetObjectsWithOuter Change 3163500 on 2016/10/14 by Marc.Audy When using SetCullDistance property for static meshes correctly update the cached value #jira UE-36891 Change 3163674 on 2016/10/14 by Jon.Nabozny #rn Fix popping in OnRep_ReplicatedAnimMontage. #jira UE-37056 Change 3164818 on 2016/10/17 by Ori.Cohen Added a pose snapshot feature that allows users to convert an existing skeletal mesh pose into a node inside the anim blueprint. This is useful for things like getup from ragdoll. Change 3164903 on 2016/10/17 by Lukasz.Furman fixed bug in merging behavior tree searches #ue4 Change 3165236 on 2016/10/17 by dan.reynolds Fixes and tweaks based on feedback: - Made most objects Stationary to assist in dynamic lighting changes as sub-levels have unknown orientation until load - Fixed Blueprint Control map to stop test when the player leaves the zone - Fixed Blueprint Contorl map typos Change 3165323 on 2016/10/17 by Aaron.McLeran PS4 Audio Streaming - Refactored Opus audio streaming code to have the code which interfaces with audio streaming manager in format-agnostic code (so I can use for AT9 streaming) - Wrote an AT9 real-time decoder module (will be used in audio mixer) - Enabled streaming on PS4 platform - Refactored much of Ngs2 to be more in parity with our other platforms for real-time decoding (Significant changes to Ngs2Buffer) - Added support for Ngs2 buffer callbacks for when audio needs to be fed to sources rather than pushing data from game thread - Fixed A3D implementation: creating both a normal sampler rack and an A3D-specific sampler rack - Fixed up error handling code in Ngs2 so it actually reports real errors Change 3165997 on 2016/10/18 by Richard.Hinckley Improving consistency of "New C++ Class" templates and fixing some shadow-variable issues. Change 3166220 on 2016/10/18 by Aaron.McLeran UE-37442 Build Tools Win64 completes with 28 errors - Changing include of appropriate file to not be in #if WITH_ENGINE block Change 3166262 on 2016/10/18 by Aaron.McLeran UE-37441 Compile Ocean IOS, Compile FortniteClient Mac, Compile UE4Editor Mac complete with 11 errors Fixing up the original wave format parsing code in Audio.cpp to avoid redefinitions. This code needs to be removed eventually in favor of the new wave format parser class. Change 3166562 on 2016/10/18 by Aaron.McLeran UE-37441 Fixing compile on Mac - Renamed FFormatChunk to FRiffFormatChunk Change 3166653 on 2016/10/18 by Aaron.McLeran UE-37442 Build Tools Win64 completes with 28 errors Change 3166917 on 2016/10/18 by Aaron.McLeran UE-37502 Initializing missed data members in FNgs2SoundSource constructor Change 3167329 on 2016/10/19 by Benn.Gallagher Made wind properties editable on wind components, had to make the properties unsettable by blueprints and add setter functions so we can trigger render data updates from property updates. #jira UE-37500 Change 3167575 on 2016/10/19 by Jon.Nabozny #rn Fix UCharacterMovementComponent::OnTeleported improperly changing movement mode. #jira UE-37082 Change 3168079 on 2016/10/19 by Ori.Cohen Fix timing issue that causes snapshotpose to t-pose. #JIRA UE-37476 Change 3168392 on 2016/10/19 by dan.reynolds Updated AEOverviewMain with custom Attenuation FBXs to alleviate visual noise when observing complex attenuation shape falloff distances. Change 3169121 on 2016/10/20 by danny.bouimad Updates to Merge actor assets Change 3169128 on 2016/10/20 by Danny.Bouimad files Change 3169230 on 2016/10/20 by Lina.Halper #improved log message Change 3169243 on 2016/10/20 by Ben.Zeigler #jira UE-37515 Add UK2Node::ConvertDeprecatedNode which handles node-specific deprecation fixup. Add code to automatically convert from make/break struct nodes to native call function if there is a native override. This was hard coded for vector, etc but now works for any type that declares HasNativeMake/HasNativeBreak. Add serialize override to K2Node that serializes struct defaults when gathering references while saving. References declared in literal struct pins were being skipped Add specific fixups for GameplayTag make/break functions Change 3169422 on 2016/10/20 by Aaron.McLeran UE-37596 Making detail customizations and experimental setting for sound base showing audiomixer-only features Change 3169620 on 2016/10/20 by Ben.Zeigler Switch GameplayTagTests to use the new Custom test macro and better failure reporting. Add TestTrueExpr macro that runs TestTrue with the expression as the display string, like how ensure works. Change 3169622 on 2016/10/20 by Ben.Zeigler Fix swapped HasAny logic and bad comments Change 3169645 on 2016/10/20 by Aaron.McLeran Re-adding call to Stop source Change 3169664 on 2016/10/20 by dan.reynolds AEOverviewMain Update - Fixed Menu bug where clicking the menu item after map reset resulted in requiring two attempts to actually reset the menu item properly. Menu Hit interaction is now much more responsive. Change 3169997 on 2016/10/20 by Ben.Zeigler Change from alloca to normal malloc, as static analysis doesn't like alloca in loops due to stack overflow danger Change 3170796 on 2016/10/21 by Marc.Audy PR #2878: Prevent 'XXX has natively added scene component' warning in commandlets (Contributed by slonopotamus) #jira UE-37632 Change 3170802 on 2016/10/21 by Lina.Halper #ANIM: curve can link to joints - this allows to filter certain curves per LOD - when the joint is discarded -> refactored editor object tracker to allow multiple per class -> refactored so that bone reference supports both skeleton or mesh but make sure you don't access invalid function when using skeleton indices - layer bone support #jira: UEFW-207 Change 3170857 on 2016/10/21 by Aaron.McLeran Disabling checking for device change Change 3171101 on 2016/10/21 by Ben.Zeigler Deprecate old gameplay tag functions in favor of new API that doesn't use the enums or module header Add IsEmpty, Filter, FilterExact, and AddLeafTag to FGameplayTagContainer Add RequestGameplayTag, MatchesTagDepth and GetGameplayTagParents to FGameplayTag Remove MatchesEmpty parameter from tag asset interface. This defaulted to true but should now be explicitly checked with IsEmpty() Engine fixups for those changes Change 3171102 on 2016/10/21 by Ben.Zeigler Internal game fixups for tag deprecation Moved some fortnite tags into the global tag list and fixed fortnite cases. Confident in these changes Fixed several weird tag uses in Orion. Dave and I should code review these changes as I was unsure on some of them Some minor changes for Ocean Change 3171186 on 2016/10/21 by Ben.Zeigler File got missed in checkin Change 3171239 on 2016/10/21 by Wes.Hunt TPSAudit updates. * Added /Verbose option that will print out the name of each file examined. Useful for debugging if a file was even checked. * Don't skip Content folders * Don't skip Engine\Documentation\HTML * Skip any Content\Localization folders instead of only Engine\Content\Localization * Skip any Content\Internationalization folders * Skip .raw, .exr, .r16, .abc, .webm, .collection, .aac files. * if a file has no extension (like configure files) then treat the filename as the extension * configure files are treated like shell files Change 3171245 on 2016/10/21 by Ben.Zeigler Fix crash when saving nodes that reference properties from struct defaults. Switch FindImportedObject to be safe while saving, it will find existing objects but not load new ones. I am not sure why StaticFindObject is unsafe during save. Change 3171248 on 2016/10/21 by Wes.Hunt TPSAudit: added /veryverbose which lists every file and directory excluded and the reason (file or dir exclusion). This makes the startup MUCH MUCH slower, so only use for debugging. Change 3171256 on 2016/10/21 by Wes.Hunt ModuleManager shutdown fixes. * ShutdownModule is now called in reverse order to when StartupModule is FINISHED. * This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule. * HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback. * Added comments to Module headers to indicate this new change in behavior. * Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine. Change 3171258 on 2016/10/21 by Wes.Hunt ModuleManager shutdown fixes. * ShutdownModule is now called in reverse order to when StartupModule is FINISHED. * This allows modules to reference dependencies in their StartupModule to ensure they are loaded, and be sure they will still be around in ShutdownModule. * HTTPModule now shuts down in ShutdownModule and not PreUnloadCallback. * Added comments to Module headers to indicate this new change in behavior. * Removed manual startup of HTTP module in LaunchEngineLoop as it's no longer needed. Should save the module from being around if not really used by engine. Change 3171946 on 2016/10/24 by Lina.Halper Fix so that it checks all the joints before removing Change 3172126 on 2016/10/24 by Lukasz.Furman added navlink component #ue4 Change 3172152 on 2016/10/24 by Jon.Nabozny Remove UWorld::ComponentOverlapMulti indirection in UPrimitiveComponent::UpdateOverlaps. UWorldComponentOverlapMulti is just a wrapper that verifies the component is valid, then calls UPrimitiveComponent::ComponentOverlapMulti. #jira UE-36472 Change 3172364 on 2016/10/24 by Ben.Zeigler Codereview fixes for tag changes. Make Tag->Container constructor explicit to avoid bugs Fix some cases that were using exact to allow parents instead Change 3173442 on 2016/10/25 by Jon.Nabozny Fixed crash when opening Anim asset after retargetting. Change 3174123 on 2016/10/25 by Ben.Zeigler Add some ini tag data to QAGame, it's now setup to import some from DataTable, and some from ini. This enables the full management UI. Change 3174394 on 2016/10/25 by dan.reynolds AEOverview update - added a Streaming Audio test which tests two streaming audio loops (one short, one long). Change 3175197 on 2016/10/26 by Wes.Hunt Fix OSS module startup to directly reference HTTP and XMPP as a dependency in StartupModule. This should make MCP startup/shutdown more robust. #codereivew: sam.zamani,dmitry.rekman,josh.markiewicz Change 3175236 on 2016/10/26 by Jon.Nabozny Change FMath::SegmentDistToSegmentSafe to handle the case where either (or both) of the input segments create points. Either segment may be considered a point if it's two points have a distance that's nearly 0. #jira UE-19251 Change 3175256 on 2016/10/26 by Jon.Nabozny Fix CIS for SegmentDistToSegmentSafe change. Change 3175379 on 2016/10/26 by Jon.Nabozny Change UCharacterMovementComponent::ApplyImpactPhysicsForces to use IsSimulatingPhysics(BoneName) instead of IsAnySimulatingPhysics on the hit component. #jira UE-37582 Change 3175408 on 2016/10/26 by Marc.Audy AudioThreading improvements: Fix PS4 core 6 issue Add timeout spam Radical simplification Fix suspension CVar #authors Gil.Gribb/Marc.Audy #jira OR-30447 Change 3175535 on 2016/10/26 by Marc.Audy Merging //UE4/Dev-Main to Dev-Framework (//UE4/Dev-Framework) @ 3175266 Change 3175539 on 2016/10/26 by Marc.Audy Restore affinity for AudioThread and allow it on to 7th (rather than pinning it) Change 3175631 on 2016/10/26 by Marc.Audy Fix silly compile error Change 3175639 on 2016/10/26 by Aaron.McLeran Fixing audio device removal code - Flipping active sources to virtual mode - Handling initializing sources that have become virtual - Not stopping sounds when device is unplugged Change 3175665 on 2016/10/26 by dan.reynolds AEOverview update - Added a Streaming Overview sub test (Streaming Spam) Change 3175934 on 2016/10/26 by dan.reynolds AEOverview Streaming Map Fix - fixed AEOverviewStreaming to avoid orphaning sounds when crossing the platforms Change 3175941 on 2016/10/26 by Marc.Audy Fix compiler error after merge from Main Change 3176378 on 2016/10/27 by Jon.Nabozny Add RotatorToAxisAndAngle function to KismetMath. We already expose RotatorFromAxisAndAngle, this is just the inverse operation. Change3176441on 2016/10/27 by Jon.Nabozny Fix another CIS issue with SegmentDistToSegmentSafe change. Change 3176487 on 2016/10/27 by Jon.Nabozny Hide DemoRecorder from the scoreboard in ShooterGame. #jira UE-37492 Change 3176616 on 2016/10/27 by Lukasz.Furman optimized behavior tree debugger update in subtrees #jira UE-29029 Change 3176717 on 2016/10/27 by james.cobbett Test asset for UE-37270 Change 3176731 on 2016/10/27 by dan.reynolds AEOverview Streaming Spam map tweak--fixed STRMOverviewStreamSpam map so it now ensures reproduction on a specific edge case Change 3176887 on 2016/10/27 by Aaron.McLeran UE-37899 Failed Assertion when spamming PS4 Streaming Start/Stop - Fix is to add critical sections to avoid stopping a Ngs2 source voice while it's in an OnBufferEnd callback #tests Use Dan.Reynold's AEOverviewMain, load STRMOverviewStreamSpam map. will crash in half a second pre-fix, never crashes post-fix. Change 3177053 on 2016/10/27 by Marc.Audy Actually reattach previously attached actors when creating a child actor #jira UE-37675 Change 3177113 on 2016/10/27 by Aaron.McLeran UE-37906 Fixing stat sounds when the audio thread is enabled. Change 3177536 on 2016/10/27 by Aaron.McLeran Updating QASoundWaveProcedural to support stereo procedural sound wave generation. Change 3177551 on 2016/10/27 by dan.reynolds AEOverview update - Tweaked AEOverviewSWP to support testing mono and stereo SoundWave Procedurals - Added STRMOverviewStreamPriority to test Streaming Voice Priority Change 3177819 on 2016/10/28 by Thomas.Sarkanen Consolidated LOD screen size calculations Static, skeletal and HLOD now use the same method of specifying LOD level at runtime.Namely "Screen Size". When the bounds of the objects sphere occupy half the max screen dimension, the screen size is 0.5 & all of the screen, 1.0. HLOD still uses a distance based metric at runtime to choose when to switch clusters, so will still not switch LODs on FOV changes. Conversion functions have been implemented to convert each of the legacy LOD specifications into the new unified version. Conversion uses an assumption that the average case uses 1080p @ 90 degree FOV. This is necessary as previous screen sizes/areas were based around that resolution and we want the least perf regressions when at that resolution. Auto LOD now uses the same functionality to determine what LOD thresholds to use. #tests Verified that LODs switch at equivalent distances/sizes before and after this change for various assets. #tests Verified that HLOD distance->screen size and inverse functions map correctly #tests Ran Michael N's triangle count test before and after the changes with Paragon to verify rendered triangle counts do not vary with the new method Change 3177996 on 2016/10/28 by Marc.Audy Support play button on SoundCues as well as SoundWaves Change 3178013 on 2016/10/28 by Marc.Audy Allow previewing of force feedback effects from content browser #jira UE-36388 Change 3178020 on 2016/10/28 by Lukasz.Furman fixed navmesh wall segment calculations for crowds #jira UE-37893 Change 3178096 on 2016/10/28 by Marc.Audy Make ALevelSequenceActor::Tick call Super #jira UE-37932 Change 3178247 on 2016/10/28 by Zak.Middleton #ue4 - Crash fix when player is destroyed and server checks to see if it needs to force a network update. No repro steps in the bug but guarding against the crash is pretty straightforward. UE-37902 Change 3178256 on 2016/10/28 by Zak.Middleton #ue4 - Avoid crash when calling ACharacter::SetReplicateMovement when not on the server. Change 3178263 on 2016/10/28 by Ben.Zeigler Add support for a SearchableNameMap to the Linker and the Asset Registry. Call MarkSearchableName(TypeObject,Name) from a serialize function to register that an FName should be considered Searchable. This change bumps the object version. Also fix it so the StringAssetReferencesMap does not get written out in editor builds Clean up FLinker::Serialize, as it is no longer called except to get memory size Add code to mark searchable names for GameplayTags, DataTableHandles, and CurveTableHandles. Add FAssetIdentifier to the AssetRegistry that allows searching for Package.Object::Name. If Object/Name aren't specified PackageName will be used as it was before UI Improvements to the reference viewer to support name references. Collapse the reference/dependency checkboxes, and add new checkboxes for SearchableNames and NativePackages, disabled by default Remove bResolveIniStringReferences option from GetDepdendencies and handle that when parsing in the string asset reference table Change 3178265 on 2016/10/28 by Ben.Zeigler Move all ini settings for GameplayTags over to GameplayTagsSettings.h/GameplayTags.ini, instead of being in 3 different places. Add metadata for the source of a gameplay tag and it's comment to the node, but only in editor builds Change it so the default list and developer tags list are saved the same way as a list of structs. This will allow UI for selecting what tag list to save it into The first time someone in the project modifies the GameplayTags project settings it will migrate these settings from the old locations. This will cause defaultEngine.ini to resave, which may wipe out comments Migrate QAGame's tag config as a test Change 3178266 on 2016/10/28 by Lina.Halper Fix issue with anim editor sound play notify doesn't work with follow option #jira: UE-37946 Change 3178441 on 2016/10/28 by Ben.Zeigler Fix use of IsValid on names inside asset identifier to properly be a None check and add accessor to make use more clear Change 3178443 on 2016/10/28 by Ben.Zeigler Half migrated gameplay tag settings for internal games, will need full migration via the editor on their branches Change 3178533 on 2016/10/28 by Ben.Zeigler Build fix Change 3178655 on 2016/10/28 by Ben.Zeigler Build fix Change 3178672 on 2016/10/28 by Lina.Halper Unshelved from changelist '3164228': PR #2867: Fixed for UE-15388 : Bones of uniformly scaled SkeletalMesh rotate incorrectly in Persona (Contributed by rarihoma) #jira: UE-37372 Change 3178675 on 2016/10/28 by Ben.Zeigler Crash fix if you have no defaultengine.ini redirects section Change 3178698 on 2016/10/28 by Ben.Zeigler #jira UE-37774 Fix issue with loading save games referencing UObjects not in memory, this broke in 4.13 Change 3178743 on 2016/10/28 by Lina.Halper Fixed so that if no key, it clamps to 0. #jira: UE-36790 Change 3179121 on 2016/10/28 by dan.reynolds AEOverview tweaks - updated Concurrency map to tighten up the audio playback (as in James C's feedback) - tweaked some timers to be closer to real-time Change 3179912 on 2016/10/31 by Mieszko.Zielinski Removed unused piece of functionality from UEdGraphSchema_BehaviorTreeDecorator #UE4 Change 3179933 on 2016/10/31 by Lukasz.Furman fixed missing update timers in avoidance manager #ue4 Change 3180028 on 2016/10/31 by Ben.Zeigler #jira UE-373993 Fix crash with bad default value for objects Change 3180503 on 2016/10/31 by mason.seay Test map for character spawning bug Change 3180744 on 2016/10/31 by Ben.Zeigler #jira UE-38025 Fix APlayerController:DisplayDebug to not make a bad copy of the debug display manager Change 3180914 on 2016/10/31 by Ben.Zeigler #jira UE-37773 Add hooks for deleting and renaming tags, untested pending UI support Add handler for editing a gameplaytag asset from asset browser Change 3181879 on 2016/11/01 by Marc.Audy Rollback CL# 3169645 to resolve fortnite audio hitching when stopping sounds #jira UE-38055 [CL3182044by Marc Audy in Main branch]
173 lines
5.2 KiB
C++
173 lines
5.2 KiB
C++
// Copyright 1998-2016 Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "AnimGraphPrivatePCH.h"
|
|
|
|
#include "GraphEditorActions.h"
|
|
#include "ScopedTransaction.h"
|
|
#include "CompilerResultsLog.h"
|
|
#include "AnimGraphNode_ModifyCurve.h"
|
|
#include "AnimationGraphSchema.h"
|
|
#include "BlueprintActionDatabaseRegistrar.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "ModifyCurve"
|
|
|
|
|
|
UAnimGraphNode_ModifyCurve::UAnimGraphNode_ModifyCurve()
|
|
{
|
|
}
|
|
|
|
FString UAnimGraphNode_ModifyCurve::GetNodeCategory() const
|
|
{
|
|
return TEXT("Skeletal Controls");
|
|
}
|
|
|
|
FText UAnimGraphNode_ModifyCurve::GetTooltipText() const
|
|
{
|
|
return GetNodeTitle(ENodeTitleType::ListView);
|
|
}
|
|
|
|
FText UAnimGraphNode_ModifyCurve::GetNodeTitle(ENodeTitleType::Type TitleType) const
|
|
{
|
|
return LOCTEXT("AnimGraphNode_ModifyCurve_Title", "Modify Curve");
|
|
}
|
|
|
|
|
|
TArray<FName> UAnimGraphNode_ModifyCurve::GetCurvesToAdd() const
|
|
{
|
|
TArray<FName> CurvesToAdd;
|
|
|
|
const FSmartNameMapping* Mapping = GetAnimBlueprint()->TargetSkeleton->GetSmartNameContainer(USkeleton::AnimCurveMappingName);
|
|
if (Mapping)
|
|
{
|
|
TArray<SmartName::UID_Type> UidList;
|
|
Mapping->FillUidArray(UidList);
|
|
|
|
// Iterate through all curves..
|
|
for (SmartName::UID_Type Uid : UidList)
|
|
{
|
|
FSmartName SmartName;
|
|
Mapping->FindSmartNameByUID(Uid, SmartName);
|
|
|
|
// Don't offer curves we already have
|
|
if (!Node.CurveNames.Contains(SmartName.DisplayName))
|
|
{
|
|
CurvesToAdd.Add(SmartName.DisplayName);
|
|
}
|
|
}
|
|
}
|
|
|
|
return CurvesToAdd;
|
|
}
|
|
|
|
void UAnimGraphNode_ModifyCurve::GetAddCurveMenuActions(FMenuBuilder& MenuBuilder) const
|
|
{
|
|
TArray<FName> CurvesToAdd = GetCurvesToAdd();
|
|
for (FName CurveName : CurvesToAdd)
|
|
{
|
|
FUIAction Action = FUIAction(FExecuteAction::CreateUObject(this, &UAnimGraphNode_ModifyCurve::AddCurvePin, CurveName));
|
|
MenuBuilder.AddMenuEntry(FText::FromName(CurveName), FText::GetEmpty(), FSlateIcon(), Action);
|
|
}
|
|
}
|
|
|
|
void UAnimGraphNode_ModifyCurve::GetRemoveCurveMenuActions(FMenuBuilder& MenuBuilder) const
|
|
{
|
|
for (FName CurveName : Node.CurveNames)
|
|
{
|
|
FUIAction Action = FUIAction(FExecuteAction::CreateUObject(this, &UAnimGraphNode_ModifyCurve::RemoveCurvePin, CurveName));
|
|
MenuBuilder.AddMenuEntry(FText::FromName(CurveName), FText::GetEmpty(), FSlateIcon(), Action);
|
|
}
|
|
}
|
|
|
|
|
|
void UAnimGraphNode_ModifyCurve::GetContextMenuActions(const FGraphNodeContextMenuBuilder& Context) const
|
|
{
|
|
if (!Context.bIsDebugging)
|
|
{
|
|
Context.MenuBuilder->BeginSection("AnimGraphNodeModifyCurve", LOCTEXT("ModifyCurve", "Modify Curve"));
|
|
|
|
// Clicked pin
|
|
if (Context.Pin != NULL)
|
|
{
|
|
// Get proeprty from pin
|
|
UProperty* AssociatedProperty;
|
|
int32 ArrayIndex;
|
|
GetPinAssociatedProperty(GetFNodeType(), Context.Pin, /*out*/ AssociatedProperty, /*out*/ ArrayIndex);
|
|
FName PinPropertyName = AssociatedProperty->GetFName();
|
|
|
|
if (PinPropertyName == GET_MEMBER_NAME_CHECKED(FAnimNode_ModifyCurve, CurveValues) && Context.Pin->Direction == EGPD_Input)
|
|
{
|
|
FString PinName = Context.Pin->PinFriendlyName.ToString();
|
|
FUIAction Action = FUIAction( FExecuteAction::CreateUObject(this, &UAnimGraphNode_ModifyCurve::RemoveCurvePin, FName(*PinName)) );
|
|
FText RemovePinLabelText = FText::Format(LOCTEXT("RemoveThisPin", "Remove This Curve Pin: {0}"), FText::FromString(PinName));
|
|
Context.MenuBuilder->AddMenuEntry(RemovePinLabelText, LOCTEXT("RemoveThisPinTooltip", "Remove this curve pin from this node"), FSlateIcon(), Action);
|
|
}
|
|
}
|
|
|
|
// If we have more curves to add, create submenu to offer them
|
|
if (GetCurvesToAdd().Num() > 0)
|
|
{
|
|
Context.MenuBuilder->AddSubMenu(
|
|
LOCTEXT("AddCurvePin", "Add Curve Pin"),
|
|
LOCTEXT("AddCurvePinTooltip", "Add a new pin to drive a curve"),
|
|
FNewMenuDelegate::CreateUObject(this, &UAnimGraphNode_ModifyCurve::GetAddCurveMenuActions));
|
|
}
|
|
|
|
// If we have curves to remove, create submenu to offer them
|
|
if (Node.CurveNames.Num() > 0)
|
|
{
|
|
Context.MenuBuilder->AddSubMenu(
|
|
LOCTEXT("RemoveCurvePin", "Remove Curve Pin"),
|
|
LOCTEXT("RemoveCurvePinTooltip", "Remove a pin driving a curve"),
|
|
FNewMenuDelegate::CreateUObject(this, &UAnimGraphNode_ModifyCurve::GetRemoveCurveMenuActions));
|
|
}
|
|
}
|
|
|
|
Context.MenuBuilder->EndSection();
|
|
}
|
|
|
|
void UAnimGraphNode_ModifyCurve::RemoveCurvePin(FName CurveName)
|
|
{
|
|
// Make sure we have a curve pin with that name
|
|
int32 CurveIndex = Node.CurveNames.Find(CurveName);
|
|
if (CurveIndex != INDEX_NONE)
|
|
{
|
|
FScopedTransaction Transaction( LOCTEXT("RemoveCurvePinTrans", "Remove Curve Pin") );
|
|
Modify();
|
|
|
|
Node.RemoveCurve(CurveIndex);
|
|
|
|
ReconstructNode();
|
|
FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified(GetBlueprint());
|
|
}
|
|
}
|
|
|
|
void UAnimGraphNode_ModifyCurve::AddCurvePin(FName CurveName)
|
|
{
|
|
// Make sure it doesn't already exist
|
|
int32 CurveIndex = Node.CurveNames.Find(CurveName);
|
|
if (CurveIndex == INDEX_NONE)
|
|
{
|
|
FScopedTransaction Transaction(LOCTEXT("AddCurvePinTrans", "Add Curve Pin"));
|
|
Modify();
|
|
|
|
Node.AddCurve(CurveName, 0.f);
|
|
|
|
ReconstructNode();
|
|
FBlueprintEditorUtils::MarkBlueprintAsStructurallyModified(GetBlueprint());
|
|
}
|
|
}
|
|
|
|
|
|
void UAnimGraphNode_ModifyCurve::CustomizePinData(UEdGraphPin* Pin, FName SourcePropertyName, int32 ArrayIndex) const
|
|
{
|
|
if (SourcePropertyName == GET_MEMBER_NAME_CHECKED(FAnimNode_ModifyCurve, CurveValues))
|
|
{
|
|
if (Node.CurveNames.IsValidIndex(ArrayIndex))
|
|
{
|
|
Pin->PinFriendlyName = FText::FromName(Node.CurveNames[ArrayIndex]);
|
|
}
|
|
}
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|