如何在Blender中以编程方式创建逻辑砖?

10 投票
2 回答
3911 浏览
提问于 2025-04-16 01:16

我想让我的初始化脚本创建一些额外的传感器、控制器和执行器,这样可以用于一个互动的Blender应用程序(不一定是游戏)。这样做有两个好处:

  • 我可以在多个应用程序中使用这个脚本。重复创建相同的逻辑太麻烦了。而且据我所知,没有其他方法可以导入。
  • 对我来说,让我的Python模块创建逻辑块要简单得多,因为我是一名程序员。(...而且代码可以进行版本控制、同行评审、轻松记录等。)

实际上,创建一个模板文件在一定程度上解决了第一个问题。但这样一来,我就不能为不同的项目混合和匹配不同的部分,或者我得为每种可能性都创建一个模板。

我查阅了游戏引擎文档Python API,但没有找到任何线索。逻辑块的__init__方法甚至没有列在那里。

不过,如果有任何方法可以在Python中动态创建逻辑块,我想尝试一下。

注意:根据我对BGE的有限了解,你不能直接从Python访问按键。需要一个传感器。

2 个回答

2

所以——

目前来说,直接通过Python创建逻辑砖是不可能的。

当你在BGE中实例化一个对象(比如使用添加对象的执行器时),这个实例化的对象会带上它自己的逻辑砖——你可以对这些逻辑砖进行修改和重新排列,包括重新连接传感器、控制器和执行器。

我认为现在的解决办法是:你先创建一个空的矩阵,里面放一些通用的传感器、控制器和执行器,然后当你在场景中添加新对象时,调用一个函数来填充逻辑块的参数,并进行必要的连接。

6

我知道这是一篇很老的帖子,但里面的信息已经过时了。现在可以用Python来添加执行器和传感器了:http://www.blender.org/documentation/blender_python_api_2_60_6/bpy.ops.logic.html

如果还有其他人想找这个信息的话。

撰写回答