Для того, чтобы манипулировать трансформациями объектов при помощи матриц в Blender включен модуль “mathutils” в котором определен класс “Matrix”. С помощью этого класса можно удобно создавать нужные матрицы трансформаций – перемещения, поворота и масштаба.
Для создания матрицы масштабирования используется следующая команда:
Классический способ локализации аддона Blender (перевода аддона на разные языки) удобен тем, что для него требуется всего лишь одно обращение к Blender python API – получение текущей используемой локали. Он хорош своей независимостью, однако Blender не был бы Blender-ом, если бы не предоставил пользователям возможность локализации аддонов через свой API.
Принцип создания мультиязычных аддонов с использованием Blender python API по сути мало отличается от классического. Нам точно так же необходимо создать словарь со всеми вариантами перевода текстовых строк, используемых в нашем аддоне, и в дальнейшем пользоваться им для перевода.
Для того, чтобы выполнить переход по url-адресу из Blender – открыть нужный адрес в браузере, можно воспользоваться системным оператором wm.url_open.
Для демонстрации его работы создадим в N-панели простейшую вкладку с одной кнопкой, по нажатию на которую в браузере будет открываться нужная нам страничка.
Если нужно одновременно иметь доступ и к текущему контексту, например для работы с операторами, и к данным сцены, например для работы с мешами, мы обращаемся к двум предопределенным в Blender Python API структурам: “bpy.context” и “bpy.data”.
Например мы можем передать указатели на эти две структуры в функцию:
Python
1
2
3
4
5
6
7
8
9
10
11
importbpy
defmy_func(context,scene_data):
print(context,scene_data)
my_func(
context=bpy.context,
scene_data=bpy.data
)
# <bpy_struct, Context at 0x00000000050EF568> <bpy_struct, BlendData at 0x0000000007FA6408>
Однако в структуре контекста “bpy.context” уже есть ссылка с именем “blend_data”, которая указывает на данные сцены. С помощью этого указателя можно обращаться к данным сцены, не передавая его отдельно в явном виде.
Python
1
2
3
4
5
6
7
8
9
10
importbpy
defmy_func(context):
print(context,context.blend_data)
my_func(
context=bpy.context,
)
# <bpy_struct, Context at 0x00000000050EF568> <bpy_struct, BlendData at 0x0000000007FA6408>
Если вы хотите, чтобы ваш аддон был доступен для всех пользователей Blender по всему миру, вам обязательно нужно предусмотреть его локализацию – перевод интерфейса на разные языки.
Простейший способ сделать ваш аддон мультиязычным – классический, он используется во многих программах и, к тому же, требует минимального обращения к Blender Python API.