diff --git a/Config/DefaultEditorPerProjectUserSettings.ini b/Config/DefaultEditorPerProjectUserSettings.ini index 4923a9e..c54c243 100644 --- a/Config/DefaultEditorPerProjectUserSettings.ini +++ b/Config/DefaultEditorPerProjectUserSettings.ini @@ -35,4 +35,12 @@ LogTimestampMode=None bPromoteOutputLogWarningsDuringPIE=False AssetEditorOpenLocation=Default +[/Script/UMGEditor.WidgetDesignerSettings] +GridSnapEnabled=True +GridSnapSize=4 +bLockToPanelOnDragByDefault=False +bShowOutlines=True +bExecutePreConstructEvent=True +bRespectLocks=True + diff --git a/Config/DefaultGame.ini b/Config/DefaultGame.ini index ce61a4a..07f215a 100644 --- a/Config/DefaultGame.ini +++ b/Config/DefaultGame.ini @@ -1,13 +1,13 @@ [/Script/EngineSettings.GeneralProjectSettings] ProjectID=EECAC70846F0D561D6CD178F9841D3DA -Description=Proteus Template 3.2.2 -ProjectName=Proteus 3.2.2 -ProjectVersion=3.2.2 +Description=Proteus Template 3.3beta +ProjectName=Proteus 3.3 +ProjectVersion=3.3 CompanyName=Proteus VR CompanyDistinguishedName=Proteus VR Homepage=proteus-vr.com -ProjectDisplayedTitle=NSLOCTEXT("[/Script/EngineSettings]", "80E36D344D6BAF79E6D37B860470D170", "Proteus 3.2.2") -ProjectDebugTitleInfo=NSLOCTEXT("[/Script/EngineSettings]", "1EA4E7F14CF4CF7CF1F518A60058910D", "Proteus 3.2.2") +ProjectDisplayedTitle=NSLOCTEXT("[/Script/EngineSettings]", "80E36D344D6BAF79E6D37B860470D170", "Proteus 3.3") +ProjectDebugTitleInfo=NSLOCTEXT("[/Script/EngineSettings]", "1EA4E7F14CF4CF7CF1F518A60058910D", "Proteus 3.3") SupportContact=Mathieu Beaulieu [/Script/Engine.GameSession] @@ -16,7 +16,7 @@ bRequiresPushToTalk=false [/Script/UnrealEd.ProjectPackagingSettings] BuildConfiguration=PPBC_Development StagingDirectory=(Path="C:/Users/mathi/Downloads/TEST_C") -FullRebuild=True +FullRebuild=False ForDistribution=False IncludeDebugFiles=False BlueprintNativizationMethod=Disabled @@ -48,3 +48,4 @@ bSkipEditorContent=False +MapsToCook=(FilePath="/Game/Proteus_Multi/TravelMap") bNativizeBlueprintAssets=False bNativizeOnlySelectedBlueprints=False + diff --git a/Config/DefaultInput.ini b/Config/DefaultInput.ini index 65dae58..404aa41 100644 --- a/Config/DefaultInput.ini +++ b/Config/DefaultInput.ini @@ -48,19 +48,10 @@ DefaultViewportMouseLockMode=LockOnCapture +ActionMappings=(ActionName="AvatarRightFaceButton2",Key=MotionController_Right_FaceButton2,bShift=False,bCtrl=False,bAlt=False,bCmd=False) +ActionMappings=(ActionName="Teleport",Key=LeftMouseButton,bShift=False,bCtrl=False,bAlt=False,bCmd=False) +ActionMappings=(ActionName="MenuButton",Key=RightMouseButton,bShift=False,bCtrl=False,bAlt=False,bCmd=False) -+AxisMappings=(AxisName="MoveForward",Key=W,Scale=1.000000) -+AxisMappings=(AxisName="MoveForward",Key=S,Scale=-1.000000) -+AxisMappings=(AxisName="MoveForward",Key=Down,Scale=-1.000000) +AxisMappings=(AxisName="MoveForward",Key=Gamepad_LeftY,Scale=1.000000) -+AxisMappings=(AxisName="MoveRight",Key=A,Scale=-1.000000) -+AxisMappings=(AxisName="MoveRight",Key=D,Scale=1.000000) +AxisMappings=(AxisName="MoveRight",Key=Gamepad_LeftX,Scale=1.000000) +AxisMappings=(AxisName="TurnRate",Key=Gamepad_RightX,Scale=1.000000) -+AxisMappings=(AxisName="TurnRate",Key=Left,Scale=-1.000000) -+AxisMappings=(AxisName="TurnRate",Key=Right,Scale=1.000000) -+AxisMappings=(AxisName="Turn",Key=MouseX,Scale=1.000000) +AxisMappings=(AxisName="LookUpRate",Key=Gamepad_RightY,Scale=1.000000) -+AxisMappings=(AxisName="LookUp",Key=MouseY,Scale=-1.000000) +AxisMappings=(AxisName="MoveForward",Key=MotionController_Left_Thumbstick_Y,Scale=-1.000000) +AxisMappings=(AxisName="MoveRight",Key=MotionController_Left_Thumbstick_X,Scale=1.000000) +AxisMappings=(AxisName="AvatarLeftTrigger",Key=OculusTouch_Left_Trigger,Scale=1.000000) @@ -73,7 +64,6 @@ DefaultViewportMouseLockMode=LockOnCapture +AxisMappings=(AxisName="AvatarRightTriggerAxis",Key=MotionController_Right_Trigger,Scale=1.000000) +AxisMappings=(AxisName="AvatarLeftGrip1Axis",Key=MotionController_Left_Grip1,Scale=1.000000) +AxisMappings=(AxisName="AvatarRightGrip1Axis",Key=MotionController_Right_Grip1,Scale=1.000000) -+AxisMappings=(AxisName="MoveForward",Key=Up,Scale=1.000000) bAlwaysShowTouchInterface=False bShowConsoleOnFourFingerTap=True DefaultTouchInterface=/Engine/MobileResources/HUD/DefaultVirtualJoysticks.DefaultVirtualJoysticks diff --git a/Config/Direct/DefaultEngine.ini b/Config/Direct/DefaultEngine.ini new file mode 100644 index 0000000..e706ba5 --- /dev/null +++ b/Config/Direct/DefaultEngine.ini @@ -0,0 +1,222 @@ +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/Engine.Engine] +bSmoothFrameRate=True +SmoothedFrameRateRange=(LowerBound=(Type=Inclusive,Value=45.000000),UpperBound=(Type=Exclusive,Value=90.000000)) +MinDesiredFrameRate=90.000000 + +[/Script/Engine.RendererSettings] +r.ForwardShading=True +r.DefaultFeature.AmbientOcclusion=False +r.DefaultFeature.AmbientOcclusionStaticFraction=False +r.DefaultFeature.AutoExposure=False +r.DefaultFeature.MotionBlur=False +r.DefaultFeature.AntiAliasing=3 +vr.InstancedStereo=False + +bSupportsDash=true + +[/Script/Engine.AudioSettings] +VoiPSoundClass=/Game/Proteus_Multi/VOIPSoundClass.VOIPSoundClass +DefaultSoundClassName=/Game/Proteus_Multi/VOIPSoundClass.VOIPSoundClass + +[/Script/Engine.GameEngine] +!NetDriverDefinitions=ClearArray +; Uncomment the next line if you are using the Null Subsystem ++NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver") +; Uncomment the next line if you are using the Steam Subsystem +;+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") +; Uncomment the next line if you are using the Oculus Subsystem +;+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemOculus.OculusNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") + +[OnlineSubsystem] +DefaultPlatformService=NULL +bHasVoiceEnabled=true +PollingIntervalInMs=20 +VoiceNotificationDelta=0.2 +AllowPeerConnections=True +AllowPeerVoice=True + +[/Script/Engine.Engine] +!NetDriverDefinitions=ClearArray +-NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver") + +[OnlineSubsystemSteam] +bEnabled=false +SteamDevAppId=480 +GameServerQueryPort=27015 +bRelaunchInSteam=false +GameVersion=1.0.0.0 +bVACEnabled=1 +bAllowP2PPacketRelay=true +P2PConnectionTimeout=90 +Achievement_0_Id= + +[/Script/OnlineSubsystemSteam.SteamNetDriver] +NetConnectionClassName=OnlineSubsystemSteam.SteamNetConnection + +[OnlineSubsystemOculus] +bEnabled=false +OculusAppId=1200222206710107 + +[/Script/OnlineSubsystemOculus.OculusNetDriver] +NetConnectionClassName=OnlineSubsystemOculus.OculusNetConnection + +[/Script/Engine.Player] +ConfiguredInternetSpeed=500000 +ConfiguredLanSpeed=500000 + +[/Script/Engine.GameNetworkManager] +TotalNetBandwidth=500000 +MaxDynamicBandwidth=80000 +MinDynamicBandwidth=20000 + +[/Script/OnlineSubsystemUtils.IpNetDriver] +MaxClientRate=800000 +MaxInternetClientRate=800000 + +[Voice] +bEnabled=true + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +Compiler=VisualStudio2017 +-TargetedRHIs=PCD3D_SM5 +-TargetedRHIs=PCD3D_SM4 ++TargetedRHIs=PCD3D_SM5 +MinimumOSVersion=MSOS_Vista +AudioDevice= + +[/Script/Engine.RecastNavMesh] +RuntimeGeneration=Static +bForceRebuildOnLoad=True + +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/Proteus_Multi/MainMenu.MainMenu +LocalMapOptions= +TransitionMap=/Game/Proteus_Multi/TravelMap.TravelMap +bUseSplitscreen=True +TwoPlayerSplitscreenLayout=Horizontal +ThreePlayerSplitscreenLayout=FavorTop +bOffsetPlayerGamepadIds=False +GameInstanceClass=/Game/Proteus_Multi/GameInfoInstance.GameInfoInstance_C +GameDefaultMap=/Game/Proteus_Multi/MainMenu.MainMenu +ServerDefaultMap=/Game/Proteus_Multi/MainMenu.MainMenu +GlobalDefaultGameMode=/Game/Proteus_Multi/MainMenuGM.MainMenuGM_C +GlobalDefaultServerGameMode=None + +[/Script/Engine.CollisionProfile] +-Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) +-Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) +-Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) +-Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) +-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) +-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) +-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) +-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) ++Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) ++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) ++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) ++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) ++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) ++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) ++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) ++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) ++Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,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.",bCanModify=False) ++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) ++Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) ++Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) ++Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) ++Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) ++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) ++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) ++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) ++Profiles=(Name="UI",CollisionEnabled=QueryOnly,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. ",bCanModify=False) ++Profiles=(Name="VRCollision",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Collision for VR",bCanModify=True) ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="NavMeshCollision",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False) +-ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") +-ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") +-ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") +-ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") +-ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") ++ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") ++ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") ++ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") ++ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") ++ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") +-CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") +-CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") +-CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") +-CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") ++CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") ++CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") ++CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") ++CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") + +[/Script/Engine.NavigationSystem] +bAutoCreateNavigationData=True +bAllowClientSideNavigation=True +bInitialBuildingLocked=False +bSkipAgentHeightCheckWhenPickingNavData=False +DataGatheringMode=Instant +bGenerateNavigationOnlyAroundNavigationInvokers=False +ActiveTilesUpdateInterval=1.000000 +DirtyAreasUpdateFreq=60.000000 + +[/Script/Engine.PhysicsSettings] +DefaultGravityZ=-980.000000 +DefaultTerminalVelocity=4000.000000 +DefaultFluidFriction=0.300000 +SimulateScratchMemorySize=262144 +RagdollAggregateThreshold=4 +TriangleMeshTriangleMinAreaThreshold=5.000000 +bEnableAsyncScene=False +bEnableShapeSharing=False +bEnablePCM=False +bEnableStabilization=False +bWarnMissingLocks=True +bEnable2DPhysics=False +LockedAxis=Invalid +DefaultDegreesOfFreedom=Full3D +BounceThresholdVelocity=200.000000 +FrictionCombineMode=Average +RestitutionCombineMode=Average +MaxAngularVelocity=3600.000000 +MaxDepenetrationVelocity=0.000000 +ContactOffsetMultiplier=0.010000 +MinContactOffset=0.000100 +MaxContactOffset=1.000000 +bSimulateSkeletalMeshOnDedicatedServer=True +DefaultShapeComplexity=CTF_UseSimpleAndComplex +bDefaultHasComplexCollision=True +bSuppressFaceRemapTable=False +bSupportUVFromHitResults=False +bDisableActiveActors=False +bDisableCCD=False +bEnableEnhancedDeterminism=False +MaxPhysicsDeltaTime=0.033333 +bSubstepping=False +bSubsteppingAsync=False +MaxSubstepDeltaTime=0.016667 +MaxSubsteps=6 +SyncSceneSmoothingFactor=0.000000 +AsyncSceneSmoothingFactor=0.990000 +InitialAverageFrameRate=0.016667 +PhysXTreeRebuildRate=10 + + diff --git a/Config/EditorPrefs.ini b/Config/EditorPrefs.ini new file mode 100644 index 0000000..f0d6ed8 --- /dev/null +++ b/Config/EditorPrefs.ini @@ -0,0 +1,9 @@ +[/Script/UMGEditor.WidgetDesignerSettings] +GridSnapEnabled=True +GridSnapSize=4 +bLockToPanelOnDragByDefault=False +bShowOutlines=True +bExecutePreConstructEvent=True +bRespectLocks=True + + diff --git a/Config/LAN/DefaultEngine.ini b/Config/LAN/DefaultEngine.ini new file mode 100644 index 0000000..9e6cfd7 --- /dev/null +++ b/Config/LAN/DefaultEngine.ini @@ -0,0 +1,220 @@ +[/Script/HardwareTargeting.HardwareTargetingSettings] +TargetedHardwareClass=Desktop +TargetedHardwareClass=Desktop +AppliedTargetedHardwareClass=Desktop +DefaultGraphicsPerformance=Maximum +DefaultGraphicsPerformance=Maximum +AppliedDefaultGraphicsPerformance=Maximum + +[/Script/Engine.Engine] +bSmoothFrameRate=True +SmoothedFrameRateRange=(LowerBound=(Type=Inclusive,Value=45.000000),UpperBound=(Type=Exclusive,Value=90.000000)) +MinDesiredFrameRate=90.000000 + +[/Script/Engine.RendererSettings] +r.ForwardShading=True +r.DefaultFeature.AmbientOcclusion=True +r.DefaultFeature.AmbientOcclusionStaticFraction=True +r.DefaultFeature.AutoExposure=False +r.DefaultFeature.MotionBlur=False +r.DefaultFeature.AntiAliasing=3 +vr.InstancedStereo=True + +bSupportsDash=true + +[/Script/Engine.AudioSettings] +VoiPSoundClass=/Game/Proteus_Multi/VOIPSoundClass.VOIPSoundClass +DefaultSoundClassName=/Game/Proteus_Multi/VOIPSoundClass.VOIPSoundClass + +[/Script/Engine.GameEngine] +!NetDriverDefinitions=ClearArray +; Uncomment the next line if you are using the Null Subsystem ++NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver") +; Uncomment the next line if you are using the Steam Subsystem +;+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") +; Uncomment the next line if you are using the Oculus Subsystem +;+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemOculus.OculusNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") + +[OnlineSubsystem] +DefaultPlatformService=NULL +bHasVoiceEnabled=true +PollingIntervalInMs=20 +VoiceNotificationDelta=0.2 +AllowPeerConnections=True +AllowPeerVoice=True + +[/Script/Engine.Engine] +!NetDriverDefinitions=ClearArray +-NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver") + +[OnlineSubsystemSteam] +bEnabled=false +SteamDevAppId=480 +GameServerQueryPort=27015 +bRelaunchInSteam=false +GameVersion=1.0.0.0 +bVACEnabled=1 +bAllowP2PPacketRelay=true +P2PConnectionTimeout=90 +Achievement_0_Id= + +[/Script/OnlineSubsystemSteam.SteamNetDriver] +NetConnectionClassName=OnlineSubsystemSteam.SteamNetConnection + +[OnlineSubsystemOculus] +bEnabled=false +OculusAppId=1200222206710107 + +[/Script/OnlineSubsystemOculus.OculusNetDriver] +NetConnectionClassName=OnlineSubsystemOculus.OculusNetConnection + +[/Script/Engine.Player] +ConfiguredInternetSpeed=500000 +ConfiguredLanSpeed=500000 + +[/Script/Engine.GameNetworkManager] +TotalNetBandwidth=500000 +MaxDynamicBandwidth=80000 +MinDynamicBandwidth=20000 + +[/Script/OnlineSubsystemUtils.IpNetDriver] +MaxClientRate=800000 +MaxInternetClientRate=800000 + +[Voice] +bEnabled=true + +[/Script/WindowsTargetPlatform.WindowsTargetSettings] +Compiler=VisualStudio2017 +-TargetedRHIs=PCD3D_SM5 +-TargetedRHIs=PCD3D_SM4 ++TargetedRHIs=PCD3D_SM5 +MinimumOSVersion=MSOS_Vista +AudioDevice= + +[/Script/Engine.RecastNavMesh] +RuntimeGeneration=Static +bForceRebuildOnLoad=True + +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/Proteus_Multi/MainMenu.MainMenu +LocalMapOptions= +TransitionMap=/Game/Proteus_Multi/TravelMap.TravelMap +bUseSplitscreen=True +TwoPlayerSplitscreenLayout=Horizontal +ThreePlayerSplitscreenLayout=FavorTop +bOffsetPlayerGamepadIds=False +GameInstanceClass=/Game/Proteus_Multi/GameInfoInstance.GameInfoInstance_C +GameDefaultMap=/Game/Proteus_Multi/MainMenu.MainMenu +ServerDefaultMap=/Game/Proteus_Multi/MainMenu.MainMenu +GlobalDefaultGameMode=/Game/Proteus_Multi/MainMenuGM.MainMenuGM_C +GlobalDefaultServerGameMode=None + +[/Script/Engine.CollisionProfile] +-Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-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) +-Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) +-Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) +-Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) +-Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) +-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) +-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) +-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) +-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) ++Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) ++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) ++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) ++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) ++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) ++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) ++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) ++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) ++Profiles=(Name="Spectator",CollisionEnabled=QueryOnly,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.",bCanModify=False) ++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) ++Profiles=(Name="PhysicsActor",CollisionEnabled=QueryAndPhysics,ObjectTypeName="PhysicsBody",CustomResponses=,HelpMessage="Simulating actors",bCanModify=False) ++Profiles=(Name="Destructible",CollisionEnabled=QueryAndPhysics,ObjectTypeName="Destructible",CustomResponses=,HelpMessage="Destructible actors",bCanModify=False) ++Profiles=(Name="InvisibleWall",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldStatic object that is invisible.",bCanModify=False) ++Profiles=(Name="InvisibleWallDynamic",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldDynamic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore)),HelpMessage="WorldDynamic object that is invisible.",bCanModify=False) ++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) ++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) ++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) ++Profiles=(Name="UI",CollisionEnabled=QueryOnly,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. ",bCanModify=False) ++Profiles=(Name="VRCollision",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Collision for VR",bCanModify=True) ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="NavMeshCollision",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False) +-ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") +-ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") +-ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") +-ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") +-ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") ++ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") ++ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") ++ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") ++ProfileRedirects=(OldName="SkeletalMeshActor",NewName="PhysicsActor") ++ProfileRedirects=(OldName="InvisibleActor",NewName="InvisibleWallDynamic") +-CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") +-CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") +-CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") +-CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") ++CollisionChannelRedirects=(OldName="Static",NewName="WorldStatic") ++CollisionChannelRedirects=(OldName="Dynamic",NewName="WorldDynamic") ++CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") ++CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") + +[/Script/Engine.NavigationSystem] +bAutoCreateNavigationData=True +bAllowClientSideNavigation=True +bInitialBuildingLocked=False +bSkipAgentHeightCheckWhenPickingNavData=False +DataGatheringMode=Instant +bGenerateNavigationOnlyAroundNavigationInvokers=False +ActiveTilesUpdateInterval=1.000000 +DirtyAreasUpdateFreq=60.000000 + +[/Script/Engine.PhysicsSettings] +DefaultGravityZ=-980.000000 +DefaultTerminalVelocity=4000.000000 +DefaultFluidFriction=0.300000 +SimulateScratchMemorySize=262144 +RagdollAggregateThreshold=4 +TriangleMeshTriangleMinAreaThreshold=5.000000 +bEnableAsyncScene=False +bEnableShapeSharing=False +bEnablePCM=False +bEnableStabilization=False +bWarnMissingLocks=True +bEnable2DPhysics=False +LockedAxis=Invalid +DefaultDegreesOfFreedom=Full3D +BounceThresholdVelocity=200.000000 +FrictionCombineMode=Average +RestitutionCombineMode=Average +MaxAngularVelocity=3600.000000 +MaxDepenetrationVelocity=0.000000 +ContactOffsetMultiplier=0.010000 +MinContactOffset=0.000100 +MaxContactOffset=1.000000 +bSimulateSkeletalMeshOnDedicatedServer=True +DefaultShapeComplexity=CTF_UseSimpleAndComplex +bDefaultHasComplexCollision=True +bSuppressFaceRemapTable=False +bSupportUVFromHitResults=False +bDisableActiveActors=False +bDisableCCD=False +bEnableEnhancedDeterminism=False +MaxPhysicsDeltaTime=0.033333 +bSubstepping=False +bSubsteppingAsync=False +MaxSubstepDeltaTime=0.016667 +MaxSubsteps=6 +SyncSceneSmoothingFactor=0.000000 +AsyncSceneSmoothingFactor=0.990000 +InitialAverageFrameRate=0.016667 +PhysXTreeRebuildRate=10 diff --git a/Config/Oculus/DefaultEngine.ini b/Config/Oculus/DefaultEngine.ini index 4cef36d..0bad914 100644 --- a/Config/Oculus/DefaultEngine.ini +++ b/Config/Oculus/DefaultEngine.ini @@ -20,6 +20,8 @@ r.DefaultFeature.MotionBlur=False r.DefaultFeature.AntiAliasing=3 vr.InstancedStereo=False +bSupportsDash=true + [/Script/Engine.AudioSettings] VoiPSoundClass=/Game/Proteus_Multi/VOIPSoundClass.VOIPSoundClass DefaultSoundClassName=/Game/Proteus_Multi/VOIPSoundClass.VOIPSoundClass @@ -51,9 +53,6 @@ Achievement_0_Id= bEnabled=true OculusAppId=1200222206710107 -[/Script/OnlineSubsystemOculus.OculusNetDriver] -NetConnectionClassName=OnlineSubsystemOculus.OculusNetConnection - [/Script/Engine.GameEngine] !NetDriverDefinitions=ClearArray ; Uncomment the next line if you are using the Null Subsystem @@ -63,6 +62,12 @@ NetConnectionClassName=OnlineSubsystemOculus.OculusNetConnection ; Uncomment the next line if you are using the Oculus Subsystem +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemOculus.OculusNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") +[/Script/OnlineSubsystemOculus.OculusNetDriver] +NetConnectionClassName=OnlineSubsystemOculus.OculusNetConnection + +[/Script/Oculus.Settings] +bSupportsDash=true + [/Script/Engine.Player] ConfiguredInternetSpeed=500000 ConfiguredLanSpeed=500000 @@ -202,6 +207,7 @@ bSuppressFaceRemapTable=False bSupportUVFromHitResults=False bDisableActiveActors=False bDisableCCD=False +bEnableEnhancedDeterminism=False MaxPhysicsDeltaTime=0.033333 bSubstepping=False bSubsteppingAsync=False @@ -210,5 +216,6 @@ MaxSubsteps=6 SyncSceneSmoothingFactor=0.000000 AsyncSceneSmoothingFactor=0.990000 InitialAverageFrameRate=0.016667 +PhysXTreeRebuildRate=10 diff --git a/Config/Steam/DefaultEngine.ini b/Config/Steam/DefaultEngine.ini index 821537b..c5c1b12 100644 --- a/Config/Steam/DefaultEngine.ini +++ b/Config/Steam/DefaultEngine.ini @@ -26,7 +26,6 @@ DefaultSoundClassName=/Game/Proteus_Multi/VOIPSoundClass.VOIPSoundClass [OnlineSubsystem] DefaultPlatformService=Steam -;DefaultPlatformService=Oculus bHasVoiceEnabled=true PollingIntervalInMs=20 VoiceNotificationDelta=0.2 @@ -46,22 +45,12 @@ Achievement_0_Id= NetConnectionClassName=OnlineSubsystemSteam.SteamNetConnection [OnlineSubsystemOculus] -;Enable this if using Oculus Network -;Then enter you app ID bEnabled=false OculusAppId=1200222206710107 -[/Script/OnlineSubsystemOculus.OculusNetDriver] -;NetConnectionClassName=OnlineSubsystemOculus.OculusNetConnection - [/Script/Engine.GameEngine] !NetDriverDefinitions=ClearArray -; Uncomment the next line if you are using the Null Subsystem -;+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/OnlineSubsystemUtils.IpNetDriver",DriverClassNameFallback="/Script/OnlineSubsystemUtils.IpNetDriver") -; Uncomment the next line if you are using the Steam Subsystem +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") -; Uncomment the next line if you are using the Oculus Subsystem -;+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemOculus.OculusNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") [/Script/Engine.Player] ConfiguredInternetSpeed=500000 @@ -87,6 +76,24 @@ Compiler=VisualStudio2017 MinimumOSVersion=MSOS_Vista AudioDevice= +[/Script/Engine.RecastNavMesh] +RuntimeGeneration=Static +bForceRebuildOnLoad=True + +[/Script/EngineSettings.GameMapsSettings] +EditorStartupMap=/Game/Proteus_Multi/MainMenu.MainMenu +LocalMapOptions= +TransitionMap=/Game/Proteus_Multi/TravelMap.TravelMap +bUseSplitscreen=True +TwoPlayerSplitscreenLayout=Horizontal +ThreePlayerSplitscreenLayout=FavorTop +bOffsetPlayerGamepadIds=False +GameInstanceClass=/Game/Proteus_Multi/GameInfoInstance.GameInfoInstance_C +GameDefaultMap=/Game/Proteus_Multi/MainMenu.MainMenu +ServerDefaultMap=/Game/Proteus_Multi/MainMenu.MainMenu +GlobalDefaultGameMode=/Game/Proteus_Multi/MainMenuGM.MainMenuGM_C +GlobalDefaultServerGameMode=None + [/Script/Engine.CollisionProfile] -Profiles=(Name="NoCollision",CollisionEnabled=NoCollision,ObjectTypeName="WorldStatic",CustomResponses=((Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore)),HelpMessage="No collision",bCanModify=False) -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) @@ -125,6 +132,7 @@ AudioDevice= +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) +Profiles=(Name="UI",CollisionEnabled=QueryOnly,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. ",bCanModify=False) +Profiles=(Name="VRCollision",CollisionEnabled=QueryAndPhysics,ObjectTypeName="WorldStatic",CustomResponses=((Channel="WorldStatic",Response=ECR_Overlap),(Channel="WorldDynamic",Response=ECR_Ignore),(Channel="Pawn",Response=ECR_Ignore),(Channel="Visibility",Response=ECR_Ignore),(Channel="Camera",Response=ECR_Ignore),(Channel="Vehicle",Response=ECR_Ignore),(Channel="Destructible",Response=ECR_Ignore)),HelpMessage="Collision for VR",bCanModify=True) ++DefaultChannelResponses=(Channel=ECC_GameTraceChannel1,Name="NavMeshCollision",DefaultResponse=ECR_Block,bTraceType=False,bStaticObject=False) -ProfileRedirects=(OldName="BlockingVolume",NewName="InvisibleWall") -ProfileRedirects=(OldName="InterpActor",NewName="IgnoreOnlyPawn") -ProfileRedirects=(OldName="StaticMeshComponent",NewName="BlockAllDynamic") @@ -144,20 +152,6 @@ AudioDevice= +CollisionChannelRedirects=(OldName="VehicleMovement",NewName="Vehicle") +CollisionChannelRedirects=(OldName="PawnMovement",NewName="Pawn") -[/Script/EngineSettings.GameMapsSettings] -EditorStartupMap=/Game/Proteus_Multi/MainMenu.MainMenu -LocalMapOptions= -TransitionMap=/Game/Proteus_Multi/TravelMap.TravelMap -bUseSplitscreen=True -TwoPlayerSplitscreenLayout=Horizontal -ThreePlayerSplitscreenLayout=FavorTop -bOffsetPlayerGamepadIds=False -GameInstanceClass=/Game/Proteus_Multi/GameInfoInstance.GameInfoInstance_C -GameDefaultMap=/Game/Proteus_Multi/MainMenu.MainMenu -ServerDefaultMap=/Game/Proteus_Multi/MainMenu.MainMenu -GlobalDefaultGameMode=/Game/Proteus_Multi/MainMenuGM.MainMenuGM_C -GlobalDefaultServerGameMode=None - [/Script/Engine.NavigationSystem] bAutoCreateNavigationData=True bAllowClientSideNavigation=True @@ -166,12 +160,8 @@ bSkipAgentHeightCheckWhenPickingNavData=False DataGatheringMode=Instant bGenerateNavigationOnlyAroundNavigationInvokers=False ActiveTilesUpdateInterval=1.000000 -+SupportedAgents=(Name="Default",Color=(B=0,G=255,R=140,A=164),DefaultQueryExtent=(X=500.000000,Y=500.000000,Z=500.000000),NavigationDataClassName=/Script/Engine.RecastNavMesh,AgentRadius=35.000000,AgentHeight=144.000000,AgentStepHeight=-1.000000,NavWalkingSearchHeightScale=0.500000,PreferredNavData=None,bCanCrouch=False,bCanJump=False,bCanWalk=False,bCanSwim=False,bCanFly=False) DirtyAreasUpdateFreq=60.000000 -[/Script/Engine.RecastNavMesh] -RuntimeGeneration=Static - [/Script/Engine.PhysicsSettings] DefaultGravityZ=-980.000000 DefaultTerminalVelocity=4000.000000 @@ -202,6 +192,7 @@ bSuppressFaceRemapTable=False bSupportUVFromHitResults=False bDisableActiveActors=False bDisableCCD=False +bEnableEnhancedDeterminism=False MaxPhysicsDeltaTime=0.033333 bSubstepping=False bSubsteppingAsync=False @@ -210,5 +201,6 @@ MaxSubsteps=6 SyncSceneSmoothingFactor=0.000000 AsyncSceneSmoothingFactor=0.990000 InitialAverageFrameRate=0.016667 +PhysXTreeRebuildRate=10 diff --git a/Config/TemplateDefs.ini b/Config/TemplateDefs.ini index 7fd7524..d0e00a3 100644 --- a/Config/TemplateDefs.ini +++ b/Config/TemplateDefs.ini @@ -1,8 +1,8 @@ [/Script/GameProjectGeneration.TemplateProjectDefs] -LocalizedDisplayNames=(Language="en",Text="Proteus 3.2.2") -LocalizedDescriptions=(Language="en",Text="This is the Proteus Multiplayer 3.2.2 Template.") +LocalizedDisplayNames=(Language="en",Text="Proteus 3.3") +LocalizedDescriptions=(Language="en",Text="This is the Proteus Multiplayer 3.3 Template.") -LocalizedDisplayNames=(Language="ko",Text="Proteus 3.2.2") +LocalizedDisplayNames=(Language="ko",Text="Proteus 3.3") LocalizedDescriptions=(Language="ko",Text="") ClassTypes=Character, GameMode, HUD, Actor, Character, GameMode, HUD, Actor diff --git a/Content/Proteus_Multi/AvatarMaster.uasset b/Content/Proteus_Multi/AvatarMaster.uasset index 418ab83..7963941 100644 Binary files a/Content/Proteus_Multi/AvatarMaster.uasset and b/Content/Proteus_Multi/AvatarMaster.uasset differ diff --git a/Content/Proteus_Multi/GameInfoInstance.uasset b/Content/Proteus_Multi/GameInfoInstance.uasset index d458fcf..939e646 100644 Binary files a/Content/Proteus_Multi/GameInfoInstance.uasset and b/Content/Proteus_Multi/GameInfoInstance.uasset differ diff --git a/Content/Proteus_Multi/HMDEnum.uasset b/Content/Proteus_Multi/HMDEnum.uasset new file mode 100644 index 0000000..d45e6f7 Binary files /dev/null and b/Content/Proteus_Multi/HMDEnum.uasset differ diff --git a/Content/Proteus_Multi/MainMenu.umap b/Content/Proteus_Multi/MainMenu.umap index c2b84fd..f129325 100644 Binary files a/Content/Proteus_Multi/MainMenu.umap and b/Content/Proteus_Multi/MainMenu.umap differ diff --git a/Content/Proteus_Multi/MainMenuGM.uasset b/Content/Proteus_Multi/MainMenuGM.uasset index 8dd39f4..bc1d736 100644 Binary files a/Content/Proteus_Multi/MainMenuGM.uasset and b/Content/Proteus_Multi/MainMenuGM.uasset differ diff --git a/Content/Proteus_Multi/MainMenuPC.uasset b/Content/Proteus_Multi/MainMenuPC.uasset index 90a59a6..61d2205 100644 Binary files a/Content/Proteus_Multi/MainMenuPC.uasset and b/Content/Proteus_Multi/MainMenuPC.uasset differ diff --git a/Content/Proteus_Multi/Meshes/CUBE_PAWN.uasset b/Content/Proteus_Multi/Meshes/CUBE_PAWN.uasset index 4e37de9..3823b8d 100644 Binary files a/Content/Proteus_Multi/Meshes/CUBE_PAWN.uasset and b/Content/Proteus_Multi/Meshes/CUBE_PAWN.uasset differ diff --git a/Content/Proteus_Multi/MotionControllerBP.uasset b/Content/Proteus_Multi/MotionControllerBP.uasset index faa26c2..f4fa5e9 100644 Binary files a/Content/Proteus_Multi/MotionControllerBP.uasset and b/Content/Proteus_Multi/MotionControllerBP.uasset differ diff --git a/Content/Proteus_Multi/MultiMap01.umap b/Content/Proteus_Multi/MultiMap01.umap index 3bdb7d7..202119f 100644 Binary files a/Content/Proteus_Multi/MultiMap01.umap and b/Content/Proteus_Multi/MultiMap01.umap differ diff --git a/Content/Proteus_Multi/MultiMap01_BuiltData.uasset b/Content/Proteus_Multi/MultiMap01_BuiltData.uasset index 77fc840..5370a35 100644 Binary files a/Content/Proteus_Multi/MultiMap01_BuiltData.uasset and b/Content/Proteus_Multi/MultiMap01_BuiltData.uasset differ diff --git a/Content/Proteus_Multi/MultiPC.uasset b/Content/Proteus_Multi/MultiPC.uasset index 3d1db4f..18b9afb 100644 Binary files a/Content/Proteus_Multi/MultiPC.uasset and b/Content/Proteus_Multi/MultiPC.uasset differ diff --git a/Content/Proteus_Multi/UI/Widgets/ActiveSessions.uasset b/Content/Proteus_Multi/UI/Widgets/ActiveSessions.uasset index bb205f2..1784f0c 100644 Binary files a/Content/Proteus_Multi/UI/Widgets/ActiveSessions.uasset and b/Content/Proteus_Multi/UI/Widgets/ActiveSessions.uasset differ diff --git a/Content/Proteus_Multi/UI/Widgets/HostMenu.uasset b/Content/Proteus_Multi/UI/Widgets/HostMenu.uasset index c29f368..e5a6bd9 100644 Binary files a/Content/Proteus_Multi/UI/Widgets/HostMenu.uasset and b/Content/Proteus_Multi/UI/Widgets/HostMenu.uasset differ diff --git a/Content/Proteus_Multi/UI/Widgets/Oculusmatches.uasset b/Content/Proteus_Multi/UI/Widgets/Oculusmatches.uasset new file mode 100644 index 0000000..0048c08 Binary files /dev/null and b/Content/Proteus_Multi/UI/Widgets/Oculusmatches.uasset differ diff --git a/Content/Proteus_Multi/UI/Widgets/OptionsMenu.uasset b/Content/Proteus_Multi/UI/Widgets/OptionsMenu.uasset index c54a697..bef5926 100644 Binary files a/Content/Proteus_Multi/UI/Widgets/OptionsMenu.uasset and b/Content/Proteus_Multi/UI/Widgets/OptionsMenu.uasset differ diff --git a/Content/Proteus_Multi/UI/Widgets/Steam_LAN_Menu.uasset b/Content/Proteus_Multi/UI/Widgets/Steam_LAN_Menu.uasset index 558a4da..a61fa67 100644 Binary files a/Content/Proteus_Multi/UI/Widgets/Steam_LAN_Menu.uasset and b/Content/Proteus_Multi/UI/Widgets/Steam_LAN_Menu.uasset differ diff --git a/DOCS_Proteus Template 3.2.2.pdf b/DOCS_Proteus Template 3.2.2.pdf deleted file mode 100644 index 3ca1a73..0000000 Binary files a/DOCS_Proteus Template 3.2.2.pdf and /dev/null differ diff --git a/Proteus Template 3.3.pdf b/Proteus Template 3.3.pdf new file mode 100644 index 0000000..2c3daeb Binary files /dev/null and b/Proteus Template 3.3.pdf differ diff --git a/Proteus.uproject b/Proteus.uproject index 04714d9..3125384 100644 --- a/Proteus.uproject +++ b/Proteus.uproject @@ -1,6 +1,6 @@ { "FileVersion": 3, - "EngineAssociation": "4.17", + "EngineAssociation": "4.18", "Category": "", "Description": "", "Plugins": [ @@ -19,6 +19,30 @@ { "Name": "OnlineSubsystemIOS", "Enabled": false + }, + { + "Name": "OculusAudio", + "Enabled": true + }, + { + "Name": "AdvancedSteamSessions", + "Enabled": false + }, + { + "Name": "AdvancedSessions", + "Enabled": false + }, + { + "Name": "LinuxDeviceProfileSelector", + "Enabled": false + }, + { + "Name": "IOSDeviceProfileSelector", + "Enabled": false + }, + { + "Name": "AndroidDeviceProfileSelector", + "Enabled": false } ], "TargetPlatforms": [ diff --git a/README.md b/README.md index d98c09b..31291c5 100644 --- a/README.md +++ b/README.md @@ -4,57 +4,20 @@ Simple. No plugins. No fuss. Video at https://www.youtube.com/watch?v=ml2xgiQ41BY -# Features # -* A heavily-modified version of Epic’s VR Template plus: - * 3 fully animated controllers meshes: Hands (like Oculus Avatar), Oculus Touch controllers and HTC Vive controllers - * Can be controlled with Oculus Touch or HTC Vive controllers, and support for Oculus remote - * Full input mapping - * Control over controllers opacity, scale, HTC Vive controllers skins, Avatar color - * For the hands, the scale is 1:1 with Epic VR template. Reduce scale to approx. 0.75 to come close to real-life - * Function to spawn poles at the 4 corners of the Oculus Guardian or SteamVR chaperone limits - * By default it is mapped to Oculus Touch B and Y buttons, and HTC Vive controllers menu button - * Optimizations for Oculus Rift and HTC Vive HMDs - * “Ghost Mode” with gamepad - * By default it is turned on; can be turned off or mapped to another input - * Monitor in front of character - * Can be spawned (turned off by default) to print useful infos / debug - * Avatar head - * Rumble functions adapted to work with Touch & Vive - * UI interactions, VR keyboard - * Fade out vision when head goes through objects with VRCollision enabled - * Skeletal socket use when grabbing objects - * Vive Tracker tracking - * Network and single player mode - * Works single player, or multiplayer via LAN, Steam or Oculus Network - * Direct IP Connect - * Oculus Direct Connect - * VOIP - * Oculus Avatars +# This template consists of virtual reality compatible pawn and settings, ready to drop in your single or multiplayer app. So what you can do is choose the features you want, and build yourself/modify a pawn based on the functionalities you need. # # Latest Versions # -# Version 3.2.2 (August 29, 2017) # -# UNREAL 4.17 VERSION +# Version 3.3 - STEAM STORE / LAN / DIRECT IP / OCULUS STORE / OCULUS DIRECT (December 14, 2017) +# UNREAL 4.18.2 VERSION -# Latest changelog # +# Other templates on GitHub / one Drive # -2 important fixes: -* “NavModifiersVolume (NavAreaNull) have inconsistent behaviour since Unreal 4.16. For now I ditched the NavMesh and teleport on static mesh, deny teleportation with floor angle and CustomNavArea NavModifierVolume, until Navigation is more stable in Unreal.” [NOW FIXED] -* “I've had the same teleportation direction issue through all of the versions of the template I've tested. For me the forward direction seems to be the "right->" direction of my playspace. Any luck reproducing the issue with teleport rotation on the vive? There are times it seems like I'm 90-180 degrees from where I'm supposed to end up and its really confusing sometimes. I haven't been able to figure it out myself » [NOW FIXED] +# Which HMD works with the template / why 4 different versions? # -What I recommend: Try the 4.17 packaged version on the OneDrive (Template 3.2.2). If there is problem there, it’s on your side, probably setup based. +The Steam/LAN is a blueprint-only template optimized for Oculus/Vive/WMR headsets, compatible with the latest Unreal Engine launcher version. Works with Steam Store, LAN, OculusDirect, DirectIP, Oculus Store (once references to Steam are removed) +The Oculus Store requires the Avatar plugin, thus requires compiling from Visual Studio; it also removes all references to Steam in order to be published on the Oculus Store. +The Windows Store is based on a branch of Unreal cured by Microsoft specifically tailored for Windows Mixed Reality headsets. The base template is blueprint only, but the Unreal Engine must be compiled from the Microsoft Dev/Mixed Reality GitHub. +The DirectIP with VOIP allows to use Direct with VOIP – following some plugin customization -KNOWN BUG WITHOUT A FIX (FOR NOW) -No VOIP through Direct IP Connection: I’ve tried many tricks / solutions, nothing works (yet). Maybe using Advanced Session Plugin? I’ll try that. If someone has a trick for enabling VOIP through direct IP give me a shout. -Physics objects: It’s normal to experience client-side lag on physics objects (i.e. Interactive Objects). Many tricks exist to fix that problem; search for “multiplayer physics objects”. This would be an entire different topic and is not specifically related to VR. -Oculus Avatars Version : Remote Avatar is not controlled by Remote Player : Working on it. -BUGS WITH NO FIX -Affecting ONLY Unreal 4.16.3: UE-45908 Widget interaction debug line only shows when hitting a widget https://issues.unrealengine.com/issue/UE-45908 - Bug has been resolved in 4.17 -BUGS REPORTED TO ANSWERHUB -Affecting ONLY version 4.17, and ONLY Oculus Rift: UE-48260 Play area bounds are offset so that the player's spawn position is at the center of the player start https://issues.unrealengine.com/issue/UE-48260 - -Affecting Unreal 4.16.3 and 4.17.0: UE-44947 Extra Sphere collision is shown when setting it to not be hidden in game for the MotioncontrollerBP -https://issues.unrealengine.com/issue/UE-44947 You can resolve this by unchecking "Instanced Stereo" in Project Settings, but doing that could decrease VR performance. - - -Please read the pdf document for the complete instructions. It is found at https://1drv.ms/f/s!Av77lIIxt2OY0XGGW8UDwykohjuT +# Please read the pdf document for the complete instructions. It is found here or at https://1drv.ms/f/s!Av77lIIxt2OY0XGGW8UDwykohjuT #