Another problem with hooked vertices

I have a SurfCircle with many vertices. The vertices are hooked to other geometry.
Now I move this other geometry, and the hooked part of the SurfCircle curve moves nicely with it.
But if I go into edit mode (for the SurfCircle), the vertices are still in the old place - they did not move at all (and it is showing me the old shape of the curve too). Now, no meaningful edit of the vertices is possible anymore, because I can only edit the old positions.
What am I doing wrong?

On the hook modifier there are some icons that look like a camera, an eye, a cube with 4 selected verts, and sometimes the mesh icon. If you enable all these buttons then your mesh will look in edit mode the way it looks in object mode.

Be aware that editing meshes with the “use modifier when it Edit mode” button (the cube with 4 selected verts) can sometimes have behavior that you were not expecting. I have not tried to edit a hooked mesh with this enabled before but I have had problems with keeping hooks oriented to the target geometry correctly. It seems like a place ripe for getting things disconnected.

Thank you kastoria. I had hooked the verts to the faces using ctrl-h. Now when I look at the modifiers, even when in edit-mode with 1 vertex selected, the panel only seems to show the hook-modifiers for the whole (surfcircle-) curve. There is 1 modifier for each plane I connected the different vertices of the curve to. When I activate “use while in edit mode” for all these: now the curve is (correctly) in the new place, but the editable vertices (and connection-lines between them) are still in the old original place.

Can you post a .blend file or a screen shot? I’m having difficulty getting a mental picture of what is going on.

I uploaded a .blend sample.
1 vertex of the SurfCircle has been hooked to one vertex of the plane. Now, when I move the plane, the hooked part of the SurfCircle moves nicely with it. But when I edit the SurfCircle after this move, then the hooked vertex is still in its old place.

Attachments

vertex_hook_problem.blend (360 KB)

Ok, try using the “reset” and/or “recenter” button on the hook modifier when your hooked vertex is not connected to the controlling object as you expect them to be. Basically get the hooked vertex where you want it and the controlling object where you want it (your hooked mesh will look funny) and hit the “reset” button. That should make your controlling object in in the same spot as the hooked vertex.

Kastoria, using your hooktest.blend, no matter how I deform the SurfCircles by moving the connected cubes around, the vertices of the SurfCircles (when I check them in edit mode) always stay in the same place.

I just found out, the vertices locations get updated by pressing “Apply” in the hook-modifier. That could/should solve my problem (“Applying” all hook-modifiers before copying the assemblies, so I have a new/clean, fully/nicely editable start with the copies).

Thanks a LOT for your help kastoria!

Hmmm, that also “freezes” the curves, after "Apply"ing, the vertices are moved to their correct places, the modifiers are removed from the stack, and the vertices are NOT hooked to the planes anymore. Not exactly what I want. Now, in my copied versions, I had to re-hook all the vertices to their planes again…

What version of Blender are you using? That is not the behavior that I’m getting when I use the options to apply the modifier when it edit mode. I left that setting enabled in the .blend file I posted so that should not be a problem when using my file.

Hmmm, that also “freezes” the curves, after "Apply"ing, the vertices are moved to their correct places, the modifiers are removed from the stack, and the vertices are NOT hooked to the planes anymore.

As far as I know, the answer to your problem is to use the reset/recenter buttons in combination with the “apply modifier in edit mode” option. If that is not working for you then maybe you can update your workflow. It sounds like you make some circles, apply some hooks to deform the circle, then want to edit that structure. Can you make the circle, deform it in edit mode normally, then hook the verts once the circle is in the final position? I don’t see much of a difference between updating the verts in edit mode vs trying to update them by moving external objects around.

The ‘standard’ use case for the hook modifier is to animate some mesh deforms without having to set shape keys. It seems like you are trying to use it more like an edit tool.

I use 2.6.3. Which version are you using?

I am moving around planes, and the hooked vertices of the SurfCircle move with the plane. (So the movement of the planes is deforming the SurfCircles).

Reset/Recenter does not work either. (Those buttons only enabled in “edit mode”).

I guess the only solution for me now, is to “Apply” and then re-hook, after I have made substantial changes to the plane-positions/curve-shape/curve-vertex-positions. (I only need this, if I further modify the assembly by e.g. adding additional planes to it.).

The “Reset”-button resets the curve to its original shape (eliminates the previous influence of the hook).
I verified that “Use modifier while in edit mode” was activated, but I get the same result: the vertices remain totally untouched when I move the boxes in your file. (unless I press “Apply”).

I’m on version 2.62. It is very possible that the new bmesh features introduced bugs here since the basic mesh data structures changed.

I tried with 2.6.2 now, but get the same results - screenshots attached.
I moved the cube, the hooked curve follows correctly. But if I select the curve then, and go to edit mode, the vertices are still all in their original locations.

Attachments



Almost there, you need to enable “apply modifier in edit mode”.


When I do this, I get exactlythe same result: the curve deforms while moving the cube. Then I select the curve, go to edit mode, and the hooked vertex has not moved at all…

Bummer, it looks like I was mistaken. I also see that the curve deforms in edit mode but that the vertices are still in their default position. I’m out of ideas at this point unless you want to get crazy and write Python scripts to copy location data from Objects back into Vertex coordinates.

Yes, it might be a bug in Blender. Or not yet implemented. Thanks for all your help!!!
I will have to go the “manual way” for now: Press “Apply” in the modifier, before I want to apply major new modifications to my assembly. Then I have the vertices in the correct updated places, and then I have to re-hook them to the objects again.