Hi guys, sorry for the delay in posting here.
I’m taking notes of all the feedback and reports, I should send out another update this weekend.
Awesome video as always @masterxeon1001, thanks for sharing. I do write down all ideas and suggestions, they’re valuable.
Hi @bitinn, thanks for reporting.
Internally, the tool ignores the native Blender undo command while running, to avoid undoing important steps for it to run. If Mac OS uses Cmd + Z to undo instead of Ctrl + Z, then it won’t work right. I’ll make it recognize the Cmd modifier-key, this should solve the problem.
@AlexMcKonst Wow, thanks! I’m “standing on the shoulders of giants” though, I had to read articles written by other people (cubic Bézier math, root solving etc.), and a lot of kind people in here help by spreading the word.
Just purchased and it’s incredible! Love the core concept - it’s really weird that tools like this isn’t everywhere alongside with transform tools, because it feels so natural and logical to have something like this .
Any chance for an update to work similarly to the Lattice Tool in Maya / Max when only a few points are selected? My co-workers and I use this technique a ton.
Unfortunately the current Blender Lattice implementation isn’t great with having to create a lattice, position it, create deformer, edit, etc.
Edit: Apparently Shear works for these types of edits. My apologies!
@stealthx I tested the Local View mode on 2.79 and 2.80, it’s a scene with some objects, going into Local View on an object and editing it.
It’s working in here, unless I’m not doing the same steps as you – if you find that it’s not working in v0.9.0 (May 28) then please report back.
@bitinn It should recognize Cmd+Z shortcuts now. If undo is still not working then I can send you a small test script to find out what event-type Blender puts on the Cmd key on mac (I’m a PC guy =D).
Thank you for the great update. Hidden modifiers now works really nice and other stuff too.
In Local View shortcut, there is a new “Frame Selected” option in 2.80, which should be OFF (in 2.79 it is always ON). If it is ON and you work on some little part on the side of the object and enter Local View, it will zoom out to show whole object. It will be core of the problem.
I’m sure that somebody will disagree but “Frame Selected” should be OFF by default in Blender.
Test with Bezier Mesh Shaper:
Enter “Local View”
Then rotate view 180°
Use “Bezier Mesh Shaper”
Viewport auto rotates that you really don’t know where were you working.
Local View - Frame Selected = OFF should solve the viewport jumping.
@stealthx Hi, I tried these steps with and without the Frame Selected option (in the keymap settings for the Local View shortcut), but in both cases the viewport stays still as expected.
This was tested on 2.80 Windows 64, June 04.
What it does is store the viewport location/rotation/distance, step out of local view, add the curve, then step back in to local view, then restore that viewport location/rotation/distance. So there shouldn’t be any visual changes – independent of the state of the Frame Selected option.
I isolated it into a test, see if you can try this. You open a Text Editor on a Blender 2.80 viewport, press the “+ New” button, paste what’s below, then press the “Run Script” button (all these buttons are on the Text Editor header bar:
Local View Test (Python)
import bpy
class SimpleOperator(bpy.types.Operator):
"""Tooltip"""
bl_idname = "view3d.local_view_test"
bl_label = "Local View Test"
def execute(self, context):
if context.space_data.local_view:
oldViewLocation = context.region_data.view_location.copy()
oldViewRotation = context.region_data.view_rotation.copy()
oldViewDistance = context.region_data.view_distance
bpy.ops.view3d.localview()
# Do something while outside of local view.
# . . .
bpy.ops.view3d.localview()
context.region_data.view_location = oldViewLocation
context.region_data.view_rotation = oldViewRotation
context.region_data.view_distance = oldViewDistance
self.report({'INFO'}, 'Local View detected, test complete')
else:
self.report({'WARNING'}, 'Local View not active, aborting...')
return {'FINISHED'}
def register():
bpy.utils.register_class(SimpleOperator)
def unregister():
bpy.utils.unregister_class(SimpleOperator)
if __name__ == "__main__":
register()
You can find this operator with the Spacebar / F3 search, using it in those steps you mentioned instead of BMS.
It looks like it store the viewport location when you enter local view and then use this same location for camera every time you use the Bezier Shaper.
The test script doesn’t jump. It is at the end of the gif.
Mr Navega, um… sir… I see you my suggestion to Master above that he should try to persuade you to add lattice support… Does this mean you liked that I said he has clout, or that you like the idea of giving us the ability to edit lattices with BMS?.. I really, really hope you add it! Please-o-please-o-please!
I missed something, since March 13 there’s been this 2.80 API command to add objects to local view, so we can use that to replace the hacky way being used right now, which gives that local view problem (thanks to @MACHIN3for that reference).
Hi guys. @norka, just to clarify, do you mean being able to deform the points of the lattice objects that are used with the Lattice modifier?
As it is now, it won’t accept a cyclic selection (it’ll warn you about it), like those cyclic edge loops that you get with Alt + Click, because it expects a disconnected vertex as starting point, to build the curve.
Maybe this can be added, I was thinking of a way to do that. I’ll have to do some tests.
@dank0 Looks like Blender is failing on importing numpy. A web search suggests it’s related to a faulty installation of numpy (wrong version, double installs, wrong folder etc.).
On Blender, open a Python Console view (it’s an editor type, like the 3D View, UV/Image editor etc.), then type these lines:
import numpy
numpy.__path__
This should show the full path to the numpy package.
Then download the latest numpy from here: https://pypi.org/project/numpy/#files (I suggest the “numpy-1.17.0-cp35-cp35m-manylinux1_x86_64.whl” file).
This .whl file is an archive, you can open it and look for a ‘numpy’ folder. Extract that folder to that path that you saw in the Python Console, then restart Blender and it should work.
The alternative is to use the “pip” command to automatically install Numpy, but some say it doesn’t always solve the problem: https://stackoverflow.com/a/52225972
Oh man, I do hope that lattice functionality is coming… I just learned that I have yet another gig coming from my client that has me yearning for BMS on lattices even more…
Added a simple support for editing Lattice objects with the curve, picking 2 lattice points to form a curve between them:
Changed the Proportional Edit Mode picker to be a drop-down menu. This makes
it clearer what mode you’re currently in.
Minor fix with 2.80 and local view mode.
@norka it turns out that lattice points don’t have a selection history like meshes do, so the support for lattice objects is limited to 2 selected points at a time, that is, a 1-segment curve (because there’s no way to know what order that you selected the points).
Even so, you can hit unbind → edit curve → rebind to be able to add more curve segments.
@unkerjay Interesting add-on! It seems to be based on a compiled binary, that’s why it doesn’t run on Linux yet (it could if it gets built for that OS of course, as well as macOS). BMS is written in Python so it uses Blender’s cross-platform libs.
I’d say BMS is in the “deformer” category of add-ons and that one seems to be a “generator” add-on (even though it works on preexisting meshes): it resets the mesh to a plane that you can then profile with the curves, making it similar to Kingsnorth’s Curves To Mesh. So I think it’s not worth it to add this kind of feature, it’d be openly competing with something that is already popular.
If you want to deform a mesh that might already have details in it (like a long Chinese dragon for example, making it point in another direction but preserve surface detail), or even meshes without details like hair cards etc. then BMS would be the tool for that.