【问题标题】:How to move a camera in Blender 2.61 with Python如何使用 Python 在 Blender 2.61 中移动相机
【发布时间】:2012-02-10 13:08:55
【问题描述】:

我正在寻找一个简单的脚本来使用 Python 在 Blender 2.61 中移动相机。 我认为这将是一项简单的任务,但 Camera 对象没有 loc 或类似的属性。

我只在网上找到了 Blender 2.49 的脚本,但由于 Blender 2.5 的 API 发生了巨大的变化,它们不再工作了。

我会很感激任何提示。

【问题讨论】:

    标签: python blender blender-2.61


    【解决方案1】:

    furtelwart 的回答非常有用。我做了更多的挖掘,所以你还可以设置一些关于相机和渲染的其他非常有用的属性。

    import bpy
    
    tx = 0.0
    ty = 0.0
    tz = 80.0
    
    rx = 0.0
    ry = 0.0
    rz = 0.0
    
    fov = 50.0
    
    pi = 3.14159265
    
    scene = bpy.data.scenes["Scene"]
    
    # Set render resolution
    scene.render.resolution_x = 480
    scene.render.resolution_y = 359
    
    # Set camera fov in degrees
    scene.camera.data.angle = fov*(pi/180.0)
    
    # Set camera rotation in euler angles
    scene.camera.rotation_mode = 'XYZ'
    scene.camera.rotation_euler[0] = rx*(pi/180.0)
    scene.camera.rotation_euler[1] = ry*(pi/180.0)
    scene.camera.rotation_euler[2] = rz*(pi/180.0)
    
    # Set camera translation
    scene.camera.location.x = tx
    scene.camera.location.y = ty
    scene.camera.location.z = tz
    

    我正在使用此脚本进行批量渲染。你可以在这里查看: http://code.google.com/p/encuadro/source/browse/renders/marker/model/marker_a4.py

    稍后将改进以获取命令行参数。我是 python 和 blender 的新手,所以这可能有点业余,但它确实有效。

    【讨论】:

    【解决方案2】:

    friendly user on reddit 向我指出了一个正确的解决方案:诀窍是将相机检索为Object,而不是Camera。通过这种方式,您可以通过标准方式设置位置并设置关键帧。

    如果要设置Camera 特定对象,则必须通过bpy.data.cameras 检索它。

    import bpy
    
    if(len(bpy.data.cameras) == 1):
        obj = bpy.data.objects['Camera'] # bpy.types.Camera
        obj.location.x = 0.0
        obj.location.y = -10.0
        obj.location.z = 10.0
        obj.keyframe_insert(data_path="location", frame=10.0)
        obj.location.x = 10.0
        obj.location.y = 0.0
        obj.location.z = 5.0
        obj.keyframe_insert(data_path="location", frame=20.0)
    

    【讨论】:

      【解决方案3】:

      也许bottom of this page 的摄像机装置可能是一个不错的起点。

      【讨论】:

        猜你喜欢
        • 2017-07-27
        • 2011-08-21
        • 2010-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多