人性化设计工具“Humanizer”的制作过程
利用人工智能进行 OpenSCAD 3D 建模
项目持续时间:2025年8月12日约2小时
引言:灵感的火花
利用人工智能,通过Open-scad脚本编程创建一个可自定义的基本人体模型。
所有脚本均由Gemini制作。我自己没有进行任何编码工作,只是通过聊天来构思脚本内容。
阶段1:奠定基础
了解相关工具
首先,Gemini 获得了一套基本资源,用于了解项目背景以及 OpenSCAD 的最佳实践方法:
- 原始图形库一个用于创建基本形状的辅助模块库,我们已将其集成到我们的脚本中。
- 指导原则.pdf:一份至关重要的文件,概述了创建可3D打印的OpenSCAD模型的最佳实践,重点强调多样化设计和参数化原则。
- OpenSCAD过滤版文档.pdf:一份关于 OpenSCAD 语法和函数的参考指南。
这些文件确立了"设计规范",确保我们的最终模型既稳固耐用,又可根据需求进行定制,并且具备直接进行3D打印的条件。
阶段2:首次迭代——添加关节和姿势
挑战:清晰发音
首要的重大任务是改造静态的胳膊和腿部模块,使其能够在肘部和膝盖处进行旋转。这项工作包括以下内容:
- 向模块定义中添加一个角度参数(例如,elbow_angle)。
- 通过在模块内部使用 rotate() 变换功能,使前臂和小腿相对于上肢产生弯曲效果。
- ,在自定义器中创建一个带有下拉菜单(pose_selection)的"姿势"板块。
- 实现条件逻辑,根据用户选择的姿势来设置新的关节角度。
首个挑战:对称性错误
我们的首次摆姿尝试暴露了一个问题。在"坐姿"中,其中一只手臂的方向摆错了。
麻烦的第一个迹象:坐姿出现对称性错误。
这一问题源于一个典型的漏洞:在编写代码时,开发者删除了原始脚本中的镜像函数(mirror()),转而采用直接操控两条手臂角度的方式。解决方案是为右臂重新引入镜像函数,并对受镜像操作影响的旋转值进行反向处理,以确保对称和非对称姿势都能正确呈现。
阶段3:优化姿势并添加可见的关节结构
挑战:不自然的姿势和物体遮挡问题
进一步测试发现了更多细微但严重的问题。T-Pose实际上是"I-Pose",手臂直直向上伸展;而在其他姿势中,手臂会穿透身体模型。
所谓的“T型姿势”更像是“I型姿势”,暴露出角色模型旋转逻辑存在缺陷。游戏中角色行走时的手臂姿势被玩家形容为“歪七扭八”,显然需要对模型进行优化调整。
这些反馈促使我们对系统进行了重大调整:
- 可见的关节:手肘和膝盖处添加了简洁的圆柱体,肩部和臀部则采用了球形设计。这不仅提升了视觉吸引力,还清晰地标示出了关节的转动位置。
- 修复裁剪问题:新的肩关节被安置在躯干的稍外侧位置。这为防止手臂在旋转时与身体发生碰撞提供了必要的间隙空间。
- 改进后的轮换逻辑:整个手臂旋转系统经过重新设计,变得更加直观,将"抬起"(向侧面)与"摆动"(前后移动)分开操作。这最终解决了T型姿势的问题,使得"行走"等其他姿势显得更加自然。
阶段4:最终定稿与文档整理
结果:2.3版本
经过多轮迭代和调试,我们最终确定了最终版本。该模型现在完全可动,尺寸参数化,并且在视觉上连贯一致,关节结构清晰且功能性强。
。结论
人形机器人V2.3的诞生充分证明了迭代设计和清晰反馈的力量。我们以最佳实践为坚实基础,系统地解决每个问题,最终将一个简单的静态模型转变为动态且高度可定制的3D模型。从最初的简单需求到最终的精良成品,这一历程生动诠释了人类创造力与人工智能之间成功的协作模式。
人工智能指导原则。
用于OpenSCAD和3D打印的人工智能指导原则// ============================================================================= // 参数化基本模块库(V3) // ============================================================================= // --- 工程模型 --- translate([-60, 0, 0]) safe_cube([15, 20, 10], center=true); translate([-30, 0, 0]) safe_sphere(r=10); translate([0, 0, 0]) safe_cylinder(h=20, r1=8, r2=5, center=true); translate([30, 0, 0]) safe_cone(h=20, d=20, center=true); translate([60, 0,
Теги
Источник модели
