스토리 전달을 위해 캐릭터가 나와 대사 읊으며 연기하는 모습을 연출하기 위한 기능이 컷신

여기에 유저가 직접 개입해서 무언가를 할 수 있는 걸 인터랙티브 컷신이라 한다

 

이번 글에선 특정 트리거 볼륨 내 진입 시, 1회 한정으로 컷신이 실행되고

컷신이 종료되면 다시 플레이를 이어갈 수 있게 구현해본다

 

첫 번째, 위젯 블루프린트 생성 후 UI 구성

1. 컨텐츠 브라우저에 마우스 우클릭 시 호출되는 컨텍스트 메뉴에서 [ 유저 인터페이스 > 위젯 블루프린트 ] 선택

 

2. 필요한 항목들로 UI 구성

 

- 필자는 컷신 인지 및 영화관 감성을 주기 위해 위, 아래가 어두운 UI 배경 머티리얼을 제작했다

- ScalarParameter
- TextureCoordinate

- ComponentMask (G만 선택된 상태가 되도록 수정)
- Constant3Vector

 

두 번째, 트리거 볼륨 액터 BP 생성 및 배치

1. TriggerBox 타입으로 블루프린트 생성

- 다른 타입도 상관 없는데 가장 무난한 건 박스니까~

※ 간단한 예시를 위해 트리거 볼륨을 사용한 것으로 액터 타입으로 해도 무관하다

 

2. 트리거 볼륨에 진입했을 때 실행할 기능에 대한 그래프를 작성한다

- 1회성이기에 IsComplete이 false일 경우에만 실행되도록 하고 실행 직후 true 설정

- 그 다음 인터랙션 모드 실행

 > SetInteractionMode 관련 사항은 「 인터랙션 모드의 5. 인터랙션 모드 」 내용 참고

 

- 그 다음 데이터 에셋에 값을 저장해준다

 > 본 BP에서 나가기 입력이 먹히지 않을 수 있어 PlayerContoller에서 입력 받는 구조로 구현한다

 > PlayerController에서 입력 받은 뒤 동일하게 SetInteractionMode 함수 사용

 > 이때 SetInteractionMode에서 요구하는 데이터를 전달하는 역할이 데이터 에셋

 > 데이터 에셋 관련 사항은 「 데이터 에셋 」 내용 참고

 

- 마지막으로 PlayerController 블루프린트에 인터랙션 종료 그래프를 작성해준다

 

- 캐릭터가 노출되는 형태라면 위치 보정을 위한 기능이 필요하다

 > 인터랙션 모드 관련 함수 라이브러리에 SetCharacterPosition 함수 추가 후 아래와 같이 작성

  >> 만약 Sprint나 Crouch, Aim 등 여러 상태가 있다면 이를 해제하는 예외 처리도 필요

 > 본 함수를 트리거 볼륨 액터 BP에 연결해주면 된다

  >> 함수가 요구하는 Location에는 트리거 볼륨 위치에 캐릭터가 위치하길 원하는 지점의 위치값 대입

  >> 함수가 요구하는 Rotation에는 0, 0, 0 대입

 

 > 모드 종료 후 해제했던 Character Movement를 복구해준다

 

3. 배치해준다

- 생성한 트리거 볼륨 BP를 맵에 원하는 위치에 배치한다

 

마지막, 테스트 진행

볼륨이 배치된 곳으로 진입하면 인터랙티브 컷신 모드가 실행된다

이 상태에서 나가기 키 조작하면 모드 종료

'개발 > Unreal' 카테고리의 다른 글

환경 설정  (0) 2026.04.14
데이터 에셋  (0) 2026.04.13
웅크리기 해제 가능 여부 판단 기능 구현  (0) 2026.04.12
몬스터 AI 구현  (0) 2026.04.10
애니메이션 몽타주  (0) 2026.04.09

+ Recent posts