Quick answer: Don’t override VERTEX assignment. Modify (VERTEX += offset) after default skinning.
Animated character with custom dissolve shader. Pose looks wrong. Vertex shader replaced VERTEX from scratch.
The Fix
shader_type spatial;
void vertex() {
// VERTEX comes pre-skinned by Godot
VERTEX += NORMAL * sin(TIME * 2.0) * 0.02;
// add wave on top of skinning
}
Modify rather than overwrite. Built-in skinning produces VERTEX in object space; your offset adds.
Verifying
Animation pose intact + extra wave. Without addition: pose lost.
“Add to VERTEX. Skinning preserved.”
Related Issues
For shader UV flip, see UV flip. For shader billboard, see billboard.
+= keeps skin. Add wave.