Наверное, каждый из нас во время длительного рендеринга периодически подходит к компьютеру, чтобы проверить не закончился ли он. Больше всего приходится делать это владельцам старых систем, так как на них рендеринг происходит особенно долго. А вот если бы по завершению рендеринга происходило какое-то оповещение, то можно было смело поставить задачу компьютеру и заниматься другим полезным делом, не задумываясь о нем.
Проигрывание звука по завершению рендеринга
К сожалению, встроенной функции в Blender для этих целей нет, но благодаря возможностям встроенного в него интерфейса программирования приложения (API), мы, с помощью нескольких строк кода, можем исправить данное неудобство. Для этого необходимо открыть текстовый редактор Blender (Text Editor), создать в нем новый документ, набрать следующие строки кода и нажать кнопку Run Script (горячая комбинация ALT + P):
1 2 3 4 5 6 7 8 9 | import bpy import aud def play(scene): Device = aud.device() Factory = aud.Factory('C:/music.mp3') Device.play(Factory.volume(1)) bpy.app.handlers.render_complete.append(play) |
В первой строчке мы подключаем модуль bpy для обращения к необходимым нам модулям. Он используется практически во всех скриптах, где идет обращение к различным модулям (кроме встроенных в python). Во второй — мы подключаем модуль aud для получения доступа к нашему устройству воспроизведения аудио.
Далее определяется функция, в которой мы получаем доступ к нашему звуковому устройству, указываем какой файл использовать для проигрывания музыки, и его громкость (значение громкости выставляется от 0 до 1). И в последней строчке нашего скрипта мы прикрепляем нашу функцию проигрывания звука к событию завершения рендеринга.
Вот таким простым способом можно заставить Blender проигрывать определенный трек по завершению рендеринга.
Выключение компьютера по завершению рендеринга
Бывают ситуации (например при создании анимации), когда рендеринг длится очень долго, и компьютер необходимо оставить включенным на всю ночь. Но если рендеринг закончится в 04:00, то до тех пор, пока Вы проснетесь, компьютер будет просто бездействовать. Или если необходимо запустить просчет анимации и уйти из дома, то было бы замечательно, если бы компьютер по завершению задания сам выключился.
Вариант для Windows
Как Вы уже, наверное, догадались и этой функции в Blender пока не существует, но немного переделав наш скрипт мы можем запросто это исправить:
1 2 3 4 5 6 7 | import bpy import subprocess def shutdown(scene): subprocess.call('Shutdown.exe -s -t 05') bpy.app.handlers.render_complete.append(shutdown) |
Во второй строчке мы прописываем модуль subprocess для обращения к операционной системе. В 5-й строке, с помощью метода call, мы вызываем, известную многим, команду завершения работы Windows. Значение 05 означает, что наш компьютер завершит свою работу через 5 секунд после завершения рендеринга. Вы же можете установить то время, которое Вам нужно.
Вариант для Linux
1 2 3 4 5 6 7 8 | import bpy import os def shutdown(scene): os.system('sudo chmod u+s /sbin/shutdown') os.system('shutdown -P 01') bpy.app.handlers.render_complete.append(shutdown) |
Данный код завершит работу компьютера через одну минуту после завершения рендеринга. Команда в 5-й строке нужна для того, чтобы можно было выполнить команду shutdown без ввода пароля суперпользователя.
Вот с помощью таких простых скриптов можно немного автоматизировать работу в Blender и упростить себе жизнь. Пользуйтесь на здоровье!
про линукс напиши, import sys
Спасибо, допишу.
Не знаю насколько это часто востребовано, но уже месяц бъюсь над автоматицацией процесса. Суть такова:
Есть «студия» и в ней стоит объект (куб, плоскость, банка…)… настроена камера.
Требуется:
Отрендерить с заданными параметрами в слот 1, поменять файл (ссылку на файл) для UV… отрендерить в слот 2… т .д.
Можно было бы сделать за счет анимации — каждый кадр, новая текстура для UV. Но я не знаю как текстуру UV прицепить к анимации.
Да, не известно насколько часто это востребовано, но чтобы автоматизировать это, нужно из официальной документации вычитать функции по работе с UV и тогда уже можно что-то шаманить.
Я все никак не соберусь сделать урок, показывающий как это делается. Потому как под все случаи уроков не наберешься, а показать суть и, чтобы дальше каждый сам, было бы не плохо.
Можно ли с помощью питона создавать интерактивные игры? (Меню, разные уровни и т.д)
Именно с помощью него и можно. По другому не получится (:smile:)
Спасибо за информацию, как раз актуальна в данный момент! Вопрос профана: — Если написать такой скрипт «Выключение компьютера после завершения рендеринга», то он будет работать каждый раз после завершения рендеринга или одноразово? Если каждый раз , то как его отменить? Заранее спасибо!(:smile:)
Будет работать одноразово.
Что не так?
Господи ты боже (:smile:)
Зачем же ты номера строк покопировал?
Я и без номеров писал, тоже самое выдаёт…
Может нужно Cycles Render поставить вместо Blender Render?
Я не знаю что там и как, но на скриншоте четко написано:
Синтаксическая ошибка в первой строке и текст строки содержащий символ «1».
Тоже соме без цифр выдавать не может. Может быть синтаксическая ошибка, но уже в другом месте.
Всё уже вроде правильно, нажал кнопку «Run Script», рендер завершился, но комп через установленное время не выключился…как не одно так другое… (:cry:)
а мне повезло все заработало))
Добрый день, Артем!
Отдельное спасибо за Ваши уроки, и вопрос: скрипт работает хорошо, выключает комп исправно, но сам рендер не сохраняется (папка в настройках рендера указана), в чем может быть причина? Спасибо.
Это применимо к анимациям. Как правило они долго рендерятся, а картинку можно и дождаться. Чтобы сохранялись картинки, скрипт нужно дорабатывать.
Если очень надо сохранить одну картинку — можно решить вопрос просто:
Просто рендерить картинку, как анимацию.
Прописать путь для сохранения в настройках и затем нажать конку «Animation».
Ну и всё. Процесс пошёл.
The script is not right. Try copy/paste from lesson.
P.S. The last line is not transported.
script started , but computer didnt shurt down .Script needs repairs
The script does not need repairs. Your knowledge of Python scripting need of repair. (:smile:)
Write the code exactly as in lesson. With all indents.
?
А как сделать, что бы рендер проходил последовательно для нескольких камер?
Эх… Вот тут был урок на эту тему:
https://cgcookie.com/tutorial/tip-switching-between-multiple-cameras/
Но теперь он входит в категорию платных (:boring:)
Если коротко, нужно использовать маркеры (:smile:)
Люди добрые, как отредерить сразу несколько фалов, видел где то, программу (называлась она типо «автомайзер или как то так»), и в ней чувак написал скрипт, который всё рэндерил по нажатии одной кнопки.
Ты сам ответил на свой вопрос. Нужен скрипт (ну или аддон, если уже написан).
Первый скрипт — вещь полезная, а вот во втором лучше переводить компьютер в спящий режим, иначе рендеры не сохранятся, и получится, что комп зря полночи гудел.
(Хотя не зря — вас убаюкивал)))))))))))
На ночь ставят только анимацию. А она сохранится.
Я еще не встречал уника, который бы одну картинку всю ночь лопатил ?
Хотя и для этих целей скрипт можно доработать.
Просто у меня комп не слишком мощный (не поверите видеокарта — gtx470)
Кстати, я сейчас на новый аппарат коплю (мне 15 лет) хочу спросить: как часто в Вашем магазине покопают модели (если не секрет) спасибо
Это же коммерческая тайна! Конечно же, я ничего сказать не могу по этому вопросу ?
Извините, я не знал. Хотя… Вот сделаю модельки, выставлю их в магазин и узнаю))))) но никому не расскажу