PyCharm+Blender开发配置指南
最近需要写比较多的 blender 脚本,奈何在 mac 下没有完整的 pip 安装包,导致在 pycharm 下代码补全总是不行,虽然有 copilot 辅助也能基本搞定,但总是难以了解到很多细节。于是全网搜了下,整理出来下面的方法,以作记录。
最近需要写比较多的 blender 脚本,奈何在 mac 下没有完整的 pip 安装包,导致在 pycharm 下代码补全总是不行,虽然有 copilot 辅助也能基本搞定,但总是难以了解到很多细节。于是全网搜了下,整理出来下面的方法,以作记录。
最近需要解析 UnrealEngine 中的 uasset 文件,希望从中解析得到一些 meta 信息,如 object name,package path,UE version 等信息。unreal 的 python 接口并不能很准确获取到这些信息,且使用有较多限制,如它需要依赖一个完整的项目环境。最关键的是,当我们拿到一个孤立的 uasset 文件时,我们甚至不知道应该把它放置到项目中的哪个位置。而 UE Editor 中,一旦我们把 uasset 文件错误放置,若有其他 uasset 引用了它,轻则闪退,重则卡死。而即使我们位置摆放对了,它所依赖的 reference 若不存在,那么它的载入也会成为问题,比如它是一个 StaticMesh,那它所依赖的 Material 或 MaterialInstanceConstant 缺失时,会默认赋予它一个灰模材质,这并非我们希望的。
这里的解决办法是直接解析 uasset 文件的二进制内容,尝试从中提取一些需要的信息。
最近我们在一个项目中实现了一个小型解释器。这个解释器实现了一种简洁的表达式语言,支持常见的数学函数、向量运算和类 jsonpath 语法。整个实现由 Lexer、Parser 和 Executor 组合而成,共同实现了一个符合 LL(1) 文法的表达式语言。
这篇文章,记录一下在远程无显卡的虚拟 windows 机器上,跑起 UE5 Editor 做材质烘焙任务过程中,遇到的一个 D3D11 不兼容问题。