Commit Graph

29 Commits

Author SHA1 Message Date
max chen 2c7a093ff2 Curve Editor: Filter to object's curves instead of just a single channel
#jira UE-77012
#rb max.chen

#ROBOMERGE-SOURCE: CL 7432349 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v371-7306989)

[CL 7432355 by max chen in Main branch]
2019-07-17 16:40:24 -04:00
max chen 4fb3a1124f Curve Editor: Adding euler filter
#jira UE-76926
#rb max.chen

#ROBOMERGE-SOURCE: CL 7432345 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v371-7306989)

[CL 7432352 by max chen in Main branch]
2019-07-17 16:40:20 -04:00
max chen ef7bd15719 Curve Editor: Mark as RF_Transactional
#jira UE-76461
#rb andrew.rodham

#ROBOMERGE-SOURCE: CL 7291042 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v370-7290619)

[CL 7291054 by max chen in Main branch]
2019-07-12 14:05:42 -04:00
max chen d464d733a5 Curve Editor: Guard against viewwidth 0.
#jira FORT-187759
#rb none

#ROBOMERGE-SOURCE: CL 7286080 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v369-7254125)

[CL 7286132 by max chen in Main branch]
2019-07-12 00:34:44 -04:00
matt hoffman 92d3fbdd79 Fixed adding keys to a curve model sometimes causing tangents to get incorrectly calculated. This was causing issues with Buffered curves.
#jira UE-75157
#rb Max.Chen


#ROBOMERGE-SOURCE: CL 7269268 via CL 7269269 via CL 7269958 via CL 7270008 via CL 7275787
#ROBOMERGE-BOT: (v369-7254125)

[CL 7275892 by matt hoffman in Main branch]
2019-07-11 11:40:44 -04:00
matt hoffman efe03fc1f8 Added support to the Curve Editor for 'S' to key transform channels individually like in the main Sequencer. This makes the Sequencer Curve Editor commands available externally so you can add additional commands to the Sequencer-specific curve editor without knowing about the actual curve editor.
#jira UE-75645
#rb Max.Chen


#ROBOMERGE-SOURCE: CL 7265462 via CL 7265463 via CL 7269439 via CL 7269674 via CL 7274540
#ROBOMERGE-BOT: (v369-7254125)

[CL 7274690 by matt hoffman in Main branch]
2019-07-11 09:45:57 -04:00
matt hoffman 3d6f277bc2 Robomerge merge fixes.
#rb Cody.Haskell


#ROBOMERGE-SOURCE: CL 7267686 via CL 7269064 via CL 7273929
#ROBOMERGE-BOT: (v369-7254125)

[CL 7274054 by matt hoffman in Main branch]
2019-07-11 09:38:14 -04:00
matt hoffman 8e1072332e Pressing Ctrl F in the Sequencer or Sequencer Curve Editor will now jump keyboard focus to the search widget allowing you to quickly search the tree.
#rb Max.Chen


#ROBOMERGE-OWNER: matt.hoffman
#ROBOMERGE-AUTHOR: matt.hoffman
#ROBOMERGE-SOURCE: CL 7261981 via CL 7261997 via CL 7266546 via CL 7266556 via CL 7272006
#ROBOMERGE-BOT: (v369-7254125)

[CL 7272007 by matt hoffman in Main branch]
2019-07-10 22:07:00 -04:00
andrew rodham 6a0839578d Sequencer: Fixed a crash caused by stale tree item IDs being retained and selected
#jira UE-76896
#rb Mike.Zyracki, Max.Chen

#ROBOMERGE-SOURCE: CL 7256731 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v369-7254125)

[CL 7256736 by andrew rodham in Main branch]
2019-07-09 19:50:29 -04:00
Andrew Rodham 674a5d1cba Curve Editor: Tree filtering and synchronization improvements
This is a direct copy from CL 7095088 with a partial revert of original CL 6759985 to address the merge conflict

  - When changing selection in sequencer, the curve editor now selects the same nodes on its tree as well as isolating (auto-filtering) the tree to those nodes. This makes it much easier to drill down into curves from the sequence. Both these settings are configurable through the Editor Preferences ("Synchronize Curve Editor Selection" and "Isolate Curve Editor To Selection")
  - Changed pin widgets to only be visible when their table row is hovered, or if the pin is active
  - Changed filter logic to exclude implicit children when a sibling was explicitly matched. This prevents seemingly unmatched nodes showing up in hierarchies where nested matches occur.
  - Expanded text filter logic to include Parent.Child.Gradchild syntaxfor matching specific hierarchies of nodes

#jira UE-76189
#rb Max.Chen, Matt.Hoffman

#ROBOMERGE-OWNER: Andrew.Rodham
#ROBOMERGE-AUTHOR: andrew.rodham
#ROBOMERGE-SOURCE: CL 7099711 in //UE4/Release-4.23/...
#ROBOMERGE-BOT: RELEASE (Release-4.23 -> Main) (v367-6836689)

[CL 7099743 by Andrew Rodham in Main branch]
2019-06-20 08:13:28 -04:00
max chen a4ef415b9e Curve Editor: Fix dragging exit tangent (simple typo)
#jira UE-76304
#rb none


#ROBOMERGE-SOURCE: CL 7021915 via CL 7022006
#ROBOMERGE-BOT: (v367-6836689)

[CL 7022007 by max chen in Main branch]
2019-06-15 03:20:50 -04:00
matt hoffman 921a719d4a Added the Sequencer Playback controls to the Sequencer Curve Editor. It does this by creating a second copy of the Sequencer Transport Controls widget (which is already bound to Sequencer) and inserting it into the treeview UI. The keyboard shortcuts are also supported via placing the relevant commands into a new Command List and merging that with the Curve Editor instance.
#rb Max.Chen


#ROBOMERGE-SOURCE: CL 6956074 via CL 6957784
#ROBOMERGE-BOT: (v367-6836689)

[CL 6970831 by matt hoffman in Main branch]
2019-06-13 11:54:40 -04:00
matt hoffman b035420261 Changes the snapping behavior in the Curve Editor to lock onto the first direction you move after pressing shift, instead of the bigger axis you've moved from. Releasing shift and then pressing again will allow you to change which direction you are locked onto.
#jira UE-75644
#rb Max.Chen


#ROBOMERGE-SOURCE: CL 6942681 via CL 6945404
#ROBOMERGE-BOT: (v366-6836689)

[CL 6947005 by matt hoffman in Main branch]
2019-06-11 23:46:30 -04:00
andrew rodham 9574f6596d Removed erroneous return
#rb None
#jira UE-75685


#ROBOMERGE-SOURCE: CL 6849216 via CL 6849977
#ROBOMERGE-BOT: (v366-6836689)

[CL 6850139 by andrew rodham in Main branch]
2019-06-05 12:45:19 -04:00
andrew rodham c890741618 Curve Editor: Implemented basic text filtering for the curve editor tree
- Filter terms are applied as a boolean OR, case-insensitive substring match
  - Pre-filtered expansion states are saved and restored when starting or clearing a filter
  - By default all matched items and parents are expanded, but not matched item's grand children. This gives the best tradeoff for filtered visibilty.
  - Tree items that are shown but did not match the filter terms are now shown with a subdued foreground color.

#jira UE-74355
#rb Matt.Hoffman


#ROBOMERGE-SOURCE: CL 6845199 via CL 6846451
#ROBOMERGE-BOT: (v366-6836689)

[CL 6848527 by andrew rodham in Main branch]
2019-06-05 10:52:10 -04:00
Chris Gagnon 930e33cb48 Copying //UE4/Dev-Editor to Dev-Main (//UE4/Dev-Main) for 4.23 From CL 6837861
#rb none

[CL 6838042 by Chris Gagnon in Main branch]
2019-06-04 15:42:48 -04:00
max chen 1407b9eef9 Curve Editor: Update copyright notices
#rb none


#ROBOMERGE-SOURCE: CL 6644152 via CL 6644170
#ROBOMERGE-BOT: (vundefined-6620334)

[CL 6644179 by max chen in Main branch]
2019-05-26 02:59:09 -04:00
matt hoffman 77ea17e760 Applying buffered curves now creates a transaction so it can be undone.
#jira UE-75159


#ROBOMERGE-SOURCE: CL 6636968 via CL 6640497
#ROBOMERGE-BOT: (vundefined-6620334)

[CL 6640515 by matt hoffman in Main branch]
2019-05-24 17:24:24 -04:00
matt hoffman 5167ad279f Removed SNumericList from the generic Slate widgets and moved it to the Curve Editor as SCurveValueSnapList. This widget was only in use by the curve editor and the curve editor may be phasing its use case out soon.
#rb None


#ROBOMERGE-SOURCE: CL 6634072 via CL 6635977
#ROBOMERGE-BOT: (vundefined-6620334)

[CL 6636105 by matt hoffman in Main branch]
2019-05-24 16:04:27 -04:00
matt hoffman d0df825811 Rearranged the Sequencer curve editor toolbar to match design.
#ROBOMERGE-SOURCE: CL 6633218 via CL 6633844
#ROBOMERGE-BOT: (vundefined-6620334)

[CL 6633941 by matt hoffman in Main branch]
2019-05-24 14:43:06 -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
mike zyracki 90d87e963f Flatten works with weighted tangents. Since we don't have access to tick resolution on the section we do it as a two step, flatten as nonweighted then convert back to weighted.
#jira UE-72675
#rb matt.hoffman
#lockdown cristina.riveron

#ROBOMERGE-SOURCE: CL 5859112 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5862496 by mike zyracki in Main branch]
2019-04-12 14:26:56 -04:00
Chris Gagnon 8fc25ea18e Merging //UE4/Dev-Main to Dev-Editor (//UE4/Dev-Editor)
#rb none

[CL 4676797 by Chris Gagnon in Dev-Editor branch]
2019-01-02 14:54:39 -05: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
JeanMichel Dignard 6ab73c6457 Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4071915)
#lockdown Nick.Penwarden
#rb none

============================
  MAJOR FEATURES & CHANGES
============================

Change 4060527 by Anousack.Kitisa

	Added support for importing FBX user properties as metadata on StaticMesh when importing FBX.
	Added support for exporting StaticMesh metadata as FBX user properties when exporting StaticMesh to FBX.

	#jira UESP-567

Change 4060835 by Jamie.Dale

	Added assign method to Python exposed structs

	This lets you assign the value of one struct instance onto another instance (rather than copy the pointer in Python). It also accepts anything that casts to the destination struct.

Change 4060838 by Jamie.Dale

	Include unary operator function tooltips in doc string

Change 4060843 by Jamie.Dale

	Fixed PythonizeValue including deprecated properties in the init function for a struct

Change 4060908 by Jamie.Dale

	Fixed some name conflicts in generated Python glue

Change 4061065 by Jamie.Dale

	Stubbed struct return values are now default constructed

Change 4061205 by David.Hibbitts

	Added blueprint functions to create a message bus source, for use in projects where the Editor UI is not available or is impractical.
	Added a blueprint function to get available subject names for the LiveLink Client
	Added a RemoveSource method to ILiveLinkClient
	Added a GetSubjectNames method to ILiveLinkClient
	Fixed a crash when RequestShutdown was called on a MessageBusSource after the HeartbeatManager had already been shut down.

Change 4061421 by Patrick.Boutot

	[AJA] Warn the user if he requested the key and the backbuffer is not setup properly.
	#jira UE-58614

Change 4061620 by Jamie.Dale

	Made the Sphinx config a template so we can inject the current engine version into it

Change 4062578 by Jamie.Dale

	Optimized Python stub and doc gen file writes

	 - Files are now only written when they've changed.
	 - We now only remove files that are stale.
	 - No requests to generate stub and doc files are queued before the first Tick.

Change 4062634 by Jamie.Dale

	No longer export FDateTime defaults to struct __init__ as they can be non-deterministic

Change 4064275 by Jamie.Dale

	Added callbacks for when Python is initialized and shutdown so that external modules can hook-in appropriately

Change 4064613 by James.McNatton

	Change to initialization for FVirtualCameraWaypoint and FVirtualCameraSettingsPreset to remove non-deterministic constructors and a few resulting cleanup items

Change 4064878 by Patrick.Boutot

	Add timecode provider plugin to capture from the Audio jack.

Change 4064910 by Patrick.Boutot

	[AJA]
	Add AjaTimecodeProvider that provider the timecode from a SDI input source.

Change 4067451 by Jamie.Dale

	Added command line options to enable all plugins, optionally excluding certain plugins

Change 4067489 by Simon.Tourangeau

	Support for DX12 quad buffer stereo rendering

Change 4068640 by Patrick.Boutot

	Add a state to CustomTimeStep. Show the state of the CustomTimeStep in "stat fps".

Change 4069147 by Patrick.Boutot

	Move Mediasmith console to Engine. Renamed to TimecodeSynchronizer.

Change 4071727 by Matt.Hoffman

	Initial pass at exposing Sequencer's Render to Movie functionality to Python. All settings that can be adjusted via the UI can be set from Python and renders can be invoked for both in-editor capture as well as new process capture. A basic API is provided which enables querying if a render in progress and canceling an in progress one.

	#jira UESP-541

[CL 4071957 by JeanMichel Dignard in Main branch]
2018-05-14 17:38:22 -04:00