8af27ce27ef25ae4a15c5f4c22dcce048f2fa06e
The issue was that the topology of the drawing changes when the bezier curves get resampled to poly curves in the armature modifier. This means that the crazyspace code fails to find deformed positions with the same length as the original positions. The fix does multiple things: * First, we make sure that we create an `GeometryComponentEditData` in weight paint mode. * When the armature modifier runs, we remember the current positions in this component. * Then, we store the curve offsets and weights _before_ converting the bezier curves. * Finally we deform the positions stored in the edit hint component (which have the same length as the original positions). Since the resampling just adds new points, there might be a way to avoid running the armature deformation a second time on the edit hints, but I'll leave that for another day as a performance improvement. In any case, this is only done when we actually need the deformation (e.g. in weight paint mode when we paint the weights). Pull Request: https://projects.blender.org/blender/blender/pulls/134030
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline-modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different, but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
