diff --git a/editor/import/3d/post_import_plugin_skeleton_rest_fixer.cpp b/editor/import/3d/post_import_plugin_skeleton_rest_fixer.cpp index 2e3e226c34..bcc315cd57 100644 --- a/editor/import/3d/post_import_plugin_skeleton_rest_fixer.cpp +++ b/editor/import/3d/post_import_plugin_skeleton_rest_fixer.cpp @@ -794,6 +794,14 @@ void PostImportPluginSkeletonRestFixer::internal_process(InternalImportCategory Quaternion new_rest_q = new_rest.basis.get_rotation_quaternion(); Quaternion old_pg_q = old_pg.basis.get_rotation_quaternion(); Quaternion new_pg_q = new_pg.basis.get_rotation_quaternion(); + + // [TINQS] Diagnostic: log before/after for first key. + if (key_len > 0) { + Quaternion bq = static_cast(anim->track_get_key_value(i, 0)); + Quaternion aq = new_pg_q.inverse() * old_pg_q * bq * old_rest_q.inverse() * old_pg_q.inverse() * new_pg_q * new_rest_q; + WARN_PRINT("[TINQS] " + String(bn) + " before=(" + String::num(bq.x,2) + "," + String::num(bq.y,2) + "," + String::num(bq.z,2) + "," + String::num(bq.w,2) + ") after=(" + String::num(aq.x,2) + "," + String::num(aq.y,2) + "," + String::num(aq.z,2) + "," + String::num(aq.w,2) + ")"); + } + for (int j = 0; j < key_len; j++) { Quaternion qt = static_cast(anim->track_get_key_value(i, j)); anim->track_set_key_value(i, j, new_pg_q.inverse() * old_pg_q * qt * old_rest_q.inverse() * old_pg_q.inverse() * new_pg_q * new_rest_q);