
프로젝트 전 언리얼 써본적 없으니 연습부터...!
/Interfaces 에Input Action IA_Interact 생성 후 벨류 타입을 부울로 설정


IMC_Default 의 맵핑에 IA_Interact 를 추가해주고 E키를 등록

블루프린트 인터페이스 BPI_Interact 생성


실행후 E를 누르면 디버깅용 라인 트레이스가 나옴

일단 세트장을 만들었다.

To do: 책장에 있는 파란 책을 인터렉션 하면 문이 없어짐
TMI: 문 구현이 ㅠ어려운거 같아 일단 프롭이 없어지는것으로 하고 나중에 문 구현하기로…
결계로 쓸 블루프린트 클래스 (엑터 상속) 생성

컴포넌트에 스태틱 매쉬를 만들고 사라지게할 프롭을 할당

이벤트 그래프에서 커스텀 이벤트를 만들자



클래스 세팅 → Implemented Interfaces → BPI_Interact 추가

변수 하나 만들고 아래와 같이 참조변수(BP_Barrier)로

저 설정이 뭔가?
1. Instance Editable
- 설명: 에디터의 Details 패널에서 해당 변수를 노출해서, 씬에 배치된 인스턴스마다 값을 다르게 설정할 수 있게 해 줍니다.
- 용도:
- 레벨 디자이너가 월드에 배치한 액터마다 색상, 크기, 속도 등의 값을 조정해야 할 때
- 같은 블루프린트 클래스로 만든 여러 오브젝트가 약간씩 다른 초기값을 가져야 할 때
- 작동 위치:
- 블루프린트 에디터에서 변수 선택
- Details 패널 → Instance Editable 체크
- 레벨 뷰포트나 World Outliner 에서 액터 선택 시, Details 패널에 변수 슬롯이 생겨 값을 변경할 수 있음
2. Expose On Spawn
- 설명: 액터를 Spawn Actor From Class 노드로 생성할 때, 해당 변수를 스폰 핀으로 노출시켜 스폰 시점에 값을 지정하게 해 줍니다.
- 용도:
- 런타임에 액터를 동적으로 생성하면서, 생성 시점에만 결정되는 초기 파라미터(예: 목표 좌표, 주인 정보)를 넘겨주고 싶을 때
- 생성 후에 따로 세터 함수를 호출하지 않고, 스폰 노드 하나로 초기화와 생성을 동시에 처리하려 할 때
- 작동 위치:
블루프린트 에디터에서 변수 선택
Details 패널 → Expose On Spawn 체크
다른 블루프린트나 레벨 블루프린트에서 Spawn Actor From Class 노드를 배치하면,
해당 변수 이름으로 핀이 자동으로 추가되어 값을 연결할 수 있음
Event Interact 에 IsValid로 타깃 베리어를 검사해서 리무브 베리어를 호출

다시 BP_FirstPersonCharacter 로

인터페이스에 BPI Interact를 선택
ㅋㅋㅋㅋㅋㅋ 계속 작동을 안해서 고쳐보려고 쌩 쑈를했는데
책장안에 스위치로 넣을 책을 넣었는데 책장 충돌 범위가 책을 덮어버려서 였음….
이미 작동하는건데 고치려고 바보짓 30분함 ㅋㅋㅋㅋㅋ

근데 여기엔 문제가있다. 콜리전만 언에이블 해서 문 모양은 계속 그대로 남아있다.

근데 그냥 뿅하고 사라진다.

너무 짜친다…
페이드 아웃을 넣어보자
메터리얼을 투명 머터리얼로 수정하자

BP_Barrier 에 변수 추가
DynMat이벤트 그래프의 BeginPlay에 Dynamic Material 구현

Alpha

RemoveBarrier 호출 시 바로 충돌이 꺼지고, Timeline을 따라 Opacity가 1→0으로 점점 줄어들며 메시가 사라짐


play, play from start 는 뭐가 다르지?Timeline 컴포넌트에는 재생을 제어하는 두 가지 주요 노드가 있는데, 그 차이는 “현재 재생 위치(position)를 초기화하느냐 안 하느냐” 입니다:
play로 하면 이미 결계가 사라졌을때 또 버튼을 눌러도 반복은 안됨
play from start 는 반복시 없어진 결계가 또 나타나서 다시 사라짐