【问题标题】:Simple python script with blender带有搅拌机的简单python脚本
【发布时间】:2014-04-09 19:37:36
【问题描述】:

我最近一直在为我的工作渲染很多图像,并且认为如果我知道该怎么做,就可以自动执行很多渲染。这将有助于我和同事的工作,从长远来看,我们将节省大量时间。这就是我需要的:

我有一件物品,比如说一把椅子。这把椅子必须以 4 个不同的摄像机角度进行渲染,我们必须能够在代码中指定这些角度,尽管这 4 个摄像机角度将在整个渲染期间保持稳定。 4 幅图像渲染完成后,椅子需要更换材质,然后再渲染 4 幅图像。

由于很少有编码经验,我想像这样:

伪代码:

var material = "oak"; //This is the first material
var camPosition = 0;

while(i<12) {

 for(j=0;j<=4;j++) {
    if(i == 0) {
     camPosition = 20 //Example
    }
    if(i == 1) {
     camPosition = 40 //Example
    }
    ... //Do this 4 times, for the 4 different angles

    TakePhoto AT position = camPosition;
    //Render;
 }
material = "Stone";
i++;
}

所以这基本上是运行两个循环,一个改变椅子材质的 while 循环,和一个迭代 4 个不同角度的 for 循环,然后再渲染。我希望我说清楚了,并且有一些帮助、建议或建议可以得到。

提前致谢。

【问题讨论】:

    标签: python blender


    【解决方案1】:

    首先你应该知道一些 python 脚本。从官方Python3 tutorial开始。坚持使用 python3 教程,这样您就不会学习一些在使用 blender 的 python v3.3 时会失败的旧方法。

    接下来看看如何通过python访问blender的数据。可以从官方quickstart tutorial开始。在该页面中,您还可以访问所有 blenders python 文档。

    另外考虑您可能会发现手动完成您描述的任务更容易。您可以定位相机位置并设置关键帧。您还可以为对象可见性设置动画,复制对象(使用 AltD 将拥有它们share the same mesh data)然后让一个对象可见,每个对象都有不同的材质。只需按一下渲染动画即可完成所有操作。

    TrackTo 约束可以让您定位相机并使其始终指向椅子,因此您不必同时设置角度。

    您还可以通过 blender.stackexchange 获得更多搅拌机特定帮助

    一旦你了解了一点python,下面的内容可以让你开始你想做的事情。

    import bpy
    material_list = ['oak','redwood','plastic']
    camera_positions = [[2.0,1.0,1.0],[1.0,2.0,1.0],[2.0,2.0,1.0]]
    
    for mat in material_list:
        bpy.data.objects['Chair'].material_slots[0].material = bpy.data.materials[mat]
        for campos in camera_positions:
            bpy.data.objects['Camera'].location = campos
            bpy.ops.render.render()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-07
      • 2019-02-24
      • 2014-08-19
      • 2020-01-06
      • 2013-07-09
      • 2013-02-14
      • 2017-06-15
      • 2014-01-15
      相关资源
      最近更新 更多