50 Commits

Author SHA1 Message Date
nicholas howe
1cff9d7ff8 MetaSound Frontend allows derived classes to attach to base class pins at runtime.
FDataTypeRegistry::GetDataTypeInfo walks up the class hierarchy searching for a registered class.
Adds FDataTypeRegistryInfo::bIsExplicit to replace the editor's IsExplicitProxyClass and enable the same functionality of requiring exact types at runtime.

#rb rob.gay
[REVIEW] [at]phil.popp
#preflight 6470afe55d3ca2dfd99ab6a1

[CL 25649438 by nicholas howe in ue5-main branch]
2023-05-26 13:55:21 -04:00
buzz burrowes
6a343186d8 MetasoundParameterPack V1
[REVIEW] [at]phil.popp [at]rob.gay [at]aaron.mcleran
#preflight 639b5db4012902cb8d76c448

[CL 23532613 by buzz burrowes in ue5-main branch]
2022-12-15 17:03:02 -05:00
helen yang
614fa56c85 Fix MetaSound input widget value not matching actual default value
#jira UE-168040
#rb rob.gay
#preflight 635547b40313c2497498ae78

#rnx

[CL 22779973 by helen yang in ue5-main branch]
2022-10-26 10:53:25 -04:00
helen yang
0f9445aed9 Fix undo/redo for MetaSound widgets and linear output for volume widgets
- Differentiate between normalized linear and audio linear value for volume output options

#jira UE-145790
#jira UE-155181
#rb phil.popp
#preflight 634f3778c569571da8a4ab2c
#rnx

[CL 22635724 by helen yang in ue5-main branch]
2022-10-19 15:34:44 -04:00
bryan sefcik
117472780d Fixed include paths.
#jira
#preflight 634ee62fe746026e48eb077e

[CL 22621687 by bryan sefcik in ue5-main branch]
2022-10-19 06:39:08 -04:00
rob gay
0a1401644a Remove AnalyzerAddress from MetaSound Editor UX/auto-node registration
#rb helen.yang
[REVIEW] helen.yang
#jira UE-165926
#rnx
#preflight 63445019e94bf5d35ebd356f

[CL 22436806 by rob gay in ue5-main branch]
2022-10-10 15:21:30 -04:00
rob gay
9dbc0c6693 [MetaSounds] Editor Graph Syncronization Upgrade
- Move synchronize/details panel flag to more generic ModifyContext
- Do not use MarkAsGarbage as means of enforcing not to show object in details panel to avoid leaving objects in invalid state if undo called. Check ed graph membership instead
- Get rid of leaky namechanged delegates
    - Allows for migration to isolated synchronization in the future
    - Removes conflation of having to synchronize and update views when modifying frontend document
    - Decouples concept of a specific view to update from generic frontend graph modifications
#rb helen.yang
#jira UE-151448
#preflight 632b7afdc7791417aa44126f

[CL 22142063 by rob gay in ue5-main branch]
2022-09-22 15:02:24 -04:00
helen yang
474b9a98b6 MetaSound constructor pin tooltip clarification
#rb trivial
#preflight skip
#rnx

[CL 21522872 by helen yang in ue5-main branch]
2022-08-23 18:22:57 -04:00
helen yang
e7764f0feb Remove cvar and unhide constructor pins from MetaSound editor
#rb trivial
#jira UE-151661
#preflight 62febf963c4417dcec218371

#rnx

[CL 21458268 by helen yang in ue5-main branch]
2022-08-19 11:39:24 -04:00
helen yang
abcf114f57 MetaSound Constructor pin editor-frontend integration checkpoint
- Both inputs and outputs can be constructor vertices, not just inputs
- Enforce connection and data type constraints for access types
- Prevent default value constructor value from being changed while playing
- Added cvar (default disabled) for enabling constructor pin option in editor

#jira UE-151661
#rb phil.popp
#preflight 62d59f4bf156340c79cfcbf5

[CL 21152841 by helen yang in ue5-main branch]
2022-07-18 17:14:25 -04:00
Rob Gay
d5645c2286 Split MetaSound DataType "IsArrayType()" function into bIsArrayParseable & bIsArrayType members, deprecating function in favor of caching booleans on DataType registration
Enforce single UObject class --> MetaSound Frontend class & fix-up callsites relying on ArrayObject type/literals using cached proxy type. This lead to confusion WRT what registered type is directly associated with a given UObject & possible bugs therein.
#rb phil.popp
#rnx
#jira none
#preflight 62c890fb2823f28cf281a8f1

[CL 21100292 by Rob Gay in ue5-main branch]
2022-07-14 17:51:07 -04:00
helen yang
730b1615b1 Various MetaSound Editor UX improvements for member defaults and selection
- Add Metasound editor setting for default input widget type
- Change member default type from bool to float
- Make widgets only available for inputs (no longer for variables)
- Automatically select/focus newly added/promoted nodes
- Selecting a single node selects the corresponding member in the graph member list if applicable

#jira UE-156767
#jira UE-156772
#rb rob.gay
#preflight 62aa1a77da0af39a474e8975

[CL 20688866 by helen yang in ue5-main branch]
2022-06-16 12:30:27 -04:00
Rob Gay
ca643f250e MetaSound Editor Analyzer Checkpoint
#rb helen.yang
#jira UE-147027
#rnx
#preflight 62855a90614041edb7a54d23

[CL 20285298 by Rob Gay in ue5-main branch]
2022-05-19 15:24:49 -04:00
helen yang
8795e3fedb Add type colors + icons to Metasound member list and stub in editor side for constructor pins
- Fix color for Time:Array type

#jira UE-148269
#jira UE-148862
#rb rob.gay
#preflight 62631545006fa20b683e7a91

[CL 19905171 by helen yang in ue5-main branch]
2022-04-25 13:29:29 -04:00
helen yang
fb818a60dc Fix rename delegate not added to MetaSound members that do not have literals
#jira UE-147807
#rb rob.gay
#preflight 624dda99837c93f1a3f5889f

[CL 19652846 by helen yang in ue5-main branch]
2022-04-06 14:52:43 -04:00
Rob Gay
d5b2729860 Default to 'direct' ESelectInfo in SSearchableComboBox::SetSelectedItem
- Internal SelectedItem member was not getting set after last fix to avoid selection on key navigation while the menu was open
- Minor clean-up
#rb aditya.ravichandran
#rnx
#jira UE-146837
#preflight 623a0a68ec68595f3b88a242
#preflight 623a0a68ec68595f3b88a242

[CL 19469217 by Rob Gay in ue5-main branch]
2022-03-22 14:01:46 -04:00
rob gay
db2f61d3ec Hide default value if MetaSound member is hooked up.
- Clean-up some MetaSoundMember edgraphnode members
- Minor fix for hover when drag/dropping members not onto graph showing no error state
#rb helen.yang
#rnx
#jira UE-144433
#jira UE-144358
#preflight 62203018f134125ae0bc7078

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 19253632 in //UE5/Release-5.0/... via CL 19257927
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v924-19243027)

[CL 19263531 by rob gay in ue5-main branch]
2022-03-04 03:48:32 -05:00
rob gay
41a2a172dc Fix missing ability to order graph members
- Remove base template for node customizations now that it isn't required to be a template to enable intra-engine versioning (allows moving implementation of category customization to .cpp)
- Move redundant "Literal" property to parent UMetasoundEditorGraphMember
#rb helen.yang
#jira UE-121749
#rnx
#preflight 621d2e869a5676d19a3d50e9

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 19181623 in //UE5/Release-5.0/... via CL 19183646
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19206681 by rob gay in ue5-main branch]
2022-03-01 16:31:55 -05:00
rob gay
f2973c965f - Fix propagation issues with Preset input defaults
- Add UX for overriding preset inputs (allowing auto-update to pass through referenced value if not managed)
- Clarify code by moving bAutoUpdateManagestInterface to bIsPreset in new FMetasoundFrontendGraphClassPresetOptions struct
#rb phil.popp
#jira UE-136242
#preflight 6202b1bfae203853a85c6366
#rnx

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18911247 in //UE5/Release-5.0/... via CL 18919315 via CL 18920513
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v916-18915374)

[CL 18920762 by rob gay in ue5-main branch]
2022-02-09 12:52:07 -05:00
helen yang
df6218aabf Fix various MetaSound Input Widget and Default Clamp issues
- added option for volume slider to output linear (0-1) value while displaying dB value
- edge case handling for volume and frequency ranges causing widgets to get stuck
- fix functionality and details panel for clamp and other input float properties
- don't show widgets or widget options on readonly graphs

#jira UE-135525
#jira UE-127715
#jira UE-135856
#jira UE-135866
#jira UE-137488

#rb rob.gay
#preflight 61e0acce250b9537f783ed35

#ROBOMERGE-AUTHOR: helen.yang
#ROBOMERGE-SOURCE: CL 18620012 in //UE5/Release-5.0/... via CL 18620328 via CL 18620770
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v899-18417669)

[CL 18621051 by helen yang in ue5-main branch]
2022-01-14 14:01:09 -05:00
rob gay
14ae84810f - Add support for MetaSound Editor UObject array drag/drop
- Checkpoint: Clean-up MetaSound Editor Graph Literal Customization Factory Code
#rb phil.popp
#rnx
#jira UE-112876
#jira UE-137578
#preflight 61d397605d522c9b407a6e29

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18512006 in //UE5/Release-5.0/... via CL 18512018
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v899-18417669)

[CL 18512066 by rob gay in ue5-release-engine-test branch]
2022-01-04 15:17:54 -05:00
rob gay
3e9eab6da9 - Rename & redirect MetaSoundEditorGraph<Input>Literals to MetaSoundEditorGraph<DefaultMember>Literals
- First pass at consolidating editor code for API members/vertices where possible
- Make Variables & Output now use default literal for input value (so user doesn't have to hunt down literal box in graph)

Various bug fixes:
- Fixes crash in post undo after updating a variable default
- Fixes ':Array' flavor showing up in new SearchableComboBox when selecting `Is Array` for literal type
- Synchronize variable setter default literal with variable interface default literal
- Provide default literal field for outputs & variables for consistency
    - Added win is widget support for single input/output types (i.e. floats for now)
- Don't show trigger simulate option on non-transmissible inputs (ex. OnPlay)
- Set simulate button visibility to only show when parameter transmission is supported by input
- Make simulate buttons in graph only visible when sound plays
- Start sounds automatically when clicking simulate in inspector
- Fixed initial condition "holding" trigger state for trigger routing now that Transmission System is only used inter-MetaSound (not intra-MetaSound) and we are deprecating Send/Receives

#rb phil.popp
#rnx
#jira UE-135813
#jira UE-132900
#jira UE-135844
#jira UE-116867
#jira UE-135366
#jira UE-137310
#preflight 61b7afe4fc570891338fea08

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18450046 in //UE5/Release-5.0/... via CL 18450065
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18450072 by rob gay in ue5-release-engine-test branch]
2021-12-13 18:15:01 -05:00
rob gay
94b69d9b29 - Fix bug with variable types being selectible in DataType picker
#rb phil.popp helen.yang
#rnx
#jira UE-135367

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18355321 in //UE5/Release-5.0/... via CL 18355341
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18355356 by rob gay in ue5-release-engine-test branch]
2021-12-02 14:23:45 -05:00
rob gay
ff8b5954ac MetaSounds Interface Checkpoint
- Archetype to Interface rename & support for multiple interface versions stored on MetaSoundBase
- Added ability to register interfaces
- Added spatialization/attenuation interfaces
- Added UX to add/remove Interfaces
- Fix ensure when deleting UMetaSound asset
#rb phil.popp
#jira UE-135000
#jira UE-120656
#rnx
#preflight 619bd9e33a7219926732337c

#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 18262648 in //UE5/Release-5.0/... via CL 18262703
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18262725 by rob gay in ue5-release-engine-test branch]
2021-11-22 15:55:50 -05:00
helen yang
cc78ce9414 Fix ensure on undoing/redoing adding MetaSound inputs and outputs
- set MetaSound asset synchronization required instead of calling RefreshInterface directly

#jira UE-132899
#rb rob.gay, aaron.mcleran
#preflight 6196bc47880616feb1519ecd

#ROBOMERGE-AUTHOR: helen.yang
#ROBOMERGE-SOURCE: CL 18244309 in //UE5/Release-5.0/... via CL 18244424
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v895-18170469)

[CL 18244465 by helen yang in ue5-release-engine-test branch]
2021-11-18 16:49:57 -05:00