Подключение внешней IDE PyCharm для написания скриптов в Blender

Для написания скриптов на языке Python в Blender уже имеется встроенный текстовый редактор. Однако по своим возможностям он значительно уступает специально разработанным для написания кода IDE. Во встроенном редакторе Blender отсутствует грамотный автокомплит, не очень удобная подсветка, нет возможности организовывать проекты — всех тех вещей, которые определяют скорость и легкость написания кода. Однако совсем не сложно для написания скриптов в Blender подключить и использовать  внешнюю IDE.

Внешняя IDE для написания скриптов в Blender
Внешняя IDE для написания скриптов в Blender

На сегодня существует несколько IDE (интегрированная среда разработки) для языка Python. У каждой из них есть свою плюсы и минусы. В качестве примера подключения внешней IDE к Blender рассмотрим среду разработки PyCharm от компании JetBrains. Это достаточно мощная среда, обладающая всеми основными функциями, к тому же, у нее есть бесплатная Community версия, которая практически полностью перекрывает все обычные требования к такого рода программам.

    1. Скачать и установить на компьютер PyCharm
      1. Скачать дистрибутив с официального сайта: PyCharm Community Edition.
      2. Провести установку.
    2. Для работы PyCharm требуется установить отдельный интерпретатор языка Python. Его нужно скачать и установить на комьпютер.
      1. Скачать с официального сайта дистрибутив интерпретатора языка Python.
        1. Версию скачиваемого интерпретатора лучше всего выбирать ту же самую, которая используется в Blender.
          1. Чтобы узнать версию Python в Blender:
              1. В главном меню выбрать
                1. Help — Save System Info
              2. Указать, куда нужно сохранить файл с системной информацией о текущей версии Blender.
              3. Открыть сохраненный файл и в параграфе Python посмотреть номер используемой версии:
                1. Blender 2.77 использует Python 3.5.1

            Используемая версия Python в Blender
            Используемая версия Python в Blender
      2. Провести установку.
    3. Создать в PyCharm скрипт для использования в Blender
        1. Запустить PyCharm
        2. Создать новый проект
          1. Create New Project
        3. Указать месторасположение проекта и версию компилятора
              1. В поле Location выбрать место для размещения проекта. Например D:/Blender/motion_script.
              2. В поле Interpreter нужно указать интерпретатор Python.
      Создание проекта в PyCharm
      Создание проекта в PyCharm
      1. Нажатием правой кнопки мышки на имени проекта вызвать меню и создать новый файл для скрипта. Например motion_script.py.
Создание файла для скрипта
Создание файла для скрипт

Файл для написания скрипта готов.

  1. Для того, чтобы в PyCharm правильно работал автокомплит Blender API, нужно экспортировать файлы с его описанием из Blender и подключить в созданный проект.
    1. Для экспорта файлов с описанием автокомплита можно воспользоваться следующей утилитой: pypredef_gen.
        1. В данном проекте нам нужен только один файл pypredef_gen.py, который лежит в директории python_api.
        2. Нужно скачать этот файл и сохранить его куда-нибудь в удобное место, например на диск D:/
        3. Для того, чтобы его запустить, создадим командный файл ppg.cmd, можно там же, на диске D:/ со следующим содержанием, заменив _BLENDER_PATH_ на полный путь к Blender (например он может быть таким: %ProgramFiles%\blender_2.77, но обязательно укажите свой):

      1. Запустить созданный командный файл ppg.cmd
      2. После выполнения, там же где размещался файл pypredef_gen.py (в примере на диске D:/) будет создана директория pypredef с файлами, описывающими структуру Blender API. Сохранить ее в какое-нибудь удобное место.
      3. Созданные файлы нужно подключить к проекту в PyCharm. Можно подключить их сразу для всех проектов (делается один раз, но минус в том, что в этом случае они будут использоваться даже в проектах, не связанных с Blender) или же подключать к каждому новому конкретному проекту.
          1. Для единоразового подключения ко всем проектам (к текущему и создаваемым в будущем):
            1. В главном меню PyCharm выбрать: File — Settings
              1. Project: Имя текущего проекта — Project Interpreter
                1. Нажать на шестеренку в правом верхнем углу — More
                  1. Нажать Show Paths For The Selected Interpreter
                    1. Нажать зеленый плюсик и выбрать директорию с файлами pypredef.
        Подключение автокомплита Blender API ко всем проектам PyCharm
        Подключение автокомплита Blender API ко всем проектам PyCharm
        1. Для подключения только к текущему проекту:
          1. В главном меню PyCharm выбрать: File — Settings
            1. Project: Имя текущего проекта — Project Structure
              1. Нажать Add Content Root и выбрать директорию с файлами pypredef.
Подключение автокомплита Blender API только к текущему проекту PyCharm
Подключение автокомплита Blender API только к текущему проекту PyCharm

После выполнения этих действий автокомплит Blender API будет работать в проекте PyCharm.

Автокомплит Blender API
Автокомплит Blender API

Важное замечание:

Если не удается корректно извлеч заголовки API для автозавершения с помощью pypredef_gen, можно попробовать воспользоваться готовым паком API, который я нашел в интернете. К сожалению автор pypredef_gen не обновлял его больше года и он некорректно работает с Blender версии выше 2.78.

  1. Открыть Blender
    1. Открыть текстовый редактор
      1. Нажатием на кнопку New создать новый файл
        1. Вставить в него следующий текст, заменив _PATH_ на путь к файлу со скриптом п. 3.3.1. (в данном примере это D:/Blender/motion_script) и _FILE_NAME_ на название файла со скриптом п. 3.3.4. (в данном примере это motion_script).

Все готово. Можно переключиться в IDE PyCharm, пользуясь всеми преимуществами системы, написать в созданном файле нужные команды для выполнения скрипта, после чего вернувшись в окно Blender просто нажать на кнопку Run Script и скрипт будет выполнен.

Файл Blender с этим текстом можно сохранить как шаблонный и пользоваться им одним для написания любых скриптов.

Бонус с примером:

 Для примера введем в файл скрипта в открытом окне PyCharm следующие команды:

Этот скрипт создает куб, добавляет на него фаску, размножает его на поле 20х20 кубов и в случайном порядке приподнимает каждый из них вертикально на высоту в пределах 1. В результате получается модный технологичный «бекграунд» с кубиками. Остается назначить материал и выставить освещение. И можно запускать рендер.

Результат выполнения скрипта
Результат выполнения скрипта
  • Владимир Харлашкин

    Спасибо за подробную инструкцию.

    • Хорошего кодинга!