При работе с большими ландшафтными сценами в Blender иногда бывает нужно быстро вернуться к центру из той точки, в которой 3D вьюпорт находится в текущий момент. Чтобы не «крутить мышкой», можно для этого написать простой скрипт.
Положением вьюпорта в Blender можно управлять через Ptyhon API.
Для начала получим указатель на рабочую область 3D вьюпорта:
|
1 2 3 |
area = next(area for area in bpy.context.screen.areas if area.type == 'VIEW_3D') # <bpy_struct, Area at 0x000002ADB514C2E0> |
Рабочие области в Blender разбиты на регионы, чтобы разделить UI и собственно ту часть вьюпорта, в которой отображается сцена.
Получим указатель на нужный регион:
|
1 2 3 |
region = area.spaces[0].region_3d # <bpy_struct, RegionView3D at 0x000002ADB84E9420> |
Через полученный указатель мы можем получить доступ к параметрам вьюпорта, в частности — к его местоположению в сцене.
Текущее положение 3D вьюпорта определяется свойством view_location.
Мы можем просмотреть его текущее положение:
|
1 2 3 |
print(region.view_location) # <Vector (15.2686, -8.7005, 11.5624)> |
А так же установить нужное нам, просто присвоив нужные значения. Чтобы вьюпорт переместился в начало координат сцены, нам нужно присвоить свойству view_location значение (0.0, 0.0, 0.0).
|
1 |
region.view_location = (0.0, 0.0, 0.0) |
После чего вьюпорт сразу же переместится так, что будет «смотреть» в центр сцены.
Работая в какой-то удаленной точке сцены, мы можем сильно приближать или удалять вьюпорт. Поэтому будет полезно дополнительно подкорректировать расстояние расположения вьюпорта от центра, после его перемещения.
Это можно сделать через свойство региона view_distance.
Присвоим этому свойству удобное значение:
|
1 |
region.view_distance = 10 |
Теперь при выполнении скрипта, вьюпорт не только перемещается к центру сцены, но и еще отодвигается или приближается на удобное нам расстояние от центра.

.blend file on Patreon