Skip to content

Non-interpolated nodes NOTIFICATION_TRANSFORM_CHANGED on physics tick #103330

@lawnjelly

Description

@lawnjelly

Tested versions

Reproducible in 3.6 stable, 4.3, 4.4 RC2

System information

All

Issue description

When using physics interpolation, if you place a non-interpolated node B as a child of an interpolated node A, and move the parent node A on the physics tick, B will also receive NOTIFICATION_TRANSFORM_CHANGED on the physics tick, when the intention is usually to only move it on the frame idle.

This means:

  • Excess transforms are sent to VisualServer
  • Physics interpolation warnings may fire telling the user that the node should only be moved on the frame

This may be 3D only (not absolutely sure yet) as 2D works slightly differently.

Steps to reproduce

Create a non-interpolated child of an interpolated node, and move the parent on the physics tick.

Step through debugger / watch for warnings.

Minimal reproduction project (MRP)

FTI_noninterp_child.zip

Discussion

This has come up in multiple areas recently, specifically IK, ragdoll and XR.
See #103232 (comment)

It was a small oversight that didn't flag as a problem for the basic nodes we have working, but should be fixed before handling these above cases, where we want to use frame updates on nodes hanging from an interpolated parent.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    In progress / Assigned

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions