搭建 blender python api 的外部开发环境

news2024/11/28 11:37:01

以下都是为了不直接在 blender 的 script ide 里写脚本而做,直接在 blender 里写的话就没什么参考意义了。

首先是2个blender的设置选项,建议开启,会比较方便。

开发选项启用后,你在一些菜单上右键的话,会多出来 在线Python参考,复制Python命令 这种按钮出来。

Python工具提示启用后,则很多操作会把它对应的 Python api 直接显示给你。

都是可以加快我们开发速度的功能。

然后是 IDE 的选择,这个比较自由,vscode, PyCharm 看你高兴。

python 环境管理,建议使用 Miniconda,可以看我之前的文章。

首先,blender 的 python api 包叫 bpy,这个玩意很特殊,它要求你的python版本在 3.7 ~ 3.8 之间,也是没谁了,太奇葩了,所以我们需要用 conda 创建一个 python 3.7 的环境,专门用来给 blender 用。

一开始我是尝试直接用 pip 安装 bpy 的,结果遇到了 

LookupError: unknown encoding: future_fstrings

这种错误,百度一番发现可以用下面这个方式解决。

python -m pip install --upgrade pip wheel future-fstrings

结果后来发现,我和 bpy 这个包死磕就是在浪费时间,因为怎么折腾,它在 IDE 里都是报错的状态,这就很叫人头痛了。

然后我就发现根本不用装 bpy 这个包,有一个包叫 fake-bpy-module ,安装和你安装的 blender 相匹配版本的包,在 ide 中代码提示就不会报错了。这个包就是专门用来解决你在外部 ide 中开发 blender python api 用的,所以记住,千万不要跟 bpy 这个包死磕。

其实到这一步,已经够我们开发 blender 脚本的了,如果要执行的话,打开 blender,切到 Scripting 里,打开我们编写的 .py 文件,然后点运行就可以了。

但这样我们还需要打开 blender ,但有时我们是不想打开 blender 的。

还有一个办法是通过 subprocess 包在后台来执行脚本。

import subprocess


def run_blender_script(blender_path, internal_script_path, blend_file_path):
    try:
        # 在Blender外部运行,打开指定文件并执行脚本
        subprocess.run([blender_path, blend_file_path, '-b', '-P', internal_script_path], check=True)
    except subprocess.CalledProcessError as ex:
        print(f"Error running Blender: {ex}")


if __name__ == '__main__':
    blender_path = 'blender.exe的安装位置,不要加.exe后缀'
    blender_file_path = '创建1个单独的 .blend 文件,做为我们的工作场景'
    internal_script_path = '我们编写的要在 blender 中执行的脚本'

    run_blender_script(blender_path, internal_script_path, blender_file_path)

顺便说个题外话,如果想从 blender 中导出 unity 适用的 .fbx 文件,这几个选项很重要。

首先是场景属性中,确保单位是公制的1米(和unity的一样)。

变换里,z向前,y向上,还有应用变换一定要勾上,不勾不会改的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1450518.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络——多媒体网络

前些天发现了一个巨牛的人工智能学习网站 通俗易懂,风趣幽默,忍不住分享一下给大家, 跳转到网站 小程一言 我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素…

[职场] 面试失败的解压方式是什么 #经验分享#职场发展#知识分享

面试失败的解压方式是什么 1、心态调整:自我暗示、找人吐槽发泄情绪都是极佳的心态调整办法; 2、策略调整:当面对同一个岗位多次不成功的时候,需要我们调整策略,尝试去应聘相近的工作岗位; 3、总结提升&…

边缘计算:重塑数字世界的未来

引言 随着物联网(IoT)设备的激增和5G网络的普及,我们正站在一个计算模式的新纪元门槛上——边缘计算。这一技术范式将数据处理和分析推向网络的边缘,即设备或终端,为实时性要求较高的应用提供了前所未有的可能性。 目…

高级感的网站首屏页面,气质拿捏死死的。

高级感是客户对设计师灵魂的拷问,对于高级感的解读那真是千人千面。我尝试发一些国外的高级感首屏页面,总结出高级感的接特征。 图片要高清,精美,主题突出,有冲击力文字要有层次和对比度,尤其是大小对比和…

ESP32学习(4)——电脑远程控制LED灯

1.思路梳理 首先需要让ESP32连接上WIFI 然后创建udp socket 接着接收udp数据 最后解析数据,控制LED 2.代码实现 import network from socket import * from machine import Pin p2Pin(2,Pin.OUT)def do_connect(): #连接wifi wlan network.WLAN(network.STA_IF)…

淘宝项目实战相关知识点

淘宝各个方面的布局大部分都是常规操作,在这里我就简单记录一下练习过程中的相关知识点,比较简短。相关知识点如下: 行高的取值 假设font-size为16px line-height:normal; line-height:1.5;24px,先继承后计算 line-height:200%;3…

[office] Excel CHITEST 函数 使用实例教程 #媒体#知识分享#其他

Excel CHITEST 函数 使用实例教程 提示 此函数已由 CHISQ.TEST 函数替换,新函数可以提供更好的精确度,其名称更好地反映其用法。旧函数仍可用于与早期版本Excel 的兼容。但是,如果不需要向后兼容,那么应考虑直接使用新函数&…

51单片机编程基础(C语言):LED点阵屏

点阵屏介绍 类似于数码管,要用到肉眼视觉效应。扫描,才能把每一个LED都能选中,从而显示我们想要的图形,否则, 只能一次点亮一个LED, LED使用 51单片机点阵屏电路图: 实际连接顺序如下图&#…

js示例1(图片轮播)

<!DOCTYPE html> <html><head><meta charset"utf-8"><title>图片轮播</title><style>#box{ /*给图片盒子创建样式*/ width : 400px;height : 400px; margin: 0 auto; position: rela…

为自监督学习重构去噪扩散模型

在这项研究中&#xff0c;作者检验了最初用于图像生成的去噪扩散模型&#xff08;DDM&#xff09;的表示学习能力。其理念是解构DDM&#xff0c;逐渐将其转化为经典的去噪自动编码器&#xff08;DAE&#xff09;。这一解构过程让大家能够探索现代DDM的各个组成部分如何影响自监…

react 【七】各种hooks的使用/SPA的缺点

文章目录 1、Hook1.1 为什么会出现hook1.2 useState1.3 useEffect1.4 useContext1.5 useReducer1.6 useCallback1.7 useMemo1.8 useRef1.8.1 ref绑定dom1.8.2 ref解决闭包缺陷 1.9 useImperativeHandle1.10 useLayoutEffect1.11 自定义Hook1.11.1 什么是自定义Hook1.11.2 Conte…

问题:从完整的问题解决过程来看,( )是首要环节。A.理解问题 B.提出假设C.发现问题 D.检验假设 #学习方法#学习方法

问题&#xff1a;从完整的问题解决过程来看&#xff0c;&#xff08; &#xff09;是首要环节。A&#xff0e;理解问题 B&#xff0e;提出假设C&#xff0e;发现问题 D&#xff0e;检验假设 A.理解问题 B.提出假设 C&#xff0e;发现问题 参考答案如图所示

LabVIEW高效电磁阀性能测试

LabVIEW高效电磁阀性能测试 在核电站的安全运营中&#xff0c;电磁阀作为关键组件&#xff0c;其性能的可靠性至关重要。设计一套基于LabVIEW的电磁阀测试平台&#xff0c;既能精准测试电磁阀的多项性能指标&#xff0c;又能提高检修效率与准确性&#xff0c;进而保障核电站的…

Word docx文件重命名为zip文件,解压后直接查看和编辑

一个不知道算不算冷的知识[doge]&#xff1a; docx格式的文件本质上是一个ZIP文件 当把一个.docx文件重命名为.zip文件并解压后&#xff0c;你会发现里面包含了一些XML文件和媒体文件&#xff0c;它们共同构成了Word文档的内容和格式。 例如&#xff0c;word/document.xml文件…

平时积累的FPGA知识点(8)

平时在FPGA群聊等积累的FPGA知识点&#xff0c;第八期&#xff1a; 21 FFT IP核 有遇到过FFT IP核测量频率不准确的问题吗&#xff1f;大部分情况下都是准的&#xff0c;偶尔偏差比较大&#xff0c;IP核输入的数据用matlab计算出的频率是对的。 解释&#xff1a;可能是采样点…

扶贫|精准扶贫管理系统|基于Springboot的精准扶贫管理系统设计与实现(源码+数据库+文档)

精准扶贫管理系统目录 目录 基于Springboot的精准扶贫管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、管理员模块的实现 &#xff08;1&#xff09;用户信息管理 &#xff08;2&#xff09;贫困户信息管理 &#xff08;3&#xff09;新闻类型管理 &a…

php基础学习之可变函数(web渗透测试关键字绕过rce于回调函数)

可变函数 看可变函数的知识点之前&#xff0c;蒟蒻博主建议你先去看看php的可变变量&#xff0c;会更加方便理解&#xff0c;在本篇博客中的第五块知识点->php基础学习之变量-CSDN博客 描述 当一个变量所保存的值刚好是一个函数的名字&#xff08;由函数命名规则可知该值必…

2024年【T电梯修理】报名考试及T电梯修理考试报名

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【T电梯修理】报名考试及T电梯修理考试报名&#xff0c;包含T电梯修理报名考试答案和解析及T电梯修理考试报名练习。安全生产模拟考试一点通结合国家T电梯修理考试最新大纲及T电梯修理考试真题汇总&#xff0c;…

书生浦语大模型实战营-课程笔记(3)

本节课主要是跟着教程做的&#xff0c;操作的东西放到作业里记录了。 这里主要记录一些视频里讲的非操作性的东西。 RAG外挂知识库&#xff1f;优点是成本低&#xff0c;不用重新训练 RAG的一个整体流程。 涉及了文本相似度匹配&#xff0c;是不是和传统的问答系统&#xff0…

SpringCloud之Nacos用法笔记

SpringCloud之Nacos注册中心 Nacos注册中心nacos启动服务注册到Nacosnacos服务分级模型NacosRule负载均衡策略根据集群负载均衡加权负载均衡Nacos环境隔离-namespace Nacos与eureka的对比临时实例与非临时实例设置 Nacos配置管理统一配置管理微服务配置拉取配置自动刷新远端配置…