게임에서 컷씬이란? 수정

컷씬 에디터 가이드

소개

다음 가이드는 CryEngine 2에서 기본 영화 장면을 설정하는 단계를 안내합니다.

새로운 컷신 생성

시작하기 전에

  1. 만들다 새 레이어레이어 패널에서 새 레이어의 이름을 "시네마틱"으로 지정합니다.
  2. 새 장면을 만들려면 먼저 보기->보기 패널 열기->트랙 보기를 통해 TrackView 패널을 엽니다.

TrackView를 연 후 아이콘을 클릭하십시오. 시퀀스 추가.

컷씬의 이름을 "example"로 지정하고 확인을 클릭합니다.

새 장면을 만들었으면 이 특정 장면에 대한 속성을 설정할 차례입니다. 아이콘을 클릭하십시오. 시퀀스 편집.

나타나는 창에서 시퀀스 속성, 다음 확인란을 선택합니다.

확인하다 HUD 비활성화, 이렇게 하면 표준 플레이어 인터페이스가 비활성화됩니다. 플레이어 비활성화장면을 재생할 때 플레이어를 숨깁니다. 16:9 와이드스크린 장면 효과를 포함하고, 건너뛸 수 없음플레이어가 장면을 건너뛰기 위해 스페이스바를 누르면 계속 재생되고, 종료 시간조정되고 장면의 지속 시간은 15초가 되었습니다.

장면에 추가할 첫 번째 요소는 장면 노드. 카메라를 전환할 수 있습니다.

그러나 장면에 추가되지 않은 카메라는 선택할 수 없습니다. 다음으로 카메라를 추가해야 합니다. 롤업 바선택하다 카메라그리고 그것을 당신의 수준에 놓으십시오.

본질 카메라샌드박스 2 편집기에서

다음으로 이 카메라를 사용할 장면을 선택하고 프레임 0의 타임라인을 두 번 클릭하여 키를 추가하고 키가 추가되면 키를 마우스 오른쪽 버튼으로 클릭하여 "키 속성"을 열고 드롭다운을 클릭하고 선택합니다. "Camera1"이 추가된 것만;

컷신에 트랙을 추가할 카메라를 선택한 다음 아이콘을 클릭합니다. 선택한 노드 추가트랙뷰에서.

카메라는 아래와 같이 TrackView에 나타나야 합니다.

이 예에서는 간단한 걷기 애니메이션이 있는 사람을 추가합니다.

컷 장면의 캐릭터의 경우 다음을 사용하십시오. 애님오브젝트, 성능상의 이유로 AI 엔터티 대신 사용됩니다. 애님오브젝트, AI 시스템은 컷신 시스템과 충돌하지 않습니다.

선택하다 애님오브젝트 V 롤업 바마우스 왼쪽 버튼을 누른 상태에서 퍼스펙티브 창으로 드래그합니다.

다음을 선택하여 표준 직사각형 개체를 캐릭터 모델로 바꿉니다. 애님오브젝트, 그리고 섹션에서 엔터티 속성(V 롤업 바), 필드에서 폴더 아이콘을 클릭합니다. 모델.

파일 찾기 개체/캐릭터/인간/우리/나노수트.

컷신은 아래 스크린샷과 같습니다.

다음으로 캐릭터의 애니메이션을 선택합니다. 프레임 0을 두 번 클릭하여 애니메이션 트랙에 키를 추가한 다음 키를 마우스 오른쪽 버튼으로 클릭하면 창이 나타납니다. 주요 속성, 드롭다운 목록을 클릭하고 아래로 스크롤하여 애니메이션 "relaxed_walk_nw_forward_slow_01"을 선택하고 확인란도 선택합니다. 루프 애니메이션애니메이션을 영원히 반복하려면 확인란을 선택하십시오. 루트가 움직이지 않음, 애니메이션이 움직이지 않고 재생 후에 사라집니다.

컷씬의 키프레임

다음 단계는 캐릭터가 앞으로 걸을 수 있도록 키프레임을 만드는 것입니다. 이제 캐릭터는 한 곳에서 걷고 있습니다.

먼저 캐릭터가 선택되었는지 확인하고 컷신 슬라이더를 위치 0으로 설정한 다음 버튼을 클릭합니다. 기록컷신 편집기 창에서

퍼스펙티브 창에서 캐릭터를 프레임 0의 원하는 홈 위치로 이동합니다. 이 동작은 위치를 기록하고 캐릭터의 위치 키를 추가한 다음 컷신 시간 슬라이더를 마지막 프레임으로 15초 이동합니다. 키프레임은 프레임 0에 나타나며 현재 프레임 15에서는 녹화 버튼을 놓을 때까지 원하는 끝 위치로 캐릭터를 이동할 수 있습니다. 지금 시간 슬라이더를 이동하면 캐릭터가 두 지점 사이를 이동하게 되며 보다 자연스러운 보행 애니메이션을 위해 끝 위치를 조정합니다.

카메라 애니메이션

이제 캐릭터가 걷고 있으므로 카메라가 그를 따라 이동하기를 원합니다.

카메라에 보이는 것을 보려면 "Perspective" 레이블을 마우스 오른쪽 버튼으로 클릭하여 뷰포트 구성 드롭다운 메뉴를 불러온 다음 "Camera->Camera1"을 선택합니다. 이제 "Camera1"을 통해 장면을 보고 있습니다.

처음에는 카메라가 잠겨 있고 표준 투시 창처럼 이동할 수 없습니다. 카메라 잠금을 해제하려면 선택을 취소하십시오. 카메라 움직임을 잠급니다.

이는 보안상의 이유로 사용자가 실수로 카메라를 원근감 있는 창이라고 생각하여 카메라를 이동하지 않도록 하고 컷신 창의 버튼도 비활성화해야 합니다.

이제 카메라를 애니메이션할 준비가 되었습니다. 이를 위해 시간 슬라이더를 프레임 0으로 설정하고 카메라가 선택되어 있고 컷신 편집기에서 버튼이 눌려 있는지 확인하고 원하는 대로 뷰포트를 조정합니다.

그런 다음 컷신 편집기에서 시간 슬라이더를 5초만큼 이동하고 카메라를 원하는 위치에 놓고 10초와 15초에서 동일한 단계를 반복합니다.

우발적인 카메라 애니메이션을 방지하려면 "녹화" 버튼을 다시 클릭합니다. 이제 컷신 편집기에서 시간 슬라이더를 다시 슬라이드하면 새 경로를 따라 카메라 애니메이션이 표시되고 캐릭터가 걷는 것을 볼 수 있습니다.

이제 원근감 창을 반환해야 합니다. 이렇게 하려면 "Camera1"이라는 글자를 마우스 오른쪽 버튼으로 클릭하고 기본 카메라.

카메라와 캐릭터 경로 스플라인의 이미지와 함께 장면의 개요를 볼 것입니다.

장면 재생

"Ctrl+G"를 눌러 게임에 들어가면 먼저 흐름 그래프를 사용하여 논리를 만들어야 하기 때문에 장면이 재생되지 않습니다.

먼저 플로우 그래프를 포함할 엔티티를 추가해야 합니다. 플로우 그래프는 캐릭터에 포함될 수 있습니다. 애님오브젝트그러나 구체적인 엔터티를 사용하는 것이 더 안전합니다. 실수로 플로우 그래프를 제거하기가 매우 어렵기 때문입니다. 그래서 우리는 다음을 사용할 것입니다. AreaTrigger.

선택하다 AreaTrigger뷰포트로 드래그한 다음 이름을 "cine_example_FG"로 바꿉니다. 다음으로 플로우 그래프를 생성합니다. 플로우 그래프 섹션에서 "만들기" 버튼을 클릭합니다.

"흐름 그래프에 대한 그룹 이름 입력"이라는 제목의 창이 나타나고 그룹 이름을 "시네마틱"으로 지정합니다. 그 안에 시네마틱 컷신과 관련된 모든 흐름 그래프가 있으면 매우 유용합니다.

선택하여 AreaTrigger, 버튼을 클릭 열려있는이 장면의 흐름 그래프 작업을 시작합니다.

편집기가 열립니다 흐름 그래프, 새로 생성된 흐름 그래프를 선택하여 작업을 시작해야 합니다.

V 이 예, 우리는 단순히 플레이어가 게임에 들어가자마자 장면을 실행할 것입니다. 이를 위해 노드를 추가할 것입니다. 기타->시작.

회색 상자를 마우스 오른쪽 버튼으로 클릭하여 새 칼을 추가하고 노드를 선택합니다. 시작, 플레이어가 게임을 시작하자마자 작동합니다.

두 노드가 모두 추가되면 로직을 설정하기 위해 연결합니다. 파란색 화살표가 있는 포트를 클릭한 상태로 녹색 입력 포트로 드래그하면 됩니다. 시작 트리거.

다음으로 재생할 컷신을 선택해야 합니다. 노드에서 마우스 왼쪽 버튼을 두 번 클릭합니다. 애니메이션:PlaySequence, 설정에서 입력오른쪽에서 줄임표를 클릭하여 엽니다. 시퀀스 선택, 생성한 컷신을 선택하고 확인 버튼을 클릭합니다.

플로우 그래프는 아래와 같을 것입니다.

테스트

"Ctrl + G"를 눌러 게임에 들어가면 장면이 자동으로 시작됩니다.

장면 종료 설정

이 장면에서는 장면의 캐릭터가 플레이어라는 환상을 만들 것이므로 장면의 끝에서 캐릭터를 숨기고 싶은 경우 컷신 편집기에서 그렇게 할 수 있습니다. 컷신 편집기를 열고 엔티티를 선택하십시오. 애님오브젝트, 트랙을 두 번 클릭 이벤트 15초에 키프레임을 추가한 다음 키프레임을 마우스 오른쪽 버튼으로 클릭하면 창이 팝업됩니다. 주요 속성, 드롭다운 목록에서 화재 사건선택하다 숨다.

이 동작은 장면이 마지막 프레임에 도달했을 때 캐릭터를 숨기지만 컷신 편집기에서 장면을 스크롤하면 캐릭터가 전체 장면에서 사라지므로 이벤트를 추가해야 합니다. 숨기기 해제프레임 0으로 트랙을 다시 두 번 클릭 이벤트키프레임을 추가하려면 키프레임을 마우스 오른쪽 버튼으로 클릭하면 창이 나타납니다. 주요 속성, 드롭다운 목록에서 화재 사건선택하다 숨기기 해제.

이제 캐릭터가 정상적으로 나타났다가 사라집니다.

완전한 환상을 위해 우리는 플레이어가 "액터"가 중단한 지점에서 시작/계속하도록 해야 합니다. 현재 플레이어는 게임으로 전환하는 위치에서 시작하므로 갑작스러운 전환의 환상을 줄 것입니다.

먼저 캐릭터의 최종 위치를 알아야 하고 컷신 편집기에서 타임라인을 15초 동안 스크롤한 다음 이 초카를 연결해야 합니다.

이 경우 사용하는 것이 유용합니다. 태그포인트재생할 때 보이지 않는 것을 선택하십시오. 태그포인트캐릭터 근처에 놓고 이름을 바꿉니다. 태그포인트"cine_character_endpoint"에서.

캐릭터에 적절한 정렬을 얻으려면 도구를 사용하십시오. 선택 정렬, 선택하다 태그포인트그런 다음 아이콘을 클릭하십시오. 선택 정렬, 그런 다음 캐릭터를 클릭하면 이 동작이 이동합니다. 태그포인트올바른 위치로.

다음으로 플레이어가 이 지점에서 시작하도록 플로우 그래프에 로직을 추가해 보겠습니다. 흐름 그래프플로우 그래프를 선택한 다음 창의 회색 부분을 마우스 오른쪽 버튼으로 클릭하고 노드를 추가합니다. 엔티티:BeamEntity.

플레이어가 포인트로 이동하기를 원하므로 노드를 추가하십시오. 게임: 로컬 플레이어

마지막으로 위치를 연결할 노드를 추가해야 합니다. 태그포인트플레이어와 함께 고개를 끄덕입니다. 엔티티:EntityPos, 추가합니다.

아래와 같이 플로우 그래프의 노드를 연결하여 할당합니다. 태그포인트노드당 엔티티:EntityPos, 선택하다 태그포인트뷰포트에서 노드의 제목을 클릭합니다. 엔티티:EntityPos그리고 선택 선택한 엔티티 할당.

이제 장면이 완료되었으므로 플레이어는 다음 위치에서 시작합니다. 태그포인트.

전체 화면 효과 추가

이 장면의 경우 시작 시 어둠 속으로 페이드 아웃을 추가한 다음 마지막에 어둠 속으로 페이드 아웃을 추가하고 플레이어가 제어할 때 마지막으로 어둠 속에서 페이드 아웃을 추가합니다.

열려있는 흐름 그래프작업할 흐름 그래프를 선택한 다음 마우스 오른쪽 버튼을 클릭하고 노드를 추가합니다. CrysisFX->ScreenFader.

새로 생성된 노드 선택 CrysisFX->ScreenFader값을 설정하고 4 매개변수에서 페이드인타임그리고 페이드아웃 시간.

그런 다음 노드를 복제합니다. CrysisFX->ScreenFader그것을 마우스 오른쪽 버튼으로 클릭하고 선택하여 복사 반죽, 이 작업을 여러 번 반복하여 총 3개의 노드가 되도록 합니다. 스크린페이더.

그러면 추가하겠습니다. AreaTrigger흐름 그래프를 통해 컷신에서 페이드 논리를 트리거합니다.

추가하다 AreaTrigger뷰포트에서 "cine_FadeOut_DT"로 이름을 바꿉니다. DT- 그것 더미 트리거 (더미 방아쇠 ) 컷신에서 플로우 그래프로 이벤트를 보내는 데 사용됩니다.

트랙에서 이벤트"cine_FadeOut_DT"의 경우 11초에 키프레임을 추가한 다음 키프레임을 마우스 오른쪽 버튼으로 클릭하면 창이 나타납니다. 주요 속성, 드롭다운 목록에서 화재 사건선택하다 떠나다.

그런 다음 엽니다. 흐름 그래프, 창의 회색 부분을 마우스 오른쪽 버튼으로 클릭하고 선택한 엔티티 추가. 이 작업은 다음을 추가합니다. AreaTrigger플로우 그래프로.

플로우 그래프에 필요한 모든 노드가 추가되면 모든 로직을 하나로 묶을 차례이며, 아래 이미지와 같이 플로우 그래프를 설정합니다.

노드의 출력을 클릭하고 해당 노드의 입력으로 끌어서 연결하면 됩니다.

이러한 동일한 컷씬을 만들기 위한 옵션을 고려하십시오.

비밀의 방.

그래서 약속대로 컷신에 대한 글을 쓰겠습니다. 명확하지 않은 것이 있으면 의견에 질문하십시오. 패치 없이 https://yadi.sk/d/_Xp_Ua_33Hzy2s 패치를 다운로드하여 설치해야 한다는 사실부터 시작하겠습니다. 우선 머릿속에 어떤 종류의 비디오가 떠오를 필요가 있습니다. 제 예를 들어 설명하겠습니다. 장면은 다음과 같습니다. 해리와 론이 이해할 수 없는 방에 접근하고 그곳에 들어가고 론이 "그게 뭐였죠?"라고 묻습니다. 그리고 갑자기 큰 게 두 마리가 나옵니다. 소년들은 "노우우우우우우우우우우우오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오오") 그래도 그들은 안전한 방에 들어가고 Ron은 "어, 없어졌어."라고 말합니다.

이제 지도에 필요한 모든 것을 추가해 보겠습니다. 두 마리의 게, Ron과 Harry가 지도를 원하는 대로 정렬합니다. 즉, 방을 만들고 시작합니다.

1. 일반적으로 컷신에서 먼저 FOR EACH HERO, 이름을 지정해야 합니다. 이렇게 하려면 harry 속성을 열고 컷 장면 탭을 선택하고 거기에 "Harry"를 씁니다. 그런 다음 Ron의 속성을 열고 Cut Scene을 다시 열고 "Ron"을 씁니다. 우리는 게에 대해서도 동일한 작업을 수행하고 "Crab1" 및 "Crab2"라고 씁니다. 실제로는 어떤 이름도 지정할 수 있습니다.

2. 게임 폴더로 이동하여 시스템을 연 다음 CutScenes를 열고 파일을 복사하고 그 안의 모든 것을 지우고 파일 이름을 영어로 설정합니다.

3. 여기에서 가장 어려운 것이 시작됩니다. 따라서 ANY CUT SCENE은 "" 문자열로 시작한다는 것을 기억하십시오(대괄호는 필수). 나는 이 문구가 "장면"으로 번역되었다고 생각합니다. 이 문구를 작성한 후 Enter 키를 누르고 다른 행으로 이동합니다. 모든 후속 줄과 구문은 "line"이라는 단어로 시작합니다(예: line_0, line_1, line_2). 일반적으로 이제 이해하게 될 것입니다. 그래서 우리는 다음과 같이 씁니다.

Line_0=해리 캡처 line_1=BaseCam 캡처 line_2=론 캡처 line_3=게 캡처 1 line_4=게 캡처 2

무슨 뜻인가요 포착? 포착- 이것은 대상의 캡처입니다. 즉, 우리와 함께 움직이는 모든 캐릭터를 캡처해야 합니다( 주목: BaseCam 캡처는 항상 작성되며, 이 또한 기억해야 합니다. 즉, 기본 카메라(BaseCam)가 컷 장면에서 작동할 수 있도록 항상 캡처되어야 합니다.

4. 다시 편집기로 돌아가서 개체를 찾아야 합니다. CutCameraPos(내비게이션 포인트, UWNavigation 포인트). 카메라를 맨 위에 놓고 속성을 열고 컷 장면 탭을 열고 카메라 이름을 씁니다. 나는 "Cam1"이라는 이름을 지었다. CutMark 개체를 추가하고 Ron과 Harry 사이에 배치하고 이름을 "E2"로 지정하겠습니다. 그런 다음 텍스트 문서를 다시 열고 line_5=BaseCam Target FlyTo E2라고 작성합니다. 즉, 기본 카메라가 E2라는 이름으로 CutMark로 향하게 됩니다(Target은 목표로 하는 대상임). 다음 줄은 line_6=BaseCam 플라이투 캠1- 이 라인은 어떤 아이템이 무슨 일이 일어나고 있는지를 나타냅니다.

5. 다음으로 Harry와 Ron이 동시에 방에 접근해야 합니다. 이렇게 하려면 두 개의 CutMark를 추가하고 방 근처에 배치한 다음 각각의 이름을 지정합니다. 예를 들어 "CutMarkHarry"는 해리가 도달할 곳이고 "CutMarkRon"은 Ron이 도달할 곳입니다. 다시 텍스트 편집기로 돌아가서 다음과 같이 작성합니다.

Line_7=Harry RunTo CutMarkHarry * line_8=Ron 자르기 MarkRon까지 실행

도보로- 뭐라도 가, 글쎄, RunTo - 실행. 즉, Harry는 그의 CutMark로 이동하고 Ron은 그의 CutMark로 이동한다는 의미입니다. 별표는 후속 작업이 작성된 작업과 동시에 실행됨을 의미합니다. 즉, Harry와 Ron은 동시에 실행됩니다.

6. 이제 두 번째 카메라를 첫 번째 카메라의 오른쪽에 배치하고 방 입구를 가리키고 다시 이름(Cam2)을 표시합니다. 우리는 또한 2개를 더 추가할 것입니다 컷 표시방에서 소년들은 거기에 가서 이름의 이름(CutMarkHarry1 및 CutMarkRon1)을 표시할 것입니다. 넣어보자 컷 표시, 두 번째 카메라가 그곳을 볼 것입니다(E3은 카메라 이름). 우리는 텍스트 에디터쓰기:

Line_5=BaseCam 대상 FlyTo E3 line_6=BaseCam Cam2 FlyTo Cam2

이것은 기본 카메라가 이제 우리가 설치한 두 번째 카메라이며 CutMark(E3)를 보고 있음을 의미합니다. 다음으로 작성합니다.

Line_11=해리 WalkTo CutMarkHarry1 * line_12=Ron WalkTo CutMarkRon1

여기에서 모든 것이 명확하다고 생각합니다.

Line_13=론이 해리에게로 돌아가고 * line_14=해리가 론에게로 돌아가다

로 전환- 무언가 또는 누군가에게 돌리십시오.

7. 복제본이 따라옵니다. Ron은 "그게 뭐였지?"라고 말해야 합니다. 소리를 들으려면 https://yadi.sk/d/hlyZDt4gvVVrG/HP2/UPDATES 패치를 다운로드해야 하고 Ron의 모든 라인은 https://yadi.sk/d/YeXxT8N43LPrAi에서 다운로드할 수 있습니다. PC_Ron_DuelSnake_06 - 그게 뭐였죠? 따라서 구문은 다음과 같이 작성됩니다.

Line_15=론 토크 PC_Ron_DuelSnake_06

대화를 위해 다음을 사용할 수 있습니다. 말하다또는 말하다, 이것은 동일하다

8. 이제 애니메이션입니다. 해리는 아무것도 이해하지 못하는 애니메이션을 talk_dontKnow.

그래서 우리는 다음과 같이 씁니다.

Line_16=해리 애니메이트 talk_dontKnow

해리 애니메이트- 이것은 해리가 애니메이션을 보여주고 있다는 것을 의미합니다. 모든 애니메이션은 https://yadi.sk/d/hlyZDt4gvVVrG/HP2/UPDATES에서 다운로드할 수 있습니다.

9. 또한 Ron이 "그게 뭐였지?"라고 묻기 전에 카메라는 Ron을 가까이서 보여주었습니다. 이를 위해 좌표가 사용됩니다.

Line_15=BaseCam FlyTo Ron z=27 x=40 y=10 line_16=BaseCam Target FlyTo Ron z=27 x=10

해리도 마찬가지다.

10. 그런 다음 우리는 게를 가져야하고 그 전에 짧은 시간이 필요하기 전에 Sleep 1 명령을 사용합니다. 즉, 1 초 동안 아무 일도 일어나지 않을 것이므로 1 대신 2 또는 3을 쓸 수 있습니다. 11. 다른 카메라 만들기 Cam3 및 CutMark E4:

Line_21=BaseCam 대상 FlyTo E4 line_22=BaseCam FlyTo Cam3

그런 다음 우리는 게가 나와서 소년들에게 몸을 돌리고 분노를 풀어야 합니다. 우리는 그들이 걸을 고양이 표시를 만들고 이름을 지정해야 합니다. CutMarkCrab1 및 CutMarkCrab2:

Line_23=게1 도보 이동 CutMarkCrab1 * line_24=게2 도보 이동 CutMarkCrab2 line_25=게1 턴투 론 * line_26=게2 턴투 해리 line_27=게1 애니메이트 포효 * line_28=게2 포효 애니메이트.

일반적으로 너무 길게 설명하려면 끝까지. 모든 주요 명령을 작성했습니다.

주목!!!그게 다가 아니다. 제목을 주었을 때 텍스트 문서, ENGLISH로 작성되어 있으므로 지도에 개체를 놓아야 합니다. 컷씬, 속성을 열고 탭을 선택하십시오. 컷씬 FileName 줄에 텍스트 문서에 지정한 이름을 영어로 지정합니다. 클릭하는 것을 잊지 마세요. 모두 빌드그리고 저장합니다.

단계를 완료한 후 다음을 작성해야 합니다.

Line_33=해리 출시 line_34=론 출시 line_35=BaseCam 출시 line_36=크랩1 출시 line_37=크랩2 출시

릴리스는 릴리스를 의미합니다. 즉, 캡처가 캡처인 경우 릴리스는 그 반대입니다. 모든 것이 명확하기를 바랍니다. 모두에게 행운을 빕니다) 뭔가가 명확하지 않으면 질문하십시오.

Unreal Engine 4 편집기에는 시네마틱 및 일반 컷신을 만들기 위한 여러 도구가 포함되어 있습니다. 이 도구를 사용하면 오브젝트, 카메라, 파티클 및 캐릭터의 움직임을 설정하고, 후처리를 설정하고, 블루프린트에서 실행될 이벤트를 할당하여 장면에서 추가 작업을 생성할 수 있습니다.

이 모든 도구를 사용하면 고품질 컷신을 만들 수 있을 뿐만 아니라 본격적인 비디오, 광고, 만화 또는 단편 영화를 녹화할 수도 있습니다.

도구

시퀀서 편집기를 사용하면 사용자가 다음과 유사한 다중 추적 편집기를 통해 게임 내 컷신을 만들 수 있습니다. 주간 흥행. 생성하여 레벨 시퀀스그리고 추가 트랙, 사용자는 장면의 내용을 결정하는 각 트랙의 모양을 정의할 수 있습니다. 트랙에는 애니메이션(캐릭터 애니메이션용), 변환(카메라와 같은 장면에서 개체 이동), 오디오(음악 추가용)가 포함될 수 있습니다. 또는 음향 효과) 및 기타 유형의 트랙 .

레벨 시퀀스 생성

레벨 시퀀스는 시네마틱 장면을 위한 컨테이너이며 시퀀서 편집기에서 작동하려면 생성해야 합니다. 당신은 만들 수 있습니다 레벨 시퀀스탭의 도구 모음에서 적절한 옵션을 선택하여 레벨에 직접 배치합니다. 영화 예술, 예가 아래 그림에 나와 있습니다.

이렇게 하면 레벨에 추가되며, 그 후에 패널에서 추가 조정을 위해 선택할 수 있습니다. 세부, 처럼 마티네 액터. 패널에서 세부(아래), 위치를 결정할 수 있습니다 레벨 시퀀스레벨 시작, 시퀀스의 재생 속도, 시퀀스가 ​​반복되어야 하는 위치 등에 자동으로 재생됩니다.

레벨 시퀀스~와 다르다 주간 흥행자체 포함된 자산이며 다른 시퀀스 내부에 시퀀스를 배치할 수 있습니다. 예를 들어 애니메이션 캐릭터, 카메라 등이 포함된 시퀀스를 생성할 수 있으며 동시에 다른 더 큰 시퀀스의 일부입니다.

생성하는 또 다른 방법 레벨 시퀀스콘텐츠 브라우저에서 버튼을 클릭하는 것입니다 새로운 걸 더하다그리고 선택 레벨 시퀀스장에서 생기. 이렇게 하면 시퀀스가 ​​생성되지만 레벨에 배치되지는 않습니다.

시퀀스에 트랙 추가

언제 레벨 시퀀스생성되고 시퀀스 편집기가 열리면 시네마틱 제작을 시작할 수 있습니다.

위에는 새로 생성된 빈 시퀀스가 ​​있습니다.

우선, 버튼을 클릭한 후 드롭다운 메뉴에서 찾을 수 있는 트랙 유형을 추가해야 합니다. 추가하다.

드롭다운 메뉴에서 여러 유형의 트랙을 선택하고 시퀀스에 ector를 추가할 수 있습니다( 액터에서 시퀀서로). 옵션 액터에서 시퀀서로레벨에서 선택한 Hector를 추가할 수 있습니다.

일반적으로 시퀀스에 애니메이션 및 이동하는 캐릭터, 동물, 생물 또는 이와 유사한 것이 있는 경우 시퀀서에 추가해야 하는 스켈레톤 메시가 있어야 합니다.예를 들어 아래에는 레벨에 배치한 Bear Skeleton Mesh. 선택되면 버튼을 클릭할 수 있습니다. 추가하다시퀀서에서 선택하고 액터에서 시퀀서로, 시퀀스에 추가하고 시퀀서 편집기를 통해 제어할 수 있는 기능을 제공합니다.

생성된 트랙의 유형에 따라 하위 트랙이 추가될 수 있으며 이후에는 새 하위 트랙을 추가하지 못할 수 있습니다.

아래에서 애니메이션의 하위 트랙을 선택하고 재생을 위해 뼈대 곰 메시의 애니메이션을 적용했습니다.

포제서블 대 스포너블

시퀀서는 " 소지품", 이것은 액터가 레벨에 존재하고 시퀀서를 통해 변경된 사항을 적용하기 위해 시퀀서가 그것을 소유한다는 것을 의미합니다.

위의 곰 예제와 같이 레벨에 스켈레톤 메시를 배치하고 시퀀서에 추가한 다음 시퀀서 내부에서 스켈레톤 메시에 대한 애니메이션 트랙을 추가하고 다른 애니메이션을 적용하여 장면에서 재생할 수 있습니다. 이제 우리는 스켈레톤 메시를 "소유"하고 시퀀서를 통해 지시한 대로 수행하기 위해 존재합니다. 시퀀서는 " 생성 가능", 이것은 우리가 소유한 개체가 존재하지 않으며 시퀀서가 필요할 때 개체를 생성하고 수명 주기를 결정한다는 것을 의미합니다.

따라서 "를 사용하는 것이 유익한 경우 산란 가능" 객체? 시퀀서는 개체를 소유하고 생성하기 때문에 정의된 수준에 묶여 있지 않습니다. " 산란 가능" 모든 레벨에서 사용할 수 있습니다. 장면을 만들고 사용할 수 있습니다 " 산란 가능» 다시 만들지 않고 다른 장면에서 반복적으로 개체.

완전한 이해를 위해 스포너블 생성하기를 읽어보세요.

장면 키프레임 만들기

외부 애니메이션 도구에 익숙하다면 키프레임을 사용하여 콘텐츠를 제어하는 ​​개념에 익숙할 것입니다. 간단히 말해서, 익숙하지 않은 경우 시퀀서를 사용하여 키를 추가하여 콘텐츠를 조작할 수 있습니다( 키프레이밍) 타임라인을 따라 필요한 지점의 지정된 속성에서. 타임라인에서 이러한 키에 도달하면 각 키프레임에 대해 지정한 속성이 업데이트되어 변경된 값을 반영합니다.

아래 샘플 장면은 액터의 스켈레톤 메시에 변형 키프레임을 추가하여 움직임을 추가하는 것을 보여줍니다.

트랙을 선택하고 입력하다또는 각 트랙에 대한 키프레임을 추가하기 위한 버튼을 클릭합니다.

패널의 일부 설정 세부각 설정에 대해 키프레임 추가 버튼을 클릭하여 액터를 직접 키프레임할 수 있습니다.

위에 키프레임 버튼이 표시됩니다. 현재 초점 거리그리고 구멍설정 시네 카메라 배우.

시퀀서는 녹색(시작)과 빨간색(종료) 마커 사이의 범위를 기반으로 장면을 재생합니다.

위의 내용에는 프레임 600에서 끝나는 2개의 샷이 포함되어 있지만 시퀀스가 ​​1000프레임으로 확장되어 빈 공간이 생깁니다.

시작 및 끝 마커를 끌어서 영역을 콘텐츠로 채우거나 옵션을 사용하여 콘텐츠가 포함된 영역을 지정할 수 있습니다. 시퀀스 설정 드롭다운 메뉴에서 이 옵션을 찾아 활성화할 수 있습니다. 섹션 경계에서 재생 범위 유지.

특수 뷰포트

시퀀서를 사용하면 특수 뷰포트를 사용하여 편집 프로세스를 더 쉽게 만들 수 있습니다.

그만큼 시네마틱 뷰포트장면이 어떻게 더 좋아 보일지 볼 수 있습니다. 선택하려면 버튼을 클릭하십시오. 뷰포트.

영화배우

패널에서 모드장에서 시네마틱당신은 3을 볼 것입니다 시네마틱시네마틱을 만드는 데 사용할 수 있는 ector.

그것들 중 하나를 스테이지로 드래그하여 시퀀서에 추가하거나 시퀀서로 드래그할 수 있습니다. 산란 가능.

카메라 장비 크레인

카메라 리그 크레인 배우표준 영화 제작에 사용되는 움직임을 시뮬레이션하는 데 사용할 수 있습니다.

ector에 카메라를 추가할 수 있습니다. 카메라 장비 크레인그런 다음 패널에서 크레인의 움직임을 조작하십시오. 세부그리고 가치 크레인 컨트롤. 이 값은 크레인의 회전, 편요각 및 암 길이에 영향을 미칩니다. 이 값은 시퀀서에 의해 키프레임될 수 있으므로 시네마틱 중에 조정할 수 있습니다.

카메라 리그 레일

카메라 리그 레일 액터이동 경로를 생성하기 위해 카메라를 부착할 수 있는 스플라인 기반 도구입니다.

스플라인의 각 지점을 선택하고 접선을 변경하여 카메라가 따라갈 경로를 생성할 수 있습니다 크레인에 부착된 카메라는 크레인과 독립적으로 회전할 수 있으며 패널에서 카메라 회전을 설정할 수 있습니다 세부. 이 값은 나중에 시퀀서에서 조작할 수 있도록 키프레임할 수 있습니다.

시네 카메라 배우

시네 카메라 배우- 기존 카메라의 엑터와 유사하지만 사용 가능 추가 세팅카메라.

시네 카메라 배우(검은색 카메라)와 기본 카메라(파란색 카메라)가 위에 나와 있습니다.

시네 카메라 배우 Hector, 영화 설정(종횡비, Super 8mm, 35mm VistaVision 등), 렌즈 및 초점 설정을 따르기 위한 설정이 포함되어 있습니다. 사용시 일반 카메라모든 것이 좋지만 더 영화 같은 효과를 얻으려면 시네 카메라 배우.

시퀀스 녹음

자산 생성 프로세스의 속도를 높이는 데 사용할 수 있는 도구 중 하나는 시퀀스 레코더게임 플레이를 녹화하기 위해(또는 레벨 시퀀스) 새 자산을 만들 수 있습니다.

새 항목을 추가하고 배우를 선택한 다음 버튼을 클릭합니다. 기록녹음을 시작합니다. 녹음을 중지하면 새 자산이 생성됩니다. 레벨 시퀀스, 나중에 기존 또는 향후 시퀀스에서 사용할 수 있습니다.

영화 렌더링 설정

시퀀서에서 시퀀스를 프레임 세트로 렌더링할지 아니면 전체 비디오 파일로 렌더링할지 선택할 수 있습니다. 선택된다 렌더 동영상 설정.

그러면 장면이 렌더링되는 방법을 정의할 수 있는 Movie Render Settings 창이 나타납니다.

버튼을 클릭 동영상 캡처장면 녹화를 시작합니다.

워크플로에 대한 생각

이제 시퀀서 편집기가 작동하는 방식에 대한 기본적인 이해를 얻었으므로 콘텐츠를 만드는 여러 가지 방법이 있으므로 도구를 사용하는 방법을 고려할 수 있습니다. 모든 것에 대한 모든 것에 대한 하나의 시퀀스 생성이든, 다른 많은 시퀀스를 포함하는 하나의 큰 시퀀스 생성이든, 시퀀서는 시네마틱을 만드는 데 사용할 수 있는 여러 가지 방법을 제공합니다.

다른 패널 및 편집기와 마찬가지로 시퀀서는 구성 요소로 나뉩니다. 이 페이지시퀀스 편집기의 각 창, 옵션 및 제어에 대해 설명합니다.

도구 모음

다음은 도구 모음에 있는 왼쪽에서 오른쪽으로 각 버튼에 대한 설명입니다.

설명
현재를 저장합니다 레벨 시퀀스.
현재를 저장합니다 레벨 시퀀스다른 이름으로.
콘텐츠 브라우저에서 문제의 자산을 검색합니다.
시퀀스를 비디오 또는 프레임 세트로 렌더링하는 옵션을 제공하는 비디오 렌더 설정 창을 엽니다.
시퀀서의 기능을 결정하는 기본 설정 메뉴를 엽니다.
켜기/끄기 옵션 모두 키. 이 옵션과 옵션이 활성화된 경우 자동 키, 변경 시 트랙의 키에 모든 설정이 기록되는지 또는 키에 기록된 설정만 변경되는지를 결정합니다.
온/오프 다양한 자동 키옵션. 기본적으로 이 옵션은 비활성화되어 있지만 다음으로 설정할 수 있습니다. 자동 키 전체또는 자동 키 애니메이션.
스냅 설정에 따라 키프레임 창의 그리드에 스냅을 활성화/비활성화합니다.
스냅 간격 시간을 설정할 수 있습니다.
애니메이션 키의 위치를 ​​사용자 정의할 수 있는 곡선 편집기를 엽니다. 키 프레임창문.

시퀀스 이동 경로

워크플로에 따라 여러 개의 레벨 시퀀스별도의 장면으로 만들고 이러한 장면을 새로운 레벨 시퀀스,그들은 순서대로 재생하여 하나의 큰 순서를 만듭니다. 이 큰 시퀀스에서 추가된 각 시퀀스를 두 번 클릭하여 이동할 수 있습니다. 키 프레임창문. 아래 이미지는 보여줍니다 레벨 시퀀스자격이 있는 샷_06라는 다른 시퀀스 내부 주인.

우리는 클릭할 수 있습니다 주인우리를 포함하는 메인 시퀀스로 돌아가기 위해 샷_06및 기타 시퀀스.

트랙 추가/필터링

단추 추가하다레벨의 트랙 또는 액터를 시퀀서에 추가하여 나중에 시네마틱을 만들 수 있습니다.

레벨에서 Hector가 선택되면 버튼을 클릭하십시오. 추가하다, 드롭다운 메뉴에서 선택합니다. 이전에 Hector를 선택하지 않은 경우 섹션에서 선택할 수 있습니다. 배우 선택.

다음은 시퀀서에 추가할 수 있는 사용 가능한 트랙입니다. 트랙 제목을 클릭하면 예를 볼 수 있습니다.

설명
폴더 추가 트랙이 포함된 폴더를 추가하여 작업 공간을 구성할 수 있습니다.
오디오 트랙 사운드를 재생하는 데 사용되는 마스터 오디오 트랙을 추가합니다.
이벤트 트랙 청사진을 트리거하는 데 사용할 수 있는 이벤트 트랙을 추가합니다(현재 레벨 청사진).
카메라 컷 트랙 시퀀서와 연결된 카메라 간에 전환하여 원근감을 만들 수 있습니다.
샷 트랙 추가할 수 있습니다. 레벨 시퀀스어떻게 " "를 포함할 수 있는 소요, 입력/출력을 변경할 수 있습니다.
재생률 트랙 시퀀스의 재생 속도를 조작하는 데 사용할 수 있는 트랙을 추가합니다.
서브트랙 다른 시퀀스를 포함할 수 있는 하위 트랙을 추가합니다. 이는 여러 사용자가 원본 시퀀스를 변경하지 않고 작업할 수 있도록 시퀀스의 여러 복사본을 만드는 데 유용합니다.
페이드 트랙 시퀀스의 페이드 인/아웃을 제어할 수 있는 트랙을 추가합니다.
레벨 가시성 트랙 이 트랙은 키에 쓰고 레벨의 가시성을 변경하는 데 사용할 수 있습니다.

옵션 필터필터링할 수 있습니다. 트랙 창레벨에서 시퀀스에 추가된 Hector에만 해당됩니다.

타임라인

시간 표시줄은 녹색(시작) 및 빨간색(종료) 마커로 시퀀스의 재생 속도를 보여줍니다. 현재 시간시퀀스는 전체 타임라인을 따라 왼쪽 클릭하여 이동할 수 있는 타임라인 마커와 함께 표시됩니다.

타임라인을 마우스 오른쪽 버튼으로 클릭하여 새 시작/종료 지점을 지정할 수 있습니다. 컨텍스트 메뉴아래에 표시됩니다.

콘텐츠가 전체 타임라인을 채우지 않거나 끝 마커를 넘어서더라도 시퀀스는 시작 마커에서 끝 마커까지 계속 재생됩니다. V 일반 옵션콘텐츠를 섹션 경계 내부에 유지하는 옵션이 있어 시퀀스에 공백이 나타나는 것을 방지할 수 있습니다.

트랙 창

창에서 트랙시퀀스 중에 수행할 작업 유형을 지정할 수 있습니다.

위에 트랙이 있습니다. 카메라 컷시퀀스 중에 카메라 각도를 변경하려면 시네 카메라 배우장면을 보여주고 두 스켈레탈 메시 액터우리 장면의 캐릭터.

시퀀서는 상황에 따라 다르며 추가 옵션을 제공하는 각 트랙에 대해 하위 트랙(사용 가능한 경우)을 추가할 수 있습니다. 예를 들어 위의 그림에서 트랙을 추가했습니다. 카메라 컴포넌트우리에게 시네 카메라 배우, 우리가 원하는 경우 장면의 카메라 설정을 조정하기 위해 추가 하위 트랙을 추가할 수 있는 기능을 제공했습니다.

트랙 창에서 키프레임을 추가하여 타임라인의 특정 지점에서 매개변수를 지정할 수도 있습니다.

버튼을 클릭 + 또는 클릭 입력하다트랙이 강조 표시되는 동안.

키프레임 창

키프레임 창은 각 트랙의 콘텐츠를 조정할 수 있는 곳입니다. 추가한 키프레임을 조정하고 섹션을 자르거나 분할하거나 좁히거나 마우스 오른쪽 버튼을 클릭하면 드롭다운 메뉴가 나타납니다(아래 그림 참조).

위에서 변형 트랙 키프레임을 마우스 오른쪽 버튼으로 클릭하면 키의 보간 유형을 변경할 수 있을 뿐만 아니라 속성 드롭다운 상자에서 조정할 수 있는 기타 매개변수가 제공됩니다. 이 매개변수는 올바른 콘텐츠 유형에 따라 업데이트됩니다. - 클릭.

아래에서 애니메이션 트랙에 할당된 애니메이션을 마우스 오른쪽 버튼으로 클릭하고 설정을 선택하면 방금 적용한 애니메이션을 변경할 수 있을 뿐만 아니라 시작/종료 오프셋, 재생 속도 등의 설정을 변경할 수 있습니다.

키프레임 창 탐색

다음은 키프레임 창을 탐색하는 데 사용되는 버튼과 방법에 대한 설명입니다.

설명
마우스 오른쪽 버튼을 클릭하고 이동 키프레임 창에서 이동할 수 있습니다.
Ctrl 키+ 마우스 휠 위/아래 키프레임 창을 확대/축소합니다.
키프레임 창 확대/축소를 재설정합니다.
- 및 = 10% 확대/축소
, 그리고. 중첩된 키프레임 사이에서 앞/뒤로 이동합니다.
왼쪽 클릭 및 이동 프레임 주위에 선택 영역을 만듭니다.
키 왼쪽 클릭 키 선택
키를 마우스 오른쪽 버튼으로 클릭 키 설정을 지정할 수 있는 컨텍스트 메뉴를 표시합니다.
마우스 가운데 버튼 마우스 커서 위치에 키를 생성합니다.
입력하다 현재 시간에서 선택한 트랙의 키를 선택합니다.
Ctrl+G 시퀀스 시간/프레임을 설정합니다.
선택한 섹션의 시작을 지정합니다.
영형 선택한 섹션의 끝을 지정합니다.

재생 제어

재생 제어 버튼은 시퀀서 편집기의 왼쪽 하단 모서리에 있으며 모든 미디어 플레이어에서 사용되는 것과 유사합니다. Arial의 레이아웃으로 인해 레벨의 기본 뷰포트와 동일한 아이콘이 있습니다. Cinematic Viewport 를 사용할 때 재생 컨트롤이 뷰포트 내부에 나타납니다.

표준 재생 컨트롤:

단추 설명
시작 위치를 시간 마커가 나타내는 현재 위치로 설정합니다.
재생 시작 위치로 이동합니다.
선택한 트랙의 이전 키로 이동합니다.
이전 프레임으로 이동합니다.
타임 마커의 위치에서 레벨 시퀀스를 재생/일시 중지합니다.
프레임 앞으로 이동합니다.
점프 다음 키선택한 트랙.
재생의 끝으로 이동합니다.
타임 마커를 기준으로 재생 종료 위치를 설정합니다.
/ 재생하는 동안 레벨 시퀀스 반복 사이를 전환합니다.

시네마틱 뷰포트 내부의 재생 제어 버튼은 기능면에서 유사합니다.

나는 우리가 게임을 망친 것에 대해 이야기하고 있었다 루아어다양한 장면을 스크립팅하기 위해 그러나 잠시 사용하고 나면 이러한 스크립트를 작성하는 것이 때때로 읽기가 다소 어렵고 코드를 디버그하기 어려워진다는 것을 깨달았습니다.

그리고 우리는 시각적 접근에 대해 생각했습니다. 이 기사에서는 Unity용 비주얼 스크립팅 도구인 "uScript"에 대해 알고 그 기능과 경험에 대해 이야기하겠습니다.

예, 위의 화면에서 - 실제 스크립트와 다이어그램.

소개.

자, 먼저 무슨 일이 일어났는지 봅시다. 아래는 화면에 두 개의 문자를 만들고, 간단한 대화 상자를 그리고, 사용자에게 두 가지 옵션을 선택하고, 그 지점에서 분기하는 실제 스크립트입니다.

LUA 스크립트 소스

vhs.HUD(0) vhs.SwitchZone("스트리트") 로컬 c1 = CharacterGfx() c1.create("c1", "char_big") c1.mirror(0) c1.setpos("n_2") c1.animate( "f_idle") 로컬 c2 = CharacterGfx() c2.create("c2", "char_black") c2.mirror(1) c2.setpos("n_3") c2.animate("f_idle") c2.preset("opp_lmb ") char.animate("idle") char.mirror(1) char.setpos("n_1") c1.say("옷, 부츠, 오토바이가 필요합니다.") c1.wait_bubble() c2.say( "응!") c2.wait_bubble() char.animate("f_idle") char.mirror(0) vhs.ShowMultiAnswer("나를 잡으려 해! (도망쳐)", "안 돼! (싸움 시작)", "") switch_answer ( 사례 1: vhs.BlackScreen("당신은 도망칠 만큼 빠르지 않습니다. 그러니 싸워야 합니다!") vhs.StartFight(77,7) end, 사례 2: vhs.StartFight(77,7) 끝, )


게임에서는 다음과 같이 보입니다.


원칙적으로 위의 스크립트에는 문제가 없습니다. 그러나 분기가 1개가 아니라 2개라고 상상해 보십시오. 일부 게임 매개변수를 확인하고 이를 기반으로 스크립트를 분기해야 한다고 상상해 보십시오. 이것은 매우 빨리 모호해질 수 있습니다.

이 시점에서 시각화가 절실히 필요했습니다.

몇 가지 Unity 플러그인을 살펴본 후 유스크립트. 매우 강력하고 유연하며 동시에 쉽게 확장할 수 있습니다. 또한 성능에 미치는 영향을 최소화합니다. 구성표를 저장하는 단계에서 즉시 C#으로 컴파일합니다. Unity의 경우 이러한 편집기에서 컴파일된 스크립트는 샤프에 손으로 쓴 스크립트와 크게 다르지 않습니다.

바로 위의 LUA 스크립트가 어떻게 변했는지 화면을 보여줍시다. (이미지는 클릭 가능)

조금 복잡해 보이지만 즉시 명확해집니다. 언제, 누가, 어디에서 생성되는지, 무엇을 하는지, 가장 중요한 것은 분기가 눈에 보입니다.

예를 들어, 우리의 경우 플레이어는 두 가지 가능한 답변 중 하나를 선택할 수 있습니다. 게임에서는 다음과 같이 보입니다.

그리고 다이어그램에서 다음과 같이 보입니다.

그리고 1번과 2번을 선택하면 어떤 일이 일어나는지 즉시 알 수 있습니다. 그리고 그러한 지점이 더 많으면 계획이 가시성을 잃지 않을 것입니다.

유스크립트 원칙.

회로가 무엇으로 구성되어 있는지 빠르게 살펴보겠습니다. 실제로, 주요 모듈(uScript 용어로 "노드"라고 함)은 이벤트(일반적으로 스크립트 또는 체인이 시작됨), 작업 및 변수입니다.

작업"에는 입력(보통 1)과 출력(들)이 있습니다. 예를 들어, 간단한 행동입구 1개와 출구 1개. 예를 들어 조건 블록의 일부 스레드에는 이미 두 개의 출력이 있습니다.

변수는 블록의 맨 아래에 연결됩니다. 삼각형은 변수가 기록됨(출력)을 의미합니다.

예를 들어, 이 예에서 우리는 캐릭터를 생성하고("Create char" 블록을 사용하여), 그 미러링을 "true"로 설정합니다("Mirror" 블록을 사용):

그건 그렇고, 모든 변수는 이름을 가질 수 있습니다(이 경우 "c1"). 그리고 같은 이름을 가진 같은 유형의 모든 변수는 같은 스크립트(구성표) 내에서 동기화됩니다. 저것들. 위의 예는 다음과 정확히 동일합니다.

이것은 두 화면에서 링크를 드래그하는 수고를 덜어주기 위해 수행됩니다.

또한 "Unity에 노출" 상자를 선택하면 선택한 변수가 공개되고 다른 스크립트(시각적 및 손글씨 모두)에서 볼 수 있습니다. 배열도 지원됩니다.

약간의 연습.

다이어그램에 표시되는 모든 모듈은 자체 작성됩니다. 그리고 그들은 1 저녁에 작성되었습니다. 그들의 코드를 살펴보자.

먼저 아주 간단한 것을 봅시다. 예를 들어 "싸움 시작"이라는 작업이 있습니다. 전투를 시작하고(사실, 게임 논리 메서드를 호출함) 두 개의 매개변수(전투 ID와 상대 ID)를 사용합니다.

코드:

공개 클래스 uScriptAct_StartFight: uScriptLogic ( public bool Out ( get ( return true; ) ) public void In ( int 상대방_id, int fightdata_id) ( MainGame.me.StartSimpleFight(opponent_id, Fightdata_id); ) )
단지? 매우.

이제 더 어렵게 만들어 봅시다. 애니메이션을 재생하고 싶다고 가정해 보겠습니다. 그리고 우리는 두 가지 옵션을 원합니다. 하나는 즉시, 두 번째는 애니메이션이 끝까지 재생될 때만 시작됩니다.

오른쪽에는 값을 입력하는 블록 구성 블록이 표시됩니다. 블록에는 CharacterGfx(애니메이션을 재생하는 직접 캐릭터), Animation(애니메이션 이름) 및 Mirror(미러링 필요)의 3가지 입력 매개변수가 있습니다. 그리고 블록에는 Out(즉시 종료)과 Finished(애니메이션이 끝날 때만)의 두 가지 종료가 있습니다.

동시에 "미러" 변수는 속성 창에 드롭다운 목록으로 표시되는 "예", "아니오" 및 "변경하지 않음" 매개변수가 있는 열거자입니다.

코드가 훨씬 더 복잡해지지 않았습니다.

uScriptEventHandler 사용 = uScript_GameObject.uScriptEventHandler; public class uScriptAct_CharacterPlayAnimation: uScriptLogic ( public bool Out ( get ( return true; ) ) public 이벤트 uScriptEventHandler Finished, public enum BooleanSet ( NoChange = 0, True, False ) public void In ( CharacterGfx ch, string anim_name, BooleanSet 미러) ( ch. PlayAnimation(anim_name); if (mirror != BooleanSet.NoChange) ch.SetMirror(mirror == BooleanSet.True); ch.OnAnimationEndedCallback += () => ( if (null != Finished) Finished(이, 새 시스템. 이벤트 인수()); ); ) )
또 다른 순간. 위의 모든 블록에서 출력(Out)은 블록 코드 실행 직후에 호출되었습니다.

비동기 작업을 수행하려면 어떻게 해야 합니까? 예를 들어 장면을 로드합니다. 그리고 장면이 비동기적으로 로드될 때까지 시각적 스크립트 실행이 일시 중단됩니다.

하는 것도 쉽습니다. 라인 대신
public bool Out ( get ( return true; ) ) "스크립트는 항상 종료할 준비가 되어 있습니다" 플래그인 경우 다음과 같이 작성합니다.
공개 이벤트 uScriptEventHandlerOut; 따라서 "Out은 이제 핸들러이며 항상 참된 부울이 아닙니다"라고 말합니다.

그리고 코드에서 더 나아가 스크립트 실행을 계속할 준비가 되었을 때 이전 예제에서 Finished에서 했던 것과 똑같은 방식으로 이 핸들러를 호출해야 합니다.
if (Out != null) Out(이, 새로운 System.EventArgs());

코드를 직접 작성할 필요는 없습니다.

제가 위에 제시한 모든 것은 여러분이 필요한 모든 것을 편리한 한 곳에 모으기 위해 저희가 작성한 것입니다. 그러나 이것은 종종 필요하지 않습니다. uScript에는 "반사"라는 것이 있습니다. 이것이 실제로 의미하는 바는 uScript가 자동으로 장면을 스캔하고 모든 개체는 물론 도달할 수 있는 공개 메서드 및 매개변수를 끌어온다는 것입니다. 그리고 그들에 대한 액세스를 제공합니다.

예를 들어 무대에 있는 카메라의 GetComponent() 메서드에 있는 반사 블록은 다음과 같습니다.

(하단에서 모든 메소드 매개변수가 설정된 "속성" 블록을 볼 수 있음)

결론.

우리는 확실히 이 도구를 좋아했고 계속 사용할 것입니다. 일반적으로 어떤 사람들은 그것으로 전체 게임을 작성할 수 있지만 이것은 이미 너무 많습니다.

우리는 그것을 얼마나 깊이 사용할 수 있는지 아직 모릅니다. 예를 들어, 우리는 루아 지향에서 시각적으로 퀘스트 트리거의 논리를 다시 작성할지 여부를 아직 결정하지 않았습니다.

하지만 컷신과 대화를 스크립팅하는 데는 확실히 사용할 것입니다.

빼기 중에서 하나만 꼽을 수 있습니다(더하기의 결과임). 위에서 쓴 것처럼 uScript는 시각적 다이어그램 C# 코드에서. 따라서 회로를 수정할 때마다 프로젝트를 다시 컴파일해야 합니다.

그렇지 않은 경우 이러한 논리를 스크립트로 작성하려면 이 도구를 자세히 살펴보는 것이 좋습니다. 또한 내가 아는 한 이 도구는 AI를 작성하는 데 적극적으로 사용됩니다.

그건 그렇고, 장면에 있는 개체의 동작 및 상호 작용(예: 충돌 트리거 등)을 스크립팅하는 데 특별히 필요한 경우 PlayMaker를 자세히 살펴보십시오. 이벤트 모델에 더 중점을 둡니다.

또는 라이브 액션 영상을 사용합니다.

게임의 광범위하고 필수적인 부분으로 컷 장면을 사용하는 것으로 알려진 최초의 비디오 게임은 다음과 같습니다. 포트피아 렌조쿠 사츠진 지켄 1985년에 출시된 Enix의 미치광이 맨션 Ron Gilbert가 만들고 1987년에 출시한 LucasArts Entertainment의 이 작품은 다른 여러 혁신으로도 유명했습니다. 그 이후로 촌극은 특히 RPG 장르에서 많은 비디오 게임의 일부가 되었습니다.

장면은 때때로 다음과 같은 다른 용어로도 언급됩니다. 영화 예술또는 인피처 시네마. 비디오 파일에서 만든 컷 장면은 때때로 풀 액션 비디오(풀 모션 비디오, . 예를 들어, 장면 편대사령관 IV전체 세트와 Mark Hamill 및 Malcolm McDowell과 같은 "명명된" 배우를 사용하여 캐릭터를 묘사했습니다.

그러나 많은 게이머들은 종종 열악한 제작 가치와 즉시 사용 가능한 액션으로 인해 실사 컷신을 즐깁니다. 실시간 전략 게임 시리즈의 컷 장면 커맨드 앤 컨커특히 과장된 연기로 유명하다.

1990년대 중반, 시대의 시작과 함께 라이브 액션 장면이 인기를 끌었습니다.

그래픽 품질, 비용, 중요한 피드백의 증가, 컷신과 게임플레이 그래픽을 더 잘 통합해야 하는 전문가의 필요성은 곧 1990년대 후반에 애니메이션 컷신의 인기를 증가시켰습니다. 그러나 영화 효과를 위해 일부 게임은 여전히 ​​라이브 컷신을 사용합니다. 이것의 예는 검은 색실제 배우들과 함께 촬영한 Jack Kellar와 그의 탐정의 인터뷰를 보여줍니다.

애니메이션 장면

컷 장면을 애니메이션으로 만드는 데는 두 가지 기본 기술이 있습니다. 게임 내 장면해당 게임과 동일한 그래픽 엔진을 사용하여 즉석에서 렌더링하여 렌더링합니다. 그들은 장르에서 자주 사용됩니다. 몰래 하기, 예를 들어 메탈 기어 솔리드, 스플린터 셀뿐만 아니라 장르 롤플레잉그리고 , 스파이더 맨그리고 젤다의 전설, 많은 다른 사람들 사이에서.

사전 렌더링된 장면모든 기술을 속일 수 있는 게임 개발자가 애니메이션 및 제공 컴퓨터 생성 이미지(CGI), 손으로 그린 ​​애니메이션 또는 그래픽 소설 스타일의 패널 아트. 비디오 게임 시리즈 파이널 판타지, 스퀘어에서 개발한 , 그들의 주목 사전 렌더링에서 처음 소개된 컷신 파이널 판타지 VII.

복잡한 프로그래밍 기술과 보다 강력한 프로세서를 활용할 수 있는 최신 게임에서는 게임 내 장면이 즉석에서 렌더링되고 게임플레이와 밀접하게 통합될 수 있습니다. 스크립팅된 컷신도 사용되어 게임플레이에서 상호작용을 없애지 않으면서 컷신의 이점을 제공합니다. 예를 들어 일부 게임은 다음과 같이 컷신 중에 플레이어에게 카메라를 제어할 수 있는 권한을 부여합니다. 던전 공성 ,메탈 기어 솔리드 2: 자유의 아들그리고 케인 & 린치: 죽은 자들. 다른 사람들은 컷신이 성공적으로 계속되려면 다음과 같이 키 입력이 필요합니다. 소드 오브 더 버서크: Guts Rage, 레지던트 이블 4또는 셴무 2.

'인터랙티브 시네마'도 컴백한다. 미국 및 캐나다) Quantic Dream에서 전체 게임이 플레이어의 행동에 따라 진행되는 실시간 컷신을 처리합니다.

결정은 게임 스토리의 필수적인 부분이며 플레이어는 어떤 식으로든 계속해서 장면을 처리합니다.

인터랙티브 컷씬

인터랙티브 컷신은 컴퓨터가 플레이어의 캐릭터를 제어하는 ​​것을 다루고, 버튼은 화면에 표시되며, "Quick Time Events"의 "Quick Time Events"에서와 같이 작업을 계속하거나 따라잡기 위해 플레이어가 버튼을 눌러야 합니다. , 광전사의 검: 근성" 시대, 레지던트 이블 4전쟁의 신 그리고 II, 툼 레이더: 레전드, 마블: 얼티밋 얼라이언스그리고 때때로 경고가 발생해야 할 때 경고가 부족하여 비판을 받고 종종 플레이어가 이벤트를 다시 플레이하도록 강요합니다.

또 다른 유형의 장면은 플레이어가 최소한 몇 개의 캐릭터 대화 중에서 선택하는 곳이며, 그 예는 KOTOR 및 Mass Effect에 있습니다.

촌극 없음

최근 비디오 게임에서는 컷신을 완전히 피하는 경향이 있습니다. 이것은 Ubisoft의 1998년 Assassin's Creed 게임에서 대중화되었으며 플레이어가 "컷 장면" 동안 캐릭터의 제어를 유지할 수 있게 합니다. 이것은 게임에 더 많은 몰입을 추가하기 위한 것이지만 개발자 측에서 더 많은 노력이 필요합니다. 플레이어가 컷신 대신 발생하는 스크립트 작업을 방해할 수 없도록 합니다. 스파이더 맨~을위한

공유하다