为了理解blender python游戏脚本,我目前尝试使用此链接中的FPSController结构构建一个可以围绕球体行走的场景.对于重力和FPSController方向,我尝试构造一个python控制器,目前看起来像这样:
def main():
print("Started")
controller = bge.logic.getCurrentController()
me = controller.owner
distance, loc, glob = me.getVectTo((0,0,0))
grav = controller.actuators['Gravity']
strength = me['Gravity']
force = strength*(distance*distance)*glob
grav.force = force
try:
rot = Vector((0,0,-1)).rotation_difference(glob).to_matrix()
except Exception as E:
print(E)
rot = (0,0,0)
rotZ = me.orientation
me.orientation = rot*rotZ
controller.activate(grav)
main()
Run Code Online (Sandbox Code Playgroud)
大致工作,直到任何角度超过180度,然后看起来不连续.我假设这来自rotate_difference是不连续的 - 关于数学类型和实用程序的blender文档没有说什么,我还没有想到四元数表示还没有看到连续映射是否可行 - 我想有更优雅的方式实现局部Z方向是连续的鼠标依赖,而局部X和Y方向依赖于某些给定的向量,但如何?
每次我尝试打开wavefront obj文件时,都会收到不支持的文件类型错误.为什么是这样?.obj不是3D标准吗?
我安装了Blender 2.6,我正在尝试运行一个名为drawcar.py的脚本(使用PyOpenGL)
我查看了文档以导入脚本,并且只能访问Blender的python控制台.
如何使用Blender从Linux终端运行drawcar.py?
我试图通过混合器中的python脚本渲染和保存多个图像.我知道如何通过Blender GUI渲染和保存图像,但我想通过我的脚本完成所有操作,因为我使用的是一组嵌套循环,需要保存多个图像.我能够渲染图像,我想在输出成功的情况下保存图像.但我不知道它保存到哪里,当我尝试编辑文件路径时,它给出了上下文错误的错误.
我刚刚使用Blender创建了一个随机网格,我想通过Three.js导出它在HTML5中使用.我没有看到任何体面的教程,说明如何做到这一点.任何人都可以帮我解决这个问题吗?我只是希望3D网格在网络上显示,不包括动画.谢谢!
我想在Blender(v2.65a,使用Cycles引擎)中渲染场景的深度图,该场景使用到图像平面(或与其平行的任何平面,例如yz平面)的距离作为深度值.
可以使用复合节点渲染简单的深度图,如文档中所述.这里的问题是,使用的z值是基于到相机的距离,而不是图像平面.这意味着该平行线到图像平面将具有变化取决于它们所呈现的图像中的位置z值,如在这个例子可以看出(渲染描绘了立方体的前部,值已经归一化):

我想要一个深度贴图,它对于平行于图像平面的平面上的点保持相同的深度(不改变整体投影,因为深度贴图仍然必须与正常渲染一致).
这可以通过使用,根据从视线方向的角度修正值的脚本后处理当前深度图来实现,但我不知道是否有一种方式来获得正确的信息的权利了渲染过程.
那么有没有办法使用复合节点(或类似的Blender特征)根据到图像平面的距离渲染深度图?
我知道,这是一个非常简单的问题,但我到处都是.也许我错过了这一点,我不知道; 但这应该相当容易.
我的问题很简单,你如何通过Python在Blender 2.6中按名称选择对象?
在2.4-5中,可以简单地使用:
bpy.ops.object.select_name("OBJECT")
Run Code Online (Sandbox Code Playgroud)
......但这已经停止了,取而代之的是什么?
人们可以得到当前选择的对象......
bpy.context.selected_objects
Run Code Online (Sandbox Code Playgroud)
并且有一种方法来设置场景的活动对象......
bpy.context.scene.objects.active = bpy.data.objects["OBJECT"]
Run Code Online (Sandbox Code Playgroud)
还可以通过操作选择,例如select_all()或select_by_type()......
bpy.ops.object.select_all(action="TOGGLE")
Run Code Online (Sandbox Code Playgroud)
但我找不到简单地按名称选择的方法.
谢谢,我完全迷失了......
在Blender GUI中使用的框架是什么?QT?还是Tk,GTK +,FOX工具包,wxWidgets?因为Blender是跨平台应用程序.
我有一个FBX模型,我想在Blender中打开,但是当我尝试导入模型时,它说:不支持ASCII FBX文件.有没有办法以某种方式将模型导入Blender?我无法访问任何Autodesk软件.
我想为Blender的.obj文件编写一个解析器.文件格式似乎不言自明,但似乎也缺少一些数据.例如,一个简单的立方体(默认的Blender立方体)有8行顶点,但我希望看到36行(12个三角形形成一个立方体).
我认为,对我而言,混乱源于在direct3d中创建立方体的方式.Direct3d需要36个顶点才能形成立方体.所以我想我需要推断其他28个顶点.当尝试解析更复杂形状的顶点时,这种类型的猜测可能会导致问题.所以,我想如果我能找到文件格式的官方规格,它可能会让我对如何解释数据有所了解.
似乎其他人之前曾问过同样的问题:如何从BLC上的DCC工具中获取OBJ文件中适当数量的顶点,以便在OpenGL ES中使用? 但它对我没有任何有用的信息.