Biped 군중은 다리가 있는 동물 움직임의 복잡한 속성에 필요한 특별한 경우의 군중 시뮬레이션입니다. Biped 이동은 복잡한 역학 관계와 엄격한 IK 발 제약 조건을 나타냅니다. 대리자 모션 매개변수에서 계산된 부드러운 곡선의 궤적은 새, 물고기, 곤충, 뱀 등에는 적합하지만 Biped 모션의 미세 구조를 애니메이션하는 데 충분하지 않습니다. 따라서 군중의 몇 가지 기능은 Biped의 특별한 요구에 집중되어 있습니다.
필요한 수준의 차이를 생성하기 위해 애니메이션 모션 클립을 기반으로 Biped 움직임의 레퍼토리가 구성됩니다. 즉, Biped/군중 시뮬레이션 중에 대리자는 Biped의 모션에 아무 영향도 주지 않으며 모션 흐름 그래프에서 사용 가능한 클립으로 달성되는 목표만 설정합니다. 모션 합성이라는 이 방법을 사용하면 애니메이터가 수동 애니메이션을 사용하거나 모션 캡처로 군중의 구성원이 동작하는 방식을 설명하는 클립 집합을 생성하여 모션의 세부 사항을 정확하게 제어할 수 있습니다.
예를 들어 도심 거리를 통과하는 마라톤 주자 군중을 애니메이션하려고 했으면 걷기, 뛰기, 조깅, 휴식, 물 마시기, 환호 등 다양한 종류의 모션 클립이 필요합니다. 사실상 마라톤 경주에서 볼 것으로 기대하는 각 모션이 클립으로 표현될 수 있습니다. 그러나 모션은 단편화된 클립 모음 이상이어야 합니다. 또한 모션 시퀀스를 고려해야 합니다. 지정된 모션 클립에서 만들 수 있는 모션 전환을 고려해 보십시오.
이 프로세스를 가장 잘 이해하려면 이 항목을 학습한 후 군중 시뮬레이션에 Biped 사용 절차를 따라 하십시오.
Biped의 모션 흐름 기능은 별개의 모션이 하나의 유동적 애니메이션으로 결합되는 방법을 정의하는 메커니즘을 제공합니다. 실제로 모션 흐름 네트워크는 다른 모션 뒤에 올 수 있는 모션을 설명합니다. 모션 흐름 네트워크가 정의되고 나면 네트워크를 통해 여러 경로를 따라 다양한 애니메이션 작업 집합을 만들 수 있습니다. Biped에서 네트워크를 통과하는 경로를 모션 흐름 스크립트라고 합니다.
예를 들어, 모션 흐름 네트워크가 아래 표시되어 있습니다.

캐릭터가 시작, 중지, 왼쪽 및 오른쪽 90도 회전(walk_L90 및 walk_R90), 뒤로 돌기(walk_180)만 수행할 수 있으므로 이것은 상당히 단순한 모션 네트워크입니다. 그러나 보다 자연스러운 군중 상호 작용을 위해 45도 증분 회전, 같은 방향을 보면서 다른 방향으로 이동, 천천히 걷는 모션, 다른 속도로 이동 등의 더 짧고 미세 조정된 변형을 포함하도록 모션 흐름 네트워크를 확장하는 것이 좋습니다. Biped 모션 라이브러리에는 시험할 수 있는 포괄적인 클립 리스트가 있습니다.
효과적인 모션 흐름 그래프는 미세 조정된 전환을 통합합니다. 모션 흐름 전환을 확인하는 좋은 방법은 그래프를 작성할 때 테스트 스크립트를 작성하는 것입니다. 그래프에 클립을 추가하고 필요한 전환을 추가한 다음 전환을 최적화합니다. 전환 최적화는 좋은 시작 지점 역할을 하며, 대체로 가장 부드러운 전환을 생성합니다. 그런 다음 전환을 사용하는 새 스크립트를 만들고 이 스크립트를 사용하여 발이 움직이지 않을 때까지 모션 흐름을 미세 조정합니다.
공유 모션 흐름 네트워크 기능을 사용하면 많은 Biped가 단일 모션 흐름 네트워크를 사용할 수 있습니다. 따라서 컴퓨터 메모리를 많이 사용하지 않고 모션 흐름 네트워크를 확장하는 것이 실용적입니다.
군중 시스템에서 대리자와 연결한 다음 동작을 대리자에 할당하여 Biped 동작 목표를 제공할 수 있습니다.
예를 들어 위에 표시된 샘플에서 각 Biped 대리자의 동작 목표는 다음과 같습니다.
Biped 군중 시뮬레이션 중에 character studio는 연결된 대리자의 동작 목표에 부합되는 군중의 각 Biped 구성원에 대해 최상의 모션 흐름 스크립트를 계산하려고 합니다. 다시 말해 다음과 같습니다.
따라서 이 샘플에서 시뮬레이션은 항상 Biped 대리자가 구를 향하도록 하는 최상의 걷기 클립을 네트워크에서 선택합니다. 각 Biped의 스크립트는 군중 "해석"의 계산에 따라 발전합니다. 지정된 Biped에 대해 군중 솔버에서 선택하는 다음 최상의 클립이 해당 Biped의 활성 클립에 의해 제한된다는 점에서 이는 실시간 "게임 엔진"과 유사합니다.
군중의 Biped는 항상 모션 흐름 스크립트를 따르기 때문에 Biped의 회피 동작은 다르게 작동합니다. 일반 대리자와 달리 Biped 대리자는 모션 흐름 스크립트 경로를 따라서만 이동할 수 있으므로 충돌이 발생할 경우 character studio에서 현재 스크립트의 이전 클립으로 백트래킹하여 다른 경로를 찾습니다. 복잡한 군중 상호 작용이 있을 경우 하나의 백트래킹만으로 충분하지 않을 수 있으므로 계산하는 데 시간이 오래 걸릴 수 있습니다. 계산 시 지정된 백트래킹 클립의 모든 경로가 탐색되며, 실패할 경우 솔루션을 찾을 때까지 이전 클립으로 백트래킹합니다.
이 예에서 현재 Biped 스크립트가
walk_start walk walk_L90
이며 walk_L90 클립 중에 충돌이 발생할 경우 Biped는 걷기 클립의 끝까지 백트래킹하여 실패한 왼쪽 회전 대신 다른 클립을 시도합니다. 해당 클립도 실패하면 선택된 다음 최상의 클립을 시도합니다.
백트래킹을 계산으로 관리할 수 있도록 하기 위해 Biped 군중 구성원은 한 번에 하나씩, 우선 순위 순서대로 계산됩니다. 따라서 각 연속 Biped를 애니메이션에 추가하면 군중 상호 작용이 누적됩니다. 즉, 각 Biped가 순서를 기다려 전체 애니메이션을 완료하는데 이전에 계산된 Biped를 피하는 것도 여기에 포함됩니다. 일반적으로 우선 순위가 가장 낮은 Biped는 우선 순위가 더 높은 모든 Biped를 피해야 하므로 충돌이 가장 많이 발생합니다.
Biped 군중 시뮬레이션을 만들려면 몇 개의 Biped가 필요합니다. 군중 시뮬레이션은 클립을 Biped에 적용할 때 각 Biped의 다리 길이를 고려하므로 Biped가 처음부터 올바른 크기인 경우 시뮬레이션이 더 정확합니다.
한 가지 간단한 작업 흐름은 다음과 같습니다.
이렇게 설정하면 캐릭터를 쉽게 군중 장면에 병합할 수 있습니다. 캐릭터를 병합하면 메시 자체가 숨겨져 시스템 성능이 향상됩니다.
Biped 군중 시뮬레이션에 사용되는 클립은 3ds Max에 포함된 샘플에서 로드하거나 모션 캡처 파일에서 가져오거나 처음부터 새로 만들 수 있습니다.
Biped 군중 시뮬레이션을 만드는 경우 모션 흐름 네트워크의 클립 간 전환 무결성이 중요합니다. 단일 Biped에 대해 전환을 만드는 경우에는 모션 흐름 스크립트가 만들어진 후 개별 전환을 수정하면 됩니다. 군중의 경우 시뮬레이션이 완료된 후 각 Biped에 대해 변환을 수정해야 하므로 시간이 매우 오래 걸립니다. 시뮬레이션을 해결하기 전에 전환이 올바른지 확인하는 것이 훨씬 더 효율적입니다.
이 프로세스를 간단하게 만드는 한 방법은 모든 모션을 설정하여 각기 10 또는 15와 같이 정확히 같은 프레임 수의 이상적인 전환이 있게 하는 것입니다. 그러면 이 길이에 대해 전환을 최적화할 수 있고 모든 또는 대부분의 전환이 문제없이 작동하게 됩니다.
전환을 확인하려면 그래프에 여러 전환을 사용하여 한 Biped에 대한 단순한 스크립트를 만듭니다. 모션을 선택하고 전환이 제대로 표시될 때까지 개별적으로 전환 작업을 수행합니다. 이 방법으로 잘못된 전환을 모두 찾지 못할 수도 있지만 대부분 찾을 수 있습니다. "잘못된" 전환은 발이 걸어야 할 때 뛰거나 호핑하는 전환 또는 전환 중에 발생하는 다른 모든 불필요한 변경입니다. 전환 사용자 정의를 참조하십시오.
처음 몇 번 Biped 군중 시뮬레이션을 해결한 후 처음에 놓친 잘못된 전환이 있는지 다시 확인합니다. 몇 번 시뮬레이션하면 잘못된 전환을 모두 또는 거의 모두 찾을 수 있습니다.
군중 시스템의 일부 기능은 Biped 군중에서 작동하지 않습니다. 시뮬레이션에 Biped가 사용되는 경우 이러한 동작과 매개변수는 군중의 움직임에 아무 영향도 주지 않습니다.
다음 절차 시퀀스에서는 character studio가 대리자에 할당된 동작을 기준으로 각 Biped에 대한 별도의 모션 흐름 스크립트를 자동으로 만들도록 모션 흐름 그래프 생성 및 저장, 대리자에 여러 Biped 할당, Biped 간에 모션 흐름 그래프 공유 등의 작업을 수행하는 기본 단계를 제공합니다.
첫 단계로 적절한 모션 흐름 그래프를 만들어 디스크에 저장합니다.
공유 모션 흐름을 만들려면 다음을 수행하십시오.
이렇게 하면 동일한 디렉토리에서 여러 BIP 파일을 선택하여 동시에 모션 흐름 그래프에 추가할 수 있는 열기 대화상자가 표시됩니다. 인접한 여러 파일을 선택하려면 클릭+Shift+클릭(클릭한 다음 Shift+클릭)을 사용하고 인접하지 않는 파일을 선택하려면 Ctrl+클릭을 사용합니다.
파일이 클립으로 그래프에 추가됩니다. 각 클립이 파생된 파일의 이름을 따서 자동으로 클립에 이름이 지정됩니다.
다음 단계로 클립 간 전환을 추가하여 character studio에서 다른 동작으로 진행하거나 다른 동작에서 진행될 수 있는 동작을 확인할 수 있도록 합니다. 제어를 강화하기 위해 수동으로 이 작업을 수행할 수도 있지만 초기 테스트의 경우 character studio에서 자동으로 전환을 추가하고 최적화하도록 하여 시간을 절약할 수 있습니다.
이제 그래프에 각 클립에서 나오고 들어가는 화살표와 각 클립에서 동일한 클립으로 들어가는 화살표가 표시됩니다. 원할 경우 중지 및 시작 클립에서 동일한 클립으로 들어가는 전환과 같이 확실히 해당되지 않는 전환을 삭제합니다.
또는
(전환 만들기)을 사용하여 사용자 정의 그래프를 설정할 수 있습니다.
시뮬레이션을 해결하는 경우 군중이 자동으로 이 그래프를 기준으로 Biped에 대한 모션 흐름 스크립트를 생성합니다. 이 경우와 같이 다중 클립이 포함된 그래프가 있는 경우 지정된 하나 이상 클립의 스크립트에 대한 시작 클립이 무작위 시작 클립으로 선택됩니다.
계속하기 전에 전환 무결성을 확인하려면 지금 확인합니다. 전환 사용자 정의를 참조하십시오.
이렇게 하면 character studio에서 이 클립으로 스크립트를 시작하고 클립이 선택될 확률에 기본 확률 100%를 사용합니다.
여러 Biped가 서로 다른 클립으로 시작되도록 하려면 Ctrl 키를 누른 상태로 클릭하여 무작위 시작 클립을 여러 개 선택합니다. 모든 클립에 대해 기본 임의 시작 확률 설정인 100을 적용하면 character studio에서 클립 중 아무 것이나 무작위로 선택하여 각 Biped 스크립트의 시작 클립으로 사용합니다.
특정 클립으로 시작될 확률을 변경하려면 클립을 마우스 오른쪽 버튼으로 클릭하고 해당 임의 시작 확률 설정을 수정합니다. 예를 들어 클립 A, B, C 셋 중 하나로 Biped의 각 스크립트를 시작하려 한다고 가정합니다. 클립 A가 클립 B나 C보다 두 배 더 자주 선택되도록 하려면 임의 시작 클립 도구를 사용하여 먼저 클립 A를 클릭한 다음 Ctrl을 누른 상태로 클립 B와 C를 클릭합니다. 그리고 나서 차례로 하나씩 마우스 오른쪽 버튼으로 클릭하여 클립 A에 임의 시작 확률 60을 할당하고 클립 B와 C에 모두 30을 할당합니다.
군중 시뮬레이션에 Biped를 사용하는 과정의 다음 단계는 시뮬레이션 만들기입니다.
군중 시뮬레이션을 설정하려면 다음을 수행하십시오.
Biped 그룹 설정을 사용하여 각 대리자를 다른 Biped에 연결합니다. Biped의 질량 중심(COM) 오브젝트(일반적으로 이름이 Bip0#임)를 선택해야 합니다. 활성 뷰포트에서 마우스를 COM으로 이동하면 커서가 십자선 아이콘으로 바뀌므로 COM 오브젝트를 확인할 수 있습니다.
공유 모션 흐름을 적용하려면 다음을 수행하십시오.
다음에는 공유 모션 흐름 기능을 사용하여 저장된 모션 흐름 그래프를 Biped에 적용합니다.
이렇게 하면 새 공유 모션 흐름이 만들어지고 기본 이름이 할당됩니다. 원할 경우 이름을 변경할 수 있습니다.
모션 흐름 파일을 로드합니다.
".mfe 로드" 버튼을 클릭하고 열기 대화상자를 사용하여 모션 흐름 파일을 로드합니다. 일반적으로 이 파일은 절차의 앞부분에서 저장한 파일입니다. 이 모션 흐름을 공유할 Biped를 지정합니다.
편의상 선택 대화상자에는 장면에 있는 Biped의 질량 중심 오브젝트만 표시됩니다.
선택 버튼을 클릭하면 대화상자의 "이 모션 흐름을 공유하는 Bipeds" 아래 리스트에 Biped가 나타납니다.
공유 모션 흐름 대화상자에서 하나 더 거쳐야 하는 단계는 모션 흐름을 공유하는 모든 Biped에 대해 모션 흐름 모드를 활성화하는 것입니다. 대화상자의 특수 버튼을 사용하여 한 단계로 이 작업을 수행할 수 있습니다.
이렇게 하면 모션 흐름을 공유하는 모든 Biped에 대해 모션 흐름 모드가 활성화됩니다.
대리자를 오프셋하고 시뮬레이션을 테스트하려면 다음을 수행하십시오.
대리자 제어 Biped는 모션 흐름 스크립트의 첫 번째 클립(있는 경우)이나 임의 모션 클립을 사용하여 애니메이션을 시작할 수 있습니다. 그러나 모션 흐름 파일을 공유 모션 흐름 대화상자에 로드하면 이 파일의 모든 스크립트가 무시됩니다. 따라서 해결되지 않은 군중 시뮬레이션에서 모션 흐름을 사용하는, 대리자와 연결된 Biped에는 기존 스크립트가 없으며 모션 흐름에 설정한 무작위 시작 클립을 사용하도록 지정해야 합니다. 대리자를 통해 이 작업을 수행합니다.
Biped 그룹을 사용하여 모든 대리자에 대해 임의 시작 클립을 지정합니다. 시뮬레이션을 해결합니다.
군중이 시뮬레이션을 해결합니다.
시뮬레이션을 미세 조정하려면 다음을 수행하십시오.
조정이 필요한 경우가 많습니다. 여러 가지 방법으로 문제를 해결할 수 있는데 동작 및/또는 모션 흐름 설정 변경, 대리자 매개변수 변경 등이 있습니다.
Biped가 충돌하고 상호 침투하는 경우 군중의 특별한 우선 순위 및 백트래킹 기능을 사용할 수 있습니다. 실제로 대부분의 군중/Biped 시뮬레이션에 두 옵션을 모두 사용하는 것이 좋습니다.
Biped 그룹에서 Biped/대리자만, 우선 순위 사용, 백트래킹을 차례로 켭니다. 이전에 해결한 경우 해결 전에 키 삭제도 설정하는 것이 좋습니다. 이제 시뮬레이션을 해결할 때 군중이 최저 우선 순위 Biped/대리자부터 시작하여 한 번에 하나의 Biped/대리자에 대해 해결합니다. 각 후속 Biped/대리자에 대해 해결하는 경우 충돌을 찾고, 충돌이 있으면 솔루션을 이전 클립의 끝에 백업합니다. 필요한 경우 이전 클립이 모션 흐름 그래프를 통해 다른 경로를 시도합니다. 이 방법은 시간이 더 오래 걸리지만(이 때문에 백트래킹은 기본적으로 해제되어 있음) 충돌하는 Biped 문제를 해결하는 최상의 방법입니다.