UDN
Search public documentation:

InstancedMaterials_TimeVaryingKR
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

UE3 홈 > 머티리얼과 텍스처 > 머티리얼 인스턴스 시간가변
UE3 홈 > 파티클과 이펙트 > 데칼 > 머티리얼 인스턴스 시간가변

머티리얼 인스턴스 시간가변


문서 변경내역: Martin Sweitzer 작성. 홍성진 번역.

개요


머티리얼 인스턴스 시간가변은 UE3 내 또하나의 InstancedMaterial 유형입니다. 주목적은 시간에 따라 변해가는 머티리얼에 대한 처리를 콘텐츠 팀의 손에 조금이라도 더 넘기기 위함입니다. 보통 머티리얼을 다양화하다 보면 코드 기반 파라미터가 생기기 마련인데, 바람직한 일은 아닙니다.

데칼이 쑝 사라지는 것보다는 은은히 사라지게 만들어야 뭔가 좀 젖어드는 맛이 있지 않겠습니까?

머인가변 만들기


시간에 따라 변하는 파라미터를 가진 BaseMaterial을 설정하고 싶다 칩시다. (예를 들어 시간에 따라 무언가 희미해 지게 하고 싶은 경우, FadeVal 같은 걸 만들어서 0일 때는 머티리얼이 나타나게, 1일 때는 완전 희미해지게 하면 됩니다.)

실제 머인가변을 만드는 것은 머인불변과 똑같은 과정을 거칩니다. 자세히는, 머티리얼에 우클릭하고 "Create New Material Instance Time Varying"(머티리얼 인스턴스 시간가변 새로 만들기)를 선택하면 됩니다.

머인가변 부분과 역할

머인가변을 만들고 나면 시간에 따라 머인가변이 달라지도록 하기 위해 무언가 채워넣을 수 있는 파라미터가 몇 생깁니다.

bLoop: (루프) 참이면 CycleTime 을 주기로 삼아 반복합니다.

bAutoActivate: (자동 활성화) 이 파라미터를 자동으로 활성화시킵니다.

CycleTime: (순환시간) 시간 정규화 및 루프 시간을 조절합니다.

bNormalizeTime: (시간 정규화) 참이면 모든 키가 0과 1 사이에 오도록 CycleTime을 기준삼아 시간을 조절합니다.

OffsetTime: (오프셋 시간) 실제로 fire 시킬 때까지 대기할 시간입니다. 커브에 사용할 데이터 앞부분의 슬랙을 (N초간 대기후 페이딩을 시작하는 식으로) 제거하고 실제 파라미터를 제어하는 데이터만으로 유지시킬 때 좋습니다.

bOffsetFromEnd: (끝에서부터의 오프셋) OffsetTime을 사용할 때, (예로 데칼을 페이드아웃 시키려는데 사라지기 전에 데칼의 색을 바꾸고 싶다든가 해서) 데칼 수명의 끝에서부터도 오프셋을 사용할 수 있으면 좋습니다.

여러가지 커브 데이터: 이 데이터는 계산된 뒤에 파라미터에 설정될 값입니다. 즉 UE3의 다른 커브처럼 값(, 여기선 시간)이 커브에 전달됩니다. 커브는 그 InVal을 계산하여 파라미터를 계산된 값으로 설정합니다.

예제


머인가변 예제

MITV.jpg

이 머인가변은 페이드용 파라미터가 둘 있습니다. Fade_Out 및 Glow 입니다.

Glow 는 이 머티리얼이 월드에 놓였을 때 바로 시작되는 파라미터로, 1에서 0으로 가는 데 .4초가 걸린다는 것을 커브를 통해 알 수 있습니다. 이 빛은 환하게 시작해서 희미해진 다음 심연으로 돌아갑니다.

Fade_Out 파라미터에는 bOffsetFromEnd (끝에서의 오프셋)이 있습니다. 즉 커브가 끝에서 OffsetTime 만큼(여기선 3초)서부터 시작합니다. 그래서 이 머티리얼이 코드로부터 스폰되고 지속 제한 시간이 지정되면, 이 Fade_Out 은 이렇게 외칩니다. "끝에서 3초부터 페이드 아웃 시작하고, 3초에 걸쳐 Fade_Out 파라미터 값이 0에서 1로 변하는거다!"

프로그래머용


스크립트에서 머인가변 사용하기

머인가변 사용법은 머인불변과 매우 비슷합니다. 유일한 차이점은 TimeVarying (시간 가변) 전부가 제대로 일어날 수 있도록 머인가변이 얼마나 오래 머물지 Duration (기간)을 지정해 줘야 한다는 점입니다.

머인가변을 스폰시키고서 "SetDuration" 호출하여 기간도 설정하고 머인가변도 시작시키는 예는 이와 같습니다:

        MITV_Decal = new(self) class'MaterialInstanceTimeVarying';
        MITV_Decal.SetParent( Source.DecalMaterial );
        MITV_Decal.SetDuration( DecalLifeSpan );
        SetDecalMaterial(MITV_Decal);