custom actor, fix animation compression (#3802)

Fix a missing scale factor when using the large mode in the animation
compressor. This would make some joints have a translation of near 0 if
the original animation had stuff moving a large distance

Co-authored-by: water111 <awaterford1111445@gmail.com>
This commit is contained in:
water111
2024-12-14 11:14:55 -05:00
committed by GitHub
parent 0edb88dc69
commit b3cdcf3a67
@@ -188,11 +188,12 @@ void compress_frame_to_matrix(CompressedFrame* frame,
void compress_trans(CompressedFrame* frame, const math::Vector3f& trans, bool big) {
if (big) {
// 64, 64, 32
const math::Vector3f scaled_trans = trans * 4096.f;
u64 data[1];
memcpy(data, trans.data(), 2 * sizeof(float));
memcpy(data, scaled_trans.data(), 2 * sizeof(float));
frame->data64.push_back(data[0]);
u32 data_32[1];
memcpy(data_32, &trans.z(), sizeof(float));
memcpy(data_32, &scaled_trans.z(), sizeof(float));
frame->data32.push_back(data_32[0]);
} else {
constexpr float kTransScale = 4.f / 4096.f;