버전
실시간 전략 게임, 스포츠 게임, 어드벤처 게임과 같이 오늘날의 많은 게임에서는 Action에 맞춰 구동되는 동적인 오디오 요소를 가지고 있습니다. 게임상에 존재하는 다양한 변수와 결과로 인해서 이러한 유형의 오디오는 대본 작가와 오디오 디자이너에게 특유의 과제를 안겨주곤 합니다. 각 조건이나 결과에 맞는 다양한 대사 조합을 모두 다루려면 수천 개의 에셋과 복잡한 Switch Container 계층 구조가 필요할 것입니다. 이는 메모리 사용량 면에서 볼 때 상당히 고비용일 수 있습니다. In an effort to streamline the development process and reduce the overall memory consumption, Wwise introduces the dynamic dialogue system.
The dynamic dialogue system is a lightweight and efficient method for building and managing dynamic audio in Wwise. 이 시스템은 의사 결정 트리(decision-tree)의 규칙을 사용하여 게임의 특정 순간에 어떤 대사를 재생할지 결정합니다.
Wwise SDK에서 사용할 수 있는 추가 기능을 이용하면 이 강력한 시스템으로 스포츠 게임의 실황 중계 방송에 적합한 런타임 동적 시퀀스를 생성할 수 있습니다. Wwise에서는 대사를 각 단어 또는 짧은 구절로 나눈 다음 이 대사 조각을 의사 결정 트리의 특정 경로(path)에 할당할 수 있습니다. 게임을 플레이하면 특정 단어들이 사운드 엔진에 제출되고 이곳에서 단어가 동적으로 연결되어, 샘플 단위로 정밀하면서도(sample-accurate) 자연스럽게 흐르는 문장이 만들어집니다. 단어와 작은 구절이 각각 개별적으로 존재하기 때문에 다양한 방법으로 이들을 조합하고 재사용할 수 있습니다. 게임에 동적 시퀀스를 통합시키는 작업에 대한 더 자세한 정보는 Wwise SDK 설명서 를 참조하세요.
참고 | |
---|---|
처음에는 게임의 대사를 구현하기 위해 Dialogue Event 기능이 마련됐지만 사실은 대사 뿐만 아니라 여러 가지 표면의 발자국 소리 등 다양한 목적을 위해 사용할 수 있습니다. |
At the center of Wwise's dynamic dialogue system is the Dialogue Event, which is basically a set of rules or conditions that determines which piece of dialogue to play. Dialogue Event를 이용하면 게임에 존재하는 다양한 상황, 조건, 결과를 재현할 수 있습니다. 모든 상황을 확실히 포함해야 하기 때문에 Wwise에서는 기본 또는 대비 조건을 둘 수 있게 되어 있습니다.
이러한 모든 조건은 State 또는 State를 사용하여 정의해야 합니다. 이러한 State Group과 State의 조합이 게임 내 특정 조건 또는 출력을 정의하는 경로를 형성합니다. 그런 다음 각 경로는 Wwise상의 특정 사운드 오브젝트에 연결됩니다. 게임이 진행되면서 Dialogue Event가 호출되면 게임은 Dialogue Event에서 정의한 경로와 대조해 기존 조건을 확인합니다. 각 경로의 모드, 확률, 가중치와 함께 게임 상황과 일치하는 경로가 어떤 대사를 재생할지 결정합니다.
스포츠 게임에서 각 플레이어와 연관된 State Group을 담고 있는 Dialogue Event를 예시로 들어보겠습니다. 각 State Group의 값이 합쳐져 존재할 수 있는 여러 가지 경로 또는 조건을 만들어냅니다. 이 예시에서는 해설자가 플레이어의 성이나 전체 이름을 사용할 수 있습니다.
게임에서 현재 벌어지고 있는 상황과 일치하는 상태가 없을 때를 대비해 기본 또는 대비 스테이트로 경로를 만들어 둘 수 있습니다. 이 '대비' 경로는 State 대신 한 개 이상의 State Group을 포함하며 보통은 보다 일반적인 사운드 오브젝트와 연결됩니다. 이전 예시에서 대비 경로는 플레이어의 이름 대신 'Them'이라는 사운드 오브젝트와 연결되어 있습니다.
Dialogue Event의 모든 조건을 재현해 보았다면 이제 게임 엔진에 통합시킬 수 있습니다. Dialogue Event가 게임에 의해 호출될 경우, 사운드 엔진은 일치하는 경로에 해당하는 오디오 구조를 리턴함으로써 Dialogue Event를 해결합니다. 그런 다음 사운드 엔진이 재생을 위해 오디오 구조를 동적 시퀀스에 삽입할 것인지의 여부를 결정할 수 있습니다. 오디오 구조를 리턴하는 것과 동적 시퀀스에 삽입하는 것은 1:1 관계가 아니어도 됩니다. 다시 말해 해결된 각 Dialogue Event에 대해 필요한 수만큼 리턴된 오디오 구조를 동적 시퀀스에 추가할 수 있습니다.
참고 | |
---|---|
동적 대사를 생성할 땐 오디오 프로그래머와 긴밀하게 작업하는 것이 중요합니다. 왜냐하면 단어 또는 구절을 문장으로 연결하는 기능을 포함한 다양한 기능은 Wwise SDK에서만 사용 가능하기 때문입니다. |
게임 엔진은 Dialogue Event의 이름을 사용하기 때문에 Event를 만들고 게임에 통합하면 각 Event의 내용물을 채우고 손을 봐주기만 하면 됩니다. 다시 통합해야 하는 일은 없습니다. 이 덕분에 추가적인 프로그래밍 없이 자유롭게 스테이트를 추가, 삭제하고 다양한 사운드로 실험을 해볼 수 있습니다.
경고 | |
---|---|
Dialogue Event에서의 State Group 추가, 삭제, 이동은 자동적으로 경로를 변경시킵니다. 이런 작업은 Wwise에서 쉽게 수행할 수 있지만 이런 류의 변경이 일어나면 코드 또한 변경되어야 하기 때문에 프로그래머의 개입이 필요합니다. |
Dialogue Event는 인터페이스에서 쉽게 구별될 수 있도록 다음과 같은 아이콘으로 나타납니다.
아이콘 |
의미 | |
---|---|---|
|
Dialogue Event |
중계 해설이 나오는 하키 게임을 제작한다고 합시다. 플레이어가 득점하면 해설 또한 게임상의 Action에 대응되어야 합니다.
Wwise에서 다양한 가능성과 결과물을 준비하려면 Player, Action, Transition 등에 대한 Dialogue Event를 만들어야겠죠. 각 Event에는 게임 상황에 대응하는 State Group과 State를 담을 것입니다. 반드시 각 조건 또는 결과를 정의하는 경로를 생성한 후 적절한 음성 오브젝트를 각 경로에 할당해야 합니다. 게임이 진행되는 동안 게임은 Wwise에서 정의한 경로와 현재 상태가 일치하면 어떤 음성 오브젝트를 재생할지 결정할 것입니다.
다음 그림은 Wwise에서 만든 Dialogue Event가 어떻게 'Cross shoots and scores'라는 실황 해설을 만들어 내는지 보여주고 있습니다.
이전 그림은 State Group과 Dialogue Event가 어떻게 게임에서 사용될 수 있는지 보여드리기 위해 간소화되었습니다. 하지만 대부분의 경우 게임은 다양한 State Group과 State를 포함하는 좀 더 복잡한 Dialogue Event를 필요로 합니다. Wwise를 사용하면 다양하고 복잡한 상황을 준비하여 보다 현실감 있는 동적 대사를 만들 수 있습니다.
다음 그림은 좀 더 정교한 Player Dialogue Event의 예시를 보여줍니다. Dialogue Event가 State Group을 몇 개 들고 있는 것이 보이시나요? State Group이 몇 개 있다면 선택된 스테이트가 경로를 생성합니다. State Group과 State의 각 조합에 대해 경로를 생성한 후 오브젝트를 각 경로에 할당할 수 있습니다. 특정 경로 내 각 State가 게임에서 충족되면 이 경로에 할당된 음성 오브젝트가 재생됩니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요