Change Viewport's Orbiting Axis While Sculpting

I am learning how to sculpt in Blender with a Wacom tablet. I'm finding that orbiting the viewport so a plane of mesh is at an ideal angle allows comfortable and ergonomic strokes to be made with the Wacom tablet. But some planes are at such angles they are very difficult to orbit the viewport an angle to make an ergonomic sculpting stroke.

This problem would be solved if I could (on the fly) cause the viewport to rotate on a custom xyz coordinate. Additionally, it would help if I could invert the x,y,or z. axis to gain additional ergonomic angles.

How do I do this with existing features or add-on? Or how about a solution that will achieve the desired effect?

In this screenshot the middle bar of clay has a diagonal stroke going from left to right. I need to orbit the viewport so each face of each other bar of clay is perpendicular to the user to make the same kind of stroke. Making the all planes of the first and third bars of clay perpendicular to the viewer seems impossible. Therefore my question.

• what do you mean by, "Better orbiting control"? – Millard Aug 19 '19 at 19:01
• @Millard if you look at object B the axis runs from top to bottom, as a result the viewport orbits around well. If there is a way to make the viewport z axis run from top to bottom for A or C the viewport would orbit those meshes with better control. As it is, A and B both lock up at points during viewport orbiting and you have to turn the mesh in contorted ways to achieve the same viewport angle that comes easy with B due to Z axis running vertically through it. – Keenan Aug 19 '19 at 20:03
• I don't know if this will solve your problem entirely, but under the user preferences - navigation - orbit, select trackball. this should help at least some. – Millard Aug 19 '19 at 20:07
• Maybe I should rephrase the question as: how do I cause the viewport to orbit relative to a different xyz coordinate system? – Keenan Aug 19 '19 at 20:16
• I'm not sure how you would do that, although it would be useful. Hope someone else will know the answer. – Millard Aug 19 '19 at 20:18

2 Answers

A workaround would be to parent a camera to an empty, as follows:

Then, in the viewport snapping settings, enable face snapping and check Align Rotation to Target.

After doing this, dragging the empty around will snap the camera perpendicular to whichever face your cursor is on.

Setting the transformation orientation to Local will allow you to transform the empty relative to its own coordinate system.

Additionally, you can enable the visibility of gizmos to be able to easily rotate the empty:

• I followed the steps above. The empty snaps to faces. The camera moves with the empty. But the camera is not pointed at the face the empty snaps to. What am I missing? – Keenan Aug 22 '19 at 1:36
• Does the camera rotate with the empty? If so, just rotate the camera itself to point directly at the empty. – Brandon Aug 22 '19 at 2:31
• It does rotate. So I can see how this could work. If it's the way I understand now, it's a very cumbersome way to do it, because I would need to make little angle changes hundreds of times during sculpting. – Keenan Aug 23 '19 at 2:32

You can use view roll for rotating the screen by the looking direction, as you do in Photoshop or GIMP or something like that.

Press SHIFT + num 4 or SHIFT + num 6 to rotate. In your case, you can set up the touch wheel of Wacom tablet to use the same key, or you can defined a new set of view3d.view_roll keymap.

• I added a screenshot with an example. I am unable with this answer to make all the planes of the first and third bar of clay perpendicular to the user to make the stroke in the example screenshot, unless there is something I am misunderstanding about how to use the roll. – Keenan Aug 22 '19 at 2:38
• @Keenan It will roll the screen(user perspective view) like you turn your monitor. So in your case, not that easy to rotate to that position. But in the case of perpendicular, then a simple addon to catch the selected face will be desired. – HikariTW Aug 22 '19 at 2:43