UDN
Search public documentation:
DevelopmentKitGemsCreatingASimpleBlobShadowKR
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
단순 얼룩 그림자 만들기
문서 변경내역: James Tan 작성. 홍성진 번역.
UDK 2011년 3월 버전으로 최종 테스팅, PC 호환
개요
데칼 머티리얼 레이아웃
- Constant Clamp 상수 제한 - 모든 기존 계산으로부터의 출력값이 0.f 에서 1.f 범위 사이에 있도록 하기 위해 사용됩니다. 변조는 이 범위 밖의 값으로도 여전히 작동하나, 이 경우엔 바람직하지 않습니다.
- Add 추가 - 보간된 그림자 색에 불투명 텍스처 마스크를 추가하기 위해 사용됩니다. 그림자의 '반전된' 마스크를 추가하면 그림자의 일부가 아닌 영역에 1.f 가 추가됩니다. 고로 이 값이 제한되면 1.f 가 될 것이며, 데칼이 렌더링될 때 보이지 않게 될 것입니다.
- 'Opacity Texture' 불투명 텍스처 - 그림자 마스크를 정의합니다. 꼭 원모양 그림자를 사용할 필요는 없기에 다른 정적인 그림자 모양을 만들 수 있습니다.
- Linear Interpolation 선형 보간 - 이는 (1,1,1,1) 과 'ShadowColor' 사이를 선형으로 보간합니다. 'ShadowColor' 의 알파 출력을 사용하여 그림자의 농도를 조절할 수 있습니다.
- Constant [1] 상수 - 선형 보간 함수의 파라미터 중 하나입니다. 그림자의 최대 옅은 정도(lightness)를 정의하며, 여기서는 1 입니다.
- 'Shadow Color' 그림자 색 - 그림자의 색을 정의합니다. 꼭 검정색을 사용할 필요는 없습니다.
관련 토픽
데칼 머티리얼 테스트하기
- 콘텐츠 브라우저에서 데칼 머티리얼을 선택합니다.
- 월드 뷰포트 내 데칼을 놓고자 하는 곳에 우클릭하면 맥락 메뉴가 나타납니다.
- "Add Movable Decal: *" 또는 "Add Decal: *" 중 하나를 클릭합니다.
관련 토픽
데칼 머티리얼 인스턴스 제작 및 변경하기
대화상자가 나타납니다. 머티리얼 인스턴스를 저장하려는 곳과 그걸 무엇으로 부르려는지를 입력하십시오.
여기서 속성의 왼편 체크박스 중 변경하고자 하는 것을 클릭합니다. 이 체크 박스는 덮어쓸 속성을 정의합니다. 적합하다 생각되는 대로 값을 바꾸십시오.
이 부분의 위 단계를 반복하여 새 데칼 머티리얼 인스턴스를 테스트합니다.
관련 토픽
액터에 단순한 얼룩 그림자 추가하기
부착
이 예제에서, 단순 얼룩 그림자는 언리얼 에디터가 제공하는 부착 툴을 사용하여 보간된 액터에 부착될 것입니다. 무버블 데칼 액터를 부착시킬 액터를 추가합니다. 저는 구체형 보간 액터를 추가했습니다.
부착 창을 엽니다. 전처럼 콘텐츠 브라우저에 부착되어 있지 않고, 디폴트로 이렇게 위치해 있습니다.
뷰포트에서 부착하려는 액터를 선택하고, 부착 창에 내에 우클릭한 다음 "선택 액터 추가" 를 클릭합니다.
InterpActor_0 (또는 데칼을 부착시키려는 액터) 오른편에 있는 작은 검정 박스 중 하나를 클릭한 다음, DecalActorMovable_1 (또는 무버블 데칼 액터)의 왼편에 있는 작은 검정 박스 중 하나에 끌어 놓습니다. 무버블 데칼 액터가 부착되었으며, 구체형 메시와 같이 움직일 것입니다.
관련 토픽
키즈멧
월드의 무버블 데칼 액터를 선택합니다. 툴바의
맥락 메뉴를 통해 Plauyer Spawned 이벤트를 추가합니다. 이로써 키즈멧이 플레이어 스폰 시점을 검출할 수 있습니다. Object 변수 속으로 instigator (플레이어의 폰)을 출력할 수 있습니다.
다음으로 맥랙 메뉴를 통해 Teleport 액션을 추가합니다. 무버블 데칼 액터는 플레이어가 처음 스폰될 때 플레이어 폰 아래에 있지 않을 것입니다. 그래서 무버블 데칼 액터를 플레이어 폰과 같은 위치로 텔레포트시킵니다.
'Update Rotation' 을 false 로 설정합니다. 무버블 데칼 액터의 회전은 변경할 필요가 없습니다.
다음 맥랙 메뉴를 통해 Object 변수를 추가합니다. 이로써 키즈멧이 플레이어 폰의 참조를 저장할 수 있으며, 나중에 사용할 수 있습니다.
모든 키즈멧 노드를 연결합니다. 그러려면 작은 박스나 트라이앵글에 왼클릭한 후 적절한 대상으로 끌면 됩니다. 플레이어가 스폰될 때, Player Spawned 키즈멧 노드가 instigator 를 활성화시켜 빈 오브젝트 변수 속으로 출력할 것입니다. 그런 다음 Teleport 키즈멧 노드를 실행시키고, 무버블 데칼 액터를 오브젝트 변수 내에 저장된 플레이어 폰과 같은 위치로 텔레포트시킵니다. 이로써 플레이어가 스폰될 때 무버블 데칼 액터가 올바른 곳에 있을 수 있습니다.
맥락 메뉴를 사용하여 Attach to Actor 액션을 추가합니다. 키즈멧 노드는 액터를 다른 액터에 부착합니다. 이 경우, 무버블 데칼 액터는 플레이어의 폰에 부착될 것입니다.
모든 요소를 연결합니다. 기존 지침에 덧붗여, 텔레포트 키즈멧 노드가 실행될 때, 이어서 Attach 키즈멧 노드를 실행합니다. 그리고 이 키즈멧 노드는 무버블 데칼 액터를 플레이어의 폰에 부착합니다.
레벨을 시동시키면 빨강 데칼이 따라붙는 것을 볼 수 있을 것입니다.
관련 토픽
언리얼스크립트
class DecalActorSpawnable extends DecalActorMovable;
defaultproperties
{
// bStatic 및 bNoDelete 는 액터가 런타임에 스폰되는 것을 방지.
bStatic=false
bNoDelete=false
}
class SimpleBlobShadowPawn extends UTPawn
placeable;
// 스폰된 단순 얼룩 그림자.
var PrivateWrite DecalActorSpawnable SimpleBlobShadowDecal;
// 우리가 스폰시킬 아키타입된 단순 얼룩 그림자 액터로의 참조.
var(Shadow) const DecalActorSpawnable SimpleBlobShadowDecalArchetype;
simulated function PostBeginPlay()
{
local MaterialInstanceConstant DecalMaterialInstanceConstant;
Super.PostBeginPlay();
// 전용 서버는 단순 얼룩 그림자 스폰 불필요
if (WorldInfo.NetMode == NM_DedicatedServer)
{
return;
}
// 얼룩 그림자 아키타입 없음
// 아키타입이 올바른 클래스형이 아님
if (SimpleBlobShadowDecalArchetype == None)
{
return;
}
// 단순 얼룩 그림자 액터 스폰
SimpleBlobShadowDecal = Spawn(SimpleBlobShadowDecalArchetype.Class, Self,, Location, Rot(49152, 0, 0), SimpleBlobShadowDecalArchetype);
if (SimpleBlobShadowDecal != None)
{
if (SimpleBlobShadowDecal.Decal != None && SimpleBlobShadowDecal.Decal.GetDecalMaterial() != None)
{
// 파라미터를 동적으로 변경할 수 있도록 새 머티리얼 인스턴스 생성
DecalMaterialInstanceConstant = new class'MaterialInstanceConstant';
if (DecalMaterialInstanceConstant != None)
{
DecalMaterialInstanceConstant.SetParent(SimpleBlobShadowDecal.Decal.GetDecalMaterial());
SimpleBlobShadowDecal.Decal.SetDecalMaterial(DecalMaterialInstanceConstant);
}
}
// 단순 얼룩 그림자를 자신에게 부착
Attach(SimpleBlobShadowDecal);
}
}
defaultproperties
{
}
- PostBeginPlay 는 (UTPawn 을 서브클래스로 갖는) Actors 가 처음 스폰될 때 실행됩니다.
- 이 액터가 전용 서버에 있을 때는 중단합니다. 전용 서버는 얼룩 그림자를 스폰할 필요가 없습니다.
- 설정된 그림자 아키타입이 없으면 중단합니다.
- 아키타입의 인스턴스를 아래로 향하게 해서 스폰합니다. 추적 가능하도록 인스턴스를 변수에 할당합니다.
- 데칼 컴포넌트가 데칼 머티리얼을 가졌는지 검사합니다.
- 그렇다면 새 머티리얼 인스턴스를 생성하여 그 부모를 현재 데칼 머티리얼에 할당합니다. 다른 것에는 영향을 끼치지 않고 속성을 변경할 수 있습니다.
- 스폰된 아키타입을 자신에게 부착합니다. (SimpleBlobShadowPawn)
