UDN
Search public documentation:
DevelopmentKitGemsControllingPostProcessEffectsKR
English Translation
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
日本語訳
中国翻译
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
UE3 홈 > UDK 젬 > 키즈멧 또는 언리얼스크립트를 통한 포스트 프로세스 이펙트 제어법
UE3 홈 > 키즈멧 비주얼 스크립팅 > 키즈멧 또는 언리얼스크립트를 통한 포스트 프로세스 이펙트 제어법
UE3 홈 > 포스트 프로세스 이펙트 > 키즈멧 또는 언리얼스크립트를 통한 포스트 프로세스 이펙트 제어법
UE3 홈 > 키즈멧 비주얼 스크립팅 > 키즈멧 또는 언리얼스크립트를 통한 포스트 프로세스 이펙트 제어법
UE3 홈 > 포스트 프로세스 이펙트 > 키즈멧 또는 언리얼스크립트를 통한 포스트 프로세스 이펙트 제어법
키즈멧 또는 언리얼스크립트를 통한 포스트 프로세스 이펙트 제어법
문서 변경내역: James Tan 작성. 홍성진 번역.
UDK 2011년 3월 버전으로 테스팅, PC 호환
- 키즈멧 또는 언리얼스크립트를 통한 포스트 프로세스 이펙트 제어법
- 개요
- Set Ambient Occlusion Effect Properties 키즈멧 시퀸스 액션
- Set Blur Effect Properties 키즈멧 시퀸스 액션
- Set DOF and Bloom Effect Properties 키즈멧 시퀸스 액션
- Set DOF, Bloom and Motion Blur Properties 키즈멧 시퀸스 액션
- Set Material Effect Properties 키즈멧 시퀸스 액션
- Set Motion Blur Effect Properties 키즈멧 시퀸스 액션
- Set Uber Post Process Effect Properties 키즈멧 시퀸스 액션
- Toggle Post Process Effect 키즈멧 시퀸스 액션
- 숨겨진 키즈멧 노드
- SeqAct_SetPostProcessEffectProperties
- SeqAct_SetDOFEffectProperties
- 키즈멧 예제
- 다운로드
개요
관련 토픽
Set Ambient Occlusion Effect Properties 키즈멧 시퀸스 액션
- OcclusionColor - 오클루전(가려짐)이 많이 발생하는 곳에 대체할 씬 색입니다.
- OcclusionPower - 계산된 오클루전 값에 적용할 힘입니다. 힘이 클 수록 대비가 세 지나, OcclusionScale 같은 요인도 조정해 줘야 합니다.
- OcclusionScale - 계산된 오클루전 값에 적용할 스케일입니다.
- OcclusionBias - 계산된 오클루전 값에 적용할 편향치입니다.
- MinOcclusion - 다른 변형이 모두 적용된 이후의 최소 오클루전 값입니다.
- bAngleBasedSSAO - SSAO 품질 향상, 노이즈 감소, 디테일 증가, 평평한 표면 어두움 없음, 볼록면 과도한 밝음 없음 등, 파라미터 재조정 필요.
- OcclusionRadius - 오클루더 각 픽셀 주변을 검사할 거리로, 월드 유닛 단위입니다.
- OcclusionQuality - 앰비언트 오클루전 이펙트의 품질입니다. Low 품질로도 게임플레이에 적합한 최적의 성능을 냅니다. Medium 품질은 프레임 간의 노이즈를 부드럽게 해 주며, 약간 높은 성능 비용이 듭니다. High 품질은 디테일 보존을 위해 추가 샘플을 사용합니다.
- OcclusionFadeoutMinDistance - 오클루전 팩터의 페이드 아웃을 시작할 거리로, 월드 유닛 단위입니다. 스카이박스의 원거리 부작용을 숨기기에 좋습니다.
- OcclusionFadeoutMaxDistance - 오클루전 팩터가 완전히 페이딩되는 거리로, 월드 유닛 단위입니다.
- HaloDistanceThreshold - 오클루더를 다른 오브젝트로 간주시킬 픽셀 앞 거리로, 월드 유닛 단위입니다. 한계점은 주변 오브젝트, 예를 들어 1인칭 무기 주변의 후광 지역을 식별하는 데 사용됩니다.
- HaloDistanceScale - 원거리 픽셀에 대한 HaloDistanceThreshold 을 늘이기 위한 스케일 팩터입니다. 값이 .001 이면 1000 월드 유닛 거리에서 HaloDistanceThreshold 가 1 유닛 커지는 결과를 냅니다.
- HaloOcclusion - 후광에 공헌하기로 결정된 샘플에 적용할 오클루전 팩터입니다. 값이 0 이면 샘플에 온전한 오클루전이 적용되며, 값을 늘리면 2차적으로 감소되는 오클루전 값에 매핑합니다.
- EdgeDistanceThreshold - 심도(depth)가 이 이상 차이나면 두 픽셀을 에지로 간주하여 교차 블러링하지 않습니다. 월드 유닛 단위입니다.
- EdgeDistanceScale - 원거리 픽셀용 EdgeDistanceThreshold 를 늘리기 위한 스케일 팩터입니다. 값이 .001 이면 1000 월드 유닛 거리에서 EdgeDistanceThreshold 가 1 유닛 커지게 됩니다.
- FilterDistanceScale - 화면 공간 내 커널 크기에 매핑시킬 월드 유닛 단위 거리입니다. 노이즈를 더 많이 남기는 대신, 원거리 픽셀용 필터 커널 크기를 줄이고 디테일을 유지하기에 좋습니다.
- HistoryConvergenceTime - 오클루전 히스토리가 대략적으로 수렴하는 시간입니다. 시간이 길 수록 (.5 초) 프레임간의 스무딩은 늘고 노이즈는 줄지만 스트리킹(streaking, 탈색)이 현저해 집니다. 0 은 기능을 끕니다 (GPU 성능 및 메모리 부하가 덜합니다).
- HistoryWeightConvergenceTime - 웨이트 히스토리가 대략적으로 수렴하는 시간입니다.

키즈멧 프로퍼티

언리얼스크립트
class SeqAct_SetAmbientOcclusionEffectProperties extends SeqAct_SetPostProcessEffectProperties DependsOn(AmbientOcclusionEffect); var() LinearColor OcclusionColor; var() float OcclusionPower<UIMin=0.1|UIMax=20.0>; var() float OcclusionScale<UIMin=0.0|UIMax=10.0>; var() float OcclusionBias<UIMin=-1.0|UIMax=4.0>; var() float MinOcclusion; var() bool bAngleBasedSSAO; var() float OcclusionRadius<UIMin=0.0|UIMax=256.0>; var() EAmbientOcclusionQuality OcclusionQuality; var() float OcclusionFadeoutMinDistance; var() float OcclusionFadeoutMaxDistance; var() float HaloDistanceThreshold; var() float HaloDistanceScale; var() float HaloOcclusion; var() float EdgeDistanceThreshold; var() float EdgeDistanceScale; var() float FilterDistanceScale; var() float HistoryConvergenceTime; var() float HistoryWeightConvergenceTime; event Activated() { local array<PostProcessEffect> PostProcessEffects; local int i; local AmbientOcclusionEffect AmbientOcclusionEffect; GetPostProcessEffects(PostProcessEffects, class'AmbientOcclusionEffect'); if (PostProcessEffects.Length > 0) { for (i = 0; i < PostProcessEffects.length; ++i) { AmbientOcclusionEffect = AmbientOcclusionEffect(PostProcessEffects[i]); if (AmbientOcclusionEffect != None) { AmbientOcclusionEffect.OcclusionColor = OcclusionColor; AmbientOcclusionEffect.OcclusionPower = OcclusionPower; AmbientOcclusionEffect.OcclusionScale = OcclusionScale; AmbientOcclusionEffect.OcclusionBias = OcclusionBias; AmbientOcclusionEffect.MinOcclusion = MinOcclusion; AmbientOcclusionEffect.bAngleBasedSSAO = bAngleBasedSSAO; AmbientOcclusionEffect.OcclusionRadius = OcclusionRadius; AmbientOcclusionEffect.OcclusionQuality = OcclusionQuality; AmbientOcclusionEffect.OcclusionFadeoutMinDistance = OcclusionFadeoutMinDistance; AmbientOcclusionEffect.OcclusionFadeoutMaxDistance = OcclusionFadeoutMaxDistance; AmbientOcclusionEffect.HaloDistanceThreshold = HaloDistanceThreshold; AmbientOcclusionEffect.HaloDistanceScale = HaloDistanceScale; AmbientOcclusionEffect.HaloOcclusion = HaloOcclusion; AmbientOcclusionEffect.EdgeDistanceThreshold = EdgeDistanceThreshold; AmbientOcclusionEffect.EdgeDistanceScale = EdgeDistanceScale; AmbientOcclusionEffect.FilterDistanceScale = FilterDistanceScale; AmbientOcclusionEffect.HistoryConvergenceTime = HistoryConvergenceTime; AmbientOcclusionEffect.HistoryWeightConvergenceTime = HistoryWeightConvergenceTime; } } } } defaultproperties { ObjName="Set Ambient Occlusion Effect Properties" ObjCategory="Post Process" VariableLinks(0)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Occlusion Power",PropertyName=OcclusionPower) VariableLinks(1)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Occlusion Scale",PropertyName=OcclusionScale) VariableLinks(2)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Occlusion Bias",PropertyName=OcclusionBias) VariableLinks(3)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Min Occlusion",PropertyName=MinOcclusion) VariableLinks(4)=(ExpectedType=class'SeqVar_Bool',bHidden=true,LinkDesc="Angle Based SSAO",PropertyName=bAngleBasedSSAO) VariableLinks(5)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Occlusion Radius",PropertyName=OcclusionRadius) VariableLinks(6)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Occlusion Fadeout Min Distance",PropertyName=OcclusionFadeoutMinDistance) VariableLinks(7)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Occlusion Fadeout Max Distance",PropertyName=OcclusionFadeoutMaxDistance) VariableLinks(8)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Halo Distance Threshold",PropertyName=HaloDistanceThreshold) VariableLinks(9)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Halo Distance Scale",PropertyName=HaloDistanceScale) VariableLinks(10)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Halo Occlusion",PropertyName=HaloOcclusion) VariableLinks(11)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Edge Distance Threshold",PropertyName=EdgeDistanceThreshold) VariableLinks(12)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Edge Distance Scale",PropertyName=EdgeDistanceScale) VariableLinks(13)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Filter Distance Scale",PropertyName=FilterDistanceScale) VariableLinks(14)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="History Convergence Time",PropertyName=HistoryConvergenceTime) VariableLinks(15)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="History Weight Convergence Time",PropertyName=HistoryWeightConvergenceTime) OcclusionColor=(R=0.0,G=0.0,B=0.0,A=1.0) OcclusionPower=4.0 OcclusionScale=20.0 OcclusionBias=0 MinOcclusion=.1 OcclusionRadius=25.0 OcclusionQuality=AO_Medium OcclusionFadeoutMinDistance=4000.0 OcclusionFadeoutMaxDistance=4500.0 HaloDistanceThreshold=40.0 HaloDistanceScale=.1 HaloOcclusion=.04 EdgeDistanceThreshold=10.0 EdgeDistanceScale=.003 FilterDistanceScale=10.0 HistoryConvergenceTime=0 HistoryWeightConvergenceTime=.07 }
관련 토픽
Set Blur Effect Properties 키즈멧 시퀸스 액션
- BlurKernelSize - 블러링시킬 픽셀 단위 거리입니다.

키즈멧 프로퍼티

언리얼스크립트
class SeqAct_SetBlurEffectProperties extends SeqAct_SetPostProcessEffectProperties DependsOn(BlurEffect); var() float BlurKernelSize; event Activated() { local array<PostProcessEffect> PostProcessEffects; local int i; local BlurEffect BlurEffect; GetPostProcessEffects(PostProcessEffects, class'BlurEffect'); if (PostProcessEffects.Length > 0) { for (i = 0; i < PostProcessEffects.length; ++i) { BlurEffect = BlurEffect(PostProcessEffects[i]); if (BlurEffect != None) { BlurEffect.BlurKernelSize = BlurKernelSize; } } } } defaultproperties { ObjName="Set Blur Effect Properties" ObjCategory="Post Process" VariableLinks(0)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Blur Kernel Size",PropertyName=BlurKernelSize) }
관련 토픽
Set DOF and Bloom Effect Properties 키즈멧 시퀸스 액션
- FalloffExponent - 블러 양을 [0,1] 로 정규화시킨 후 적용할 지수입니다.
- BlurKernelSize - DepthOfField bohek / 씬의 블러링 정도 반경에 영향을 끼칩니다.
- MaxNear - 포커스 면 앞의 아이템에 적용할 블러 양을 제한하기 위한 값으로, 0 에서 1 범위입니다.
- Min - 적용할 블러 양 제한용 최소값으로, 0 에서 1 범위입니다.
- MaxFar - 포커스 면 뒤의 아이템에 적용할 블러 양을 제한하기 위한 값으로, 0 에서 1 범위입니다.
- FocusType - 포커스 점이 결정되는 방식을 제어합니다.
- FocusInnerRadius - 내부 포커스 반경입니다.
- FocusDistance - FOCUS_Distance 가 켜졌을 때 사용됩니다.
- FocusPosition - FOCUS_Position 이 켜졌을 때 사용됩니다.
- BloomScale - 블룸 색에 적용되는 스케일입니다.
- BloomThreshold - 픽셀의 어느 색 성분이든 이보다 커야 블룸에 공헌합니다.
- BloomTint - 블룸 색에 대한 곱수입니다.
- BloomScreenBlendThreshold - 이보다 씬 색 휘도(luminance)가 작으면 블룸을 받습니다. 포토샵의 화면 블렌드 모드와 같은 식으로 작동하며, 과-채도(over-saturation)가 이미 밝은 지역에 블룸을 추가하지 않도록 합니다. 디폴트 값 1 은, 휘도가 1 인 픽셀은 블룸을 받지 않으며, 휘도가 0.5 인 픽셀은 블룸을 절반만 받는다는 뜻입니다.
- BlurBloomKernelSize - 블룸 이펙트의 반경입니다.
- DepthOfFieldType - depth of field 유형을 지정할 수 있습니다. 필요한 성능과 품질에 따라 선택하십시오.
- SimpleDOF - 포커스 콘텐츠 밖을 블러링한 다음 그것을 블러링되지 않은 씬과 재결합시킵니다. (빠르며 거의 고정 속도입니다)
- ReferenceDOF - 픽셀 셰이더에서 동적 분기(branching)를 활용하여 원형 Bokeh 모양 효과를 냅니다. (커널 크기가 크면 느립니다)
- BokehDOF - Bokeh 텍스처 지정과 더 큰 반경을 허용합니다. (D3D11 을 요하며, 포커스가 잡히지 않은 콘텐츠를 많이 사용하면 느립니다)
- DepthOfFieldQuality - depth of field 품질을 조절합니다. 성능에 도움이 될 수 있습니다.
- BokehTexture - BokehDOF 가 켜졌을 때 사용됩니다.

키즈멧 프로퍼티

언리얼스크립트
class SeqAct_SetDOFAndBloomEffectProperties extends SeqAct_SetDOFEffectProperties DependsOn(DOFAndBloomEffect); var() float BloomScale; var() float BloomThreshold; var() color BloomTint; var() float BloomScreenBlendThreshold; var() float BlurBloomKernelSize; var() EDOFType DepthOfFieldType; var() EDOFQuality DepthOfFieldQuality; var() Texture2D BokehTexture; function SetProperties(PostProcessEffect PostProcessEffect) { local DOFAndBloomEffect DOFAndBloomEffect; Super.SetProperties(PostProcessEffect); DOFAndBloomEffect = DOFAndBloomEffect(PostProcessEffect); if (DOFAndBloomEffect != None) { DOFAndBloomEffect.BloomScale = BloomScale; DOFAndBloomEffect.BloomThreshold = BloomThreshold; DOFAndBloomEffect.BloomTint = BloomTint; DOFAndBloomEffect.BloomScreenBlendThreshold = BloomScreenBlendThreshold; DOFAndBloomEffect.BlurBloomKernelSize = BlurBloomKernelSize; DOFAndBloomEffect.DepthOfFieldType = DepthOfFieldType; DOFAndBloomEffect.DepthOfFieldQuality = DepthOfFieldQuality; DOFAndBloomEffect.BokehTexture = BokehTexture; } } defaultproperties { ObjName="Set DOF And Bloom Effect Properties" ObjCategory="Post Process" BloomScale=1.0 BloomThreshold=1.0 BloomTint=(R=255,G=255,B=255) BloomScreenBlendThreshold=10 BlurKernelSize=16.0 BlurBloomKernelSize=16.0 VariableLinks(8)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Scale",PropertyName=BloomScale) VariableLinks(9)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Threshold",PropertyName=BloomThreshold) VariableLinks(10)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Screen Blend Threshold",PropertyName=BloomScreenBlendThreshold) VariableLinks(11)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Blur Bloom Kernel Size",PropertyName=BlurBloomKernelSize) }
관련 토픽
Set DOF, Bloom and Motion Blur Properties 키즈멧 시퀸스 액션
- MaxVelocity - 최대 블러 속도 양입니다. 블러 양의 제한입니다.
- MotionBlurAmount - 블러의 "감도"로 볼 수 있는 스케일입니다.
- FullMotionBlur - 모든 것(스태틱/다이내믹 오브젝트)에 모션 블러링을 할지 말지 여부입니다. 끄면 움직이는 오브젝트만 블러링됩니다.
- CameraRotationThreshold - 단일 프레임에 카메라가 얼마나 빨리 회전하면 모션 블러를 끌 지를 정하기 위한 (각도 단위) 한계치입니다.
- CameraTranslationThreshold - 단일 프레임에 카메라가 얼마나 빨리 움직이면 모션 블러를 끌 지를 정하기 위한 (월드 유닛 단위) 한계치입니다.

키즈멧 프로퍼티

언리얼스크립트
class SeqAct_SetDOFBloomMotionBlurEffect extends SeqAct_SetDOFAndBloomEffectProperties DependsOn(DOFBloomMotionBlurEffect); var() float MaxVelocity; var() float MotionBlurAmount; var() bool FullMotionBlur; var() float CameraRotationThreshold; var() float CameraTranslationThreshold; function SetProperties(PostProcessEffect PostProcessEffect) { local DOFBloomMotionBlurEffect DOFBloomMotionBlurEffect; Super.SetProperties(PostProcessEffect); DOFBloomMotionBlurEffect = DOFBloomMotionBlurEffect(PostProcessEffect); if (DOFBloomMotionBlurEffect != None) { DOFBloomMotionBlurEffect.MaxVelocity = MaxVelocity; DOFBloomMotionBlurEffect.MotionBlurAmount = MotionBlurAmount; DOFBloomMotionBlurEffect.FullMotionBlur = FullMotionBlur; DOFBloomMotionBlurEffect.CameraRotationThreshold = CameraRotationThreshold; DOFBloomMotionBlurEffect.CameraTranslationThreshold = CameraTranslationThreshold; } } defaultproperties { ObjName="Set DOF, Bloom and Motion Blur Effect Properties" ObjCategory="Post Process" MotionBlurAmount=0.5f MaxVelocity=1.0f FullMotionBlur=true CameraRotationThreshold=90.0f CameraTranslationThreshold=10000.0f VariableLinks(12)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Max Velocity",PropertyName=MaxVelocity) VariableLinks(13)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Motion Blur Amount",PropertyName=MotionBlurAmount) VariableLinks(14)=(ExpectedType=class'SeqVar_Bool',bHidden=true,LinkDesc="Full Motion Blur",PropertyName=FullMotionBlur) VariableLinks(15)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Camera Rotation Threshold",PropertyName=CameraRotationThreshold) VariableLinks(16)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Camera Translation Threshold",PropertyName=CameraTranslationThreshold) }
관련 토픽
Set Material Effect Properties 키즈멧 시퀸스 액션
- Material - 포스트 프로세스 이펙트 용으로 설정할 머티리얼입니다.
- Material Object - 머티리얼 참조나 머티리얼 인스턴스 액터 참조로 설정 가능합니다. 키즈멧 노드가 적절한 머티리얼 참조를 찾아낼 것입니다.

키즈멧 프로퍼티

언리얼스크립트
class SeqAct_SetMaterialEffectProperties extends SeqAct_SetPostProcessEffectProperties DependsOn(MaterialEffect); var() MaterialInterface Material; var Object ObjectReference; event Activated() { local array<PostProcessEffect> PostProcessEffects; local int i; local MaterialEffect MaterialEffect; local MaterialInterface MaterialInterface; local MaterialInstanceActor MaterialInstanceActor; GetPostProcessEffects(PostProcessEffects, class'MaterialEffect'); if (PostProcessEffects.Length > 0) { for (i = 0; i < PostProcessEffects.length; ++i) { MaterialEffect = MaterialEffect(PostProcessEffects[i]); if (MaterialEffect != None) { if (ObjectReference != None) { MaterialInterface = MaterialInterface(ObjectReference); if (MaterialInterface != None) { MaterialEffect.Material = MaterialInterface; } else { MaterialInstanceActor = MaterialInstanceActor(ObjectReference); if (MaterialInstanceActor != None) { MaterialEffect.Material = MaterialInstanceActor.MatInst; } } } else { MaterialEffect.Material = Material; } } } } } defaultproperties { ObjName="Set Material Effect Properties" ObjCategory="Post Process" VariableLinks(0)=(ExpectedType=class'SeqVar_Object',bHidden=true,LinkDesc="Material Object",PropertyName=ObjectReference) }
관련 토픽
Set Motion Blur Effect Properties 키즈멧 시퀸스 액션
- MaxVelocity - 최대 블러 속도 양입니다. 블러 양의 제한입니다.
- MotionBlurAmount - 블러의 "감도"로 볼 수 있는 스케일입니다.
- FullMotionBlur - 모든 것(스태틱/다이내믹 오브젝트)에 모션 블러링을 할지 말지 여부입니다. 끄면 움직이는 오브젝트만 블러링됩니다.
- CameraRotationThreshold - 단일 프레임에 카메라가 얼마나 빨리 회전하면 모션 블러를 끌 지를 정하기 위한 (각도 단위) 한계치입니다.
- CameraTranslationThreshold - 단일 프레임에 카메라가 얼마나 빨리 움직이면 모션 블러를 끌 지를 정하기 위한 (월드 유닛 단위) 한계치입니다.

키즈멧 프로퍼티

언리얼스크립트
class SeqAct_SetMotionBlurEffectProperties extends SeqAct_SetPostProcessEffectProperties DependsOn(MotionBlurEffect); var() float MaxVelocity; var() float MotionBlurAmount; var() bool FullMotionBlur; var() float CameraRotationThreshold; var() float CameraTranslationThreshold; event Activated() { local array<PostProcessEffect> PostProcessEffects; local int i; local MotionBlurEffect MotionBlurEffect; GetPostProcessEffects(PostProcessEffects, class'MotionBlurEffect'); if (PostProcessEffects.Length > 0) { for (i = 0; i < PostProcessEffects.length; ++i) { MotionBlurEffect = MotionBlurEffect(PostProcessEffects[i]); if (MotionBlurEffect != None) { MotionBlurEffect.MaxVelocity = MaxVelocity; MotionBlurEffect.MotionBlurAmount = MotionBlurAmount; MotionBlurEffect.FullMotionBlur = FullMotionBlur; MotionBlurEffect.CameraRotationThreshold = CameraRotationThreshold; MotionBlurEffect.CameraTranslationThreshold = CameraTranslationThreshold; } } } } defaultproperties { ObjName="Set Motion Blur Effect Properties" ObjCategory="Post Process" MotionBlurAmount=0.5f MaxVelocity=1.0f FullMotionBlur=true CameraRotationThreshold=90.0f CameraTranslationThreshold=10000.0f VariableLinks(0)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Max Velocity",PropertyName=MaxVelocity) VariableLinks(1)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Motion Blur Amount",PropertyName=MotionBlurAmount) VariableLinks(2)=(ExpectedType=class'SeqVar_Bool',bHidden=true,LinkDesc="Full Motion Blur",PropertyName=FullMotionBlur) VariableLinks(3)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Camera Rotation Threshold",PropertyName=CameraRotationThreshold) VariableLinks(4)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Camera Translation Threshold",PropertyName=CameraTranslationThreshold) }
관련 토픽
Set Uber Post Process Effect Properties 키즈멧 시퀸스 액션
- SceneShadows - 씬의 그림자 색을 입힙니다.
- SceneHighLights - 씬의 하이라이트 색을 입힙니다.
- SceneMidTones - 씬의 미드 톤 색을 입힙니다.
- SceneDesaturation - 씬의 채도를 감소시킵니다. 0 은 채도 없음, 1 은 온전 채도입니다.
- SceneColorize - 전체 씬에 색을 입힙니다.
- TonemapperType - HDR 컬러를 LDR 컬러 범위에 매핑시키는 톤 매퍼 함수를 지정할 수 있습니다.
- TonemapperRange - 이 톤매퍼 프로퍼티로 최대 LDR 값에 매핑되는 HDR 밝기 값을 지정할 수 있습니다. 더 밝은 값은 하양으로 매핑됩니다. (2 에서 16 범위의 값이 적절) "Customizable" 톤매퍼에만 영향을 끼칩니다.
- ToeFactor - 이 톤매퍼 프로퍼티로 어두운 색(톤매퍼 끝부분(toe))의 매핑을 조절할 수 있습니다. 조절은 컬러 채널별로 독립적이기에 약간의 컬러나 채도 시프트 변경을 도입할 수 있습니다. "Customizable' 톤매퍼에만 영향을 끼칩니다. 0 은 선형 결과를 내며, 1 은 어두운 부분을 뭉개 좀 더 필름형 씬이 됩니다.
- TonemapperScale - 톤매퍼에 대한 입력 스케일입니다. 톤매퍼가 지정되었을 경우에만 사용됩니다. 0 은 검정입니다.
- SoftEdgeKernelSize - 모션 블러에 대한 소프트 에지의 반경입니다. 0 보다 큰 값은 소프트 에지 모션 블러를 켭니다. 이 메서드는 움직이는 오브젝트의 실루엣을 흐리게 만들어 모션 블러를 향상시킵니다. 이 메서드는 화면 공간에서 작동합니다. 그러므로 그 성능은 화면 크기에 따라서만 달라지며, 오브젝트/버텍스/트라이앵글 수와는 무관합니다.
- bEnableImageGrain - 이미지 그레인(노이즈) 활성화 여부입니다. 8 비트 양자화 부작용과 싸워내고 필름 그레인을 흉내내기 위함입니다. (SceneImageGrainScale 로 스케일 조절)
- SceneImageGrainScale - 이미지 그레인 스케일로, 어두운 부분에만 영향을 끼칩니다.
- Weight Small - 내부를 추가하여 좀 더 선명한 빛을 내고자 블룸을 조절합니다. 이 기능을 사용하면 블룸 반경에 따른 성능상의 비용이 추가될 수 있습니다. 그러나 낮은 해상도로 큰 반경을 하는 경우 등에는 더 빠를 수도 있습니다. 실제 웨이트(weight)는 모든 블룸 웨이트 간의 비율로 계산됩니다.
- Weight Medium - 부가 내외부 웨이트를 감소시키기 위해 블룸 모양을 조절합니다. 낮은 해상도로 큰 반경을 하는 경우 등에는 더 빠를 수도 있습니다. 실제 웨이트는 모든 블룸 웨이트 간의 비율로 계산됩니다.
- Weight Large - 외부를 추가하여 좀 더 분산된 빛을 내고자 블룸을 조절합니다. 이 기능을 사용하면 블룸 반경에 따른 성능상의 비용이 추가될 수 있습니다. 그러나 낮은 해상도로 큰 반경을 하는 경우 등에는 더 빠를 수도 있습니다. 실제 웨이트는 모든 블룸 웨이트 간의 비율로 계산됩니다.
- Size Multiplier Small - 작은 커널 크기를 스케일 조절합니다. 0.1 에서 0.5 사이의 값이 좋습니다. 이 프로퍼티는 BloomWeightSmall 에 웨이트가 지정될 때만 사용됩니다.
- Size Multiplier Medium - 중간 커널 크기를 스케일 조절합니다. 0.5 에서 1.5 사이의 값이 좋습니다.
- Size Multiplier Large - 큰 커널 크기를 스케일 조절합니다. 2 에서 4 사이의 값이 좋습니다. 이 프로퍼티는 BloomWeightSmall 에 웨이트가 지정될 때만 사용됩니다.
- bScaleEffectsWithViewSize - BlurKernelSize 에 영향을 끼치며, 그 특성은 뷰 크기에 따라 스케일됩니다.

키즈멧 프로퍼티

언리얼스크립트
class SeqAct_SetUberPostProcessEffect extends SeqAct_SetPostProcessEffectProperties DependsOn(UberPostProcessEffect); var() vector SceneShadows<DisplayName=Shadows>; var() vector SceneHighLights<DisplayName=HighLights>; var() vector SceneMidTones<DisplayName=MidTones>; var() float SceneDesaturation<DisplayName=Desaturation>; var() vector SceneColorize<DisplayName=Colorize>; var() ETonemapperType TonemapperType; var() float TonemapperRange; var() float TonemapperToeFactor<DisplayName=ToeFactor>; var() float TonemapperScale; var() float MotionBlurSoftEdgeKernelSize<DisplayName=SoftEdgeKernelSize>; var() bool bEnableImageGrain; var() float SceneImageGrainScale; var() float BloomWeightSmall<DisplayName=Weight Small>; var() float BloomWeightMedium<DisplayName=Weight Medium>; var() float BloomWeightLarge<DisplayName=Weight Large>; var() float BloomSizeScaleSmall<DisplayName=Size Multiplier Small>; var() float BloomSizeScaleMedium<DisplayName=Size Multiplier Medium>; var() float BloomSizeScaleLarge<DisplayName=Size Multiplier Large>; var() bool bScaleEffectsWithViewSize; event Activated() { local array<PostProcessEffect> PostProcessEffects; local int i; local UberPostProcessEffect UberPostProcessEffect; GetPostProcessEffects(PostProcessEffects, class'UberPostProcessEffect'); if (PostProcessEffects.Length > 0) { for (i = 0; i < PostProcessEffects.length; ++i) { UberPostProcessEffect = UberPostProcessEffect(PostProcessEffects[i]); if (UberPostProcessEffect != None) { UberPostProcessEffect.SceneShadows = SceneShadows; UberPostProcessEffect.SceneHighLights = SceneHighLights; UberPostProcessEffect.SceneMidTones = SceneMidTones; UberPostProcessEffect.SceneDesaturation = SceneDesaturation; UberPostProcessEffect.SceneColorize = SceneColorize; UberPostProcessEffect.TonemapperType = TonemapperType; UberPostProcessEffect.TonemapperRange = TonemapperRange; UberPostProcessEffect.TonemapperToeFactor = TonemapperToeFactor; UberPostProcessEffect.TonemapperScale = TonemapperScale; UberPostProcessEffect.MotionBlurSoftEdgeKernelSize = MotionBlurSoftEdgeKernelSize; UberPostProcessEffect.bEnableImageGrain = bEnableImageGrain; UberPostProcessEffect.SceneImageGrainScale = SceneImageGrainScale; UberPostProcessEffect.BloomWeightSmall = BloomWeightSmall; UberPostProcessEffect.BloomWeightMedium = BloomWeightMedium; UberPostProcessEffect.BloomWeightLarge = BloomWeightLarge; UberPostProcessEffect.BloomSizeScaleSmall = BloomSizeScaleSmall; UberPostProcessEffect.BloomSizeScaleMedium = BloomSizeScaleMedium; UberPostProcessEffect.BloomSizeScaleLarge = BloomSizeScaleLarge; UberPostProcessEffect.bScaleEffectsWithViewSize = bScaleEffectsWithViewSize; } } } } defaultproperties { ObjName="Set Uber Post Process Effect Properties" ObjCategory="Post Process" SceneShadows=(X=0.0,Y=0.0,Z=-0.003) SceneHighLights=(X=0.8,Y=0.8,Z=0.8) SceneMidTones=(X=1.3,Y=1.3,Z=1.3) SceneDesaturation=0.4 SceneColorize=(X=1,Y=1,Z=1) bEnableImageGrain=false TonemapperScale=1.0 SceneImageGrainScale=0.02 TonemapperRange=8 TonemapperToeFactor=1 BloomWeightSmall=0 BloomWeightMedium=1 BloomWeightLarge=0 BloomSizeScaleSmall=0.25 BloomSizeScaleMedium=1 BloomSizeScaleLarge=3 VariableLinks(0)=(ExpectedType=class'SeqVar_Vector',bHidden=true,LinkDesc="Scene Shadows",PropertyName=SceneShadows) VariableLinks(1)=(ExpectedType=class'SeqVar_Vector',bHidden=true,LinkDesc="Scene HighLights",PropertyName=SceneHighLights) VariableLinks(2)=(ExpectedType=class'SeqVar_Vector',bHidden=true,LinkDesc="Scene MidTones",PropertyName=SceneMidTones) VariableLinks(3)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Scene Desaturation",PropertyName=SceneDesaturation) VariableLinks(4)=(ExpectedType=class'SeqVar_Vector',bHidden=true,LinkDesc="Scene Colorize",PropertyName=SceneColorize) VariableLinks(5)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Tonemapper Range",PropertyName=TonemapperRange) VariableLinks(6)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Tonemapper Toe Factor",PropertyName=TonemapperToeFactor) VariableLinks(7)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Tonemapper Scale",PropertyName=TonemapperScale) VariableLinks(8)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Motion Blur Soft Edge Kernel Size",PropertyName=MotionBlurSoftEdgeKernelSize) VariableLinks(9)=(ExpectedType=class'SeqVar_Bool',bHidden=true,LinkDesc="Enable Image Grain",PropertyName=bEnableImageGrain) VariableLinks(10)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Scene Image Grain Scale",PropertyName=SceneImageGrainScale) VariableLinks(11)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Weight Small",PropertyName=BloomWeightSmall) VariableLinks(12)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Weight Medium",PropertyName=BloomWeightMedium) VariableLinks(13)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Weight Large",PropertyName=BloomWeightLarge) VariableLinks(14)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Size Scale Small",PropertyName=BloomSizeScaleSmall) VariableLinks(15)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Size Scale Medium",PropertyName=BloomSizeScaleMedium) VariableLinks(16)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Bloom Size Scale Large",PropertyName=BloomSizeScaleLarge) VariableLinks(17)=(ExpectedType=class'SeqVar_Bool',bHidden=true,LinkDesc="Scale Effects With View Size",PropertyName=bScaleEffectsWithViewSize) }
관련 토픽
Toggle Post Process Effect 키즈멧 시퀸스 액션
- Bool - 토글 값을 반환합니다.

키즈멧 프로퍼티

언리얼스크립트
class SeqAct_TogglePostProcessEffect extends SeqAct_SetPostProcessEffectProperties; var bool Value; event Activated() { local array<PostProcessEffect> PostProcessEffects; local int i; if (InputLinks[0].bHasImpulse) // Enable { Value = true; } else if (InputLinks[1].bHasImpulse) // Disable { Value = false; } else if (InputLinks[2].bHasImpulse) // Toggle { Value = !Value; } GetPostProcessEffects(PostProcessEffects); if (PostProcessEffects.Length > 0) { for (i = 0; i < PostProcessEffects.length; ++i) { if (PostProcessEffects[i] != None) { PostProcessEffects[i].bShowInEditor = Value; PostProcessEffects[i].bShowInGame = Value; } } } } defaultproperties { ObjName="Toggle Post Process Effects" ObjCategory="Post Process" InputLinks(0)=(LinkDesc="Enable") InputLinks(1)=(LinkDesc="Disable") InputLinks(2)=(LinkDesc="Toggle") VariableLinks(0)=(ExpectedType=class'SeqVar_Bool',LinkDesc="Bool",bWriteable=true,MinVars=0,PropertyName=Value) }
숨겨진 키즈멧 노드


SeqAct_SetPostProcessEffectProperties
언리얼스크립트
class SeqAct_SetPostProcessEffectProperties extends SequenceAction abstract; var() Name PostProcessEffectName; function GetPostProcessEffects(out array<PostProcessEffect> PostProcessEffects, optional class<PostProcessEffect> MatchingPostProcessEffectClass = class'PostProcessEffect') { local WorldInfo WorldInfo; local PostProcessEffect PostProcessEffect; local PlayerController PlayerController; local LocalPlayer LocalPlayer; WorldInfo = class'WorldInfo'.static.GetWorldInfo(); // 월드 포스트 프로세스 체인에 영향을 끼칩니다. if (WorldInfo != None) { ForEach WorldInfo.AllControllers(class'PlayerController', PlayerController) { LocalPlayer = LocalPlayer(PlayerController.Player); if (LocalPlayer != None && LocalPlayer.PlayerPostProcess != None) { PostProcessEffect = LocalPlayer.PlayerPostProcess.FindPostProcessEffect(PostProcessEffectName); if (PostProcessEffect != None && (PostProcessEffect.Class == MatchingPostProcessEffectClass || ClassIsChildOf(PostProcessEffect.Class, MatchingPostProcessEffectClass))) { PostProcessEffects.AddItem(PostProcessEffect); } } } } } defaultproperties { }
SeqAct_SetDOFEffectProperties
언리얼스크립트
class SeqAct_SetDOFEffectProperties extends SeqAct_SetPostProcessEffectProperties DependsOn(DOFEffect) abstract; var() float FalloffExponent; var() float BlurKernelSize; var() float MaxNearBlurAmount<DisplayName=MaxNear>; var() float MinBlurAmount<DisplayName=Min>; var() float MaxFarBlurAmount<DisplayName=MaxFar>; var() EFocusType FocusType; var() float FocusInnerRadius; var() float FocusDistance; var() vector FocusPosition; event Activated() { local array<PostProcessEffect> PostProcessEffects; local int i; GetPostProcessEffects(PostProcessEffects); if (PostProcessEffects.Length > 0) { for (i = 0; i < PostProcessEffects.length; ++i) { SetProperties(PostProcessEffects[i]); } } } function SetProperties(PostProcessEffect PostProcessEffect) { local DOFEffect DOFEffect; DOFEffect = DOFEffect(PostProcessEffect); if (DOFEffect != None) { DOFEffect.FalloffExponent = FalloffExponent; DOFEffect.BlurKernelSize = BlurKernelSize; DOFEffect.MaxNearBlurAmount = MaxNearBlurAmount; DOFEffect.MinBlurAmount = MinBlurAmount; DOFEffect.MaxFarBlurAmount = MaxFarBlurAmount; DOFEffect.FocusType = FocusType; DOFEffect.FocusInnerRadius = FocusInnerRadius; DOFEffect.FocusDistance = FocusDistance; DOFEffect.FocusPosition = FocusPosition; } } defaultproperties { FocusType=FOCUS_Distance FocusDistance=800 FocusInnerRadius=400 FalloffExponent=2 BlurKernelSize=2 MaxNearBlurAmount=1 MinBlurAmount=0 MaxFarBlurAmount=1 VariableLinks(0)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Falloff Exponent",PropertyName=FalloffExponent) VariableLinks(1)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Blur Kernel Size",PropertyName=BlurKernelSize) VariableLinks(2)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Max Near",PropertyName=MaxNearBlurAmount) VariableLinks(3)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Min",PropertyName=MinBlurAmount) VariableLinks(4)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Max Far",PropertyName=MaxFarBlurAmount) VariableLinks(5)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Focus Inner Radius",PropertyName=FocusInnerRadius) VariableLinks(6)=(ExpectedType=class'SeqVar_Float',bHidden=true,LinkDesc="Focus Distance",PropertyName=FocusDistance) VariableLinks(7)=(ExpectedType=class'SeqVar_Vector',bHidden=true,LinkDesc="Focus Position",PropertyName=FocusPosition) }
키즈멧 예제

다운로드
- PostProcessingContent.zip 다운로드: 이 젬에 사용된 스크립트와 콘텐츠 파일입니다.