UDN
Search public documentation:
HitMaskKR
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
Hit Mask 컴포넌트
문서 변경내역: Lina Halper 작성; 홍성진 번역.
개요
구현 방법
액터에 컴포넌트 추가
SceneCapture2DHitMaskComponent, 얘가 텍스처로의 렌더링을 담당합니다. 이 컴포넌트를 폰이나 스켈레탈 메시 액터에 부착해야 합니다.// hit mask를 액터에 추가 Begin Object Class=SceneCapture2DHitMaskComponent Name=HitMaskComp End Object HitMaskComponent=HitMaskComp Components.Add(HitMaskComp)
액터별 텍스처 생성
모든 캐릭터에 같은 텍스처를 공유하도록 하고 싶지 않은 경우, 텍스처를 만들어다가 그 대상을 Hit Mask Component에 대한 렌더 타겟으로 지정합니다.// 64x64 마스크 텍스처 생성 MaskTexture = class'TextureRenderTarget2D'.static.Create(64, 64, PF_G8, MakeLinearColor(0, 0, 0, 1)); if ( MaskTexture!=none ) { // 이 텍스처를 포함한 HitMaskComponent 업데이트 HitMaskComponent.SetCaptureTargetTexture( MaskTexture ); }
텍스처에다 마스크 추가
노멀 테스트 여부와는 관계없이 Radius(반경) 크기의 원 하나를 MaskWorldLocation 월드 위치에 추가합니다.HitMaskComponent.SetCaptureParameters(MaskWorldLocation, Radius, MaskStartLocation, FALSE); //캡처 파라미터 전송쉐이더에서 방향 테스트를 수행하지 않으려면 MaskStartLocation(마스크 시작 위치)는 필요치 않습니다. 예를 들어 캐릭터의 가슴에 상처를 만들고 싶은데, 렌더 마스크를 캐릭터 뒤에 렌더링해 버리면 범위내에서 이루어진 적중도 제대로 처리되지 않을 겁니다. MaskStartLocation(마스크 시작 위치)는 원점을, 마지막 파라미터 TRUE는 노멀 테스트를 수행함을 나타냅니다. FALSE라면 노멀 테스트를 수행하지 않으며, 그냥 월드 위치 주변에 구체를 생성하게 됩니다. 보통 두 곳에 동일한 물체를 원하는 경우가 드물 것이기에, (V는 미러링시키고) U는 미러링시키지 않은 채로 생성됩니다.
캐릭터에다 설정하는 방법
텍스처 파라미터
머티리얼에서, 게임내 대체가 가능한 텍스처 파라미터를 만듭니다. 그게 우리가 만들려는 타겟 텍스처가 됩니다. 이제 텍스처를 언미러링해야 합니다. 렌더링할 때 U가 언미러링되니, 텍스처 샘플링도 U 언미러링해야 한다는 점, 잊으면 안되겠습니다.코드에 텍스처 파라미터 대체
파라미터에다 마스크 텍스처를 설정할 차례입니다. 이렇게요:// 첫 파라미터 얻기 MIC = Mesh.CreateAndSetMaterialInstanceConstant(0); // 대체하려는 머티리얼 if ( MIC != none && MaskTexture!=none ) { // 새 택스처를 FilterMask 파라미터로 설정 MIC.SetTextureParameterValue('FilterMask', MaskTexture); // 이 텍스처가 머티리얼에 사용되도록 }
파라미터
- MaterialIndex : (머티리얼 인덱스) 렌더링할 머티리얼 부분.
- ForceLOD : (LOD 강제) -1이면 현재 LOD 사용.
- HitMaskCullDistance : (HitMask 선별 거리) 이보다 멀면 테스트하지 않음.
페이딩 관련 변수
잠시후에 페이드아웃되게 할 수 있습니다. 미세조절 파라미터는 이와 같습니다:- FadingStartTimeSinceHit : (적중후 페이드 시작 시간) 지난 적중 이후 페이딩을 시작할 시간. -1이면 무한. 연속해서 맞으면 페이딩 정지.
- FadingPercentage : (페이딩 퍼센트) 0에서 1사이의 적용할 색상 % 값.
- FadingDurationTime : (페이딩 지속 기간) 초 단위, 페이딩이 시작한 이후의 지속 기간
- FadingIntervalTime : (페이딩 간격 기간) 초 단위, 페이딩 간격