Computer Animation Algorithms & Techniques (By Rick Parent)
책을 정리한 내용입니다. (틀린 내용이 있을 수 있습니다)
Modeling Behavior
11.1 Knowing the Environment
- 행동 애니메이션은 물리적 제한사항을 받은 시뮬레이션에 의해 생긴 제한과 결합된 환경과의 상호작용에 대한 내용이다.
- 행동을 모델링 할 때 가장 중요한 내용이 캐릭터가 환경에 대해 접근하는 정보이다.
- 간단한 방법은 캐릭터가 환경 데이터베이스에 접근하여 정보를 얻어오는 방식이다. 그러나 해당 방법은 비현실적인 행동이 생성될 수 있다.
- 실감나는 행동을 위해서 캐릭터가 환경에 대해 지역적으로 얻는 지식으로 모델링 해야 한다. 예를 들어 캐릭터의 시각 등을 통해 정보를 얻게 되고 캐릭터 애니메이션에 영향을 준다.
11.1.1 Vision
- 관측(fov)의 제한된 분야 모델링과 visual occlusion 계산에 의해 환경에 대한 데이터를 제한한다.
1) fov는 캐릭터의 위치와 시야의 방향을 이용해서 계산한다. 계산하기 빠르고 쉬운 객체에 사용하기 편리하다.
2) occlusion은 캐릭터의 관측점으로부터 도형적 요소를 계산하여 제공되고, 캐릭터의 위치로부터 장면을 랜더링하여 모델링된다.
- 광선 추적법 : 광선과 연관된 거리에 따라서 가장 가까운 객체를 결정하기 위해 환경을 표본 추출하는 방식
- 저해상도 z-buffer : 객체가 각 픽셀과 연관된 거리(z-buffer)에서 가시성이 있는지를 나타내기 위해 고유 태그로 객체를 색상화하는 방식
- 컴퓨터 애니메이션에서 actor는 객체 데이터베이스를 접근하여 공간에서 특정 객체가 가시적인지를 확인하는데 도움을 받는다.
11.1.2 Memory
- 시각은 순간적으로 지나가는 데이터를 제공하지만, 기억은 나중을 위한 데이터를 제공해준다.
- 이동 가능한 객체는 기억을 통해 데이터를 축적시킬뿐 아니라 갱신하는 것이 꼭 필요하다.
11.2 Aggregate Behavior
- 복잡도 관리는 애니메이션 분야에서 중요하며, 파티클 시스템으로 처리하게 된다.
- 개별적인 파티클은 각 파티클이 가진 환경에 따라 물리법칙에 영향을 받으며 행동하고 다른 파티클에는 영향을 받지 않는다.
- emergent behavior, flocking(무리짓기), crowds(군중) 등으로 구분
- 큰 그룹의 캐릭터를 처리할 때 문제점은 근처 캐릭터에 대한 지식이 요구된다는 점이다. 그러나 파티클 시스템은 파티클과 파티클 상호작용이 없다.
- 주변 캐릭터에 대한 정보가 필요할 때 3차원 버켓정렬을 이용하여 효율적으로 정보를 얻을 수 있다.
11.3 Primitive Behavior
11.3.1 Flocking Behavior
- 파티클 시스템보다 요소의 수는 더 적지만 더 많은 요소간 상호작용을 가지고 있다.
- 일부 제한된 물리 현상에 영향을 받는다.
- 무리짓기(Flocking)
- 행동적 모델링의 가장 낮은 형태이다.
- 구성원들은 어떻게 무리의 구성원이 되었는지에 대한 초기 지식을 가진다.
- 목적 지향체(goal-directed body)로 표현되고, 계급과 재편성으로 분류될 수 있으며, coordinated maneuvers를 수행할 수 있는 무리 구성원들의 패턴을 형성한다.
- 무리짓기 행동은 땅 위를 이동하는 동물들의 떼를 제어하기 위해 사용된다.
- 무리 형태의 객체 집합을 유지시키기 위해 주요한 힘
- 충돌 회피
- 무리 주변의 환경과 무리 구성원들 모두에 영향을 받는다.
- 무리의 구성원들은 무작위적 요소를 가진 것이 일반적이지만, 충돌을 피하는 것은 구성원들 사이에 공간이 유지되어야 함을 의미한다.
- 객체도 대부분 무리 구성원과 같은 방향으로 향하는 경향이 있으며, 무리 구성원들 사이의 관련 활동은 미미하다.(내부 구성원 공간을 유지하는데 용이)
- 무리 센터링(flocking centering)
- 무리의 부분으로 머무르게 하기 위해 구성원은 무리의 다른 구성원들에 가까워지도록 자극을 갖는다.
- boid는 무리 센터링 힘에 의해 무리의 부분으로 머무르게 한다.
- 무리 센터링은 지역화(localized) 경향이 필요하며(전역x), 무리의 경계에 있는 구성원들은 인접 구성원과 같은 쪽으로 향하려는 경향성이 필요하다.
- 속도일치(velocity matching)
- 무리의 움직임에 대한 구성원들의 반응을 제어하는데 유용한 힘
- 무리 구성원이 인접한 구성원과 자신의 속도를 일치시킬 충돌을 갖도록 하는 것
- Local Control
- 계산적으로만 바람직한 방식
- 무리나 주변 조건 등의 전체적 조건을 참조하는 일 없이 가능한 지역적인 방법을 사용하여 물리현상, 지각력, 판단력과 반작용이 모델링되어야 한다.
- 물리현상은 파티클 시스템과 유사
- 지각력은 무리 구성원이 접근할 환경에 관한 정보와 관계
- 판단력과 반작용은 지각의 결과로 생성되는 요구사항 사이의 절충 모듈로 통합
- Perception
- 무리짓기와 파티클 시스템의 가장 큰 차이는 지각(Perception)을 모델링 하느냐의 차이이다.
- 무리짓기는 구성원의 제어를 지역화 할 때 지각력의 영역이 모델링 된다.
- 예를 들어 무리 구성원이 인접한 구성원들에 대해 옆, 뒤쪽으로 항상 45도 각도로 있다면(구성원의 시야 조절) 무리는 마름모 패턴이 형성될 것이다.
- boid의 규정사항
- 자신을 비롯한 인접한 두 세개의 구성원을 인지해야 한다.
- 앞에 무엇이 있는지 인지하고 fov를 가져야 한다.
- 거리가 제한적인 fov를 가진다.
- 시야 내부에 있는 객체에 의해 영향을 받는다.
- 거리와 크기에 기초한 객체에 의해 영향을 받는다.(fov에 의해 제한된 각)
- 거리제곱 또는 거리세제곱 가중함수를 사용하는 것들에 의해 영향을 받는다.
- 일반적인 migratory urge를 가져야 한다.
- 지정된 선도자를 따르지 않는다.
- 전체적인 무리의 중심에 관한 지식을 갖지 않는다.
- Interacting with Other Members
- 구성원은 무리 내에서 membership을 유지하는 반면에 충돌없이 분리를 유지하기 위해 다른 무리 구성원들과 상호작용 한다.
- Interacting with the Environment
- 무리 구성원과 주위 환경과의 주된 상호작용은 충돌 회피이다.
- force field가 간단한 경우 사용하면 좋은 결과를 가져온다.
- Global Control
- 일반적으로 무리를 제어하거나 지도하기 위해서 전체적인 목적이 필요하다.
- 구성원들은 이동하고 우두머리를 따르며 무리와 함께 하련느 욕구를 가진다.
- Flock Leader
- 실질적인 무리의 행동을 시뮬레이션하기 위하여, 애니메이터는 우두머리를 바꿀 수 있다.
- 무리의 우두머리를 바꾸지 않아도 애니메이션에 영향을 주지 않는다면 하나의 유일한 우두머리를 갖는 것이 유용하다.
- Negotiating the Motion
- 동작을 만들기 위해서 충돌 회피, 속도 매칭, 무리 센터링(우선순위 순서) 의 low-level controller가 사용된다.
- 각 controller는 원하는 속도와 방향을 가리키는 directive를 만든다.
- navigation module : 대립적인 욕구를 해결하는 프로그램화 된 실체
- 네비게이션 모듈은 충동을 조정하고 구성원들에게 최종적인 방향을 생성한다.
- 네비게이션 모듈이 생성한 방향을 안내 모델에게 전달하여 안내 모델은 무리 구성원에게 지시한다.
- Collision Avoidance
- 단순한 방법(repelling force field)
- 한정된 범위를 정한 후 모든 객체들이 이 제한된 지역에서 멀어지도록 하는 방법
- 무리 구성원의 중심점과 객체 중심사이의 거리를 계산하여 해당 거리를 기준으로 충돌 위험을 계산한다.
- 대부분의 경우 효과적이며, 실행이 쉽다는 장점이 있다.
- force field 기법
- 무리 구성원이 객체의 곡면에 대해 가깝고 평행하게 움직이는 것을 막는다.
- force field 방식 예시
- 단점으로는 잠재적인 충돌을 피하기 위한 합리적인 전략이 없다.
- heuristic 방식으로 해결한다.
- 경계 구를 사용하는 방식 (Figure 11.4)
-> 무리 구성원이 구 내부에 있다면 객체의 경계 영역과 교점을 나타내는지 알아내기 위해 벡터를 계산한다.
- 객체 모서리로 접근하는 것이 필요하지 않으면 경계점을 조정하는 방식도 존재한다. (Figure 11.7)
- 잠재적인 충돌 위험이 있는 곡면을 감지하기 위해 가상의 feeler를 보냄으로 주변 환경을 샘플링 하는 방식
- 주변 환경을 영상 평면에 투상시키는 방식
- Splitting and Rejoining
- 무리가 환경에서 장애물을 통과할 때 가장 중요한 부분이다.
- 분리(충돌 방지)와 결합에 있어서 적절한 균형이 필요하다.
- 중요한 시뮬레이션에서는 충돌방지가 우선된다.
- Modeling Flight
- 비행하는 객체는 roll, pitch, yaw 세가지의 방위를 사용한다.(Figure 11.8)
- 일반적인 비행하는 객체의 미치는 영향으로는 추력, 항력, 중력, 양력이 있다.(Figure 11.9)
- 비행에서 회전은 roll에 의해 만들어진다
- pitch의 증가는 항력을 증가시킨다.
- 속도의 증가는 양력을 증가시킨다.
11.3.2 Prey-predator Behavior
- 무리짓기 행동이 환경에서 장애물과 상호작용할 때도 흥미롭지만 단일 등속운동이라는 점이 한계이다.
- 더욱 흥미로운 상호작용을 위해서 객체의 집합에 물리적 능력을 줄 수 있다.
- 간단한 인력과 척력에 기반하여 모델링한다.
11.4 Modeling Intelligent
- 행동 모델링에서 특히 지능적 행동은 매우 어려운 작업이다.
- 간단한 무리짓기와 포식-피식자의 모델조차 제어하기 힘들 수 있다.
- AI를 더욱 복잡하고 사실적으로 모델링 하는 것이 목표이다.
11.4.1 Autonomous Behavior
- 자율행동(Autonomous Behavior) : 객체 자신의 인식 과정으로부터 나오는 동작을 모델링 하는 것
- 자율 행동은 환경 내에서 비교적 소수의 객체에 적용된다.
- 자율 행동은 자신이 존재할 환경에 관해 지각하고, 상태를 파악하고 상황에 대한 반응을 계획하고 환경에 영향을 미칠 행동을 수행하는 객체를 모델링 한다.
- Internal State
- 내부 상태는 의도하는 바(무리를 만족시킬 욕구에 의존하는 가변적인 중요성)에 의해 부분적으로 모델링 된다.
- 내부 상태는 금지, 관심 공간의 식별, 감정적인 상태 등을 포함한다.
- Levels of Behavior
- 행동 레벨은 개념화된 동작에서 분리의 레벨에 따라서 구별된다.
- Keeping Behavior under Control
- 자율 행동이 자동적으로 생성되는 것도 중요하지만, 여전히 애니메이터의 제어하에 있도록 하는 것이 주요 관심 내용이다.
- 다양한 행동 레벨은 행동에 걸친 제어가 실행될 수 있는 기회를 제공한다.
- 애니메이터는 다양한 레벨에서 명령을 만듦으로써 행동에 대한 외부 제어를 삽입할 수 있다.
- Arbitration Between Competing Intentions
- 긴급한 행동이 우선적으로 수용되고, 다른 행동은 지배적인 행동의 결과와 모순되지 않을 때 수용된다.
- 행동을 선택된 하나의 행동 집합으로 그룹화 하는 방법이 있다.
- 선택된 행동은 최종 행동을 형성하기 위해 결합된다.
11.4.2 Expressions and Gestures
- 표정과 상체 몸짓은 애니메이션이 더욱 실감나도록 도와준다.
- 말에 따른 몸짓을 생성하는 능력은 캐릭터를 더욱 실감나게 해준다. (EMOTE)
11.4.3 Modeling Individuality : Personality and Emotions
- 캐릭터의 내부 상태와 연관된 매개변수를 만들어서 사람들 중에서 개인이 행동의 특성에 의해 구분될 수 있다.
- 개성 : 개인적인 특이한 동작을 제어하는 시간 불변 특성
- 감정 : 개인의 시간변수 속성을 고려
- 기분 : 시간변수의 개인 특성이지만 감정보다 더 오랜 시간영향을 미친다.
11.5 Crowd Management
- 군중은 환경에 개인적인 반응의 집합으로 모델링 된다.
- 공간적 근사를 통해 사람들이 거주하는 영역보다 다른 군중 모델링을 만들 수 있다.
11.5.1 Crowd Behavior
11.5.2 Statically Modeled Behavior
- 개인의 모델링을 단순화하기 위해 군중 행동을 추출한다.
- 군중의 통계적 행동을 시뮬레이션 하면 군중에서 개인이 관찰자에 의해 검사되지 않게 되는 것으로 가정하여 문제가 쉬워진다.
- 행동은 통계적 기본에서 선택될 수 있고 군중의 가시적 효과를 생성하기 위해 서로 묶는다.
11.5.3 Internal Structure
- 그룹 구성원이 밀접하게 상호작용하고, 그룹 membership이 동적이고, 그룹 상호작용이 종종 발생하는 사람들의 더 작은 그룹으로 구성된다.
- 그룹은 공간적 근사처럼 공통충동, 믿음 시스템, 감정적 상태에 의해 형성된다.