달리고 걸을 수있는 캐릭터가있는 프레임 워크가 있다고 가정 해 봅시다.
애니메이션 블렌딩이 런타임에 동적 애니메이션을 생성하여 부드럽게 전환하는 과정이라고 생각하고 있습니까?
그렇다면 이것이 어떻게 작동하는지에 대한 기본 이론은 무엇이며 어떻게 구현합니까?
달리고 걸을 수있는 캐릭터가있는 프레임 워크가 있다고 가정 해 봅시다.
애니메이션 블렌딩이 런타임에 동적 애니메이션을 생성하여 부드럽게 전환하는 과정이라고 생각하고 있습니까?
그렇다면 이것이 어떻게 작동하는지에 대한 기본 이론은 무엇이며 어떻게 구현합니까?
답변:
캐릭터 애니메이션 블렌딩이 더 일반적이며 다음에 사용할 수 있습니다.
기본 아이디어는 애니메이션 클립이 서로 다른 두 개의 동일한 골격에 대해 각 관절 회전마다 값을 계산한다는 것입니다. 애니메이션 클립은 회전으로 표시됩니다. 따라서 오일러 각도를 사용하더라도 정확한 결과를 원할 경우 선형 보간법을 사용해야합니다. 예를 들어 slerp를 사용할 수 있지만 더 복잡한 솔루션이 존재합니다.
이것은 복잡한 솔루션의 복잡한 문제입니다. 기본적으로 애니메이션 클립 A와 B가 두 개인 경우 :
당신이 관심이 있다면, 난 당신이 어려움이 무엇인지 더 잘 이해할 수 있도록이 기사를 읽고 시작하는 것이 좋습니다 : http://graphics.cs.wisc.edu/Papers/2003/KG03/regCurves.pdf
가장 최신 정보는 아니지만 읽기 쉽습니다.
이게 도움이 되길 바란다. 친애하는.
먼저, 애니메이션 블렌딩은 거의 골격 애니메이션에만 적용되므로 골격 애니메이션 (특히 3D 그래픽)에 대해 이야기한다고 가정합니다. 2D 스프라이트 기반 애니메이션에 대해 이야기하고 있다면 (질문에 지정하지 않았 음) 애니메이션 블렌딩을 잊어 버릴 수 있습니다.
그 길에서 ...
애니메이션 블렌딩이 런타임에 동적 애니메이션을 생성하여 부드럽게 전환하는 과정이라고 생각하고 있습니까?
그것은 그 용어가 의미하는 바와 거의 같습니다. 그러나 "동적 애니메이션 생성"이라는 문구는 약간 오해의 소지가 있습니다. 절차 적 애니메이션을 염두에두고 정확하게하는 것은 아닙니다.
"애니메이션 블렌딩"은 한 클립의 가중치가 올라가고 다른 클립의 가중치가 내려가는 동안 두 애니메이션의 비트를 사용하여 두 애니메이션 클립간에 전환하는 경우입니다. 이것은 골격 애니메이션에서 가장 잘 작동하므로 각 관절의 회전이 두 개의 다른 애니메이션 클립에서 관절의 애니메이션 사이의 중간 점으로 설정되고 시간이 지남에 따라 각 클립의 가중치가 변경됩니다. 즉, 각 관절의 회전을 다음과 같이 계산합니다.
rotCombined = weightA*rotA + weightB*rotB
이제 애니메이션 블렌딩이 골격 애니메이션에서 가장 잘 작동하지만 정점 애니메이션 (예 : MD2)으로도 가능합니다. 현대 게임 엔진에서 정점 애니메이션을 사용하는 사람이 거의 없기 때문에 역사적으로 더 중요하지만 두 가지 다른 애니메이션에서 정점 위치 간의 가중치와 같은 방식으로 정점 위치를 설정할 수 있습니다. 스켈레톤 애니메이션은 메시의 다양한 부분이 전체적으로 유지되도록하는 반면에, 두 애니메이션이 너무 다른 경우 이상한 모양의 보간 (예 : 메쉬의 일부가 접히거나 뒤집어 짐)이 발생할 수 있습니다.