[ UE5 : Iris DefaultEngine.ini ]
UE5.3.0 Preview-1부터, Lyra에서 DefaultEngine.ini를 통해 설정가능한 Config 요소들 대부분이 BaseEngine.ini로 옮겨짐
DefaultEngine.ini가 이후에 BaseEngine.ini 값을 덮어쓰기 때문에, 변경하려면 DefaultEngine.ini에서 수정 값을 추가하면 된다.
BaseEngine.ini - UE5.6.0
;Iris - begin
[/Script/IrisCore.PartialNetObjectAttachmentHandlerConfig]
MaxPartCount=4096
[/Script/IrisCore.NetBlobHandlerDefinitions]
+NetBlobHandlerDefinitions=(ClassName=NetRPCHandler)
+NetBlobHandlerDefinitions=(ClassName=PartialNetObjectAttachmentHandler )
+NetBlobHandlerDefinitions=(ClassName=NetObjectBlobHandler)
[/Script/IrisCore.DataStreamDefinitions]
+DataStreamDefinitions=(DataStreamName=NetToken, ClassName=/Script/IrisCore.NetTokenDataStream, DefaultSendStatus=EDataStreamSendStatus::Send, bAutoCreate=true)
+DataStreamDefinitions=(DataStreamName=Replication, ClassName=/Script/IrisCore.ReplicationDataStream, DefaultSendStatus=EDataStreamSendStatus::Send, bAutoCreate=true)
[/Script/IrisCore.NetObjectPrioritizerDefinitions]
+NetObjectPrioritizerDefinitions=(PrioritizerName=DefaultPrioritizer, ClassName=/Script/IrisCore.SphereNetObjectPrioritizer, ConfigClassName=/Script/IrisCore.SphereNetObjectPrioritizerConfig)
+NetObjectPrioritizerDefinitions=(PrioritizerName=PlayerStatePrioritizer, ClassName=/Script/IrisCore.NetObjectCountLimiter, ConfigClassName=/Script/Engine.PlayerStateCountLimiterConfig)
[/Script/IrisCore.NetObjectFilterDefinitions]
+NetObjectFilterDefinitions=(FilterName=Spatial, ClassName=/Script/IrisCore.NetObjectGridWorldLocFilter, ConfigClassName=/Script/IrisCore.NetObjectGridFilterConfig)
+NetObjectFilterDefinitions=(FilterName=NotRouted, ClassName=/Script/IrisCore.FilterOutNetObjectFilter, ConfigClassName=/Script/IrisCore.FilterOutNetObjectFilterConfig)
[/Script/IrisCore.ReplicationFilteringConfig]
bEnableObjectScopeHysteresis=true
DefaultHysteresisFrameCount=6
[/Script/IrisCore.ObjectReplicationBridgeConfig]
RequiredNetDriverChannelClassName=/Script/Engine.DataStreamChannel
; It is possible to override how often replicated objects are Polled for dirtyness if they are not using pushed based dirtiness, normally based on NetUpdateFrequency
;+PollConfigs=(ClassName=/Script/Example.Pawn, PollFrequency=0, bIncludeSubclasses=true)
; Filters
DefaultSpatialFilterName=Spatial
; Filter configs should typically be configured per game
; Set the class-based dynamic filters configs here. Using None means the objects of this class are always relevant.
!FilterConfigs=ClearArray
;+FilterConfigs=(ClassName=/Script/Engine.LevelScriptActor, DynamicFilterName=NotRouted) ; NotRouted means that this type will not be replicated
+FilterConfigs=(ClassName=/Script/Engine.Actor, DynamicFilterName=None)) ; By default classes derived from AActor are always relevant (because not filtered dynamically)
; Info types aren't supposed to have physical representation and rely on a static priority
+FilterConfigs=(ClassName=/Script/Engine.Info, DynamicFilterName=None)
+FilterConfigs=(ClassName=/Script/Engine.PlayerState, DynamicFilterName=None)
; Pawns can be spatially filtered...
+FilterConfigs=(ClassName=/Script/Engine.Pawn, DynamicFilterName=Spatial))
; PrioritizerConfigs
; PlayerState is by default bAlwaysRelevant but the default player state prioritizer handles this.
+PrioritizerConfigs=(ClassName=/Script/Engine.PlayerState, PrioritizerName=PlayerState, bForceEnableOnAllInstances=true)
; DeltaCompressionConfigs
; Classes for which deltacompression is enabled
+DeltaCompressionConfigs=(ClassName=/Script/Engine.Pawn))
+DeltaCompressionConfigs=(ClassName=/Script/Engine.PlayerState))
+DeltaCompressionConfigs=(ClassName=/Script/GameplayDebugger.GameplayDebuggerCategoryReplicator))
; CriticalClassConfigs
; Classes which force a disconnection when a protocol mismatch is detected
+CriticalClassConfigs=(ClassName=/Script/Engine.PlayerController)
[/Script/IrisCore.ReplicationStateDescriptorConfig]
bEnsureAllClassesAreFullyPushModel=false
; Classes that are known to be fully push based and should remain so
+EnsureFullyPushModelClassNames=(ClassName=AudioComponent)
+EnsureFullyPushModelClassNames=(ClassName=BillboardComponent)
+EnsureFullyPushModelClassNames=(ClassName=BoxComponent)
+EnsureFullyPushModelClassNames=(ClassName=CapsuleComponent)
+EnsureFullyPushModelClassNames=(ClassName=NiagaraComponent)
+EnsureFullyPushModelClassNames=(ClassName=ParticleSystemComponent)
+EnsureFullyPushModelClassNames=(ClassName=PointLightComponent)
+EnsureFullyPushModelClassNames=(ClassName=PostProcessComponent)
+EnsureFullyPushModelClassNames=(ClassName=ProjectileMovementComponent)
+EnsureFullyPushModelClassNames=(ClassName=SceneComponent)
+EnsureFullyPushModelClassNames=(ClassName=SkeletalMeshComponent)
+EnsureFullyPushModelClassNames=(ClassName=SkyLightComponent)
+EnsureFullyPushModelClassNames=(ClassName=SplineComponent)
+EnsureFullyPushModelClassNames=(ClassName=StaticMeshComponent)
+EnsureFullyPushModelClassNames=(ClassName=VolumetricCloudComponent)
+EnsureFullyPushModelClassNames=(ClassName=WorldDataLayers)
; Declarate structs that are vetted to work using reflection based struct serialization even though there exists a custom NetSerialize function for the struct
+SupportsStructNetSerializerList=(StructName=GameplayCueParameters)
+SupportsStructNetSerializerList=(StructName=GameplayAbilityTargetData_LocationInfo)
+SupportsStructNetSerializerList=(StructName=GameplayAbilityTargetData_ActorArray)
+SupportsStructNetSerializerList=(StructName=GameplayAbilityTargetData_SingleTargetHit)
+SupportsStructNetSerializerList=(StructName=NetLevelVisibilityTransactionId)
+SupportsStructNetSerializerList=(StructName=Vector2D)
+SupportsStructNetSerializerList=(StructName=Vector2f)
+SupportsStructNetSerializerList=(StructName=GameplayDebuggerNetPack)
+SupportsStructNetSerializerList=(StructName=RootMotionSource)
+SupportsStructNetSerializerList=(StructName=RootMotionSource_ConstantForce)
+SupportsStructNetSerializerList=(StructName=RootMotionSource_JumpForce)
+SupportsStructNetSerializerList=(StructName=RootMotionSource_MoveToDynamicForce)
+SupportsStructNetSerializerList=(StructName=RootMotionSource_MoveToForce)
+SupportsStructNetSerializerList=(StructName=RootMotionSource_RadialForce)
[/Script/IrisCore.NetTokenTypeIdConfig]
+ReservedTypeIds=(StoreTypeName="StringTokenStore", TypeID=0)
+ReservedTypeIds=(StoreTypeName="NameTokenStore", TypeID=1)
+ReservedTypeIds=(StoreTypeName="GameplayTagTokenStore", TypeID=2)
+ReservedTypeIds=(StoreTypeName="FModuleInputNetTokenData", TypeID=3)
+ReservedTypeIds=(StoreTypeName="FNetworkModularVehicleStateNetTokenData", TypeID=4)
;Iris - end
DefaultEngine.ini - UE5.6.0 Lyra
;Iris - begin Iris Configuration for LyraGameMore actions
[/Script/IrisCore.ReplicationStateDescriptorConfig]
+SupportsStructNetSerializerList=(StructName=LyraGameplayAbilityTargetData_SingleTargetHit)
[/Script/IrisCore.ObjectReplicationBridgeConfig]
; Filters
DefaultSpatialFilterName=Spatial
; Clear all filters
!FilterConfigs=ClearArray
+FilterConfigs=(ClassName=/Script/Engine.LevelScriptActor, DynamicFilterName=NotRouted) ; Not needed
+FilterConfigs=(ClassName=/Script/Engine.Actor, DynamicFilterName=None))
; Info types aren't supposed to have physical representation
+FilterConfigs=(ClassName=/Script/Engine.Info, DynamicFilterName=None)
+FilterConfigs=(ClassName=/Script/Engine.PlayerState, DynamicFilterName=None)
; Pawns can be spatially filtered
+FilterConfigs=(ClassName=/Script/Engine.Pawn, DynamicFilterName=Spatial))
+FilterConfigs=(ClassName=/Script/EntityActor.SimObject, DynamicFilterName=None))
;Iris - end
'UE5 > Iris' 카테고리의 다른 글
[UE5] Lyra에서 Iris 활성화 (0) | 2025.06.08 |
---|---|
[UE5] Iris Replication System Background (0) | 2025.03.18 |