Rendre une animation avec Maxwell Render depuis SketchUp La

Transcription

Rendre une animation avec Maxwell Render depuis SketchUp La
Rendre une animation avec Maxwell Render depuis SketchUp
La question du jour est la suivante : comment rendre une animation avec Maxwell Render pour un modèle SketchUp ?
Si avec d’autres logiciels (3dsmax, maya, C4D...) la gestion de l’animation est immédiate, le chemin est moins direct
avec SketchUp.
La première des choses à créer ce sont les caméras qui décrivent notre animation. Pour Maxwell, une scène SketchUp
équivaut à une caméra. Je vais donc avoir autant de scènes que d’images à générer. Automatiquement bien sûr. Pour
cela j’utilise un plugin : SU Animate (version d’essai téléchargeable ici : http://www.ohyeahcad.com/suanimate/)
Avec SU Animate je crée mon chemin pour l'animation de ma caméra.
Une fois mon animation réglée, je demande à SU Animate de me créer mes scènes (caméras pour Maxwell). Petit rappel, généralement on travaille en 30 images par secondes. Si vous souhaitez une animation de 3 secondes = 90 scènes
= 90 caméras Maxwell.
J’exporte ensuite au format Maxwell.
Rendre une animation avec Maxwell Render depuis SketchUp
J’ouvre le fichier dans le Maxwell Studio. Je retrouve mes 90 caméras sur le tracé d’animation.
Si je n’ai pas fini le travail de texturage, d'éclairage dans SketchUp, je le finis dans Maxwell Studio et je sauvegarde.
Bon maintenant la question c’est comment automatiser le rendu de mes caméras ? Réponse : les scripts.
Je lance Maxwell Render. J’ai un onglet script qui me permet d’automatiser certaines actions. Cela demande bien sûr
une connaissance des habitudes de programmation ECMA (plus d’info page 140 du manuel Maxwell Render).
Par chance des amis fans de code travaillent pour nous. Nous reprenons donc un script créé par JDHill que nous allons
copier/coller dans la fenêtre du script.
Ce script lance les calculs pour une plage de caméra de ma scène, il sauvegarde l'image et le MXI et passe à la caméra
suivante.
//
//
//
//
//
//
//
This script loops through a set of cameras, specified by name and
index. It must be customized to fit the characteristics of the given
MXS file. As set up, it expects to find the MXS filled with cameras
whose names begin with 'Scene '. This base name is stored below
in the 'baseName' variable. It expects the scene numbers to begin
at 1 and to end at 3, with these limits being stored below in the
'firstFrame' and 'lastFrame' variables. It will loop through the frame
Rendre une animation avec Maxwell Render depuis SketchUp
// range looking for cameras which fit the pattern 'Scene 1', rendering
// each one as it is found.
var firstFrame = 1;
var lastFrame = 3;
var baseName = "Scene ";
// internal vars & events
var isRendering = 0;
var currentFrame = firstFrame;
var outputFolder = FileManager.getFileFolder(Scene.mxsPath);
RenderEvents["renderFinished()"].connect(renderHasFinished);
// render loop
while (currentFrame <= lastFrame)
{
renderCamera(currentFrame);
while(1)
{
if(isRendering == 0)
{
break;
}
}
currentFrame++;
}
// functions
function renderCamera(frameNumber)
{
var sceneName = baseName + frameNumber;
Scene.setActiveCamera(sceneName);
}
if (Scene.activeCameraName != sceneName)
{
Maxwell.print("The MXS contains no camera named '" + sceneName + "'!");
}
else
{
Maxwell.print("rendering Scene: " + sceneName);
Scene.setMxiPath(outputFolder + "\" + sceneName + ".mxi");
Scene.setImagePath(outputFolder + "\" + sceneName + ".png");
isRendering = 1;
Maxwell.startRender();
}
function renderHasFinished()
{
isRendering = 0;
Maxwell.print("Render finished!!");
}
Rendre une animation avec Maxwell Render depuis SketchUp
Je charge ma scène et j’adapte le script.
Par défaut :
var firstFrame = 1;
var lastFrame = 3;
var baseName = "Scene";
Dans mon cas j’ai 90 caméras de 1 à 90 et les caméras s’appellent «1, 2, 3...» sans préfixe.
var firstFrame = 1;
var lastFrame = 90;
var baseName = "";
Je lance le script et le calcul démarre sur la caméra 1 et enchaîne enuiste sur les autres caméras.
Vous trouverez dans le dossier de votre MXS, les images et les fichiers MXI.
Vous pouvez modifier les chemins de sortie dans le script :
Scene.setMxiPath(outputFolder + "\" + sceneName + ".mxi");
Scene.setImagePath(outputFolder + "\" + sceneName + ".png");

Documents pareils