
오늘은 캐릭터로 레벨, 즉 게임씬에서 상호 작용하는 기능을 추가하는 법을 배웠다.
캐릭터와 오브젝트간 오버랩, 히트, 오브젝트의 무빙 등을 구현하는 방법이다.
- 인터랙션 : 게임에서 캐릭터, 오브젝트간의 상호작용
- 인터랙션의 예
- 직접적 상호작용 : 문열기, 버튼 누르기, 아이템 줍기
- 환경적 상호작용 : 함정 작동, 플랫폼 이동, 스위치 활성화
- 물리적 상호작용 : 오브젝트 밀기, 던지기, 파괴하기
- 이벤트 : 언리얼 엔진에서 인터랙션은 '이벤트'를 통해 발생
- 예시
BOXCollison→ 캐릭터가 Collision 안에 들어오면Overlap감지- 이벤트 발생 →
OnComponentBeginOverlap이벤트 발생- EventGraph →
Timeline및SetActorRotation실행- 결과 → 문이 회전함
- EventGraph의 구성
- Event 노드 (시작점) :
BeginPlay, Tick, Overlap, Hit등- 조건 처리 : "누가 들어왔지?", "타이머 다 됐나?" 등 판단
- 실행 : Timeline 재생, 문 열기, 파티클(이펙트) 재생 등
- 오버랩, 충돌의 차이 이해
- 🚪오버랩(Overlap)
- 겹침을 감지하는 크리거 시스템
- 물리 충돌 없이 통과 가능(투명한 감지 영역 같은 느낌)
- 실제 물리 반응은 없지만, 이벤트는 발생함
- 사용 예 : 문 앞 센서, 체크포인트, 아이템 습득
- 💥충돌
- 물리적 접촉을 감지
- 튕김, 밀림, 파괴 등 물리 기반 반응 가능
- 사용 예 : 벽에 부딪힘, 공 튀기기, 상자 밀기
- 실전 예시
- 오버랩 : 캐릭터가 특정 구역에 들어서자 → 자동문 열림
- 충돌 : 캐릭터가 상자를 부딪치자 → 상자가 밀려남
무빙 플랫폼을 여러개 만드는데 작동 시간이 모두 플레이 후 일정하게 시작되어 같이 동기화 되어 움직이는 것 처럼 보였다. 튜더님에게 방법을 묻고 서로 다르게 시간을 주는 법을 로직에 추가하여 무빙 플랫폼이 각각 다르게 움직일 수 있도록 하였다.
![]()
- Delay 로직을 추가하였다.
캐릭터와 상호작용을 할 수 있는 오브젝트가 생기기 레벨이 좀 더 재밌는 공간이 되어 가고 있다. 게임의 한 스테이지 정도 만들 수 있게 되었다.
C++란 무엇인가?, C++ 코딩 배우기