├── Config ├── DefaultEditor.ini ├── DefaultGame.ini ├── HoloLens │ └── HoloLensEngine.ini ├── DefaultInput.ini └── DefaultEngine.ini ├── .gitignore ├── Content ├── BouncingBall.umap ├── Meshes │ ├── Wall.uasset │ ├── BallMesh.uasset │ ├── BedMesh.uasset │ ├── DeskMesh.uasset │ ├── DoorMesh.uasset │ ├── WallMesh.uasset │ ├── BedVolume.uasset │ ├── CouchMesh.uasset │ ├── DeskVolume.uasset │ ├── LampVolume.uasset │ ├── OtherMesh.uasset │ ├── ScreenMesh.uasset │ ├── TableMesh.uasset │ ├── WindowMesh.uasset │ ├── Bounded3dMesh.uasset │ ├── CouchVolume.uasset │ ├── OtherVolume.uasset │ ├── PlantVolume.uasset │ ├── ScreenVolume.uasset │ ├── StorageMesh.uasset │ ├── StorageVolume.uasset │ ├── TableVolume.uasset │ ├── WallArtMesh.uasset │ ├── FloorCeilingMesh.uasset │ ├── InvisibleWallMesh.uasset │ └── PassthroughAlpha.uasset ├── Audio │ ├── BallSpawn.uasset │ ├── BallBounce.uasset │ ├── BallDestroy.uasset │ ├── BallBounce_Cue.uasset │ ├── BallSpawn_Cue.uasset │ └── BallDestroy_Cue.uasset ├── Blueprints │ ├── HUD.uasset │ ├── BallActor.uasset │ ├── HUDActor.uasset │ ├── NewGameMode.uasset │ ├── VRCharacter.uasset │ └── SceneAnchorVisibilitySwitcherWidget.uasset ├── Textures │ ├── BedText.uasset │ ├── DoorText.uasset │ ├── LampText.uasset │ ├── CouchText.uasset │ ├── HudCursor.uasset │ ├── OtherText.uasset │ ├── PlantText.uasset │ ├── ScreenText.uasset │ ├── StorageText.uasset │ ├── TableText.uasset │ ├── WallArtText.uasset │ └── WindowText.uasset ├── Materials │ ├── BallMaterial.uasset │ ├── BedMaterial.uasset │ ├── DoorMaterial.uasset │ ├── LampMaterial.uasset │ ├── WallMaterial.uasset │ ├── BedMeshMaterial.uasset │ ├── CouchMaterial.uasset │ ├── OtherMaterial.uasset │ ├── PlantMaterial.uasset │ ├── ScreenMaterial.uasset │ ├── StorageMaterial.uasset │ ├── TableMaterial.uasset │ ├── WallArtMaterial.uasset │ ├── WindowMaterial.uasset │ ├── BallMaterial_Inst.uasset │ ├── CouchMeshMaterial.uasset │ ├── TableMeshMaterial.uasset │ ├── BallPhysicalMaterial.uasset │ ├── FloorCeilingMaterial.uasset │ ├── GlobalMeshMaterial.uasset │ ├── LaserPointerMaterial.uasset │ ├── StorageMeshMaterial.uasset │ └── InvisibleWallMaterial.uasset └── Inputs │ ├── Actions │ ├── IA_PressWidget.uasset │ ├── IA_ToggleMenu.uasset │ ├── IA_SpawnBallLeft.uasset │ └── IA_SpawnBallRight.uasset │ └── Mappings │ └── IMC_VRCharacter.uasset ├── Media ├── unreal-scene-27-hud-actor.png ├── unreal-scene-33-platforms.png ├── unreal-scene-32-sound-cues.png ├── unreal-scene-22-scene-sample.png ├── unreal-scene-28-ui-interaction.png ├── unreal-scene-30-world-settings.png ├── unreal-scene-24-scene-preview-actor.png ├── unreal-scene-25-launch-capture-flow.png ├── unreal-scene-26-is-scene-populated.png ├── unreal-scene-23-ball-throwing-mechanics.png ├── unreal-scene-31-change-color-if-occluded.png ├── unreal-scene-34-set-passthrough-opacity.png └── unreal-scene-29-translate-cursor-widget-on-the-hud.png ├── SourceAssets └── cube_with_origin.fbx ├── Scene.uproject ├── LICENSE ├── CONTRIBUTING.md ├── CODE_OF_CONDUCT.md └── README.md /Config/DefaultEditor.ini: -------------------------------------------------------------------------------- 1 | [/Script/AdvancedPreviewScene.SharedProfiles] 2 | 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | Binaries/* 2 | Build/* 3 | DerivedDataCache/* 4 | Intermediate/* 5 | Saved/* 6 | -------------------------------------------------------------------------------- /Content/BouncingBall.umap: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/BouncingBall.umap -------------------------------------------------------------------------------- /Content/Meshes/Wall.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/Wall.uasset -------------------------------------------------------------------------------- /Content/Audio/BallSpawn.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Audio/BallSpawn.uasset -------------------------------------------------------------------------------- /Content/Blueprints/HUD.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Blueprints/HUD.uasset -------------------------------------------------------------------------------- /Content/Meshes/BallMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/BallMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/BedMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/BedMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/DeskMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/DeskMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/DoorMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/DoorMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/WallMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/WallMesh.uasset -------------------------------------------------------------------------------- /Content/Audio/BallBounce.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Audio/BallBounce.uasset -------------------------------------------------------------------------------- /Content/Audio/BallDestroy.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Audio/BallDestroy.uasset -------------------------------------------------------------------------------- /Content/Meshes/BedVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/BedVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/CouchMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/CouchMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/DeskVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/DeskVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/LampVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/LampVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/OtherMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/OtherMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/ScreenMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/ScreenMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/TableMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/TableMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/WindowMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/WindowMesh.uasset -------------------------------------------------------------------------------- /Content/Textures/BedText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/BedText.uasset -------------------------------------------------------------------------------- /Content/Textures/DoorText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/DoorText.uasset -------------------------------------------------------------------------------- /Content/Textures/LampText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/LampText.uasset -------------------------------------------------------------------------------- /Content/Audio/BallBounce_Cue.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Audio/BallBounce_Cue.uasset -------------------------------------------------------------------------------- /Content/Audio/BallSpawn_Cue.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Audio/BallSpawn_Cue.uasset -------------------------------------------------------------------------------- /Content/Blueprints/BallActor.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Blueprints/BallActor.uasset -------------------------------------------------------------------------------- /Content/Blueprints/HUDActor.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Blueprints/HUDActor.uasset -------------------------------------------------------------------------------- /Content/Meshes/Bounded3dMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/Bounded3dMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/CouchVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/CouchVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/OtherVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/OtherVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/PlantVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/PlantVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/ScreenVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/ScreenVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/StorageMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/StorageMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/StorageVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/StorageVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/TableVolume.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/TableVolume.uasset -------------------------------------------------------------------------------- /Content/Meshes/WallArtMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/WallArtMesh.uasset -------------------------------------------------------------------------------- /Content/Textures/CouchText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/CouchText.uasset -------------------------------------------------------------------------------- /Content/Textures/HudCursor.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/HudCursor.uasset -------------------------------------------------------------------------------- /Content/Textures/OtherText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/OtherText.uasset -------------------------------------------------------------------------------- /Content/Textures/PlantText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/PlantText.uasset -------------------------------------------------------------------------------- /Content/Textures/ScreenText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/ScreenText.uasset -------------------------------------------------------------------------------- /Content/Textures/StorageText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/StorageText.uasset -------------------------------------------------------------------------------- /Content/Textures/TableText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/TableText.uasset -------------------------------------------------------------------------------- /Content/Textures/WallArtText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/WallArtText.uasset -------------------------------------------------------------------------------- /Content/Textures/WindowText.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Textures/WindowText.uasset -------------------------------------------------------------------------------- /Media/unreal-scene-27-hud-actor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-27-hud-actor.png -------------------------------------------------------------------------------- /Media/unreal-scene-33-platforms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-33-platforms.png -------------------------------------------------------------------------------- /SourceAssets/cube_with_origin.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/SourceAssets/cube_with_origin.fbx -------------------------------------------------------------------------------- /Content/Audio/BallDestroy_Cue.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Audio/BallDestroy_Cue.uasset -------------------------------------------------------------------------------- /Content/Blueprints/NewGameMode.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Blueprints/NewGameMode.uasset -------------------------------------------------------------------------------- /Content/Blueprints/VRCharacter.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Blueprints/VRCharacter.uasset -------------------------------------------------------------------------------- /Content/Materials/BallMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/BallMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/BedMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/BedMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/DoorMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/DoorMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/LampMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/LampMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/WallMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/WallMaterial.uasset -------------------------------------------------------------------------------- /Media/unreal-scene-32-sound-cues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-32-sound-cues.png -------------------------------------------------------------------------------- /Content/Materials/BedMeshMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/BedMeshMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/CouchMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/CouchMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/OtherMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/OtherMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/PlantMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/PlantMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/ScreenMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/ScreenMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/StorageMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/StorageMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/TableMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/TableMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/WallArtMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/WallArtMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/WindowMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/WindowMaterial.uasset -------------------------------------------------------------------------------- /Content/Meshes/FloorCeilingMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/FloorCeilingMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/InvisibleWallMesh.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/InvisibleWallMesh.uasset -------------------------------------------------------------------------------- /Content/Meshes/PassthroughAlpha.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Meshes/PassthroughAlpha.uasset -------------------------------------------------------------------------------- /Media/unreal-scene-22-scene-sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-22-scene-sample.png -------------------------------------------------------------------------------- /Media/unreal-scene-28-ui-interaction.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-28-ui-interaction.png -------------------------------------------------------------------------------- /Media/unreal-scene-30-world-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-30-world-settings.png -------------------------------------------------------------------------------- /Content/Materials/BallMaterial_Inst.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/BallMaterial_Inst.uasset -------------------------------------------------------------------------------- /Content/Materials/CouchMeshMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/CouchMeshMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/TableMeshMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/TableMeshMaterial.uasset -------------------------------------------------------------------------------- /Content/Inputs/Actions/IA_PressWidget.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Inputs/Actions/IA_PressWidget.uasset -------------------------------------------------------------------------------- /Content/Inputs/Actions/IA_ToggleMenu.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Inputs/Actions/IA_ToggleMenu.uasset -------------------------------------------------------------------------------- /Content/Materials/BallPhysicalMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/BallPhysicalMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/FloorCeilingMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/FloorCeilingMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/GlobalMeshMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/GlobalMeshMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/LaserPointerMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/LaserPointerMaterial.uasset -------------------------------------------------------------------------------- /Content/Materials/StorageMeshMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/StorageMeshMaterial.uasset -------------------------------------------------------------------------------- /Media/unreal-scene-24-scene-preview-actor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-24-scene-preview-actor.png -------------------------------------------------------------------------------- /Media/unreal-scene-25-launch-capture-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-25-launch-capture-flow.png -------------------------------------------------------------------------------- /Media/unreal-scene-26-is-scene-populated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-26-is-scene-populated.png -------------------------------------------------------------------------------- /Content/Inputs/Actions/IA_SpawnBallLeft.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Inputs/Actions/IA_SpawnBallLeft.uasset -------------------------------------------------------------------------------- /Content/Inputs/Actions/IA_SpawnBallRight.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Inputs/Actions/IA_SpawnBallRight.uasset -------------------------------------------------------------------------------- /Content/Inputs/Mappings/IMC_VRCharacter.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Inputs/Mappings/IMC_VRCharacter.uasset -------------------------------------------------------------------------------- /Content/Materials/InvisibleWallMaterial.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Materials/InvisibleWallMaterial.uasset -------------------------------------------------------------------------------- /Media/unreal-scene-23-ball-throwing-mechanics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-23-ball-throwing-mechanics.png -------------------------------------------------------------------------------- /Media/unreal-scene-31-change-color-if-occluded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-31-change-color-if-occluded.png -------------------------------------------------------------------------------- /Media/unreal-scene-34-set-passthrough-opacity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-34-set-passthrough-opacity.png -------------------------------------------------------------------------------- /Media/unreal-scene-29-translate-cursor-widget-on-the-hud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Media/unreal-scene-29-translate-cursor-widget-on-the-hud.png -------------------------------------------------------------------------------- /Content/Blueprints/SceneAnchorVisibilitySwitcherWidget.uasset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oculus-samples/Unreal-Scene/HEAD/Content/Blueprints/SceneAnchorVisibilitySwitcherWidget.uasset -------------------------------------------------------------------------------- /Config/DefaultGame.ini: -------------------------------------------------------------------------------- 1 | 2 | [/Script/EngineSettings.GeneralProjectSettings] 3 | ProjectID=41841D83455C9697FEDDCCA6AEE164D3 4 | ProjectName=Scene 5 | bStartInVR=True 6 | 7 | [/Script/UnrealEd.ProjectPackagingSettings] 8 | FullRebuild=False 9 | 10 | -------------------------------------------------------------------------------- /Scene.uproject: -------------------------------------------------------------------------------- 1 | { 2 | "FileVersion": 3, 3 | "EngineAssociation": "{58551334-4C51-46AF-9ABB-448F8D2D005B}", 4 | "Category": "", 5 | "Description": "", 6 | "Plugins": [ 7 | { 8 | "Name": "OculusXR", 9 | "Enabled": true, 10 | "SupportedTargetPlatforms": [ 11 | "Win64", 12 | "Android" 13 | ], 14 | "MarketplaceURL": "com.epicgames.launcher://ue/marketplace/product/8313d8d7e7cf4e03a33e79eb757bccba" 15 | } 16 | ] 17 | } -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) Meta Platforms, Inc. and affiliates. 2 | All rights reserved. 3 | 4 | Licensed under the Oculus SDK License Agreement (the "License"); 5 | you may not use the Oculus SDK except in compliance with the License, 6 | which is provided at the time of installation or download, or which 7 | otherwise accompanies this software in either electronic or hard copy form. 8 | 9 | You may obtain a copy of the License at 10 | 11 | https://developer.oculus.com/licenses/oculussdk/ 12 | 13 | Unless required by applicable law or agreed to in writing, the Oculus SDK 14 | distributed under the License is distributed on an "AS IS" BASIS, 15 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16 | See the License for the specific language governing permissions and 17 | limitations under the License. 18 | -------------------------------------------------------------------------------- /Config/HoloLens/HoloLensEngine.ini: -------------------------------------------------------------------------------- 1 | 2 | 3 | [/Script/HoloLensPlatformEditor.HoloLensTargetSettings] 4 | bBuildForEmulation=False 5 | bBuildForDevice=True 6 | bUseNameForLogo=True 7 | bBuildForRetailWindowsStore=False 8 | bAutoIncrementVersion=False 9 | bShouldCreateAppInstaller=False 10 | AppInstallerInstallationURL= 11 | HoursBetweenUpdateChecks=0 12 | bEnablePIXProfiling=False 13 | TileBackgroundColor=(B=64,G=0,R=0,A=255) 14 | SplashScreenBackgroundColor=(B=64,G=0,R=0,A=255) 15 | +PerCultureResources=(CultureId="",Strings=(PackageDisplayName="",PublisherDisplayName="",PackageDescription="",ApplicationDisplayName="",ApplicationDescription=""),Images=()) 16 | TargetDeviceFamily=Windows.Holographic 17 | MinimumPlatformVersion= 18 | MaximumPlatformVersionTested=10.0.18362.0 19 | MaxTrianglesPerCubicMeter=500.000000 20 | SpatialMeshingVolumeSize=20.000000 21 | CompilerVersion=Default 22 | Windows10SDKVersion=10.0.18362.0 23 | +CapabilityList=internetClientServer 24 | +CapabilityList=privateNetworkClientServer 25 | +Uap2CapabilityList=spatialPerception 26 | bSetDefaultCapabilities=False 27 | SpatializationPlugin= 28 | ReverbPlugin= 29 | OcclusionPlugin= 30 | SoundCueCookQualityIndex=-1 31 | 32 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to this Sample 2 | We want to make contributing to this project as easy and transparent as 3 | possible. 4 | 5 | ## Our Development Process 6 | ... (in particular how this is synced with internal changes to the project) 7 | 8 | ## Pull Requests 9 | We actively welcome your pull requests. 10 | 11 | 1. Fork the repo and create your branch from `main`. 12 | 2. If you've added code that should be tested, add tests. 13 | 3. If you've changed APIs, update the documentation. 14 | 4. Ensure the test suite passes. 15 | 5. Make sure your code lints. 16 | 6. If you haven't already, complete the Contributor License Agreement ("CLA"). 17 | 18 | ## Contributor License Agreement ("CLA") 19 | In order to accept your pull request, we need you to submit a CLA. You only need 20 | to do this once to work on any of Meta's open source projects. 21 | 22 | Complete your CLA here: 23 | 24 | ## Issues 25 | We use GitHub issues to track public bugs. Please ensure your description is 26 | clear and has sufficient instructions to be able to reproduce the issue. 27 | 28 | Meta has a [bounty program](https://www.facebook.com/whitehat/) for the safe 29 | disclosure of security bugs. In those cases, please go through the process 30 | outlined on that page and do not file a public issue. 31 | 32 | ## License 33 | By contributing to this Sample, you agree that your contributions will be licensed 34 | under the LICENSE file in the root directory of this source tree. 35 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to make participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies within all project spaces, and it also applies when 49 | an individual is representing the project or its community in public spaces. 50 | Examples of representing a project or community include using an official 51 | project e-mail address, posting via an official social media account, or acting 52 | as an appointed representative at an online or offline event. Representation of 53 | a project may be further defined and clarified by project maintainers. 54 | 55 | This Code of Conduct also applies outside the project spaces when there is a 56 | reasonable belief that an individual's behavior may have a negative impact on 57 | the project or its community. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported by contacting the project team at . All 63 | complaints will be reviewed and investigated and will result in a response that 64 | is deemed necessary and appropriate to the circumstances. The project team is 65 | obligated to maintain confidentiality with regard to the reporter of an incident. 66 | Further details of specific enforcement policies may be posted separately. 67 | 68 | Project maintainers who do not follow or enforce the Code of Conduct in good 69 | faith may face temporary or permanent repercussions as determined by other 70 | members of the project's leadership. 71 | 72 | ## Attribution 73 | 74 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 75 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 76 | 77 | [homepage]: https://www.contributor-covenant.org 78 | 79 | For answers to common questions about this code of conduct, see 80 | https://www.contributor-covenant.org/faq 81 | -------------------------------------------------------------------------------- /Config/DefaultInput.ini: -------------------------------------------------------------------------------- 1 | 2 | 3 | [/Script/Engine.InputSettings] 4 | -AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) 5 | -AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) 6 | -AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) 7 | -AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.25,Exponent=1.f,Sensitivity=1.f)) 8 | -AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) 9 | -AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) 10 | -AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.f,Exponent=1.f,Sensitivity=0.07f)) 11 | +AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 12 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 13 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 14 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 15 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 16 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 17 | +AxisConfig=(AxisKeyName="Mouse2D",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) 18 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 19 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 20 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 21 | +AxisConfig=(AxisKeyName="ValveIndex_Left_Trackpad_Touch",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 22 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 23 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Grip_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 24 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 25 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 26 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 27 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 28 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 29 | +AxisConfig=(AxisKeyName="ValveIndex_Right_Trackpad_Force",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 30 | +AxisConfig=(AxisKeyName="Gamepad_LeftX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 31 | +AxisConfig=(AxisKeyName="Gamepad_LeftY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 32 | +AxisConfig=(AxisKeyName="Gamepad_RightX",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 33 | +AxisConfig=(AxisKeyName="Gamepad_RightY",AxisProperties=(DeadZone=0.250000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 34 | +AxisConfig=(AxisKeyName="MouseX",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) 35 | +AxisConfig=(AxisKeyName="MouseY",AxisProperties=(DeadZone=0.000000,Sensitivity=0.070000,Exponent=1.000000,bInvert=False)) 36 | +AxisConfig=(AxisKeyName="MouseWheelAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 37 | +AxisConfig=(AxisKeyName="Gamepad_LeftTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 38 | +AxisConfig=(AxisKeyName="Gamepad_RightTriggerAxis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 39 | +AxisConfig=(AxisKeyName="Gamepad_Special_Left_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 40 | +AxisConfig=(AxisKeyName="Gamepad_Special_Left_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 41 | +AxisConfig=(AxisKeyName="Daydream_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 42 | +AxisConfig=(AxisKeyName="Daydream_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 43 | +AxisConfig=(AxisKeyName="Daydream_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 44 | +AxisConfig=(AxisKeyName="Daydream_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 45 | +AxisConfig=(AxisKeyName="Vive_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 46 | +AxisConfig=(AxisKeyName="Vive_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 47 | +AxisConfig=(AxisKeyName="Vive_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 48 | +AxisConfig=(AxisKeyName="Vive_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 49 | +AxisConfig=(AxisKeyName="Vive_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 50 | +AxisConfig=(AxisKeyName="Vive_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 51 | +AxisConfig=(AxisKeyName="MixedReality_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 52 | +AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 53 | +AxisConfig=(AxisKeyName="MixedReality_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 54 | +AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 55 | +AxisConfig=(AxisKeyName="MixedReality_Left_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 56 | +AxisConfig=(AxisKeyName="MixedReality_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 57 | +AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 58 | +AxisConfig=(AxisKeyName="MixedReality_Right_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 59 | +AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 60 | +AxisConfig=(AxisKeyName="MixedReality_Right_Trackpad_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 61 | +AxisConfig=(AxisKeyName="OculusTouch_Left_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 62 | +AxisConfig=(AxisKeyName="OculusTouch_Left_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 63 | +AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 64 | +AxisConfig=(AxisKeyName="OculusTouch_Left_Thumbstick_Y",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 65 | +AxisConfig=(AxisKeyName="OculusTouch_Right_Grip_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 66 | +AxisConfig=(AxisKeyName="OculusTouch_Right_Trigger_Axis",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 67 | +AxisConfig=(AxisKeyName="OculusTouch_Right_Thumbstick_X",AxisProperties=(DeadZone=0.000000,Sensitivity=1.000000,Exponent=1.000000,bInvert=False)) 68 | bAltEnterTogglesFullscreen=True 69 | bF11TogglesFullscreen=True 70 | bUseMouseForTouch=False 71 | bEnableMouseSmoothing=True 72 | bEnableFOVScaling=True 73 | bCaptureMouseOnLaunch=True 74 | bEnableLegacyInputScales=True 75 | bEnableMotionControls=True 76 | bFilterInputByPlatformUser=False 77 | bEnableInputDeviceSubsystem=True 78 | bShouldFlushPressedKeysOnViewportFocusLost=True 79 | bEnableDynamicComponentInputBinding=True 80 | bAlwaysShowTouchInterface=False 81 | bShowConsoleOnFourFingerTap=True 82 | bEnableGestureRecognizer=False 83 | bUseAutocorrect=False 84 | DefaultViewportMouseCaptureMode=CapturePermanently_IncludingInitialMouseDown 85 | DefaultViewportMouseLockMode=LockOnCapture 86 | FOVScale=0.011110 87 | DoubleClickTime=0.200000 88 | DefaultPlayerInputClass=/Script/EnhancedInput.EnhancedPlayerInput 89 | DefaultInputComponentClass=/Script/EnhancedInput.EnhancedInputComponent 90 | DefaultTouchInterface=None 91 | -ConsoleKeys=Tilde 92 | +ConsoleKeys=Tilde 93 | 94 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Scene Sample (Deprecated) 2 | 3 | > [!IMPORTANT] 4 | > This sample is deprecated, reference the [Unreal-MRUtilityKitSample](https://github.com/oculus-samples/Unreal-MRUtilityKitSample) for any Scene related integration. 5 | 6 | This sample demonstrates the usage of [Scene in Unreal Engine](https://developer.oculus.com/documentation/unreal/unreal-scene-documentation/). Though its main feature is related to Scene, it also uses a quad-layer to render an in-game menu with higher quality, works with audio, and provides a [Passthrough stereo layer](https://developer.oculus.com/documentation/unreal/unreal-passthrough-overview/). 7 | 8 | When running on Quest, the sample application spawns Scene Anchors to populate a Scene Model which the user captured in Scene Capture Flow. In cases where the user has not yet used Scene Capture to capture a Scene Model, the sample will automatically launch Capture and prompt the user to capture a Scene Model. You can manually launch Capture from the in-game menu, exposing various functions related to the Scene Actor. The user can also spawn and throw balls that interact with the populated Scene Model. The sample also uses a Passthrough stereo layer so that the populated scene entities blend with the physical play area. 9 | 10 | ![Unreal Scene Sample](Media/unreal-scene-22-scene-sample.png) 11 | 12 | ### Controls 13 | 14 | * **Right B button:** Toggles the in-game menu. 15 | * **Right Trigger:** Interacts with the in-game menu. 16 | * **Left Grip:** Spawns a ball at the position of the left controller. Release the grip to throw the ball. 17 | * **Right Grip:** Spawns a ball at the position of the right controller. Release the grip to throw the ball. 18 | 19 | ### In-Game Menu 20 | 21 | Pressing the right controller’s B button will toggle the in-game menu. The in-game menu presents users with various options. 22 | 23 | The top of the menu shows the status of the Scene Model: 24 | 25 | * **Is Scene Populated:** Was a Scene Actor populated with the Scene Model? 26 | * **Is Room Layout Valid:** Does the captured Scene Model have a valid room layout (at least four walls, a ceiling, and a floor)? 27 | 28 | You can interact with menu widgets in the following ways: 29 | 30 | * **Launch Scene Capture:** Launches Scene Capture. When you exit to return to the sample, the system will repopulate the Scene Actor to reflect any changes during Scene Capture. 31 | * **Populate Scene:** Populates the Scene Actor. This option will be disabled if a Scene Actor is already populated. 32 | * **Clear Scene:** Clears the currently populated Scene Actor. This option will be disabled if no populated Scene Actor exists. 33 | * **Hide/Show All:** Toggles the visibility of all scene entities that make up the Scene Model. 34 | * **Hide/Show Walls:** Toggles the visibility of wall scene entities. 35 | * **Hide/Show Ceilings:** Toggles the visibility of ceiling scene entities. 36 | * **Hide/Show Floors:** Toggles the visibility of floor scene entities. 37 | * **Hide/Show Couches:** Toggles the visibility of couch scene entities. 38 | * **Hide/Show Desks:** Toggles the visibility of desk scene entities. 39 | * **Hide/Show Windows:** Toggles the visibility of window scene entities. 40 | * **Hide/Show Doors:** Toggles the visibility of doors scene entities. 41 | * **Hide/Show Others:** Toggles the visibility of “other” scene entities. 42 | * **Passthrough Opacity:** Opacity slider for the Passthrough overlay. 43 | 44 | ### Ball Throwing Mechanics 45 | 46 | You can spawn a physics-simulated ball by pressing and holding a controller’s grip button. The user releases the ball by releasing the grip button. The system plays a unique audio cue when it spawns a ball, when the ball bounces, and when the ball gets destroyed. Ball actors trace a line from their positions to the headset’s position in the world. If a ball actor detects that another actor in the Scene Model has occluded it, it will change its color using a dynamic material. This functionality is a helpful visual cue in cases where balls are behind hidden scene entities. 47 | 48 | ![Ball Throwing Mechanics](Media/unreal-scene-23-ball-throwing-mechanics.png) 49 | 50 | Ball actors occluded by a table (red) and ball actors on the table (gray). 51 | 52 | ## Implementation Details 53 | 54 | ### Scene Actor 55 | 56 | The system places a [Scene Actor](https://developer.oculus.com/documentation/unreal/unreal-scene-documentation/#terminology) on the level. The following screenshot shows its details. 57 | 58 | ![Scene Actor](Media/unreal-scene-24-scene-preview-actor.png) 59 | 60 | Most interactions with the Scene Actor occurs from the in-game menu's UMG in **Content > Blueprints > HUD**. For example, the following blueprint calls on the Scene Actor to launch Scene Capture when the user triggers the "On Clicked" event after pressing the "Launch Scene Capture" button in the menu: 61 | 62 | ![Launch Capture Flow](Media/unreal-scene-25-launch-capture-flow.png) 63 | 64 | The system may disable some menu buttons depending on the current state of the Scene Actor. For example, the **Populate Scene** button is disabled when a Scene Actor is already populated. 65 | 66 | ![Populate Scene](Media/unreal-scene-26-is-scene-populated.png) 67 | 68 | ### In-Game UI 69 | 70 | #### UI Stereo Layer 71 | 72 | The in-game UI uses a quad-layer, which the Quest device’s compositor then composites. This functionality is crucial to ensure a high-quality visual output in the headset; otherwise, the UI will look severely aliased ([See the Stereo Layers documentation](https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/XRDevelopment/VR/VRHowTos/StereoLayers/)). Additionally, this allows the application to render the UI in front of the virtual scene. 73 | 74 | This logic is in the HUDActor asset (**Content > Blueprints > HUDActor**). The actor uses a world-locked stereo layer. The actor also uses a Widget Component whose render target is the stereo layer. 75 | 76 | ![HUD Actor](Media/unreal-scene-27-hud-actor.png) 77 | 78 | #### Toggling the UI 79 | 80 | Pressing the right controller's B button toggles the menu. When you toggle the menu to be visible, the system will move the menu in front of the user. You can find this logic in the level blueprint function "Toggle Hud." 81 | 82 | #### UI Interaction 83 | 84 | The VR Character Actor (**Content > Blueprints > VRCharacter**) has a Widget Interaction Component to interact with the menu. It also has a static mesh actor with a cylindrical mesh representing a controller's laser pointer. This static mesh actor is visible when the menu is currently active and when the Widget Interaction Component is not presently intersecting with the menu. The VR Character does this during its "Event Tick.” 85 | 86 | ![VR Character Actor](Media/unreal-scene-28-ui-interaction.png) 87 | 88 | Once the Widget Interaction Component intersects the menu, the UMG logic will translate a cursor icon over the menu. The UMG's "Event Tick" handles this logic (**Content > Blueprints > HUD**). 89 | 90 | ![HUD](Media/unreal-scene-29-translate-cursor-widget-on-the-hud.png) 91 | 92 | #### Ball Spawning & Destruction 93 | 94 | Pressing a controller’s trigger will spawn a ball actor. You can find this logic in the “SpawnBall” blueprint function of the VR Character. The system uses a “MaxNumBalls” integer to cap the number of balls you can spawn. The system will destroy the oldest spawned ball actor if you reach this limit. The system also eliminates ball actors when they fall off the world using the “Kill Z” world setting. 95 | 96 | ![World Settings](Media/unreal-scene-30-world-settings.png) 97 | 98 | The “SpawnBall” function also handles the throwing logic when the grip button is unpressed. Once the user throws a ball, the ball actor will begin to simulate physics. 99 | 100 | #### Ball Actor Occlusion 101 | 102 | The Ball Actor's "Event Tick" handles the trace logic to detect occlusion and change the dynamic material's properties (**Content > Blueprints > BallActor**). 103 | 104 | ![Ball Actor Occlusion](Media/unreal-scene-31-change-color-if-occluded.png) 105 | 106 | #### Sound Cues 107 | 108 | The system plays sound cues when a ball actor is spawned, destroyed, or collides with the environment. The Ball Actor handles this logic. 109 | 110 | ![Sound Cues](Media/unreal-scene-32-sound-cues.png) 111 | 112 | **NOTE:** You must properly set the correct sample rate in the project settings; otherwise, you can hear severe audio latency. To set the sample rate, navigate to **Project Settings -> Platform -> Android -> Audio -> Audio Mixer Sample Rate**. You must set this setting to 48000. 113 | 114 | ![Audio Mixer Sample Rate](Media/unreal-scene-33-platforms.png) 115 | 116 | #### Passthrough Layer 117 | 118 | The VR Character Actor is composed of a Passthrough Layer Component. This composition allows us to blend the Scene Model with the real world. For more information, consult the Passthrough layer documentation: [See the Unreal Passthrough Overview](https://developer.oculus.com/documentation/unreal/unreal-passthrough-overview/). 119 | 120 | The in-game menu has a slider widget to control the Passthrough layer’s opacity. You can find this logic in the HUD actor (Content/Blueprints/HUD). 121 | 122 | ![Passthrough Layer](Media/unreal-scene-34-set-passthrough-opacity.png) 123 | 124 | ## How to Use 125 | 126 | ### Load the project 127 | 128 | First, ensure you have Git LFS installed by running this command: 129 | ```sh 130 | git lfs install 131 | ``` 132 | 133 | Then, clone this repo using the "Code" button above, or this command: 134 | ```sh 135 | git clone https://github.com/oculus-samples/Unreal-Scene 136 | ``` 137 | 138 | ### Launch the project in the Unreal Editor using one of the following options. 139 | 140 | #### Epic Games Launcher with MetaXR plugin 141 | 142 | The easiest way to get started is to use the prebuilt Unreal Engine from the Epic Games Launcher, with MetaXR plugin. 143 | 144 | 1. Install the [Epic Games Launcher](https://www.epicgames.com/store/en-US/download) 145 | 2. In the launcher, install UE5 (recommended). 146 | 3. Download and install the MetaXR plugin from the [Unreal Engine 5 Integration download page](https://developer.oculus.com/downloads/package/unreal-engine-5-integration). 147 | 4. Launch the Unreal Editor 148 | 5. From "Recent Projects", click "Browse" and select `Scene.uproject` 149 | 150 | #### Meta fork of Epic’s Unreal Engine 151 | 152 | The Meta fork of Epic’s Unreal Engine will give you the most up to date integration of Oculus features. However, you must build the editor from its source. 153 | 154 | Follow the instructions on [Accessing Unreal Engine source code on GitHub](https://www.unrealengine.com/en-US/ue-on-github) to obtain: 155 | - an Epic account 156 | - a GitHub account 157 | - authorization to access the Unreal Engine source repository 158 | Disregard instructions on downloading Epic’s Unreal Engine source code as you will be building the Meta fork of Epic’s Unreal Engine source. 159 | 160 | Make sure you have Visual Studio installed properly: 161 | - Launch the Visual Studio Installer and click Modify for the Visual Studio version you want to use. 162 | - Under the Workloads tab, click Game development with C++ if it isn’t checked and then click Modify. 163 | 164 | 1. Download the source code from the [Meta fork of Epic’s Unreal Engine on GitHub](https://github.com/Oculus-VR/UnrealEngine). 165 | 2. Follow Epic’s instructions on [Building Unreal Engine from Source](https://docs.unrealengine.com/5.2/en-US/building-unreal-engine-from-source/) to complete the process. 166 | 3. Launch the Unreal Editor 167 | 4. From "Recent Projects", click "Browse" and select `Scene.uproject` 168 | 169 | Depending on your machine, the build may take awhile to complete. 170 | 171 | # Licenses 172 | The Meta License applies to the SDK and supporting material. The MIT License applies to only certain, clearly marked documents. If an individual file does not indicate which license it is subject to, then the Meta License applies. 173 | -------------------------------------------------------------------------------- /Config/DefaultEngine.ini: -------------------------------------------------------------------------------- 1 | [/Script/EngineSettings.GameMapsSettings] 2 | EditorStartupMap=/Game/BouncingBall.BouncingBall 3 | LocalMapOptions= 4 | TransitionMap=None 5 | bUseSplitscreen=False 6 | TwoPlayerSplitscreenLayout=Horizontal 7 | ThreePlayerSplitscreenLayout=FavorTop 8 | FourPlayerSplitscreenLayout=Grid 9 | bOffsetPlayerGamepadIds=False 10 | GameInstanceClass=/Script/Engine.GameInstance 11 | GameDefaultMap=/Game/BouncingBall.BouncingBall 12 | ServerDefaultMap=/Engine/Maps/Entry.Entry 13 | GlobalDefaultGameMode=/Game/Blueprints/NewGameMode.NewGameMode_C 14 | GlobalDefaultServerGameMode=None 15 | 16 | [/Script/HardwareTargeting.HardwareTargetingSettings] 17 | TargetedHardwareClass=Mobile 18 | AppliedTargetedHardwareClass=Mobile 19 | DefaultGraphicsPerformance=Scalable 20 | AppliedDefaultGraphicsPerformance=Scalable 21 | 22 | [/Script/Engine.Engine] 23 | +ActiveGameNameRedirects=(OldGameName="TP_Blank",NewGameName="/Script/ScenePreview") 24 | +ActiveGameNameRedirects=(OldGameName="/Script/TP_Blank",NewGameName="/Script/ScenePreview") 25 | +ActiveClassRedirects=(OldClassName="TP_BlankGameModeBase",NewClassName="ScenePreviewGameModeBase") 26 | 27 | [/Script/Engine.RendererSettings] 28 | r.Mobile.DisableVertexFog=True 29 | r.Shadow.CSM.MaxMobileCascades=2 30 | r.MobileMSAA=4 31 | r.Mobile.AllowDitheredLODTransition=False 32 | r.Mobile.AllowSoftwareOcclusion=False 33 | r.Mobile.VirtualTextures=False 34 | r.DiscardUnusedQuality=False 35 | r.AllowOcclusionQueries=True 36 | r.MinScreenRadiusForLights=0.030000 37 | r.MinScreenRadiusForDepthPrepass=0.030000 38 | r.MinScreenRadiusForCSMDepth=0.010000 39 | r.PrecomputedVisibilityWarning=False 40 | r.TextureStreaming=True 41 | Compat.UseDXT5NormalMaps=False 42 | r.VirtualTextures=False 43 | r.VT.EnableAutoImport=True 44 | r.VirtualTexturedLightmaps=False 45 | r.VT.TileSize=128 46 | r.VT.TileBorderSize=4 47 | r.vt.FeedbackFactor=16 48 | r.VT.EnableCompressZlib=True 49 | r.VT.EnableCompressCrunch=False 50 | r.ClearCoatNormal=False 51 | r.ReflectionCaptureResolution=128 52 | r.Mobile.ReflectionCaptureCompression=False 53 | r.ReflectionEnvironmentLightmapMixBasedOnRoughness=True 54 | r.ForwardShading=True 55 | r.VertexFoggingForOpaque=True 56 | r.AllowStaticLighting=True 57 | r.NormalMapsForStaticLighting=False 58 | r.GenerateMeshDistanceFields=False 59 | r.DistanceFieldBuild.EightBit=False 60 | r.GenerateLandscapeGIData=False 61 | r.DistanceFieldBuild.Compress=False 62 | r.TessellationAdaptivePixelsPerTriangle=48.000000 63 | r.SeparateTranslucency=False 64 | r.TranslucentSortPolicy=2 65 | TranslucentSortAxis=(X=0.000000,Y=-1.000000,Z=0.000000) 66 | vr.VRS.HMDFixedFoveationLevel=0 67 | r.CustomDepth=1 68 | r.CustomDepthTemporalAAJitter=True 69 | r.PostProcessing.PropagateAlpha=2 70 | r.DefaultFeature.Bloom=False 71 | r.DefaultFeature.AmbientOcclusion=False 72 | r.DefaultFeature.AmbientOcclusionStaticFraction=True 73 | r.DefaultFeature.AutoExposure=False 74 | r.DefaultFeature.AutoExposure.Method=0 75 | r.DefaultFeature.AutoExposure.Bias=1.000000 76 | r.DefaultFeature.AutoExposure.ExtendDefaultLuminanceRange=False 77 | r.UsePreExposure=True 78 | r.EyeAdaptation.EditorOnly=False 79 | r.DefaultFeature.MotionBlur=False 80 | r.DefaultFeature.LensFlare=False 81 | r.TemporalAA.Upsampling=False 82 | r.SSGI.Enable=False 83 | r.DefaultFeature.AntiAliasing=0 84 | r.DefaultFeature.LightUnits=1 85 | r.DefaultBackBufferPixelFormat=4 86 | r.Shadow.UnbuiltPreviewInGame=True 87 | r.StencilForLODDither=False 88 | r.EarlyZPass=3 89 | r.EarlyZPassOnlyMaterialMasking=False 90 | r.DBuffer=True 91 | r.ClearSceneMethod=1 92 | r.BasePassOutputsVelocity=False 93 | r.VertexDeformationOutputsVelocity=False 94 | r.SelectiveBasePassOutputs=False 95 | bDefaultParticleCutouts=False 96 | fx.GPUSimulationTextureSizeX=1024 97 | fx.GPUSimulationTextureSizeY=1024 98 | r.AllowGlobalClipPlane=False 99 | r.GBufferFormat=1 100 | r.MorphTarget.Mode=True 101 | r.GPUCrashDebugging=False 102 | vr.InstancedStereo=False 103 | r.MobileHDR=False 104 | vr.MobileMultiView=True 105 | r.Mobile.UseHWsRGBEncoding=True 106 | vr.RoundRobinOcclusion=False 107 | vr.SupportMobileSpaceWarp=False 108 | vr.ODSCapture=False 109 | r.MeshStreaming=False 110 | r.WireframeCullThreshold=5.000000 111 | r.RayTracing=False 112 | r.RayTracing.UseTextureLod=False 113 | r.SupportStationarySkylight=True 114 | r.SupportLowQualityLightmaps=True 115 | r.SupportPointLightWholeSceneShadows=True 116 | r.SupportAtmosphericFog=True 117 | r.SupportSkyAtmosphere=True 118 | r.SupportSkyAtmosphereAffectsHeightFog=False 119 | r.SkinCache.CompileShaders=False 120 | r.SkinCache.DefaultBehavior=1 121 | r.SkinCache.SceneMemoryLimitInMB=128.000000 122 | r.Mobile.EnableStaticAndCSMShadowReceivers=True 123 | r.Mobile.EnableMovableLightCSMShaderCulling=True 124 | r.Mobile.AllowDistanceFieldShadows=True 125 | r.Mobile.AllowMovableDirectionalLights=True 126 | r.MobileNumDynamicPointLights=4 127 | r.MobileDynamicPointLightsUseStaticBranch=True 128 | r.Mobile.EnableMovableSpotlights=False 129 | r.Mobile.EnableMovableSpotlightsShadow=False 130 | r.GPUSkin.Support16BitBoneIndex=False 131 | r.GPUSkin.Limit2BoneInfluences=False 132 | r.SupportDepthOnlyIndexBuffers=True 133 | r.SupportReversedIndexBuffers=True 134 | r.LightPropagationVolume=False 135 | r.Mobile.AmbientOcclusion=False 136 | r.GPUSkin.UnlimitedBoneInfluences=False 137 | r.GPUSkin.UnlimitedBoneInfluencesThreshold=8 138 | MaxSkinBones=(Default=65536,PerPlatform=(("Mobile", 256))) 139 | r.Mobile.PlanarReflectionMode=0 140 | r.Mobile.SupportsGen4TAA=False 141 | bStreamSkeletalMeshLODs=(Default=False,PerPlatform=()) 142 | bDiscardSkeletalMeshOptionalLODs=(Default=False,PerPlatform=()) 143 | VisualizeCalibrationColorMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationColor.PPM_DefaultCalibrationColor 144 | VisualizeCalibrationCustomMaterialPath=None 145 | VisualizeCalibrationGrayscaleMaterialPath=/Engine/EngineMaterials/PPM_DefaultCalibrationGrayscale.PPM_DefaultCalibrationGrayscale 146 | r.Mobile.AntiAliasing=3 147 | r.MSAACount=4 148 | 149 | [/Script/Slate.SlateSettings] 150 | bExplicitCanvasChildZOrder=True 151 | 152 | [/Script/AndroidRuntimeSettings.AndroidRuntimeSettings] 153 | PackageName=com.samples.[PROJECT] 154 | StoreVersion=1 155 | StoreVersionOffsetArm64=0 156 | StoreVersionOffsetX8664=0 157 | ApplicationDisplayName= 158 | VersionDisplayName=1.0 159 | MinSDKVersion=32 160 | TargetSDKVersion=32 161 | InstallLocation=InternalOnly 162 | bEnableLint=False 163 | bPackageDataInsideApk=True 164 | bCreateAllPlatformsInstall=False 165 | bDisableVerifyOBBOnStartUp=False 166 | bForceSmallOBBFiles=False 167 | bAllowLargeOBBFiles=False 168 | bAllowPatchOBBFile=False 169 | bAllowOverflowOBBFiles=False 170 | bUseExternalFilesDir=False 171 | bPublicLogFiles=True 172 | Orientation=SensorLandscape 173 | MaxAspectRatio=2.100000 174 | bUseDisplayCutout=False 175 | bRestoreNotificationsOnReboot=False 176 | bFullScreen=True 177 | bEnableNewKeyboard=True 178 | DepthBufferPreference=Default 179 | bValidateTextureFormats=True 180 | bForceCompressNativeLibs=False 181 | bEnableAdvancedBinaryCompression=False 182 | bEnableBundle=False 183 | bEnableUniversalAPK=True 184 | bBundleABISplit=True 185 | bBundleLanguageSplit=True 186 | bBundleDensitySplit=True 187 | ExtraApplicationSettings= 188 | ExtraActivitySettings= 189 | bAndroidVoiceEnabled=False 190 | bEnableMulticastSupport=False 191 | bPackageForMetaQuest=True 192 | bRemoveOSIG=False 193 | KeyStore= 194 | KeyAlias= 195 | KeyStorePassword= 196 | KeyPassword= 197 | bBuildForArm64=True 198 | bBuildForX8664=False 199 | bBuildForES31=False 200 | bSupportsVulkan=True 201 | bSupportsVulkanSM5=False 202 | DebugVulkanLayerDirectory=(Path="") 203 | bAndroidOpenGLSupportsBackbufferSampling=False 204 | bDetectVulkanByDefault=True 205 | bBuildWithHiddenSymbolVisibility=False 206 | bDisableStackProtector=False 207 | bDisableLibCppSharedDependencyValidation=False 208 | bSaveSymbols=False 209 | bStripShaderReflection=True 210 | bStripReflectOfAndroidShader=False 211 | bEnableGooglePlaySupport=False 212 | bUseGetAccounts=False 213 | GamesAppID= 214 | bEnableSnapshots=False 215 | bSupportAdMob=True 216 | AdMobAppID= 217 | TagForChildDirectedTreatment=TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED 218 | TagForUnderAgeOfConsent=TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED 219 | MaxAdContentRating=MAX_AD_CONTENT_RATING_G 220 | AdMobAdUnitID= 221 | GooglePlayLicenseKey= 222 | GCMClientSenderID= 223 | bShowLaunchImage=True 224 | bAllowIMU=False 225 | bAllowControllers=True 226 | bBlockAndroidKeysOnControllers=False 227 | bControllersBlockDeviceFeedback=False 228 | AndroidAudio=Default 229 | AudioSampleRate=48000 230 | AudioCallbackBufferFrameSize=1024 231 | AudioNumBuffersToEnqueue=4 232 | AudioMaxChannels=0 233 | AudioNumSourceWorkers=0 234 | SpatializationPlugin= 235 | SourceDataOverridePlugin= 236 | ReverbPlugin= 237 | OcclusionPlugin= 238 | CompressionOverrides=(bOverrideCompressionTimes=False,DurationThreshold=5.000000,MaxNumRandomBranches=0,SoundCueQualityIndex=0) 239 | CacheSizeKB=0 240 | MaxChunkSizeOverrideKB=0 241 | bResampleForDevice=False 242 | SoundCueCookQualityIndex=-1 243 | MaxSampleRate=0.000000 244 | HighSampleRate=0.000000 245 | MedSampleRate=0.000000 246 | LowSampleRate=0.000000 247 | MinSampleRate=0.000000 248 | CompressionQualityModifier=0.000000 249 | AutoStreamingThreshold=0.000000 250 | AndroidGraphicsDebugger=None 251 | MaliGraphicsDebuggerPath=(Path="") 252 | bEnableMaliPerfCounters=False 253 | bMultiTargetFormat_ETC2=True 254 | bMultiTargetFormat_DXT=True 255 | bMultiTargetFormat_ASTC=True 256 | TextureFormatPriority_ETC2=0.200000 257 | TextureFormatPriority_DXT=0.600000 258 | TextureFormatPriority_ASTC=0.900000 259 | SDKAPILevelOverride= 260 | NDKAPILevelOverride= 261 | BuildToolsOverride= 262 | bStreamLandscapeMeshLODs=False 263 | bEnableDomStorage=False 264 | 265 | [/Script/Engine.CollisionProfile] 266 | -Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) 267 | -Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 268 | -Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 269 | -Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 270 | -Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 271 | -Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.",bCanModify=False) 272 | -Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ",bCanModify=False) 273 | -Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ",bCanModify=False) 274 | -Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic",Response=ECR_Block),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.",bCanModify=False) 275 | -Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.",bCanModify=False) 276 | -Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) 277 | -Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) 278 | -Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) 279 | -Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) 280 | -Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.",bCanModify=False) 281 | -Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.",bCanModify=False) 282 | -Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.",bCanModify=False) 283 | -Profiles=(Name="UI",CollisionEnabled=QueryOnly,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Block),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ",bCanModify=False) 284 | +Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision") 285 | +Profiles=(Name="BlockAll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=,HelpMessage="WorldStatic object that blocks all actors by default. All new custom channels will use its own default response. ") 286 | +Profiles=(Name="OverlapAll",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") 287 | +Profiles=(Name="BlockAllDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=,HelpMessage="WorldDynamic object that blocks all actors by default. All new custom channels will use its own default response. ") 288 | +Profiles=(Name="OverlapAllDynamic",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that overlaps all actors by default. All new custom channels will use its own default response. ") 289 | +Profiles=(Name="IgnoreOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that ignores Pawn and Vehicle. All other channels will be set to default.") 290 | +Profiles=(Name="OverlapOnlyPawn",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Pawn",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that overlaps Pawn, Camera, and Vehicle. All other channels will be set to default. ") 291 | +Profiles=(Name="Pawn",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object. Can be used for capsule of any playerable character or AI. ") 292 | +Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="WorldStatic"),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="PhysicsBody",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Pawn object that ignores all other actors except WorldStatic.") 293 | +Profiles=(Name="CharacterMesh",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="Pawn",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Pawn object that is used for Character Mesh. All other channels will be set to default.") 294 | +Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors") 295 | +Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors") 296 | +Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.") 297 | +Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.") 298 | +Profiles=(Name="Trigger",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility",Response=ECR_Ignore),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldDynamic object that is used for trigger. All other channels will be set to default.") 299 | +Profiles=(Name="Ragdoll",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="PhysicsBody",CustomResponses=((Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore)),HelpMessage="Simulating Skeletal Mesh Component. All other channels will be set to default.") 300 | +Profiles=(Name="Vehicle",CollisionEnabled=QueryAndPhysics,bCanModify=False,ObjectTypeName="Vehicle",CustomResponses=,HelpMessage="Vehicle object that blocks Vehicle, WorldStatic, and WorldDynamic. All other channels will be set to default.") 301 | +Profiles=(Name="UI",CollisionEnabled=QueryOnly,bCanModify=False,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="Pawn",Response=ECR_Overlap),(Channel="Visibility"),(Channel="WorldDynamic",Response=ECR_Overlap),(Channel="Camera",Response=ECR_Overlap),(Channel="PhysicsBody",Response=ECR_Overlap),(Channel="Vehicle",Response=ECR_Overlap),(Channel="Destructible",Response=ECR_Overlap)),HelpMessage="WorldStatic object that overlaps all actors by default. All new custom channels will use its own default response. ") 302 | +DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,DefaultResponse=ECR_Ignore,bTraceType=True,bStaticObject=False,Name="HUD") 303 | -ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") 304 | -ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") 305 | -ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") 306 | -ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") 307 | -ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") 308 | +ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") 309 | +ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") 310 | +ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") 311 | +ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") 312 | +ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") 313 | -CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") 314 | -CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") 315 | -CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") 316 | -CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") 317 | +CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") 318 | +CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") 319 | +CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") 320 | +CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") 321 | 322 | [/Script/Engine.PhysicsSettings] 323 | bEnableStabilization=True 324 | 325 | [/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] 326 | bEnablePlugin=True 327 | bAllowNetworkConnection=True 328 | SecurityToken=8D6E1C1B4D5D2AE638CAF28DD206DDC3 329 | bIncludeInShipping=False 330 | bAllowExternalStartInShipping=False 331 | bCompileAFSProject=False 332 | bUseCompression=False 333 | bLogFiles=False 334 | bReportStats=False 335 | ConnectionType=USBOnly 336 | bUseManualIPAddress=False 337 | ManualIPAddress= 338 | 339 | [/Script/OculusXRHMD.OculusXRHMDRuntimeSettings] 340 | ColorSpace=Quest 341 | bInsightPassthroughEnabled=True 342 | bAnchorSupportEnabled=True 343 | XrApi=OVRPluginOpenXR 344 | bSupportExperimentalFeatures=False 345 | bSceneSupportEnabled=True 346 | bBoundaryVisibilitySupportEnabled=True 347 | SystemSplashBackground=Contextual 348 | 349 | --------------------------------------------------------------------------------