Commit Graph

16 Commits

Author SHA1 Message Date
Marc Audy
a7c9001a94 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14075166
#rb
#rnx

[CL 14075271 by Marc Audy in ue5-main branch]
2020-08-11 01:36:57 -04:00
ryan durand
627baf970a Updating copyright for Engine Editor.
#rnx
#rb none


#ROBOMERGE-SOURCE: CL 10869241 via CL 10869527 via CL 10869904
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870586 by ryan durand in Main branch]
2019-12-26 15:33:43 -05:00
andrew rodham
ef093b67ef Sequencer: Downgraded a check for an ensure when re-adding a channel wtih a duplicate name to the sequencer tree
- If a channel name exists multiple times within the channel meta-data, the assumption that adding a new node would increase the insertion index was invalid due to an existing valid entry being moved. This is technically bad content but we can handle it more gracefully than a fatal assert, so I'm downgrading it to an ensure.

#jira UE-77931
#rb Mike.Zyracki

#ROBOMERGE-SOURCE: CL 7650947 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v372-7473910)

[CL 7650948 by andrew rodham in Main branch]
2019-07-29 13:45:56 -04:00
andrew rodham
17b2ebe0de Sequencer: Fixed key editors breaking when their channel handles became invalid
- The key editor switcher now detects when any change of the key area array has been made and rebuilds its widget switcher in that case
  - This change also adds protection against stale key areas remaining inside a key area node by adding a tree serial number to the key areas in the same way we do for key area nodes

#rb Max.Chen


#ROBOMERGE-OWNER: andrew.rodham
#ROBOMERGE-AUTHOR: andrew.rodham
#ROBOMERGE-SOURCE: CL 6988596 via CL 7019386
#ROBOMERGE-BOT: (v367-6836689)

[CL 7019390 by andrew rodham in Main branch]
2019-06-14 19:20:31 -04:00
andrew rodham
381d61c917 Sequencer: Section layout builder now guarantees insertion order based on the order of operation, regardless of the existing state of the layout
#jira UE-75672
#rb Max.Chen


#ROBOMERGE-SOURCE: CL 6968547 via CL 6968628
#ROBOMERGE-BOT: (v367-6836689)

[CL 6983694 by andrew rodham in Main branch]
2019-06-13 18:52:31 -04:00
max chen
b26681d077 Sequencer: Update with the channel metadata name.
Otherwise, the key area was getting the name Location instead of Location.X. This fixes a subtle bug that appeared when copying and pasting keys. On undo, the key areas would get their names updated from Location.X to Location, Location.Y to Location, and Location.Z to Location. Then the keys would get copied with those key area names and pasted all to the same channel.

#jira UE-75637
#rb andrew.rodham


#ROBOMERGE-SOURCE: CL 6911775 via CL 6912698
#ROBOMERGE-BOT: (v366-6836689)

[CL 6914094 by max chen in Main branch]
2019-06-10 14:24:59 -04:00
matt hoffman
5fc20eb45d This is a significant overhaul to the Curve Editor used by Sequencer which adds a plugin-based architecture and extensibility. New tools and toolbar buttons can be added to all usages of the curve editor via user plugins, and the different views for data can be created modularly so new implementations of the editor can register their own way of drawing their data and the tools should just work. Additionally, you can now write your own filters to operate on curve editor data for custom implementations of smoothing, key generation, etc.
The curve editor supports three view types by default - an absolute view (default, matches old behavior), a stacked view and a normalized view. Stacked views draw each curve separately (so non-overlapping) and normalized against their own min/max values. The normalized view draws all curves overlapping with each one normalized against its own min/max values.

A tree view has been added to help effectively manage large numbers of curves. Selecting curves in the treeview controls which curves are visible in the view area. The treeview also supports pinning curves. These pinned curves will always be visible regardless of your selection in the tree view.

A transform tool and a retiming tool have been implemented (via a plugin) which is enabled by default. The transform tool allows you to do a marquee selection of keys and then translate and scale the positions of these keys. The retiming tool allows you to create a 1 dimensional lattice to adjust the timing of your keys with a linear falloff between each lattice point. These tools work across multiple views at the same time which is especially useful if you are representing one dimensional data (such as event keys) in a view, as it allows you to adjust this data at the same time as your animation curves. A smoothing filter has been implemented (via a plugin) to allow running highpass and lowpass filters on your keys.

Opening the curve editor in Sequencer/UMG now creates a separate dockable tab which can be resized and docked as desired. A time slider has been added to the Curve Editor which is synchronized to the playback time in Sequencer. This allows you to scrub time in the curve editor without having to find the Sequencer window and adjust time there while looking at your keys and previewing your animation in the viewport at the same time.

Rudimentary support has been added for saving and later restoring a set of curves in your current session. This allows you to do a rudimentary copy/paste of entire curves but can also be useful for saving a curve, making adjustments to it and then deciding you want to go back - simply reapply the saved curve! Each curve added supports an intention name (such as "Location.X" or "FieldOfView"), and these intention names will be used when trying to apply curves. This allows you to reliably take all of the curves of a transform on one object and apply them to another object (and ensure that Location.X gets applied to the new Location.X, etc.) this can be helpful if you have a mixed set of curves buffered (such as a location and a field of view). In the event that no curves match by intention you can store and apply a single curve at a time from any intention to any other intention.

The Curve Asset editors (float, vector and color curve assets) have been changed to use the new editor. They support the same treeviews, filtering and tools that the Sequencer editor does. In addition, the Color Curve asset editor adds an additional view which provides a 1 dimensional gradient editor as an easier way to visualize and edit colors instead of the channels individually.


#rb Max.Chen, Andrew.Rodham


#ROBOMERGE-SOURCE: CL 6631811 via CL 6633746
#ROBOMERGE-BOT: (vundefined-6620334)

[CL 6633863 by matt hoffman in Main branch]
2019-05-24 14:42:05 -04:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00
Ben Marsh
f86325bfa7 Merging //UE4/Release-4.17 @ CL 3528061 to Release-Staging-4.17 (//UE4/Release-Staging-4.17)
#rb none
#jira UE-123

[CL 3535468 by Ben Marsh in Staging-4.17 branch]
2017-07-13 10:13:07 -04:00
Ben Marsh
20bf0eb6a1 Updating copyright notices to 2017 (copying from //Tasks/UE4/Dev-Copyright-2017).
#rb none
#lockdown Nick.Penwarden

[CL 3226823 by Ben Marsh in Main branch]
2016-12-08 08:52:44 -05:00
Ben Marsh
4ba423868f Copying //UE4/Dev-Build to //UE4/Dev-Main (Source: //UE4/Dev-Build @ 3209340)
#lockdown Nick.Penwarden
#rb none

==========================
MAJOR FEATURES + CHANGES
==========================

Change 3209340 on 2016/11/23 by Ben.Marsh

	Convert UE4 codebase to an "include what you use" model - where every header just includes the dependencies it needs, rather than every source file including large monolithic headers like Engine.h and UnrealEd.h.

	Measured full rebuild times around 2x faster using XGE on Windows, and improvements of 25% or more for incremental builds and full rebuilds on most other platforms.

	  * Every header now includes everything it needs to compile.
	        * There's a CoreMinimal.h header that gets you a set of ubiquitous types from Core (eg. FString, FName, TArray, FVector, etc...). Most headers now include this first.
	        * There's a CoreTypes.h header that sets up primitive UE4 types and build macros (int32, PLATFORM_WIN64, etc...). All headers in Core include this first, as does CoreMinimal.h.
	  * Every .cpp file includes its matching .h file first.
	        * This helps validate that each header is including everything it needs to compile.
	  * No engine code includes a monolithic header such as Engine.h or UnrealEd.h any more.
	        * You will get a warning if you try to include one of these from the engine. They still exist for compatibility with game projects and do not produce warnings when included there.
	        * There have only been minor changes to our internal games down to accommodate these changes. The intent is for this to be as seamless as possible.
	  * No engine code explicitly includes a precompiled header any more.
	        * We still use PCHs, but they're force-included on the compiler command line by UnrealBuildTool instead. This lets us tune what they contain without breaking any existing include dependencies.
	        * PCHs are generated by a tool to get a statistical amount of coverage for the source files using it, and I've seeded the new shared PCHs to contain any header included by > 15% of source files.

	Tool used to generate this transform is at Engine\Source\Programs\IncludeTool.

[CL 3209342 by Ben Marsh in Main branch]
2016-11-23 15:48:37 -05:00
Matthew Griffin
bb70b349ce Merging CL 2804086 from //UE4/Release-4.11 to Dev-Main (//UE4/Dev-Main) to isolate copyright update
#lockdown Nick.Penwarden

[CL 2819020 by Matthew Griffin in Main branch]
2016-01-07 08:17:16 -05:00
Nick Penwarden
9fceac26dd Copying //UE4/Orion-Staging to Dev-Main (//UE4/Dev-Main)
Orion changes originate from CL 2763274

#lockdown ben.marsh

[CL 2764342 by Nick Penwarden in Main branch]
2015-11-12 12:38:50 -05:00
Nick Penwarden
fc669c6fc4 Mergine changes from //depot/UE4 to //UE4/Main
[CL 2749262 by Nick Penwarden in Main branch]
2015-10-31 10:55:13 -04:00
Andrew Grant
c0452957a1 Merging latest engine code from Orion via //depot/UE4-To-//UE4/Main
[CL 2744667 by Andrew Grant in Main branch]
2015-10-28 08:58:16 -04:00