Pull to refresh

Рендер на удалённой машине при помощи связки Dropbox & Mail

Reading time 2 min
Views 5.3K
Я чуток увлекаюсь 3д и порендериваю порой дома всякую ерунду. Дома у меня Macbook Pro и его двухъядерного Core 2 Duo для рендера маловато, тяжёлые сцены считаются долго, на ночь оставлять жужащий вентиляторами ноут не хочется. На работе же стоит 4х-ядерный Mac Pro с Xeon'ами, подумалось мне скидывать задачи по просчёту на него, вот только как? И я за NAT'ом, и он за NAT'ом (и к тому же на стриме), сисадминского опыта у меня 0, как портфорвардинги я не пытался настроить, ни один из remote desktop'ов заставить работать не вышло. На помощь пришли Dropbox и Правила Mail'a

Сначала, почему всё-таки я выбрал связку Dropbox+Mail, а не продолжил бороться с NAT'ом: помимо большей стабильности, файлы на дропбоксе доступны с веб-интерфейса из любого места с интернетом, в том числе доступны для iPhone

Идея была такая — сцена с домашнего компьютера синхронизуется через Dropbox с рабочей машиной, дальше письмо с определённым сабжектом и с именем файла в теле запускает рендер, после рендера файлы через тот же дропбокс оказываются на домашней машине.

Столкнулся с двумя проблемами: во-первых, в Help'e для Cinema 4d, в которой я всё рендерю, ничего не сказано про работу с командной строкой под OS X; во-вторых, я ничего не понимаю в apple script. В обоих случаях оказалось, что кто-то уже задавался вопросом, решение которого можно было бы спроецировать на мои задачи.

Для командной строки я нашёл описание рендера для Maya. Файл, к которому надо обращаться лежал внутри Maya.app
Пробую то же самое для Cinema 4d.app:
правый клик по файлу -> Show package contents -> Contents -> MacOS -> CINEMA 4D
Перетаскиваю этот файл в терминал и охренеть: Синька запускается. Теперь команда: -nogui -render «filename»
(тут важно не забыть в настройках рендера сразу задать файл для сохранения, а то порендерится в пустоту)
И надо же, сработало:


Следующая задача собственно как-то начать рендер. Тут я взял за основу скрипт с Mac OS X Hints, который добавлял в Transmission присланный по почте .torrent-файл.
Всё что нужно было сделать — поменять target application на Terminal и keystroke, который посылается в Терминал, на нужную мне строчку.
Тут я, как человек ничего не понимающий ещё и в синтаксе консоли, столкнулся с тем, что скрипт ругался на слэш с пробелом «\ ». Погуглив, оказалось, что для Apple Script необходим ещё один дополнительный слэш: «\\ »
Ну и путь я тут заменил сразу на директорию Dropbox'a
Получилось так:


Теперь дело за малым: настроить Mail
Mail -> Preferences -> Rules
Добавляем новое правило
Я сделал его таким:


Когда с моего ящика приходит письмо с сабжектом renderMe, письмо помечается прочитанным, запускается скрипт, который берёт имя файла из тела письма, и чтобы проверить работает ли вообще компьютер и интернет, высылается обратное письмо с текстом, что всё ок.

Тест:


картинка, которая оказалась в дропбоксе после рендера и доступна на всех машинах в аккаунте:


судя по описанию, Maya, Modo и другие так же поддерживают рендер через командную строку. На Windows Applescript можно заменить VB'шным расширением для Outlook и, возможно, Eudora.

Интересно, у меня получилось очередное квадратное колесо или имеющий право на жизнь способ? :)
Tags:
Hubs:
+53
Comments 40
Comments Comments 40

Articles