Commit Graph

49 Commits

Author SHA1 Message Date
zach brockway
08cd8da277 VR Editor: Introduce minimal UVREditorModeBase class.
This is the new parent class of UVREditorMode, and subsumes a small subset of its functionality (currently just the HMD stereo viewport rendering setup). IVREditorModule and FVREditorModeManager now use pointers to the base class type. Some deprecation annotations were added, but are commented out and will be enabled in a subsequent changelist due to the large number of external files that require accompanying fixups.

Other changes:
 - The analytics events have been moved from UVREditorMode into FVREditorModeManager (we always want these).
 - The use of UViewportWorldInteraction has been moved from FVREditorModeManager into UVREditorMode (this was really an implementation detail of UVREditorMode).
 - Support for the "Entering VR Mode - Experimental" warning, which was only used by UVREditorMode, was removed.
 - The UVREditorModeBase now has the UWorld as an outer, which makes it eligible for selection in the blueprint debugger.

#jira UE-167701
#rb jason.walter
#preflight 6351cc170313c24974e8f3ad

[CL 22695140 by zach brockway in ue5-main branch]
2022-10-21 14:15:29 -04:00
zach brockway
e9c2d7f9ee VR Editor: Remove access to base VR editor mode; Virtual Scouting is the recommended alternative for all users going forward.
- The UVREditorMode UCLASS is now marked abstract, and therefore excluded from the toolbar dropdown.
 - The toolbar button is now shown if any eligible (non-abstract) mode class is available (for example, if the user enabled the Virtual Scouting plugin).
 - The mode preference defaults to null, and if it is still set to null, will be automatically assigned the first discovered eligible mode (this has the effect of defaulting to Virtual Scouting as soon as the plugin is enabled).

#jira UE-166340
#rb Lauren.Barnes
#preflight 6340a451587d6afac875d8c9
#lockdown alejandro.arango

[CL 22436010 by zach brockway in ue5-main branch]
2022-10-10 14:52:47 -04:00
zach brockway
0295a520ad VR Editor: More robust mode class enumeration, handles blueprinted modes (shows unloaded, hides skeletons) correctly.
#jira UE-131286
#rb jason.walter
#preflight 632dfe12e23e50651b9fd54c

[CL 22167075 by zach brockway in ue5-main branch]
2022-09-23 22:00:33 -04:00
zach brockway
a1a067adef VR Editor: Enumerate UVREditorMode-derived classes for selection in toolbar split button dropdown, and update toolbar icon. The dropdown menu also indicates whether an HMD is available, and if so its runtime version string.
Historically not having an HMD available has meant this toolbar button would be hidden entirely, and this is still the case if no derived/alternative UVREditorMode classes are available. However, if any additional mode classes are present (for example because the user has enabled the Virtual Scouting plugin), the toolbar button will always be shown, in the hopes that surfacing the HMD status will simplify the onboarding experience for new Virtual Scouting users.

If the configured mode class becomes unavailable (for example because the corresponding plugin was subsequently disabled), then its object path will be shown as selected and disabled in the dropdown, and the primary toggle button will also be disabled until a valid mode is selected.

#jira UE-131286, UE-164026
#rb jason.walter, Lauren.Barnes
#preflight 6324f528f258fccf98e5e3ec

[CL 22087033 by zach brockway in ue5-main branch]
2022-09-19 21:57:24 -04:00
Jeff Fisher
773631b6f9 UE-147894 Delete WMR
-Remove the deprecated WindowsMixedReality and AzureSpatialAnchorsForWMR plugins.
#jira UE-147894
#review-21507768
#rb Robert.Srinivasiah
#preflight 630554dc5a5d4e46243727f3

[CL 21523822 by Jeff Fisher in ue5-main branch]
2022-08-23 18:49:58 -04:00
zach brockway
44263ab7d5 Virtual Scouting / VR Editor: Rather than specifying interactor or teleporter class overrides directly in editor preferences, these are now determined by choosing a VREditorMode subclass. This change lays the groundwork for further simplification of first-time setup / onboarding.
This change also suppresses the "experimental" warning popup if the Virtual Scouting class is selected.

#jira UE-131286
#rb Lauren.Barnes
#preflight 62f67c97b66d5d9313f3a21c

[CL 21357885 by zach brockway in ue5-main branch]
2022-08-12 13:05:45 -04:00
zach brockway
8c306be3fb Virtual Scouting: GetHMDDeviceType backward compatibility under OpenXR.
Fixes several bugs sharing the same root cause, where code/blueprints were attempting to branch on UVREditorMode::GetHMDDeviceType() or UVREditorInteractor::GetHMDDeviceType(). These calls previously returned the result of IXRTrackingSystem::GetSystemName(), and the call sites were only set up to handle "OculusHMD" or "SteamVR," and were now seeing "OpenXR". Instead, we now return one of those legacy plugin names, depending on the current OpenXR hand controller interaction profile. Longer term, we will want to revisit each of these decision points individually, and take into account support for future unknown XR devices.

An alternative subclass of UVREditorMode can now be configured in the editor settings alongside the interactor and teleporter classes, and a new UVirtualScoutingMode subclass splits the mode entry into two phases. This is necessary because OpenXR may not return the correct interaction profile for several frames after the OpenXR session / stereo rendering has started, and we need to defer creation of the interactors, etc.

#jira UE-150037
#rb jason.walter, Lauren.Barnes
#preflight 6287f49a6c7692ac8cd00f29

[CL 20302573 by zach brockway in ue5-main branch]
2022-05-20 16:40:40 -04:00
Lauren Barnes
6248f8d412 Replacing legacy EditorStyle calls with AppStyle
#preflight 6272a74d2f6d177be3c6fdda
#rb Matt.Kuhlenschmidt

#ROBOMERGE-OWNER: Lauren.Barnes
#ROBOMERGE-AUTHOR: lauren.barnes
#ROBOMERGE-SOURCE: CL 20057269 via CL 20070159 via CL 20072035 via CL 20072203
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
#ROBOMERGE-CONFLICT from-shelf

[CL 20105363 by Lauren Barnes in ue5-main branch]
2022-05-09 13:12:28 -04:00
zach brockway
3a3ce4869b Virtual Scouting: Changes required for compatibility with OpenXR.
This migrates the mostly declarative action mappings in UVREditorInteractor::Init_Implementation into a new GetKnownActionMappings method, which we can poll in order to translate them into an OpenXR action set at the point during early initialization which OpenXR requires them to be registered. This also adds a `bIsAxis` flag to FViewportActionKeyInput, because axis mappings need to be handled differently.

The glue code leveraging this is introduced in a new VirtualScouting plugin, where we'll ultimately migrate the existing code as well (away from VirtualProductionUtilities).

#jira UE-146105
#rb Lauren.Barnes
#preflight 6261d5b00a1b9c4e192825ce

[CL 19857480 by zach brockway in ue5-main branch]
2022-04-21 18:49:47 -04:00
aurel cordonnier
e3f7878676 Merge from Release-Engine-Test @ 17462327 to UE5/Main
This represents UE4/Main @17430120 and Dev-PerfTest @17437669

[CL 17463546 by aurel cordonnier in ue5-main branch]
2021-09-08 16:42:26 -04:00
brooke hubert
127f266f84 Legacy Mode UI removed.
#rnx
#Jira UE-97668
#rb lauren.barnes
#fyi matt.kuhlenschmidt

[CL 14357487 by brooke hubert in ue5-main branch]
2020-09-21 13:45:49 -04:00
Lauren Barnes
6e4ac7fded Removes PIE, SIE, Editor Modes (Foliage, Landscape, Mesh Paint) and their associated radial menu options.
#jira none
#rb Brooke.Hubert

[CL 13877316 by Lauren Barnes in ue5-main branch]
2020-07-16 16:08:23 -04:00
Lauren Barnes
6ca1a1dc46 Adding a check that we are using the default interactors before warning about legacy UI. This prevents unneeded warnings for Virtual Production.
#jira UE-91147
#rb Matt.Kuhlenschmidt

[CL 12427831 by Lauren Barnes in 4.25 branch]
2020-03-25 14:34:14 -04:00
Matt Kuhlenschmidt
44ee605727 Fix CIS
#rb none
#jira none

[CL 12163356 by Matt Kuhlenschmidt in 4.25 branch]
2020-03-13 11:46:03 -04:00
Matt Kuhlenschmidt
43cd1e7d17 Warn VR editor users that the new editor mode UI is not compatible with VR Editor and offer to revert to the old UI and restart the editor for them
#jira UE-87807
#rb lauren.ridge

[CL 12162576 by Matt Kuhlenschmidt in 4.25 branch]
2020-03-13 10:04:45 -04:00
Rolando Caloca
5b82f15def Copying //UE4/Dev-RenderPlat-Staging@11388153 to //UE4/Main
#rb none
#rnx

[CL 11388545 by Rolando Caloca in Main branch]
2020-02-12 13:27:19 -05:00
Juan Canada
2ecf4f9708 Merging //UE4/Dev-Main@10877709 to Dev-RenderPlat-Staging(//UE4/Dev-Rendering)
#rnx
#rb none

[CL 10895568 by Juan Canada in Dev-RenderPlat-Staging branch]
2020-01-07 13:45:01 -05: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
brandon schaefer
a715ea4f14 Deprecate GIsRequestingExit
Get GIsRequestingExit now by IsEngineRequestingExit()

Set GIsRequestingExit now by RequestEngineExit(const TCHAR* Reason) or RequestEngineExit(const FString& Reason)
NOTE If Reason is 4 or less chars it will generate an ensure to force a reason to exit

The reason behind this change is right now setting GIsRequestingExit to true can cause many things to break mainly early on and with out any sort of log warning we have entered this state. We should wrap this behind a function to allow for proper handling

#rb Chris.Babcock, Michael.Trepka, Michael.Noland
#jira UE-79933
[FYI] Michael.Noland


#ROBOMERGE-SOURCE: CL 8649683 via CL 8653683
#ROBOMERGE-BOT: (v417-8656536)

[CL 8658680 by brandon schaefer in Main branch]
2019-09-12 14:21:26 -04:00
jules blok
148dc2c4d3 Disable VRMode when using the OpenXR plugin
#jira UE-73237
#rb none
#lockdown cristina.riveron

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

[CL 6482183 by jules blok in Main branch]
2019-05-15 11:41:28 -04:00
ryan vance
62ff044263 #jira UE-71871
#rb jeff.fisher
#lockdown cristina.riveron
Disable VRMode for WMR devices.

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

[CL 5497689 by ryan vance in Main branch]
2019-03-21 19:15:38 -04:00
Francis Hurteau
57c677da93 Copying //UE4/Dev-Enterprise@4705006 to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown Nick.Penwarden

[CL 4705151 by Francis Hurteau in Main branch]
2019-01-10 17:26:53 -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
e6d45383d5 Copying //UE4/Dev-Enterprise to //UE4/Dev-Main (Source: //UE4/Dev-Enterprise @ 4341740)
#lockdown Nick.Penwarden
#rb none

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

Change 4280523 by Patrick.Boutot

	Add option in AjaCustomTimeStep to wait until the frame to be ready. Previously, the frame was there but not yet processed so it was possible that it was not ready by the time we wanted to read it. It won't work with interlaced because the 2 fields are processed at the same time. In interlaced, will get a 30fps behaviour when we actually want a 60fps.
	Fix bug that didn't set and reset bIsOwned properly when it was first initialized as not owned.

Change 4280526 by Patrick.Boutot

	Add accessor to get the leaf media source or output.

Change 4280624 by Patrick.Boutot

	Add timecode acessor to media samples

Change 4280626 by Patrick.Boutot

	Rework the timing for AJA Media Player. Previously, we took the timing of the frame. That was a bad idea because if 2 incomings video frames were coming a the same time, you would only show one. Making the buffering system useless.
	That affects the Custom Time Step since it was waiting for the interrupt signal and in some behavior we would like the frame to be ready to be used by UE. Same the timecode in the MediaSample because we may not used it to stamps the frame.

Change 4283022 by Patrick.Boutot

	[EditorScriptingUtilitites] Check folder names invalid characters separatly from the object's name.
	#jira UE-59886,  UE-62333

Change 4283112 by Patrick.Boutot

	Remove MediaFrameworkUtilititesModule dependency to the Settings module at runtime.
	Rename TimemanagemenetEditor module names.

Change 4283426 by JeanLuc.Corenthin

	Fix crash with FBX file

	#jira UE-62501

Change 4284940 by Patrick.Boutot

	A widget that let you select a single permutation from a list. It groups the values into categories and removes duplicates inside that category.

Change 4285471 by Patrick.Boutot

	Remove MediaFrameworkUtilititesModule dependency to the Settings module at runtime.

Change 4286925 by Patrick.Boutot

	[AJA] Add support to read LTC from the reference In.
	Add more detail on video format and the device.
	MediaSource use the Permutations Selection widget to select his mode and device.
	Remove debugging option to trigger an AJA custom time step and timecode provider.
	Remove the UYVY pixel option from AJA. It's better do to the conversion on the AJA card that on the GPU.
	Change the tooltip and category for some AjaMediaSource properties.

Change 4287026 by Julien.StJean

	Modifed the file STimeCodeProviderTab.cpp to fix the position of a SComboButton that wasn't properly place.

Change 4287663 by Jon.Nabozny

	Add timecode messages into nDisplay, and sync those between Master and Slave

Change 4287884 by Jon.Nabozny

	Create a TimecodeProvider for SystemTime and introduce a notion for DefaultTimecodeProvider in Engine.

Change 4288050 by Jon.Nabozny

	Rework the TimeSynchronization implementation for usability and functionality.

Change 4288283 by Jon.Nabozny

	Fixed swapped MetaClass and DisplayName options on UEngine::DefaultTimecodeProviderClassName;

Change 4288352 by Jon.Nabozny

	Set TimecodeProviderClassName and DefaultTimecodeProviderClassName in BaseEngine.ini

Change 4288378 by Jon.Nabozny

	Fixup some issues in TimecodeSynchronizer where code was reset improperly due to multiple unshelves / resolves.

Change 4288394 by Jon.Nabozny

	Add TimeSync functionality into LiveLink. Also add test cases for this. This should allow us to easily synchronize multiple LiveLink sources together, as well as synchronize those to anything else using the sync system (Relies on CL-4235417)

Change 4288899 by Patrick.Boutot

	Fix initialization order of FMediaIOCorePlayerBase variables

Change 4289157 by Patrick.Boutot

	Allow the user to change the source of a capture without stopping the current capture.
	[AJA] AjaMediaCapture, add support for UpdateSceneViewport & UpdateRenderTarget
	@made by julien.stjean

Change 4291328 by Jon.Nabozny

	Report the Skeleton Guid with TimeSyncData and track sync state in LiveLinkTimeSynchronizationSource.
	This prevents a crash that can happen if a source is quickly cleared and reset before the next tick of Time Synchronization.

Change 4296294 by Jon.Nabozny

	Fixup errors when TimecodeProviderClassName is empty. It's valid to leave this empty.

Change 4297122 by Patrick.Boutot

	Media Profile with timecode provider & custom time step

Change 4301855 by Austin.Crismore

	Fix for movment scaling and virtual joystick controls. Movement scaling in for truck and dolly is locked to the world xy plane, and virtual joysticks use their own method for movement scaling now.

	#jira UE-61762, UE-62187

Change 4301856 by Austin.Crismore

	Virtual sequence level controller now listens to on object spawned, so that it can intercept the camera actor and disable attatching to HMD to prevent camera movement that isn't from the level sequence

	#jira UE-61766

Change 4301860 by Austin.Crismore

	Fix for touch scrubbing. Added default values back in. Added logic to only allow scrubbing when touch focus was off.

	#jira UE-61865

Change 4302294 by Jamie.Dale

	Added functions to get your the localized spoken and subtitle text from a dialogue wave

Change 4304393 by Jamie.Dale

	Added support for BlueprintAssignable properties in Python

Change 4305852 by Jamie.Dale

	Removed hard-dependency between EditorScriptingUtilities and PythonScriptPlugin

	Backed-out changelist 4259264 and query Python availability based on whether anything is available to handle the command

	#jira UE-62318

Change 4308550 by Jamie.Dale

	Fixed crash when passing a null world to Python actor iterators

Change 4311867 by Homam.Bahnassi

	Revit master material with exposed parameters matching the API when possible.

Change 4314428 by Francis.Hurteau

	Made the usage of the bBuildDeveloperTools switch independent of the bCompileAgainstEngine switch.
	Changed bBuildDeveloperTools TargetRule in UnrealBuildTool to a nullable to keep the old behavior in case where bBuildDeveloperTools wasn't explicitly set in TargetRules

Change 4315134 by Jamie.Dale

	Defer editable text focus selection until mouse-up to allow the user to make an initial selection

	#jira UE-58086

Change 4318615 by Johan.Duparc

	EditorFactories: consistent return values after asset import.

Change 4322459 by Jamie.Dale

	Made SequencerScripting an Editor plugin as it depends on PythonScriptPlugin which is an Editor plugin

	This was causing issues at runtime when SequencerScripting was enabled, as it failed to load PythonScriptPlugin (which hadn't been built).

Change 4323341 by Francis.Hurteau

	Implement proper message bus protocol version negociation with static nodes

Change 4323733 by Francis.Hurteau

	Fix VR Pausing Sequence Scrubbing just setting playback speed to 0.0

Change 4324319 by Jamie.Dale

	Exposed transactions to Blueprints

Change 4325847 by Alistair.White

	Copying //Tasks/UE4/Private-PixelStreaming@4325566 to Dev-Enterprise-Minimal (//UE4/Dev-Enterprise-Minimal)

	This adds the new experimental PixelStreaming plugin to allow streaming of an Unreal client's audio & video stream to a browser through the WebRTC protocol to support new uses for enterprise customers.

Change 4326282 by Simon.Tourangeau

	nDisplay native present handler

Change 4326581 by Jamie.Dale

	Replacing FDateTime with int64 Ticks value to workaround UE-63485

Change 4326599 by Homam.Bahnassi

	Moving texture coords outside UVEdit function to allow using different UV channels.

Change 4333250 by Francis.Hurteau

	Small TFuture changes:
	* cleans up TFuture::Then with usage of TUniqueFunction
	* added TFuture::Reset to invalidate it and remove continuation from a future shared state

Change 4333359 by Homam.Bahnassi

	Support scaling and rotating UVs around arbitrary pivot

Change 4333566 by Johan.Duparc

	Expose ProxyLOD functionalities to Scripting
	#jira UEENT-1788

Change 4333988 by Jamie.Dale

	Allow UHT to parse FText default parameter values

	INVTEXT, NSLOCTEXT, LOCTABLE, and FText::GetEmpty() are supported. LOCTEXT isn't as it relies on an external macro that is known to C++ but not to UHT (NSLOCTEXT can easily be used instead).

Change 4335020 by Francis.Hurteau

	Uncomment MessageBus::Send deprecation notice for 4.21
	Update MessageBus Send usage to new API

Change 4335195 by JeanMichel.Dignard

	Add a SetLodFromStaticMesh script utility function

	#jira UEENT-1789

Change 4335231 by Anousack.Kitisa

	Added functions to generate planar, cylindrical, box UV mapping.

	#jira UEENT-1598

Change 4335373 by Jamie.Dale

	Cleaned up some places creating empty literal texts

Change 4335458 by Jamie.Dale

	Allow UHT to parse FText() as an alias of FText::GetEmpty() when processing default values

Change 4335875 by Max.Chen

	Sequencer: Clear RF_Transient on pasted tracks/sections

	#jira UE-63537

Change 4336497 by Johan.Duparc

	ProxyLOD: Fix progress bar issue
	- removed duplicated code
	- removed duplicated LongTask object
	#jira UEENT-1788

Change 4336723 by Jamie.Dale

	Ensure that Python generated types create their CDO at the correct point

	#jira UE-62895

Change 4340594 by Ben.Marsh

	Fix manifest being invalidated when building two enterprise targets in a row. Fixes CIS error.

	#jira UE-63644

[CL 4342443 by JeanMichel Dignard in Main branch]
2018-09-04 16:35:02 -04:00
Cody Albert
214d00b5c0 Updated VR Mode button to become inactive during SIE (instead of disappearing altogether)
#jira UE-50220
#rb Lauren.Ridge

[CL 4200944 by Cody Albert in Dev-Editor branch]
2018-07-10 15:55:20 -04:00