[UE4] Spine2d Outline
공부/UnrealEngine 42018. 10. 8. 15:58
http://www.michalorzelek.com/blog/tutorial-creating-outline-effect-around-objects/
- 위 링크 가서 마테리얼 받아준 뒤 콘텐츠 폴더에 넣습니다.
- 위 링크에서 나온대로 PostProcess 설정을 합니다.
- Build.cs로 가서 PublicDependencyModuleNames에 ProceduralMeshComponent를 추가해 줍니다.
- 언리얼 에디터로 가서 C++ 클래스를 추가합니다. 언리얼은 투명한 Mesh에는 아웃라인을 그려주지 않아서 투명하지 않은 더미 렌더러를 만들 것입니다.
- 모든 클래스 표시
- SpineSkeletonRendererComponent를 부모 클래스로 선택합니다.
- 이름을 정하고 생성합니다. 이 예제에서는 OutlineRenderComponent로 가정하겠습니다.
- 생성된 헤더 파일에 생성자를 만듭니다. 인수는 const FObjectInitializer& ObjectInitializer입니다.
- 소스 파일에도 구현부를 생성합니다. 부모 클래스 초기화도 잊지 마세요.
- 생성자 구현부에 다음과 같은 코드를 씁니다. http://cpp.sh/9y2zl
- /Game/Materials/Spine/SpineUnlitNormalMaterial로 부터 머티리얼 인스턴스를 가져옵니다.
- NormalBlendMaterial 변수에 가져온 머리티얼 인스턴스 오브젝트를 넣었습니다.
- bRenderInMainPass를 비활성화 해 (간단히 설명해) 모습을 숨기고 아웃라인에 필요한 Depth가 검출 가능하도록 렌더링 합니다.
- 언리얼 에디터로 돌아와 콘텐츠 브라우저 하단에 뷰 옵션에서 플러그인 콘텐츠를 볼 수 있도록 토글합니다.
- SpinePlugin 콘텐츠에서 SpineUnlitNormalMaterial를 복사해 /Game/Materials/Spine/ 폴더 안에 복사합니다. 폴더가 없다면 만듭니다.
- 복사한 머티리얼을 열어 Blend 모드를 Masked로 변경하고 오파시티에 있는 핀의 경로에 존재하는 노드를 오파시티 마스크에 연결합니다.
- 저장한 뒤 SpineSkeletonRendererComponent와 SpineSkeletonAnimationComponent가 있는 액터에 OutlineRenderComponent도 붙여줍니다.
- 가시성을 위해 SpineSkeletonRendererComponent에 Attach 해주는 게 좋을 것 같다고 개인적으로 생각합니다.
- Spine Runtime은 Owner의 모든 컴포넌트를 찾아서 동작하므로 Attach 관계는 상관 없습니다.
- 이제 OutlineRenderComponent의 SetRenderCustomDepth(true)를 호출하면 설정한 대로 외곽선이 표시됩니다.
'공부 > UnrealEngine 4' 카테고리의 다른 글
[Material Nodes] Flipbook 오프셋 적용 (0) | 2019.07.22 |
---|---|
[UE4/C++] 연사 가능한 총을 만들어 보자 (0) | 2016.08.04 |
[UE4/C++] 진짜 완전 간단한 재장전 시스템을 만들어 보자. (0) | 2016.08.01 |