diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index e6a74e7685e..80e338c8e87 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -83,9 +83,11 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { const real_t *r = values.ptr(); - tt->transforms.resize(vcount / 12); + int transform3d_size = (int)sizeof(Transform3D); - for (int i = 0; i < (vcount / 12); i++) { + tt->transforms.resize(vcount / transform3d_size); + + for (int i = 0; i < (vcount / transform3d_size); i++) { TKey &tk = tt->transforms.write[i]; const real_t *ofs = &r[i * 12]; tk.time = ofs[0];