Переключение между режимами “DEFAULT” и “FALLBACK” в Blender позволяет задействовать инструмент в первом случае выполняя драг мышкой в любом месте 3D вьюпорта, а во втором – только внутри области, ограниченной управляющим кольцом.
Переключение между этими двумя режимами вручную осуществляется выбором нужного параметра Drag в заголовке рабочей области 3D вьюпорта.
При выборе “Active Tool” включается режим “DEFAULT”, при любом другом выборе будет использоваться режим “FALLBACK”.
Переключать режим можно при помощи Blender Python API. Для примера включим режим “DEFAULT”:
1 2 3 4 |
bpy.context.tool_settings.workspace_tool_type = 'DEFAULT' area = [area for area in bpy.context.screen.areas if area.type == "VIEW_3D"][0] area.tag_redraw() |
Мы включаем нужный режим и перерисовываем вьюпорт, чтобы сразу отобразить изменения.
Однако выполнив этот код, мы увидим, что хотя режим и переключился в значение “DEFAULT”, управляющее кольцо все равно отображается на экране вьюпорта. Если мы таким же образом попытаемся включить режим “FALLBACK”, управляющее кольцо не будет отображаться во вьюпорте.
Так происходит потому, что инициализация режима DEFAULT/FALLBACK привязана еще и к вызову самого инструмента.
Включение режима FALLBACK
Для того чтобы корректно переключить текущий инструмент в режим “FALLBACK” нужно выполнить инициализацию этого инструмента, указав в его параметре as_fallback значение True.
1 |
bpy.ops.wm.tool_set_by_id(name="builtin.select_box", as_fallback=True, space_type='VIEW_3D') |
В параметре name мы передаем указание на то, какой пункт выбора будет активен:
- Tweak – builtin.select
- Select Box – builtin.select_box
- Select Circle – builtin.select_circle
- Select Lasso – builtin.select_lasso
Включение режима DEFAULT
Указать значение False в параметре as_fallback не получится.
Для переключения в режим “DEFAULT” вызовем инструмент такой же командой. После этого сразу переключим его в режим “DEFAULT”, как мы это делали сначала.
1 2 |
bpy.ops.wm.tool_set_by_id(name="builtin.select_box", as_fallback=True, space_type='VIEW_3D') bpy.context.tool_settings.workspace_tool_type = 'DEFAULT' |