packages feed

reanimate-0.2.0.0: examples/blender_default_cube.hs

#!/usr/bin/env stack
-- stack runghc --package reanimate
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes       #-}
module Main (main) where

import           Data.String.Here
import           Reanimate

main :: IO ()
main = reanimate $ mkAnimation 5 $ \t ->
  let s = t * pi in
  mkGroup
  [ mkBackground "black"
  , blender (script s)
  , withFillColor "white" $
    translate 0 2 $
    mkText "default cube"
  ]
  where
    script s = [iTrim|
import bpy

if __name__ == "__main__":
    # Args
    resolution_percentage = 40

    # Setting
    default_scene = bpy.context.scene
    default_scene.render.resolution_percentage = resolution_percentage
    default_scene.render.film_transparent = True

    default_cube = bpy.data.objects["Cube"]
    default_cube.rotation_euler = (0,0,${s})

    # Rendering
    bpy.ops.render.render(animation=False, write_still=True)
|]