Запуск Скриптов из Командной Строки
Boxshot умеет запускать скрипты вообще без пользовательского интерфейса. Вы делаете текстовый файл, помещаете туда скрипт и передаете его Boxshot на обработку. Ниже — несколько простых примеров, которые можно использовать как отправную точку.
Рендеринг книги
Давайте сделаем скрипт, который создаст для нас книгу в твердой обложке:
var m = scene.root.addMesh("book", "generator.book2.HardCover");
var g = m.generator;
// предполагаем, что все файлы лежат рядом со скриптом, который мы делаем
m.material("Front").diffuseSlot.filename = "front.jpg";
m.material("Spine").diffuseSlot.filename = "spine.jpg";
m.material("Back").diffuseSlot.filename = "back.jpg";
// поворачиваем камеру
scene.camera.setAngles(55, 30);
// подгоняем объект под изображения
g.fitToImages();
// направляем камеру на книгу
var params = {
padding : 0.1,
keepAspect : false
};
tools.fitToView(params);
// рендерим сцену
var params = {"width": 800, "height": 600, "passes": 50};
scene.render("renderer.raytracer3", "result.png", params);
Сохраните этот скрипт в файл с именем book.boxshotJs, положите рядом со
скриптом три изображения обложки, упомянутые выше, и откройте приложение
терминала/консоли в этой папке. Затем выполните:
"C:\Program Files\Appsforlife\Boxshot 5\Boxshot.exe" --run book.boxshotJs
Пользователям Mac нужно выполнить:
/Applications/Boxshot\ 5.app/Contents/MacOS/Boxshot --run book.boxshotJs
После небольшого ожидания рядом со скриптом появится файл result.png с вашей
книгой.
Рендеринг анимации вращения
В Boxshot есть более простой способ сделать это, но давайте напишем скрипт, который делает то же самое. Почему бы и нет?
Начнем так же — настроим сцену, а затем сделаем несколько рендеров, сохраняя результат в файлы с разными именами. Вот код:
// сначала настраиваем сцену
var m = scene.root.addMesh("book", "generator.book2.HardCover");
var g = m.generator;
// предполагаем, что все файлы лежат рядом со скриптом, который мы делаем
m.material("Front").diffuseSlot.filename = "front.jpg";
m.material("Spine").diffuseSlot.filename = "spine.jpg";
m.material("Back").diffuseSlot.filename = "back.jpg";
// поворачиваем камеру
scene.camera.setAngles(55, 30);
// подгоняем объект под изображения
g.fitToImages();
// направляем камеру на книгу
var params = {
padding : 0.1,
keepAspect : false
};
tools.fitToView(params);
// дальше мы будем вращать камеру вокруг объекта, сохраняя вертикальный угол и меняя горизонтальный
// параметры рендеринга всегда будут одинаковыми
var params = {"width": 800, "height": 600, "passes": 50};
var pitch = scene.camera.vangle;
var yaw = scene.camera.hangle;
var steps = 10;
var step = 360 / steps;
for (var i = 0; i < steps; i++) {
// настраиваем камеру
scene.camera.setAngles(yaw + i * step, pitch);
// формируем имя файла
var frame = (i < 10 ? "frame0" : "frame") + i + ".png";
// рендерим сцену
scene.render("renderer.raytracer3", frame, params);
}
Сохраните скрипт и запустите его так же, как и предыдущий. Через некоторое время вы получите 10 кадров анимации вращения книги.
Больше Информации о Скриптах
- Обзор — общая информация об использовании скриптов в Boxshot.
- Управление объектами — обход сцены и работа с ее элементами;
- Специальные объекты — камера, материалы, освещение итп;
- Объекты сцены — настройка встроенных объектов;
- Инструменты — использование инструментов из скриптов;
- Командная строка — запуск скриптов Boxshot из командной строки.