애니메이션은 많은 메모리를 소모할 수 있습니다. 그 비용을 줄이기 위해 Stingray는 손실 압축 방식을 사용합니다. 애니메이션을 내보낼 때 30Hz로 샘플링되고, 키프레임이 녹화됩니다. 데이터 컴파일 중에 엔진이 이 키프레임과 일치하도록 곡선 맞춤을 시도합니다. 그런 다음 이 곡선에 대한 제어점이 압축되면서 정밀도가 약간 손실됩니다. 그리고 재생 중에 엔진이 곡선을 보간하여 특정 시간 값에 대한 포즈를 찾아냅니다. 엔진이 보간에 사용하는 곡선은 DCC 도구(예: MotionBuilder)에서 사용하는 "곡선"과는 다르다는 점에 유의하십시오. 엔진은 자체 곡선 형식을 압축만을 위해 사용하며, DCC 곡선과 일치시키지는 않습니다.
압축하면 애니메이션에 약간의 변화가 발생하여 게임에서는 DCC 도구에서와 동일하게 표시되지 않습니다. 클립 설정을 사용하여 압축률을 제어함으로써 오류를 줄일 수 있습니다. 압축은 언제든 위치, 회전 또는 배율에 대해 켜거나 끌 수 있습니다(클립별).
Stingray의 손실 애니메이션 압축은 두 가지 메커니즘을 기반으로 합니다. 먼저, 곡선을 데이터에 맞춥니다. 이 곡선은 원래 애니메이션 키보다 적은 데이터로 표현할 수 있습니다. 곡선이 원래 애니메이션 키에 정확히 맞춰지지 않을 수도 있는데, 이 경우 애니메이션에 오류가 발생합니다.
두 번째로, 곡선을 제어하는 매개변수가 소수의 비트로 "패킹"되어 최대한 적은 메모리를 소모합니다. 예를 들어, 패킹된 회전 값은 겨우 4바이트만 사용합니다. 전체 회전 값은 16바이트를 사용하기 때문에 4배나 개선되는 것입니다. 하지만 이 패킹 방식은 정보 비트의 손실을 가져오기 때문에 결국 애니메이션에 추가적인 변화를 야기합니다.
이러한 변화로 인하여 애니메이션된 골격이 의도했던 위치에서 약간 벗어나는 결과가 생깁니다. 노드 체인의 각 단계마다 추가 오류가 더해지기 때문에 이러한 오류는 사지(손과 발)에서 가장 두드러집니다. 골격에 상위요소가 많을수록 변화가 커집니다.
연결 노드 100개로 이루어진 채찍 같은 터무니없이 긴 노드 체인을 만들어보면 그 차이를 확실히 알 수 있습니다.
대개 이러한 변화는 애니메이션한 오브젝트가 다른 오브젝트와 상호작용할 때에나 겨우 알아차릴 수 있을 정도로 작습니다. 예를 들어, 걷기 애니메이션에서는 발이 지면에서 미끄러지는 오류를 발견하게 될 수 있습니다. 플레이어가 양손 무기를 들고 있는 애니메이션에서는 양손이 서로 미끄러지는 모습을 보게 될 수 있습니다.
이러한 문제를 해결하는 한 가지 방법은 압축률을 줄여 오류를 더 작게 만드는 것입니다. 다른 방법은 제약 조건을 사용하는 것입니다. 예를 들어, 양손 무기의 경우 한 손을 다른 손에 구속시켜 항상 그립 형태로 유지되도록 할 수 있습니다.