问题标签 [bpy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
445 浏览

python - 使用 bpy 重命名特定对象

我有一个用于分析 3D 数据的自定义 MATLAB 脚本。我最近开始使用一款新软件将大约 150 个 3D 点随着时间的推移导出为 .fbx 文件。这些点(作为单个对象导入到 Blender 中)具有笨拙的名称,我想使用 bpy 重命名其中的大约 20 个,以适应我的 MATLAB 脚本所期望的。

例如,我想要一个名为“BottomNoseBottom_99”的对象被称为“NT”的鼻尖。我知道我可以通过右键单击在 Blender 中单独执行此操作,但我会经常这样做并且想要创建一个脚本。

我发现了很多对以下代码的引用,但我认为(我是 bpy 的新手)它仅适用于当前选择的对象:

我不知道如何仅重命名特定对象,如下所示:

BottomNoseBottom_99 = "新台币"

UpperLipTopCenter_65 = "CUL"

等等

我一直在寻找没有运气的答案。

提前致谢 -

0 投票
2 回答
336 浏览

python-3.x - 使用 bpy 渲染具有顶点颜色的对象或将顶点颜色转换为纹理

我尝试使用 bpy() 渲染一个对象(.obj 和 .ply - 两者都不起作用version 2.93.1),但它们是灰色的(没有颜色),尽管它们具有顶点颜色。

物体在meshlab中的样子

应用此代码后,我得到了一个像这样的灰色玻璃:灰色玻璃

然后我发现了如何解决这个问题,我的最终代码如下所示:

但它显示一个错误:

要修复它,我必须打开 Shader Editor,点击按钮browse material to be linked并选择Material.

执行代码后,玻璃会被着色(结果图像)。但我不知道如何自动化上一段中的流程。

另外,我想将顶点颜色转换为纹理可能会解决这个问题,但我没有找到任何地方如何使用 python 来做到这一点。

如果有人帮助我解决这个问题,我将不胜感激。

0 投票
1 回答
212 浏览

python - 如何使用 numpy 数组在搅拌机中生成网格数组?

我想使用搅拌机来可视化散点图动画,其中包含来自大型二维数组的数据,例如

这里a[i]描述了i第-个网格/对象的位置。我希望在搅拌机场景中创建这些对象。a下面的代码使用多维数据集执行此操作,但在包含数千个向量时太慢了。

如何在不循环 python 或使其尽可能快的情况下做到这一点?

0 投票
0 回答
25 浏览

python - 尝试在 Blender 中使用完整的 Python 发行版

我是 Blender 和 Python 的新手,我正在阅读一本要求我安装完整版 Python 并设置 pythonpath 的书。这本书是在 Blender 默认禁用 pythonpath 之前出版的,所以我去挖掘了一下,发现了这个https://developer.blender.org/rB7c2f0074f3fe2411daa7a6e351d7cbc535246871

它说“传递参数-python-use-system-env”,但我不知道如何准确地“传递”这个参数。我尝试将它添加到 Bender 桌面快捷方式“Target”的末尾,并尝试从 cmd 启动 Blender,在末尾添加“--python-use-system-env”。

无论哪种方式,Blender 都会启动,但没有迹象表明 Blender 会启动它,我也不知道如何检查,但 Blender 的控制台显示了早期的 Python 版本。

Windows 10 64 位

0 投票
0 回答
21 浏览

python - bpy 错误,无法打开显示,核心转储

嗨,我正在尝试使用 python 模块 bpy 渲染一些东西。

我不断收到错误无法打开控制台中转储的显示核心。

我在 Ubuntu 20.04 headless 上使用最新版本的 bpy & blender。我看过每个人都无法在这个问题上得到答案。

0 投票
0 回答
51 浏览

python-3.x - Blender 的 python 中的有效 data_path 值

我在搅拌机 2.83 python 脚本中使用 cube.keyframe_insert(data_path="scale", frame=start_frame)。“data_path”有哪些不同的有效选项?我的意思是我可以作为data_path传递的所有字符串参数是什么?我搜索了很多网站,但我无法找到答案。甚至 blender 的文档也只涉及 FCurves。

0 投票
0 回答
182 浏览

python - 如何在搅拌机中随机化多个对象的材料?

我试图在搅拌机中随机化多个对象的材料,但我发现的只是这段代码:

但这仅针对所选对象更改它。我想要的是输入我想要更改材质的对象的名称,而不仅仅是选定的对象。
例如:将场景材质中的“立方体”更改为仅以前缀“x”开头的材质,同时将“圆”的材质更改为仅以前缀“Y”开头的材质—所以现在多个对象同时更改材质,但每个对象都有自己的材质可供更改。有什么办法可以做到吗?

0 投票
2 回答
89 浏览

python - 是否可以拆分列表的元素?

两个列表结果。

我需要的是将Sphere之后的数字移动到记事本。我不知道。

001 和 010

谢谢你。

0 投票
1 回答
28 浏览

python - 在 Blender 中列出到记事本

我在 Blender 中选择了 5 个对象并运行了脚本。

对象的名称是 cube.001 ~ cube.005

我想要的是在记事本中写 001 到 005。

但是,记事本上写了“无”(5次)

谢谢你。

0 投票
0 回答
48 浏览

python - Blender python 脚本箭头

这是我想在Blener 3d(vs. 2.9x)中使用python(bpy)解决的任务: tashk 是关于创建具有一些约束的随机箭头:

箭头应始终连接两个对象(框或圆)(坐标 x1 y1 作为箭头源,x2 y2 作为目标),就像在流程图中一样。并且箭头应该有一些小的随机变化(如手绘箭头)。

我已经尝试用贝塞尔曲线手工绘制箭头,或者用某种方式绘制的箭头对象和一个格子来拉伸和旋转它们(这样它们最终可能看起来像贝塞尔曲线)。

也许还有另一种更好或更简单的方法可以用最少的参数使箭头可形成以创造有意义的变化。

也许可以从一个原始对象开始并变形某些方面,以便会有一些随机变化,但箭头仍然看起来像典型的箭头。

在 Blender 中使用 python 实现这一目标是否有最佳实践?