Page MenuHome

Adds roll capability to the 3d viewport
Open, NormalPublic

Description

Project: Blender Extensions
Tracker: Py Scripts Upload
Blender: 2.63
Category: 3D View
Python: 3.2
Script name: Viewport Roll
Author(s): Jace Priester
Status: Open

The viewport currently has pan and tilt but no roll ability. This script adds roll capability and uses the only remaining middle mouse + key combos to do so.

Alt + Middle Mouse allows you to use the mouse to roll.

Ctrl+Shift+Mouse wheel scroll allows you to roll via scrolling.

Details

Type
Patch

Event Timeline

Had a question about how this differs from trackball mode.

Trackball only allows you to approximate a pure roll by dragging near the edges of the screen. Currently the only way to do a pure roll of the viewport is by attaching a camera to view and R-Z-Z on the camera. This adds pure roll functionality.

Fixed a problem that caused processor usage to remain at peak after using the script. New version uploaded.

Very useful addon. Thank you!

Great addition, I was looking desperately for something like this! Thank you!

However, on my Blender (2.62 and 2.71) only the action Ctrl+Shift+wheel works, the other option (Alt+middlebutton) doesn't do anything...

Closing as archived, over 3 years old, broken.

I have a question - this addon stopped working in latest Blenders (2.76)
Can it be updated for this versions?
(Personally, I would like to see it in the trunk)

Updated. Tested and working as of 2.76.

Sorry, but I failed to enabled it on 4 win 7-8 machines
It writes

Traceback (most recent call last):

File "D:\Program Files\BLENDER.....\scripts\modules\addon_utils.py", line 343, in enable
  mod.register()
File "C:\Users\1D\AppData\Roaming....\addons\space_view3d_viewport_roll.py", line 128, in register
  bpy.utils.register_class(RollViewport)

ValueError: validating class:: 'GRAB_POINTER' not found in ('REGISTER', 'UNDO', 'BLOCKING', 'MACRO', 'GRAB_CURSOR', 'PRESET', 'INTERNAL')

THIS ADDON IS STILL BROKEN IN 2.76

Please fix this addon ASAP!

Blender developers please add this feature to Blender! It is a feature that should have been in blender from the start. I don't know how others have managed without it.
Also note the viewport roll using crlt shift mouse scroll or 4/6 numpad does not give the precision this addon gives.

Version for 2.76. Sorry, looks like I uploaded the wrong file last time. This feature won't be added to Blender. I won't soapbox here except to say I was told by the developers it is "not useful" and "duplicates an existing feature" (it obviously doesn't). Good luck.

Thanks so much!

It's hard to believe the developers would say it's not useful. I don't think they have even tried it because they would know it's no where near the function they have.

I hope you keep updating this addon as needed.

Wow, this was wrong file) That's why I failed to install it...

"not useful" O_o
Well, okay. I'm not developer (just platinum donator) so, who knows.
Will also hope on keeping updating this addon as needed...

Oh my gosh. It's working! Thank you so much for this!!

Thank you for your hard work Jace!

I wanted to add something to the conversation as well. I'm using v 2.75a and I found out what seems to be the "similar" functionality that you were told about, but as usual it is "almost" hidden for the normal blender user.

It certainly doesn't show up properly in the View menu, nor it works with the pre-assigned keyboard shortcuts. Though it is indeed related to how the currently known View Roll works (pressing NumPad 4 & 6 / CTRL + SHIFT + ScrollWheel for incremental roll).

If you look at the User Preferences > Input > 3D View then search for "View Roll" you'll get all the shortcuts assigned to this "View Roll" you can also see that they all share the same RNA code for python which is VIEW3D_OT_view_roll.rna_type

Anyway, afterwards I took one of the mouse shortcuts and changed the roll type from "Roll Left" to "Roll Angle" then configuring it to work with CTRL+ALT+Middle Press (Shift + NumPad 4 by default), and voila, it works beautifully.

One can also press Spacebar and search for "View Roll"

Despite that there's a catch, Blender native View_OT_roll works "best" while moving the mouse only from left to right, as opposed to your solution which feels more organic and allows the user to mimic the view roll to the mouse / stylus motion, which I feel has a special value especially if one is working with a CINTIQ, and for more specialized work like working with the Grease Pencil for 2D Animation.

Anyway hope this helps clear up to future people what are their choices regarding the "View Roll" functionality. Keep up the great work!

https://blender.community/c/today/4cdbbc/ ("2D Roll View" addon provided)
https://blender.community/c/rightclickselect/j4dbbc/ (related feature request)

This addon is handy, it would be interesting to have this ALT+MMB hotkey (to roll the 3D view) enabled by default in Blender 2.81.

Roll ability is also useful for CAD/Architectural workflow

I've created a github repo for anyone who wants to roll ;-)
https://github.com/capnm/b8RollViewport

Currently the shortcuts are not optional, but you can tweak it in the source code.

I've created a github repo for anyone who wants to roll ;-)

Oh my gosh. It's working again!
You rock! Thank you!

hi @Paul Kotelevets (1D_Inc) I take it this function is still not in Blender? Is it something used frequently? I could add it to the 3dview Navigation addon as it relates to this script well. hot Key pref?
@Martin Capitanio (capnm) hi, are you ok if we do this?

Thank you for your hard work Jace!
I wanted to add something to the conversation as well. I'm using v 2.75a and I found out what seems to be the "similar" functionality that you were told about, but as usual it is "almost" hidden for the normal blender user.
It certainly doesn't show up properly in the View menu, nor it works with the pre-assigned keyboard shortcuts. Though it is indeed related to how the currently known View Roll works (pressing NumPad 4 & 6 / CTRL + SHIFT + ScrollWheel for incremental roll).
If you look at the User Preferences > Input > 3D View then search for "View Roll" you'll get all the shortcuts assigned to this "View Roll" you can also see that they all share the same RNA code for python which is VIEW3D_OT_view_roll.rna_type
Anyway, afterwards I took one of the mouse shortcuts and changed the roll type from "Roll Left" to "Roll Angle" then configuring it to work with CTRL+ALT+Middle Press (Shift + NumPad 4 by default), and voila, it works beautifully.


One can also press Spacebar and search for "View Roll"

Despite that there's a catch, Blender native View_OT_roll works "best" while moving the mouse only from left to right, as opposed to your solution which feels more organic and allows the user to mimic the view roll to the mouse / stylus motion, which I feel has a special value especially if one is working with a CINTIQ, and for more specialized work like working with the Grease Pencil for 2D Animation.
Anyway hope this helps clear up to future people what are their choices regarding the "View Roll" functionality. Keep up the great work!

@Brendon Murphy (meta-androcto) Good evening. I commented 3 years ago as a reply to the OP, that the view roll functionality was already present in Blender. You can currently configure it already in 2.8 as well. I'm not talking about the add-on, but the internal capability of the view roll using VIEW3D_OT_view_roll.rna_type So it's already configurable via keymap calling view3d.view_roll. Please take a look at my prior comment for reference.

Now regarding the add-on it seems to provide some extra functionality and of course everyone is free to use the add-on instead of remapping the shortcuts themselves. That said perhaps a pre-configured built-in set of shortcuts using existing functionality would definitely be better. Cheers.

… the view roll functionality was already present in Blender.

Sorry, the view_roll operator works differently in relation to the mouse position and is unusable for me in practice.
That's why I made (or actually resurrected) the add-on.

I could add it to the 3dview Navigation addon as it relates to this script well. hot Key pref?
Capitanio (capnm) hi, are you ok if we do this?

Sure, I just want something that is practically usable for me and my students, when it's distributed with Blender, the better.

@Martin Capitanio (capnm) Hi Martin. I understand what you're saying, and I have nothing but respect for you by bringing this add-on to light, however please understand I'm not against the add-on bundling per say. What I'm against is sidelining the existing functionality leaving it incomplete by default and patching it on top. Wouldn't it be better to try to improve the current core functionality to behave in the way the add-on works at least?

Currently as seen in the attachment GIF (below), I can emulate the continuous view roll with the core method using Roll Angle Source: Roll.Angle using even the same shortcut as the add-on, and the only key difference is that in the add-on one can roll the view by dragging around the view center so it feels as if the roll is tracking the mouse pointer (very nice!), while with the current core functionality you have to move the mouse horizontally left or right towards the view center to roll CW or CCW respectively, which is of course less intuitive.

Now If you're saying the only way to get the improved behavior is by bundling the add-on, then so be it. By no means I'm undermining the hard work poured on this add-on, nor i'm against adding it, I'm merely questioning if it's really the only way to get an improved behavior built upon what we have.

Thanks again for everyone's hard work, and for your particular response, either way I hope this finds way of improvement in a future release. Cheers and good luck to your and your students :-)

… which is of course less intuitive …

Ok, I'll try in other words: Setting up the key map of the roll_angle operator
is a simple task, you can do it the way you want it (for example, by manufacturing
some Blender UI knob for it). However, this operator wasn't designed for a pointing device
and therefore does not provide a viable solution for people with hand muscles trained to draw like me.

(English isn't my native language and I would rather spend my time elsewhere than in long discussions, sorry.)

hi @Paul Kotelevets (1D_Inc) I take it this function is still not in Blender? Is it something used frequently? I could add it to the 3dview Navigation addon as it relates to this script well. hot Key pref?
@Martin Capitanio (capnm) hi, are you ok if we do this?

I will try to explain what this is about.
Well, in terms of view navigation's flexibility, Trackball = Turntable+Roll ability.

We can't afford Trackball, because it does not respect horizon as turntable does, but in architectural modeling horizon/gravity direction is pretty much significant.
Turntable + Roll is a solution, that mathematically provides the same flexibility/freedom as Trackball, but keeping horizon untouched most of time.

It isn't needed most of the time, but in cases when it's needed, you need it hard.

view roll with the core method using Roll Angle Source: Roll.Angle using even the same shortcut as the add-on,

Just wow, would never have guessed)
Well, indeed, it seems to be a default keymap problem all this time...
Also, I love smoother behaviour of the addon )

I can emulate the continuous view roll with the core method using Roll Angle Source: Roll.Angle using even the same shortcut as the add-on

Just wow, would never have guessed)
Well, indeed, it seems to be a default keymap problem all this time...
Also, I love smoother behaviour of the addon )

At some point I dropped the idea of continuous roll, it was more confusing than useful.

can be add, in the configuration the use option for those who use "emulate 3 button mouse"?

can be add, in the configuration the use option for those who use "emulate 3 button mouse"?

Oh my ;) that leaves only bad options.
The RMB is also generally used for modal operator cancel, any suggestions?

Currently:
ctrl-alt LMB zoom, was roll
ctrl-alt MMB nop, was roll
ctrl-alt RMB reset roll z-axis

alt LMB rotate
alt RMB <free>

shift-alt RMB pan
shift-alt RMB <free>

ctrl-shift-alt LMB dolly
ctrl-shift-alt RMB <free>

I will try to explain what this is about.

Oh, I see. If you haven't tried the add-on, you probably will not understand
what I'm talking about. Here are screenshots to make it clearer:

roll_angle operator:

add-on

Oh, I see. If you haven't tried the add-on, you probably will not understand

My explanation was addressed to Brandon Murphy's question, which was quoted at the top of my post:

I take it this function is still not in Blender? Is it something used frequently?

About difference between addon and default roll I said

Also, I love smoother behaviour of the addon )

That means, that I tried an addon, compared it with default roll, and figured out, that addon behaves better and smoother.
Good job!

Oh, I see. If you haven't tried the add-on, you probably will not understand

My explanation was addressed to Brandon Murphy's question, which was quoted at the top of my post:

I take it this function is still not in Blender? Is it something used frequently?

About difference between addon and default roll I said

Also, I love smoother behaviour of the addon )

That means, that I tried an addon, compared it with default roll, and figured out, that addon behaves better and smoother.
Good job!

I meant 'you guys', there is a big stack on my work-desk, I read and write the comments way too fast;)
I'm glad you like it. It makes together with the Pablo's sculpting cursor finally a more fun for me to work in Blender, but let's stay here more technical.

I see the add-on as "works for me", but using input events in the Python API is not efficient. Ideally, the responsible developer in the foundation could implement the functionality internally. I looked at the add-on that Brendon mentioned, I don't see a use case for the side bar, but I think if someone will maintain and implement the roll functionality there, it would be certainly better than an external add-on.

I'm thinking about switching the roll key map automatically, for example, by detecting "right/left-click select" and as Noki suggested "emulate 3-button mouse", instead of making it user configurable.

It will be nice if default roll will behave smooth like addon.
I think that addon's paradigm is useful both as smoother roll, and as ability to set preferable keymap.
Addons have higher degree of freedom this way.

I thought this thread was long dead until I started getting a few email post notifications and this morning there was 16 posts. I just wanted to mention my previous request experience to have view port roll built into blender.

I been using the View Port Roll Add-on ever since I start in Blender and discovered the add-on. I use it all the time!

So...several years ago I asked the developers if they could build it into Blender. They said no, it was not useful...

I don't know all the complexities of building view port roll into Blender, but it seems if an add-on works it should be possible.
I have not started using 2.8 yet and I'm not sure when I will, but when I do I'm glad this add-on will still be there for me! Thank you!

So...several years ago I asked the developers if they could build it into Blender. They said no, it was not useful...

I think for the inconvenience, that you need to reset the turntable axis, before you can start rotating the turntable again.

Anyway, I'll do my best to keep it working outside the Blender. I'm open for help with the documentation, suggestions for better usability or to improve the Python code, but please use the Issues tab https://github.com/capnm/b8RollViewport/issues this task addresses the Blender's internal issues. Thanks!

So...several years ago I asked the developers if they could build it into Blender. They said no, it was not useful...

I think I can remember that.
They said that "it was not useful, and duplicating existing functionality" ... and then removed QCD (Layers slots) from 2.8, killing almost every complex creative workflow.

That's the game rule - devs never know what is actually useful, until you will not prove it.