Коротко
- По умолчанию автоматический запуск скриптов из файлов .blend в Blender отключён.
- Параметр Trusted Source в файловом браузере позволяет настраивать разрешение на автозапуск для каждого файла отдельно.
- Параметр -y или --enable-autoexec в командной строке включает выполнение скриптов, а -Y или --disable-autoexec отключает его.
- Collection.objects.link() добавляет объект в коллекцию, а unlink() удаляет его из коллекции.
Что вы узнаете из этого руководства?
Встраивание Python-скриптов в файлы Blender может быть полезно для продвинутых задач, таких как риггинг и автоматизация. Риггинг — это создание систем управления и движения для персонажа или объекта. Однако возможности Python-скриптов внутри файла не ограничены, поэтому запуск скрипта из неизвестного источника может представлять угрозу безопасности.
В этом руководстве вы узнаете, как оценивать предупреждение о скриптах при открытии файла .blend, управлять автозапуском на уровне файла и общих настроек, а также разберётесь в назначении параметров командной строки. В заключительной части рассмотрим взаимосвязь коллекций и объектов в Blender Python API. Эти действия не доказывают, что скрипт безопасен: необходимо внимательно оценить источник файла и разрешение на запуск.
Требования и подготовка
Руководство основано на документации Blender по безопасности скриптов и документации Blender Python API. Одна из страниц документации API озаглавлена Blender 5.2 Python API Documentation. В источниках не указаны требования к оборудованию или учётной записи. Если вы работаете с другой версией Blender, сверьте использование API с документацией для соответствующей версии.
Перед началом оцените, откуда получен файл и действительно ли нужно запускать содержащиеся в нём скрипты. В документации Blender по безопасности рекомендуется запускать только скрипты из известных и проверенных источников. Если автозапуск отключён, это не означает, что файл не содержит код или что никакой код нельзя запустить вручную.
Пошаговая инструкция: управление разрешениями на запуск скриптов
Изучите предупреждение при открытии файла. Если в открываемом файле есть скрипт, запуск которого не разрешён, Blender может показать диалоговое окно. В предупреждении доступны варианты Allow Execution, разрешающий запуск скриптов, и Ignore, позволяющий их игнорировать. Если источник файла ненадёжен, не разрешайте выполнение.
Настраивайте Trusted Source отдельно для каждого файла. Параметр Trusted Source в файловом браузере Blender позволяет принимать решение об автозапуске для конкретного файла. Так можно оценивать каждый файл отдельно. Если файл открывается не через файловый браузер, важно проверить общие настройки по умолчанию.
Проверьте общую настройку автозапуска. Если в Preferences включён параметр Auto Run Python Scripts, настройка Trusted Source в файловом браузере по умолчанию активируется. Этот параметр может разрешить запуск скриптов и при загрузке файлов без использования файлового браузера. Предусмотрена возможность исключить из этого режима определённые каталоги. В документации приводится пример, в котором доверенными считаются пути за пределами каталога загрузок; не рассматривайте его как универсальное правило для любой рабочей среды.
Учитывайте все способы запуска скриптов. Среди способов автозапуска в документации Blender перечислены текстовые блоки данных с включённым параметром Register и анимационные драйверы, управляющие значениями с помощью выражений Python. Кроме того, даже при отключённом автозапуске существуют способы, требующие действий пользователя: ручной запуск скрипта в Text Editor и рендер с Freestyle, где стиль линий задаётся скриптами. Поэтому одной лишь проверки настроек автозапуска недостаточно, чтобы понять поведение всего кода в файле.
Различайте связи объектов и коллекций в API. В Blender Python API свойство Collection.objects содержит объекты, непосредственно находящиеся в соответствующей коллекции. Операция link добавляет объект в коллекцию, а unlink удаляет его из неё. Collection.all_objects включает объекты как самой коллекции, так и её дочерних коллекций и определено как свойство только для чтения. Анализируя, что именно меняют скрипты, не путайте эти два охвата.
Осознанно выбирайте параметр для фонового запуска. Параметры командной строки могут переопределять настройки Blender Preferences. В официальной документации приводится следующий пример разрешения на запуск драйверов и других скриптов при фоновом рендере анимации:
blender --background --enable-autoexec my_movie.blend --render-animВместо --enable-autoexec можно использовать -y. Чтобы отключить автозапуск, предусмотрены параметры --disable-autoexec и -Y. Эти параметры не отменяют необходимости оценивать надёжность запускаемого файла. Особенно важно проверять, какой файл открывается и с какими разрешениями в автоматизированных рабочих процессах.
Распространённые ошибки
Первая ошибка — считать, что отключённый автозапуск означает невозможность выполнения любого кода в файле. В документации Blender также описаны способы, требующие действий пользователя, например ручной запуск скрипта в Text Editor и рендер с Freestyle. Вторая ошибка — бездумно включать Auto Run Python Scripts, считая все каталоги надёжными. Принимайте решение о доверии с учётом источника файла.
Не путайте и параметры командной строки для включения и отключения автозапуска: -y и --enable-autoexec разрешают его, а -Y и --disable-autoexec отключают. Разрешение на запуск файла не означает, что содержащийся в нём код безопасен.
При работе с коллекциями также отделяйте непосредственно связанные с коллекцией объекты от списка, включающего объекты дочерних коллекций. Collection.objects и Collection.all_objects охватывают разные наборы объектов. Проверка этого различия в документации API поможет понять, какие объекты затронет скрипт.
Влияние на рабочие процессы в архитектуре, интерьерах и визуализации
В документации Blender безопасность скриптов не привязана к конкретным задачам в архитектуре или дизайне интерьеров. Тем не менее об этом стоит помнить в рабочих процессах визуализации, где файлы Blender передаются между командами: проверка источника файла, осознанное разрешение автозапуска и понимание того, какие изменения в сцену вносят скрипты, — разумные меры предосторожности при работе с файлами.
API коллекций помогает разобраться в базовом различии при анализе кода автоматизации, который распределяет объекты по группам. Однако источники не описывают конкретные шаблоны проектов, совместимость дополнений, производительность оборудования или условия лицензирования. Поэтому перед включением скриптов в рабочий процесс проверьте документацию API для используемой версии Blender и запускайте код только из надёжных источников.
Дальнейшие шаги
Для начала проверьте настройку Auto Run Python Scripts по умолчанию и решение Trusted Source для отдельных файлов в соответствии с вашим рабочим процессом. Затем выясните, появляется ли при работе с нужным файлом предупреждение об автозапуске и каким способом могут запускаться скрипты. Сделайте проверку источника файла частью процесса — не ограничивайтесь обходом предупреждения.
При анализе скрипта, работающего с коллекциями, различайте непосредственно связанные объекты и объекты дочерних коллекций; необходимые операции сверяйте со справочником API. В документации Blender Python API есть разделы Quickstart, API Overview и Best Practice. Документацию можно скачать для использования офлайн. Выбирайте параметр автозапуска в командной строке только после оценки надёжности файла.
Источник и лицензия
Это руководство переведено и адаптировано на турецкий язык по официальной документации Blender Scripting & Security, справочникам CollectionObjects и Collection API, а также документации Blender Python API. Лицензия источников — CC BY-SA 4.0.
Источники
Источников: 3Тексты источников не перепечатываются; короткие цитаты отмечены, остальное — наш пересказ и комментарий.
Для архитектурных бюро и команд визуализации в Турции самая практичная сторона этого руководства — внимание к безопасности файлов при принятии решений об автоматизации. Проверка источника файлов Blender, которыми обмениваются в команде, и оценка разрешения на автозапуск отдельно для каждого файла — это практичная мера предосторожности, которую можно внедрить в рабочий процесс.
В источниках не указаны цены, требования к оборудованию или прирост производительности, поэтому нельзя делать выводы об экономии средств или ускорении работы. Студенты и команды, использующие скрипты, могут применять руководство для изучения основ API коллекций; перед использованием скрипта в проекте следует отдельно проверить его надёжность и совместимость с версией Blender.
Частые вопросы
Запускаются ли Python-скрипты в Blender автоматически по умолчанию?
Нет. Согласно документации Blender, автозапуск по умолчанию отключён. Однако есть способы, требующие действий пользователя, например ручной запуск скрипта или рендер с Freestyle.
Как управлять разрешениями на запуск скриптов в файлах .blend в Blender?
В предупреждении при открытии файла можно разрешить выполнение или проигнорировать скрипты. Автозапуск также настраивается с помощью Trusted Source в файловом браузере и Auto Run Python Scripts в Preferences.
Как добавить объект в коллекцию через Blender Python API?
Collection.objects.link() добавляет объект в коллекцию, а unlink() удаляет его из неё. Collection.all_objects также включает объекты дочерних коллекций и доступно только для чтения.



