Commit Graph

130 Commits

Author SHA1 Message Date
Hyojong Shin
d804ee9928 Fixed a bug which was hiding Joint Target Location Pin in TwoBoneIK node
#code_review : lina.halper

[CL 2608707 by Hyojong Shin in Main branch]
2015-07-02 02:32:24 -04:00
Benn Gallagher
26397476c1 Non-Linear blend support for blend lists and state transitions
[CL 2607400 by Benn Gallagher in Main branch]
2015-07-01 09:45:27 -04:00
Michael Noland
2d953ade9f Animation: Improved bone driven controllers
- One driver value can now drive multiple components
- How a component is driven is now configurable (add to input, replace, add to ref pose and replace)
- The range limit is now defined on the input (before the multiplier is applied) rather than the output (existing ranges are fixed up on load)
- New details customization to make working with the node easier
- Individual scale components can now be a driver or one of the driven components, rather than just the max component of scale
- The node title now displays the driving equation (e.g., driven.rotation.z = -0.5 * driver.rotation.x)

Animation: Added a custom version for AnimGraph/AnimGraphRuntime usage

Upgrade Note: The exact behavior of the original node was not preserved, but there are now more configuration options, so please revisit any uses of bone driven controllers in your animation blueprints

[CL 2606968 by Michael Noland in Main branch]
2015-06-30 22:25:56 -04:00
Michael Noland
7d410e7509 Animation: Created an Observe Bone skeletal control that can be used to debug animations (prints out the current transform of a bone in the input pose as a bubble above the node)
[CL 2606949 by Michael Noland in Main branch]
2015-06-30 22:16:20 -04:00
Maciej Mroz
23bb4fc3e8 UE-17499 Could use a way to add custom type auto-conversions for blueprints
New FunctionMetadta "BlueprintAutocast" was added.

todo: add warning in UHT
todo: remove hardcoded functions from UEdGraphSchema_K2::SearchForAutocastFunction

#codereview Mike.Beach

[CL 2604137 by Maciej Mroz in Main branch]
2015-06-29 12:18:57 -04:00
Lina Halper
337bc3a2d5 #ANIM: Fixed additive layer not working properly
- It is broken whenever you apply any bone transform due to controller is not copying local atoms back to it.

[CL 2604079 by Lina Halper in Main branch]
2015-06-29 11:41:35 -04:00
Michael Noland
021493b2d0 Animation: Allow skeletal controls to specify the coordinate space that they would prefer the gizmo to be displayed in, and updated Modify Bone to use the new functionality
[CL 2601458 by Michael Noland in Main branch]
2015-06-25 17:57:56 -04:00
Dan Oconnor
96c7289b88 [UEBP-59] Optimize Blueprint loading done subsequently to initializing the blueprint action database, by decreasing the number of TObjectIterators we use to build the database.
[CL 2592248 by Dan Oconnor in Main branch]
2015-06-18 13:40:47 -04:00
Michael Noland
6a27c42041 Animation: Various improvements to the bone driven controller
- Added support for using a curve to map from input range to output range
- Added compilation warnings when a bone or component still needs to be selected
- Added a customization to hide the range/multipler when using a curve, and gated editing of the range based on bUseRange
- Minor optimization to evaluation speed
- Reorganized the properties into logical groups (Source/Driver, Mapping, Destination/Driven)

[CL 2591125 by Michael Noland in Main branch]
2015-06-17 18:54:05 -04:00
Michael Noland
df09d9a395 Animation: Added compilation warnings to UAnimGraphNode_ModifyBone when it will do nothing
[CL 2590711 by Michael Noland in Main branch]
2015-06-17 15:28:02 -04:00
Michael Noland
1e838f053e Animation: Cleaned up UAnimGraphNode_Base a bit (added a class comment, full DLL export, NULL->nullptr, forward declarations)
[CL 2590709 by Michael Noland in Main branch]
2015-06-17 15:27:23 -04:00
Benn Gallagher
18b95631d6 Anim transition getter refactor
[CL 2584044 by Benn Gallagher in Main branch]
2015-06-11 08:47:18 -04:00
Michael Noland
9b27d5a16d Animation: DLL export improvements for some skeletal control classes
- Changed some classes from MinimalAPI to full export, since all methods were already being exported
- Added some comments
- Some style tweaks (tabs/ws in function declarations)

[CL 2583709 by Michael Noland in Main branch]
2015-06-10 22:12:25 -04:00
Michael Noland
7c0f5172ac Animation: Started moving animation nodes out of Engine into a new AnimGraphRuntime module
- Moved all skeletal control nodes to start out

Upgrade Note: Modules containing custom animation nodes will need to have a dependency on the new "AnimGraphRuntime" module added to their Build.cs file
#codereview lina.halper

[CL 2582755 by Michael Noland in Main branch]
2015-06-10 10:57:15 -04:00
Martin Wilson
7fc3bafac5 Rotation support and component filtering added to spring node
API Change: Deprecation of bNoZSpring flag (Use bTranslateZ instead)

[CL 2562627 by Martin Wilson in Main branch]
2015-05-22 10:45:10 -04:00
Martin Wilson
ae71a8cca5 Added FCompactPose, contains only the bone transforms needed by RequiredBones. Allows us to do animation evaluation without having to refer to required bones array all the time
API Breaking Changes

Removed Functions:
FA2CSPose::SafeSetCSBoneTransforms
FA2CSPose::LocalBlendCSBoneTransforms

Member Type Changes:
- int32 -> FCompactPoseBoneIndex
--- FBoneTransform::BoneIndex
--- FABRIKChainLink::BoneIndex
- FA2CSPose -> FCSPose<FCompactPose>
--- FAnimNode_SkeletalControlBase::ForwardedPose
--- FComponentSpacePoseContext::Pose
- FA2Pose -> FCompactPose
--- FSlotEvaluationPose::Pose
--- FAnimNode_TransitionPoseEvaluator::CachedPose
--- FAnimNode_SaveCachedPose::CachedPose
--- FPoseContext::Pose

Paramater Changes:
- FA2Pose& -> FCompactPose&
--- UAnimSingleNodeInstance::InternalBlendSpaceEvaluatePose (FA2Pose& Pose -> FCompactPose&)
--- UAnimInstance::SequenceEvaluatePose
--- UAnimInstance::BlendSequences
--- UAnimInstance::CopyPose
--- UAnimInstance::ApplyAdditiveSequence
--- UAnimInstance::BlendSpaceEvaluatePose
--- UAnimInstance::BlendRotationOffset
--- UAnimInstance::GetSlotWeight
--- UAnimInstance::SlotEvaluatePose
- FA2CSPose& -> FCSPose<FCompactPose>&
--- FAnimNode_SkeletalControlBase::EvaluateBoneTransforms
--- UAnimGraphNode_SkeletalControlBase::ConvertCSVectorToBoneSpace
--- UAnimGraphNode_SkeletalControlBase::ConvertCSRotationToBoneSpace
--- UAnimGraphNode_SkeletalControlBase::ConvertWidgetLocation
--- UAnimPreviewInstance::ApplyBoneControllers
- TArray<FTransform> -> FCompactPose
--- UAnimPreviewInstance::SetKeyImplementation
--- UAnimSequence::GetAnimationPose
--- UAnimSequence::GetBonePose
--- UAnimSequence::GetBonePose_Additive
--- UAnimSequence::GetAdditiveBasePose
--- UAnimSequence::GetBonePose_AdditiveMeshRotationOnly
--- FAnimationRuntime::BlendPosesTogether ( + Removed NumPoses and RequiredBones )
--- FAnimationRuntime::BlendPosesTogetherPerBone  ( + Removed NumPoses and RequiredBones )
--- FAnimationRuntime::BlendPosesTogetherPerBoneInMeshSpace ( + Removed NumPoses and RequiredBones )
--- FAnimationRuntime::BlendPosesPerBoneFilter ( + Removed Skeleton and RequiredBones )
--- FAnimationRuntime::GetPoseFromSequence ( + Removed  RequiredBones )
--- FAnimationRuntime::GetPoseFromAnimTrack ( + Removed  RequiredBones )
--- FAnimationRuntime::FillWithRetargetBaseRefPose ( + Removed  RequiredBones )
--- FAnimationRuntime::ConvertPoseToAdditive ( + Removed  RequiredBones )
--- FAnimationRuntime::ConvertPoseToMeshRotation ( + Removed  RequiredBones )
--- FAnimationRuntime::BlendPosesAccumulate ( + Removed  RequiredBones )
--- FAnimationRuntime::BlendAdditivePose ( + Removed  RequiredBones )
--- FAnimationRuntime::GetPoseFromBlendSpace ( + Removed  RequiredBones )
--- FAnimationRuntime::ConvertCSTransformToBoneSpace
--- FAnimationRuntime::ConvertBoneSpaceTransformToCS
--- FAnimationRuntime::BlendMeshPosesPerBoneWeights ( + Removed Skeleton and RequiredBones )
--- FAnimationRuntime::BlendLocalPosesPerBoneWeights ( + Removed Skeleton and RequiredBones )
- TArray<FTransform> -> FTransform
--- UAnimSequence::ResetRootBoneForRootMotion
- int32 -> FCompactPoseBoneIndex
--- UAnimSequence::RetargetBoneTransform

FAnimationRuntime: Many changes to animation operation functions, removal of NumPoses and RequiredBones, conversion of TArray<FTransform> to FCompactPose

Removed USTRUCT markup from FBoneTransform
Removed UPROPERTY markup from FAnimNode_TransitionPoseEvaluator::CachedPose

[CL 2556671 by Martin Wilson in Main branch]
2015-05-19 06:19:22 -04:00
Andrew Rodham
2d77514016 Fixed not being able to rename some graph node types on initial creation
This addresses UE-14873.

[CL 2547706 by Andrew Rodham in Main branch]
2015-05-12 15:39:48 -04:00
Michael Schoell
db9c8e2240 UProperty and UFunction metadata for Category can now be localized and have improved FText usage throughout the editor (Blueprints, Behavior Trees, Materials, etc).
Big conversion of FStrings and FNames to FText.

Version bump to move some MaterialFunction UProperty from a TArray<FString> to TArray<FText> (some Engine assets are older than being allowed to auto-convert the UProperty)

Auto conversion of FName to FText (and back) now supported (as well as TArrays of those types).

Searching categories by both the localized string and the source string is now supported in Blueprints.

#jira UE-14481 - We are missing ability to translate node categories

#codereview Justin.Sargent

[CL 2542875 by Michael Schoell in Main branch]
2015-05-08 10:46:42 -04:00
Michael Schoell
abb8124662 Keywords metadata is now localized.
Blueprint node searching now leverages localized keyword metadata for searching, so searches can now be done in the current langauge and English to find the same nodes.

#jira UE-12049 - Using translated editor, Blueprint node search returns differ for English search terms compared to search terms in the current language

#codereview justin.sargent

[CL 2517785 by Michael Schoell in Main branch]
2015-04-20 12:25:37 -04:00
Michael Schoell
63b7360ae0 Removed the Blueprint Editor's legacy node menu system.
#jira UE-13391 - Delete old BP menu system (is causing confusion)

#codereview Mike.Beach

[CL 2514361 by Michael Schoell in Main branch]
2015-04-16 11:47:54 -04:00
Phillip Kavan
11982590d6 [UE-11380] Reroute nodes now function correctly in an animation graph after compiling an animation blueprint.
change summary:
- added new UEdGraphNode::IsCompilerRelevant() and UEdGraphNode::GetPassThroughPin() APIs
- added a UK2Node::GetPassThroughPin() override to return the opposing exec pin on any given exec pin, else NULL, as base node logic
- added a UK2Node_Knot::IsCompilerRelevant() override to always return false for reroute nodes (since they are always precompiled out)
- added a UK2Node_Knot::GetPassThroughPin() override to always return the opposing pin given either the input or output pin, else NULL
- added new FBlueprintEditorUtils::GetCompilerRelevantNodes() and FBlueprintEditorUtils::FindFirstCompilerRelevantNodes() utility methods
- modified UAnimGraphNode_Base::GetLinkIDLocation() to look for the first linked "compiler-relevant" node rather than the literal first linked node

#codereview Michael.Noland

[CL 2508464 by Phillip Kavan in Main branch]
2015-04-10 12:36:02 -04:00
Benn Gallagher
1896f945aa Fix step forwards/backwards not snapping to frames in montages.
[CL 2508309 by Benn Gallagher in Main branch]
2015-04-10 09:51:35 -04:00
Mikolaj Sieluzycki
a96989f147 Add includes to files to remove the need of including Engine.h.
[CL 2508000 by Mikolaj Sieluzycki in Main branch]
2015-04-10 03:30:54 -04:00
PaulEremeeff
c9a246101e PR #1013: Fixing PVS-Studio warnings. (Contributed by PaulEremeeff)
Some files have been omitted and will be submitted with modified corrections

[CL 2505544 by Dan Oconnor in Main branch]
2015-04-08 14:46:25 -04:00
Michael Schoell
75200e5a0d Cached node titles can now be forced to refresh without iteration over every node.
This will occur with every structural modification to any BP, node titles refresh only when visible.

[CL 2499923 by Michael Schoell in Main branch]
2015-04-02 11:16:23 -04:00