발견되는 편지 구조 설정
트리거 조건과 연출은 전부 다르게 설정할 거지만 공통된 흐름을 정함
트리거 조건 -> 연출 -> 쪽지 노출
BrightLetter 설계
발견하기 전까지는 거기에 쪽지가 있는 걸 모르게 해야 함
-> 생성자에서 메시를 안 보이게(SetVisibility(false)) + 라인트레이스에 안 잡히게(SetCollisionEnabled(NoCollision)) 처리하고 컨테이너가 연출을 끝낸 후 Reveal()을 호출하면 그제서야 보이고 상호작용 가능한 상태로 전환됨
ABrightLetter::ABrightLetter()
{
ItemType = "BrightLetter";
StaticMesh->SetVisibility(false);
StaticMesh->SetCollisionEnabled(ECollisionEnabled::NoCollision);
}
void ABrightLetter::Reveal()
{
if (bRevealed) return;
bRevealed = true;
StaticMesh->SetVisibility(true);
StaticMesh->SetCollisionEnabled(ECollisionEnabled::QueryAndPhysics);
StaticMesh->SetEnableGravity(true);
StaticMesh->SetSimulatePhysics(true);
}
SetEnableGravity(true)는 SetSimulatePhysics가 켜지기 전까지는 작동하지 않는 옵션이라 미리 켜놔도 무방하다는 걸 튜터님께서 알려주심 : SimulatePhysics가 전제 조건이고 EnableGravity는 그 전제 위에서만 의미를 갖는 스위치
ActivateItem에서도 bRevealed가 false면 바로 리턴하게 가드를 넣어서 혹시 모를 예외 상황에서도 숨겨진 쪽지가 반응하지 않도록 막아둠
메시 작업
편지지 텍스처는 텍스트 없이 질감/모양만 남긴 PNG로 분리 제작
(실제 편지 내용은 메시가 아니라 상호작용 시 뜨는 UI 위젯에서 담당하는 구조를 유지)
Content Browser에 PNG 파일 드래그 드롭
- PNG를 언리얼에 임포트 (Content Drawer 드래그)
- 파일 우클릭 후 Create Material 클릭 -> 텍스처와 자동으로 연결된 머티리얼이 생성됨
- 생성된 머티리얼 더블클릭해서 머티리얼 에디터 열기
- Bright 쪽 머티리얼은 가장자리 투명 처리가 필요해서 Blend Mode를 Masked로 설정하고 Texture Sample의 Alpha 채널을 Opacity Mask에 연결

- BP_DarkLetter, BP_BrightLetter의 Element 0 슬롯에 적용

'프로젝트 > The Room (방탈출 게임)' 카테고리의 다른 글
| 책장-쪽지 인터랙션 구현 (0) | 2026.06.26 |
|---|---|
| 트러블슈팅: 라인트레이스가 상호작용 물체를 못 잡는 문제 (0) | 2026.06.26 |
| Custom Depth와 Post Process Material로 인터랙션 대상 외곽선 그리기 (0) | 2026.06.23 |
| 상호작용 시스템 개선: 오버랩 콜리전에서 라인 트레이스 방식으로 전환 (0) | 2026.06.23 |
| 상호작용하면 열리는 서랍장 만들기 (0) | 2026.06.22 |
