Введение в написание скриптов на Питоне для Блендера 2.5x. Примеры кода
Шрифт:
Поскольку операторы воздействуют на активный объект, мы должны удостовериться, что активен правильный объект, устанавливая
Этот скрипт копирует углы поворота
Три
Примеры, которые мы изучали до сих пор, показывают, что объект можно создавать в Питоне с использованием различных парадигм.
• Метод данных тщательно подражает тому, как данные сохраняются непосредственно в Блендере.
Добавляются данные, и затем объект. Для меша:
и для арматуры:
• Объект привязывается к текущей сцене и делается активным. Дополнительно, мы можем сделать вновь созданный объект активным или выбранным. Этот код одинаков для всех типов объектов.
• Заполняются данные. В случае меша, мы добавляем списки вершин и граней.
В случае арматуры, мы переключаем в режим редактирования и добавляем кость.
•
Наконец, обычно необходимо обновить модифицированные данные. В случае меша, мы явно вызываем функцию update.У арматуры подразумевается обновление, когда мы переключаем её в режим объектов.
Операторный метод добавляет объект и блок данных одновременно. Блок данных к при этом будет пустым, и должен быть заполнен позже фактическими данными.
• Добавляется объект с помощью оператора bpy.ops.object.add. Он автоматически заботится о нескольких вещах, которые мы должны были делать вручную в методе данных: он создает данные объекта (то есть меш или арматуру), привязывает объект к сцене, делает его активным и выбирает объект. С другой стороны, теперь мы должны извлечь объект и данные. Это просто, поскольку bpy.context.object всегда указывает на активный объект.
Чтобы добавить меш-объект, мы делаем
и для добавления арматуры:
• Как и в методе данных, объект нужно заполнить фактическими данными и обновить перед использованием. Для меша мы добавляем вершины и грани:
а для арматуры мы добавляем кость:
Заметьте, что нам не нужно явно входить в режим редактирования, поскольку арматура вошла в него уже при создании.
Если мы хотим сделать объект типа одного из примитивов, может существовать оператор, который создаёт примитив с желаемыми свойствами.
• Конус фактически аппроксимируется пирамидой.
Для создания меша пирамиды с 4 сторонами:
тогда как следующий код добавляет арматуру с единственной костью:
• Как и в операторном методе, мы затем извлекаем вновь созданный объект из