SuperAPI AI 工具集

collision-proxy

设计与创作

查看项目

更新于 10-31 12:26

技能介绍

Collision Proxy 是 proyecto26/blender-ai-plugin 中的一个技能,主题是为游戏物理制作简单、稳定的碰撞体。其核心主张是:优先使用基础几何体和凸包分块,而不是直接拿渲染网格当物理网格。

用途 该技能面向游戏物理与阻挡体积、Unreal UCX 导出、Unity 网格或基础碰撞体、可交互物命中盒等需求。当出现玩家穿过网格、物理系统使用渲染网格等问题时适用。

主要能力 技能给出了一套碰撞体类型与用途的对应关系:盒子用于箱子、墙、简单道具;胶囊用于角色、柱子;球体用于球类或软性近似;凸包用于有机或不规则单体;多个凸包(UCX)用于载具和复杂道具。

在 Unreal 命名方面,示例为 UCX_SM_Asset_01、UCX_SM_Asset_02,要求与关联网格的命名规则匹配以实现自动关联,且 UCX 只能使用凸包。

在 Unity 方面,建议尽量使用引擎基础几何体;网格碰撞体对动态刚体需开启 convex 选项;并保持代理集合可导出。

制作规则包括:代理略小于视觉网格以减少卡挂(具体取决于项目);凸包分块无孔洞、水密;应用缩放;原点与渲染网格对齐;集合命名为 COL_Collision_[Asset]。

验证要点包括:玩家不会穿过预期的阻挡物;网格之外没有巨大的隐形墙;车轮/角色胶囊朝向正确;按目标引擎命名。

约束 必须做:优先使用少量简单形状而非一个复杂网格;匹配引擎命名约定;将代理放在专用集合中。 禁止做:为 Blender 5.2 之前的版本编写代码或片段,或添加版本回退(该插件面向 5.2+,旧分支会教用户已不存在的 API);默认使用渲染 LOD0 作为物理网格;为 Unreal 自动凸包流程使用非凸 UCX。

脚本 scripts/make_collision.py 已在 Blender 5.2 LTS 上通过官方 Blender MCP 测试。可通过 execute_blender_code 运行(或无头运行,参见 blender-mcp-workflow 技能);运行前请阅读脚本头部了解每个参数。当用户要自行把代码粘贴进 Blender 时,给出带该已安装脚本绝对路径和其 ARGS 的简短 runpy 调用;不要内联或重写脚本,经过测试的文件本身才是关键。

调用示例: import runpy result = runpy.run_path("<skill_dir>/scripts/make_collision.py", init_globals={"ARGS": {...}})["result"]

ARGS:objects、shape、engine、max_hull_verts、replace(默认 true)。

该脚本为渲染网格生成简单的碰撞代理,并按目标引擎命名。形状支持 box(按对象定向)和 convex(求值网格的凸包)。代理放入 COL_Collision,以线框显示,不参与渲染,并父级绑定到源对象。

代理带有自定义属性 collision_proxy = "<source>|<engine>"。重复运行只会替换其自身标记的代理(每个源和引擎一个 _01);未标记的对象永远不会被改动,名称冲突会在 name_conflicts 中报告。传入 replace: false 可有意叠加额外的凸包(_02、03)。对于手工制作的多部件凸包集合,请用 replace: false 重跑(或从手工编辑的凸包上移除 collision_proxy 属性):默认重跑会替换源下所有已标记的 UCX<name>_NN,包括你复制出的代理副本。

参考指南 references/collider-recipes.md(碰撞体配方,需要时加载);references/engine-naming.md(引擎命名,需要时加载)。

限制 资料未提供该技能的收费、价格、平台支持范围、效果数据等更多信息。