Blender命令行导入文件

时间:2019-05-31 08:58:04

标签: blender

我将在Blender命令行上运行脚本。我要做的就是为多个文件运行相同的脚本。我已经完成了运行后台文件(.blend)并在Blender中运行脚本的步骤,但是由于我刚刚加载了一个文件,因此无法在另一个文件上运行脚本。

我查阅了Blender手册,但是找不到导入文件的命令。

我继续创建.blend文件并运行脚本。

blender -b background.blend -P pythonfile.py

此外,如果可以的话,如果您能告诉我如何编写相机脚本和跟踪轴以跟踪约束(Ctrl + T->跟踪约束),我将不胜感激。

非常感谢您阅读我的要求。

2 个答案:

答案 0 :(得分:0)

Blender一次只能打开一个混合文件,打开一个新文件时将清除所有打开的脚本。您想要的是一个循环,该循环使用相同的脚本文件启动每个混合文件的混合器。

在* nix系统上,您可以使用简单的shell脚本

#!/bin/sh

for BF in $(ls *.blend)
do
    blender -b ${BF} -P pythonfile.py
done

另一个跨平台解决方案是使用python-

from glob import glob
from subprocess import call

for blendFile in glob('*.blend'):
    call([ 'blender',
    '-b', blendFile,
    '--python', 'pythonfile.py' ])

Camera添加Track-to约束,将其指向Cube-

camera = bpy.data.objects['Camera']
c = camera.constraints.new('TRACK_TO')
c.target = bpy.data.objects['Cube']
c.track_axis = 'TRACK_NEGATIVE_Z'
c.up_axis = 'UP_Y'

这是从我的answer here拍摄的,该动画还使相机绕着物体旋转。

答案 1 :(得分:0)

bpy.context.view_layer.objects.active = CameraObject

bpy.ops.object.constraint_add(type='TRACK_TO')

CameraObject.constraints["Track To"].target = bpy.data.objects['ObjectToTrack']