System Information
Operating system: Linux-5.13.0-30-generic-x86_64-with-glibc2.34 64 Bits
Graphics card: Quadro RTX 5000/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 470.103.01
Blender Version
Broken: version: 3.0.1, branch: master, commit date: 2022-01-25 17:19, hash: rBdc2d18018171
Short description of error
Applying cloth simulation to a mesh with a bezier curve hooked to hit causes the hooked point to return to the origin. Removing the cloth simulation restores the curve point to correct location.
Exact steps for others to reproduce the error
In attached blend file, repeat my step 19 and try to move the cube.
- New file with cube
- Add plane for cloth sim, scale 0.25
- Edit plane, extrued -x vertices down in four steps of -0.5
- Create vertex group tip from lowest 2 vertices and group pin from initial 4 vertices
- With tip vertices selected, shift-s, cursor to selected
- In object mode, add empty, add "child of" relationship constraint, using tip vertex group. This will eventually hook one end of the curve guide.
- Add bezier curve. Edit and move start to x=0, y=0.5, z=2 (the world origin) rotate handle so curve starts out heading in -y direction
- Move end to x=0, y=0, z=0; rotate handle to align direction with y axis
- Add hook modifier, select empty object, select the endpoint of the bezier and assign to the hook modifier, also hit recenter (cursor still at tip)
- In object mode, make plane the parent (keep transform) of the bezier curve.
- Select plane, move -1.25 y direction
- Make cube the parent of the plane (keep offset)
- Edit cube, select -Y vertices, extrude scale 0.5 to make smaller face
- With those vertices make group hair.
- Add particle system to cube, reduce to emission to 100 generated, length 1, viewport display 5 strand steps, set hair group for density under vetex groups
16 Object mode, insert rotation & location keyframes for cube. Advance to frame 10, rotate cube +90 around z, insert rotation & location keyframes. Set animation end to 10
- Frame 1, select bezier curve, physics, make force field curve guide
18 Spacebar to show hair follows motion.
- Return to frame 0, select plane, add cloth physics (hair goes crazy - actually first display of bug); set shape-pin group to pin vertex group (hair looks good again - not sure why)
HERE IS THE BUG
Do anything, and the bezier endpoint snaps to world origin. Even select the cube, go to edit mode but do nothing, return to object mode, and you will see it. You can ctrl-z back to the good hair display and try other things to make the endpoint jump.
If I remove the cloth physics, the bezier and hair go back to normal. File was saved after removing the physics.
Also, I just checked and removing the particle system does not prevent this bug. HOWEVER, removing the bezier curve guide physics does seem to prevent the bug.
I tried reparenting the bezier to the cube instead of the plane (had to rotate the empty to realign the handles of the end point), Then added cloth physics and saw the same bug, but this time it first showed when I set the tip group as the pin, not as soon as the cloth button was clicked. Maybe some kind of loop in resolving the order of operations?