Deformation Axis option for simple deform modifier
Open, NormalPublic

Description

Benefits: Ability to set the deform axis without an object.

Description: Currently deformation happens on the object's local Z-axis,
The only way to change this is to use an object which sets the axis+origin.

Otherwise you have to rotate it in edit-mode (or apply the rotation later in object-mode) to fit the axis of deformation instead of changing the axis to fit your model (as it should be).

A simple option to change the axis in the modifier would solve so many headaches while modeling.

An X/Y/Z option would have to be added (see the screw modifier).

Challenges:

  • Once this is added, the Lock X and Y axis buttons need to be updated. (Could change their description to say X/Y axis as projected on dominant axis).
  • Old files loaded will need to have the axis set to Z, (see the do_versions function).

Details

Type
To Do
Campbell Barton (campbellbarton) updated the task description. (Show Details)
Campbell Barton (campbellbarton) raised the priority of this task from to Confirmed.
Campbell Barton (campbellbarton) lowered the priority of this task from Confirmed to Normal.
Campbell Barton (campbellbarton) changed Type from Bug to To Do.

Hello! I'd like to work on this.

About a year ago someone posted proposed improvements for the simple deform modifier and they look awesome.
https://www.youtube.com/watch?v=dOpJRUI_czo

The original post can be found here and there's also a python tool that could be used as a reference.
http://lists.blender.org/pipermail/bf-funboard/2015-March/006066.html

Python script:
https://github.com/mifth/mifthtools/blob/master/blender/addons/mira_tools/mi_deform.py

Granted, this goes beyond the original scope of this task, but do you think it would be possible to make the simple deform modifier behave as it does in the video I linked?

About a year ago someone posted proposed improvements for the simple deform modifier and they look awesome.
https://www.youtube.com/watch?v=dOpJRUI_czo

The original post can be found here and there's also a python tool that could be used as a reference.
http://lists.blender.org/pipermail/bf-funboard/2015-March/006066.html

Python script:
https://github.com/mifth/mifthtools/blob/master/blender/addons/mira_tools/mi_deform.py

Granted, this goes beyond the original scope of this task, but do you think it would be possible to make the simple deform modifier behave as it does in the video I linked?

Wow, it looks awesome indeed.
First I'm making the patch based on the original description, and after I'll make a v2.0 based on this :)

Great to hear that, thanks :)

Hello!

Since I won't be available until Tuesday, I've decided to post a progress what I've achieved so far. And I will continue after.
So, currently the main part is done, namely:

  • switching between the axes works just as one would expect
  • lock (projected) X and Y works as well

What I have to do:

  • there is a little bug with the Bend mode in alternate axes with the limits
  • the do_versions function

Hello!

So this is v1, please take a look :)
Thanks!

https://developer.blender.org/D1883

Hello!

I've started developing the new features based on the given video, and I've got a few questions.
I'm planning the UI, and I'm trying to keep it as close to the original as possible.
And I think the best way is to change the tab-like switching method (between twist/bend/...) into check boxes. And checking an item would bring up the part related to it.
But I'm really unsure, should we need a different origin selector, axis changer, vertex group selector, etc for every mode?
In other words, if the user sets an origin for the Twist mode, should they be able to select an other origin for Bend mode?
I think it is important to have separated controls for Deform, Lock Axes, Limits, and maybe Vertex Groups, but I'm unsure about Origin, Axis, and a new Offset feature (shown in the video). I think the last three wouldn't make too much sense, but what do you think?

Good questions!

Personally I'm in favour of a solution that hides functionality untill it's requested, so checkboxes that bring up the options sound good to me.

As for having origin selector/axis changer etc per mode... it would increase flexibility which is nice, but I'm afraid it could easily result in a cluttered (and therefore confusing/not user-friendly) modifier.
Maybe we should consider that people should add multiple Modifiers for that usecase? If we had modifier presets you could make a case for having everything self-contained, but for now it seems logical to me that we'd err on the side of simplicity.

I can't build from source, do you have a build online somewhere?

I know the guy who made that video would be interested in trying it out as well, and he would love to talk about this with you. I don't want to post his email publicly, but if you go to this website it's listed at the top of his resume: http://pioroberson.com

I've uploaded a (Linux) build (compiled with the lite option) here: https://www.dropbox.com/s/7q0duwzz7v7px2r/blender.tar.gz?dl=0 I hope you're on Linux too :P
I agree with the multiple modifiers solution! I think that's a good trade. (But I'll wait a couple of days to see what's the other's opinion.)
I'll write to the guy, thanks!

Hello!

A quick update about the tool: https://youtu.be/aqzuu3nP4mY
I'm not sure about the UI, maybe 3 columns are too many... I wanted it to be compact :)

This is looking great!

I see your concerns about the three columns, it does make everything a bit cramped, what do you think of this mockup? https://gyazo.com/6844ca6de74076fc3290426b5670a090

Hi! I noticed the development on this has kind of stopped. I have played with this on my own a bit as a way to get my feet wet with the codebase, and I now have a good working prototype for the addition, that just needs a little polishing on my end. May I be assigned this?

@Dan Marra (dmarra) - you are welcome to work on this. For quick hacks you can just finish and submit the patch.
We found task ownership doesn't work so well in these cases - and isn't really needed.

Sounds good! I'm just polishing up what I have done, and adding some backward compatibility for old saves. I opted to not do anything too fancy. While this modifier could definitely be jazzed up to be even more useful, simply having the option to pick an axis of deformation helps a lot.

I have some ideas to take this modifier to the next level, but maybe those are better in a separate ticket after some design discussion.

I am finished with this fix. I'll be submitting the patch shortly, but here is a short(ish) video demonstrating the changes:

https://youtu.be/IGIqFxBWf0s

You'll notice that I also added an option to lock on the Z axis, and disabled locking of the currently selected axis (which would flatten all geometry to a plane). Other than that, I didn't do anything drastic.

One thing I am unsure of is if the relationship between an axis object and a chosen axis is correct. Let me know if you think we should change that to simply be used as an origin as opposed to origin and axis. I am unsure ifd that is 100% necessary though, since one can just change the object origin to adjust how the deform occurs.