언어:
페이지 정보
태그:
수준별:
엔진 버전:
언리얼 엔진

게임플레이에서 시퀀스 발동

언리얼 엔진

시네마틱 시퀀스를 만들었으면, 게임플레이 도중 컷씬의 일부로 호출하여 재생시키고 싶을 것입니다. 예를 들어 플레이어가 방에 걸어들어가면 어떤 오브젝트 카메라 줌을 맞추고 싶을 수 있습니다. 아니면 플레이어가 적을 처치하면 엔딩 시네마틱을 보여주고 싶을 수도 있습니다. 레벨 시퀀스로의 레퍼런스를 구하면 블루프린트 비주얼 스크립팅 또는 C++ 코드를 사용해서 시퀀스더러 재생을 시작하라 할 수 있습니다.

여기서는 샘플 시네마틱을 만들어 플레이어가 트리거 박스에 들어서면 라이트를 켭니다. 시네마틱 재생이 끝나면, 시퀀서에게 레벨의 라이트에 변경사항을 적용시켜 시네마틱 재생이 종료된 이후에도 유지되도록 합니다. 시네마틱 재생 도중 건너뛰어도 라이트는 여전히 켜두도록 할 수도 있습니다.

HeroImage.png

단계

여기서는 블루프린트 삼인칭 템플릿 프로젝트를 사용합니다.

  1. 모드 패널에서 기본 아래 Box Trigger (박스 트리거)를 끌어 레벨에 놓고 크기와 위치 설정을 합니다.

    Trigger01.png

    플레이어가 트리거에 들어서면, 블루프린트를 통해 시네마틱 재생을 시작하라 할 것입니다.

  2. 메인 툴바에서 시네마틱 버튼을 클릭하고 Add Level Sequence (레벨 시퀀스 추가) 후 시네마틱에 이름을 짓습니다.

    Trigger02.png

  3. 모드 패널에서 기본 아래 Point Light (포인트 라이트)를 끌어 레벨에 놓고 그림처럼 위치를 잡습니다.

    Trigger03.png

  4. Point Light 를 선택한 채 디테일 패널에서 Intensity (강도) 값을 0.0 으로 설정하고 Keyframe (키프레임) 버튼을 누릅니다.

    Trigger04.png

    그러면 포인트 라이트가 시퀀서에 추가되고 시퀀스 시작 위치에 그 초기값 키프레임을 설정합니다.

  5. 시퀀서에서, 타임라인을 150 프레임으로 이동한 뒤 라이트 Intensity (강도) 값을 5000 으로 하여 키프레임 설정합니다.

    클릭하면 이미지 원본을 확인합니다.

    포인트 라이트가 꺼진 상태로 시작해서 시퀀스 재생에 따라 밝아질 것입니다.

  6. Add Camera (카메라 추가) 버튼을 클릭한 뒤, 레벨에서 카메라를 움직여 캐릭터 근처에 놓고 키프레임 설정합니다.

    클릭하면 이미지 원본을 확인합니다.

  7. 타임라인을 75 프레임으로 옮기고, 레벨에서 카메라를 캐릭터와 라이트를 내려다보는 위치로 옮기고 키프레임 설정합니다.

    클릭하면 이미지 원본을 확인합니다.

  8. 타임라인을 150 프레임으로 옮기고, 레벨에서 카메라 포커스를 라이트에 잡은 뒤 키프레임 설정합니다.

    클릭하면 이미지 원본을 확인합니다.

    시네마틱에 레벨의 라이트 위치에서 플레이어를 보여주는 카메라 플라이 스루 애니메이션이 생겼습니다.

  9. 레벨의 Trigger Box (트리거 박스)를 선택한 뒤, 메인 툴바에서 블루프린트 버튼을 클릭하고 레벨 블루프린트 열기 를 선택합니다.

    Trigger09.png

  10. 그래프 안에 우클릭하고 Trigger Box 에 대한 Add On Actor Begin Overlap (액터 겹침 시작 시)를 추가합니다.

    Trigger10.png

  11. 레벨로 돌아와 레벨 시퀀스를 선택하고, 레벨 블루프린트 로 돌아와 우클릭한 뒤 레벨 시퀀스로의 레퍼런스를 생성 합니다.

    Trigger11.png

  12. 레벨 시퀀스 레퍼런스를 끌어 놓고 Play (SequencePlayer) 를 선택합니다.

    Trigger12.png

  13. OnActorBeginOverlap 노드를 Play 노드에 연결합니다.

    Trigger13.png

    트리거 박스에 들어서면, Play 노드가 실행되어 레벨 시퀀스가 재생됩니다.

    에디터에서 플레이해 보면 트리거 박스에 들어설 때 시퀀스가 재생되지만, 한 번만 재생되는 것을 볼 수 있습니다. 시퀀스를 다시 재생하려면, Set Playback Position 노드에 Playback Position 을 0 (시퀀스 시작)으로 설정해야 합니다.

  14. 레벨 블루프린트 에서 Sequence Player 노드를 끌어놓고 Set Playback Position 노드를 사용합니다.

    Trigger14.png

  15. Set Playback Position 노드를 OnActorBeginOverlapPlay 노드 사이에 연결합니다.

    Trigger15.png

    그러면 레벨 시퀀스를 시작 위치로 설정한 뒤 재생합니다.

  16. 시퀀서 안에서 Intensity 에 우클릭한 뒤, 프로퍼티 아래 When FinishedKeep State 로 설정합니다.

    Trigger16.png

    Keep State (상태 유지) 옵션을 사용하면 시퀀스가 끝난 후에도 라이트 강도 세팅을 유지시킬 수 있습니다. 시퀀서에서 만든 효과나 세팅이 시퀀스 종료 후에도 유지되도록 하려는 경우에 좋습니다. 예를 들어 시네마틱에서 문을 열었다면 시네마틱이 끝난 후에도 문이 열려 있으면 좋을 것입니다.

  17. 레벨 블루프린트 에서 F 키보드 이벤트를 추가하여 Branch 에 연결하고 조건은 Is Playing 으로 하여 Go to End and Stop 노드에 연결합니다.

    Trigger17.png

    F 키를 눌렀을 때, 레벨 시퀀스가 현재 재생중이면, 자동으로 끝으로 점프한 뒤 재생 중지합니다. Go to End and Stop 노드는 플레이어가 시네마틱을 건너뛰기는 하지만 시퀀서 재생을 계속 한 것과 마찬가지로 변경사항이 유지되도록 하는 데 좋습니다.

    예를 들어, 시네마틱 시퀀서에서 레벨의 라이트를 켭니다. 플레이어가 라이트가 켜지는 컷씬을 건너뛰었어도, 라이트는 계속 켜져 있도록 하고싶을 것입니다. Stop 노드를 사용하여 시네마틱을 중지시키기만 했다면, 시네마틱이 종료되지 않고 종료 시점에 머물기 때문에, 중지 시점에 따라 라이트가 켜져있지도 않거나 완전히 켜지지도 않은 상태일 수가 있습니다.

  18. 메인 에디터로 돌아와, 메인 툴바에서 플레이 버튼을 클릭하여 에디터에서 플레이합니다.

최종 결과

에디터에서 플레이하면, 라이트가 기본으로 켜져있지 않은 것이 보일 것입니다. 트리거 박스에 들어서면, 시네마틱 재생이 시작되어 라이트가 켜지고 시네마틱이 끝나도 켜진 채로 남아있습니다. 트리거 박스에 다시 들어서서 시네마틱을 다시 발동시키면, 시퀀스 재생이 처음부터 다시 시작됩니다. 트리거 박스에 들어서서 F 키를 눌러 시네마틱을 종료시키고도 라이트는 자동으로 켜지게 할 수도 있습니다.

태그