- introduced ISequencerTrack
- reduced dependency on FMovieSceneTrack
- forward declarations
- added missing virtual destructors, include files, comments
- NULL to nullptr
[CL 2700079 by Max Preussner in Main branch]
- Events
Events work by writing to a preallocated buffer exposed to the VM as "SharedData". The underlying data storage for these is the same as particle attriubtes. Each "Shared Data" view in the VM has a counter which is incremented or decremented to aqcuire and consume a slot in this buffer for any particle that wished to write or read from it.
In the graph, this is done via ReadEvent and WriteEvent nodes. Each lets the user define the data they wish to read or write, just like for particle attributes.
Each also has a mandatory "Valid" pin which indicates whether the data being read or written is valid.
e.g.
A write would be marked deliberately valid or invalid by the user to control which particles write out event data. Valid <= 0.0f means dont' write. Valid > 0.0f means do write. Matches current working of less than etc. Should probably change to use ints when they're supported.
A read would be valid or not depending on whether there is data available in the event buffer.
Events TODO:
Once ints are supported, alot more power can be had using direct indexing of the buffers.
This leads me onto supporting generic, non-event buffers. Should be very easy to do.
Much of the VM support is hacked in and will want to be replaced after scalarization.
I may also move away form a "Shared Data" area and write a more general array feature. Couldn't really do this initially with no int support. Should have really done scalarization+int support first.
Needs BP interface.
** SECONDARY FEATURES **
- VM Debugger working - Still basic and rough. Allows a single particle to be traced through the VM for it's lifetime.
- Function Merging changes - Merged as needed during compiler traversal rather than all at start.
- Constatnt changes - Splat scalars when building table, not runtime. Faster and reduced code complexity.
- Fixed reallocation of niagara node pins so that existing connections are preserved.
- Added a reregister context class to reregister all niagara components that use a particualr script when that script is recompiled. TODO: Should also do this for property changes in the editor I think.
- Implemented GreaterThan Op. The reverse of LessThan
- Implemented VectorSelect Op. > 0.0f Selects input A, otherwise B.
- Added a new Graph Editor Tab to the Niagara Graph Editor. "Flattened Graph" shows you the scripts graph but with all the function calls merged into the main graph. Useful for debugging. Still a bit rough around the edges. Might not make it to V1.0 of niagara but useful for the moment.
** MINOR FIXES **
Fixed crash in Dev UI in the effect editor.
Tweakd the details customization for the dev ui.
Fixed leakage of all effect instances that were created. This stuff still needs some work. Need to do a pass over the high level stuff in Niagara and more carefully define lifetimes and ownerships.
[CL 2662489 by Simon Tovey in Main branch]
- Fixed shots and sub-movie scene sequences being broken by the removal of UMovieScene as an asset class
[CL 2634030 by Matt Kuhlenschmidt in Main branch]
- An optional slider at the bottom of the timeline that show a start/end and in/out range. When enabled, adjusting the timeline (panning/zooming) will be locked to the start/end range. This is another option which is on by default.
- Added project settings for the time range. For the level editor sequencer, it defaults to frames 101-200.
- When the slider is not visible (the default for UMG), there should be no change in behavior.
[CL 2633917 by Max Chen in Main branch]
- IMovieSceneAnimation derivatives are now the primary types consumed by Sequencer; they hold a root MovieScene inside
- Object binding managers have been removed; bindings are persisted in UActorAnimation, UNiagaraAnimation, UWidgetAnimation
- MovieSceneAssetEditor is now ActorAnimationEditor and became a plug-in
- MovieSceneRuntimePlayer is now ActorAnimationPlayer; K2Node_PlayMovieScene has been removed
#CodeReview: matt.kuhlenschmidt, frank.fella, nick.darnell, olaf.piesche, max.chen, andrew.rodham
[CL 2628945 by Max Preussner in Main branch]
Fixes for lots of existing modules by removing all dynamically loaded duplicates (this is probably not the correct solution, but is the safest).
#codereview robert.manuszewski
[CL 2610845 by Steve Robb in Main branch]
-Sub-movie scenes and shots can now be properly deleted
-Sub-movie scenes now properly update their spawnables when they are created/deleted
-Movie scene instances now have a chance to clean up their inner movie scene data when they are removed
-Movie scene shot tracks now properly evaluate any inner tracks they have
-Movie scene sections are now evaluated at t=0 instead of being skipped due to TRange not working if both start and end time are zero
[CL 2605023 by Matt Kuhlenschmidt in Main branch]
- Creating a new shot will now create a new sub-movie scene with a shot name and number
- Refactored shot playback in the editor so that it properly sends the correct data to the level viewport being previewed
- Shot tracks are no longer considered a master track. Each movie scene has a dedicated shot track that is created if needed. Only the root movie scene shot track is updated at runtime however
[CL 2604023 by Matt Kuhlenschmidt in Main branch]
This arranges all emitters in an SDetailView with some customization.
Primary benefit of this is that hooking things into the UI will require almost no work and elements can still be customized for a good UX.
Previous UI is still available and should work exactly as before.
Quite a bit of refactoring was needed to acheive this but much of it was needed for other things anyway and/or has some nice additonal benefits.
E.g.
- All constant types are supported easily.
- You can now create a default data object in the graph which will propagate through to the effect editor.
- Adding new data object types will be very easy.
Also added a delete and duplicate button for emitters in both UIs.
#codereview olaf.piesche
[CL 2590057 by Simon Tovey in Main branch]