Skip to content

Commit

Permalink
Refactoring and adding render image and animation tasks.
Browse files Browse the repository at this point in the history
  • Loading branch information
leruaa committed Mar 15, 2014
1 parent b703171 commit 218438e
Show file tree
Hide file tree
Showing 5 changed files with 131 additions and 2 deletions.
1 change: 1 addition & 0 deletions settings.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
rootProject.name = 'blender'
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.eowise.fbxconv
package com.eowise.blender.fbxconv

import org.gradle.api.DefaultTask
import org.gradle.api.file.FileCollection
Expand Down Expand Up @@ -44,7 +44,7 @@ class FbxConv extends DefaultTask {
String outputFile = file.name.replaceFirst(~/\.[^\.]+$/, '') + ".${format.toLowerCase()}"
project.exec {
commandLine 'fbx-conv'
args '-o', format, file
args '-f', '-o', format, file
}
project.copy {
from file.parentFile
Expand Down
42 changes: 42 additions & 0 deletions src/main/groovy/com/eowise/blender/render/RenderAnimation.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.eowise.blender.render

import com.eowise.blender.render.specs.RenderSceneSpec
import org.gradle.api.DefaultTask
import org.gradle.api.Task
import org.gradle.api.tasks.TaskAction

/**
* Created by aurel on 12/03/14.
*/
class RenderAnimation extends DefaultTask {

RenderSceneSpec spec;

RenderAnimation() {
spec = new RenderSceneSpec()
}

Task configure(Closure configureClosure) {

project.configure(spec, configureClosure)

return this;
}

@TaskAction
def run() {
project.delete project.fileTree(dir: spec.blendFile.getParent(), include: '*.png')
project.delete spec.blendFile.getParent() + '/tmp'

project.exec {
commandLine 'blender', '-b', spec.blendFile, '-F', 'PNG', '-S', spec.scene, '-s', start, '-e', end, '-a'
}

project.copy {
from spec.blendFile.getParent() + '/tmp'
into spec.outputPath
include '*.png'
rename ~/([^\.]+)\.png/, spec.scene.toLowerCase() + '$1.png'
}
}
}
59 changes: 59 additions & 0 deletions src/main/groovy/com/eowise/blender/render/RenderImage.groovy
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package com.eowise.blender.render

import com.eowise.blender.render.specs.RenderSceneSpec
import org.gradle.api.DefaultTask
import org.gradle.api.Task
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.InputFile
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction

/**
* Created by aurel on 12/03/14.
*/
class RenderImage extends DefaultTask {

RenderSceneSpec spec;

RenderImage() {
spec = new RenderSceneSpec()
}

@InputFile
File getBlendFile() {
return spec.blendFile
}

@Input
String getScene() {
return spec.scene
}

@OutputDirectory
File getOutputDirectory() {
return spec.outputPath
}

@Override
Task configure(Closure configureClosure) {

project.configure(spec, configureClosure)

return this;
}

@TaskAction
def run() {

project.exec {
commandLine 'blender', '-b', getBlendFile(), '-o', "${temporaryDir}/${name}-####", '-F', 'PNG', '-S', getScene(), '-f', 1
}

project.copy {
from temporaryDir
into getOutputDirectory()
include "${name}-0001.png"
rename { fileName -> getScene().toLowerCase() + '.png'}
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package com.eowise.blender.render.specs

/**
* Created by aurel on 15/03/14.
*/
class RenderSceneSpec {

File blendFile
String scene
File outputPath

public RenderScene() {
}

def from(File file) {
blendFile = file
}

def render(String sceneName) {
scene = sceneName
}

def into(File path) {
outputPath = path
}

}

0 comments on commit 218438e

Please sign in to comment.