组合样条工具采用“分子”系统,即将多个刚性网格连接在一起,形成一个刚性整体。构建分子的流程是:首先放置根网格,然后依次添加其他刚性网格,最终组装成一个刚性集合(即多个网格相互连接并紧密结合)。整个分子可以通过旋转根网格来实现整体旋转。桥接件(桥梁网格)用于将一个分子和下一个分子连接起来,使整个组件能够沿着样条曲线进行布置。要创建实用的装配工具集,理解文件命名规范和锚点命名标准非常重要。
该系统通过构建刚性分子并使用桥接件连接它们来创建复杂的组件:
根网格
[name]_root.dae 或 root_[name].daeak_wood_pole_old_001_root.dae桥梁网格
[name]_bridge.dae 或 bridge_[name].daeak_wood_pole_old_001_bridge.dae支持垂度的桥梁
[name]_bridge_sag.dae 或 sag_[name]_bridge.daeak_wood_pole_old_001_bridge_sag.dae1.0 + sag * 0.1 进行竖向拉伸变体网格
[baseName]_var_[variantName].daeak_wood_pole_old_001_var_damaged.daeak_wood_pole_old_001.dae 和 ak_wood_pole_old_001_var_damaged.dae)刚性网格
[name].dae(未带其他特殊标识的网格均属于刚性网格)ak_wood_pole_old_001.daenail.[joinName].[pointType].[aliasName]nail.connection1.point.mainnail.connection1.head.primarynail.connection1.aux.support1. 钉状关节 (1 自由度) - 最常见(90% 用例)
nail.[joinName].point + nail.[joinName].headnail.connection1.point, nail.connection1.head2. 固定关节 (0 自由度)
nail.[joinName].point + nail.[joinName].head + nail.[joinName].auxnail.connection1.point, nail.connection1.head, nail.connection1.aux3. 球形关节 (3 自由度)
nail.[joinName].pointnail.connection1.pointnail.[joinName].[pointType].[aliasName]nail.connection1.point.main,nail.connection1.point.alternate该工具为沿样条线布置组件提供了三种分布方式:
当只启用一个组件组时,仅有一种分布 —— 在样条线的每一个网格放置位置上都放置相同的装配体。
依次循环使用所有可用的组件组,确保均匀分布。这样可以形成诸如下列的重复模式:
该模式会从样条线起点到终点一致重复。
通过权重滑块和随机种子实现概率性分布:
示例:有3个组件组,权重分别为0.8、0.4和0.1时:
如果样条线上有100个网格放置位置,可能大约会有62个位被组件组A占据,31个位被组件组B占据,7个位被组件组C占据,从而在保持比例的同时实现自然变化。
在分子组合样条工具中,每个组件组可单独选择分布方式:
这种方法非常适合创建自然且变化丰富的布置,同时可通过权重精细控制艺术效果,并由随机种子保证分布的一致性。通过随机种子滑块可以快速试验不同变体分布组合。
组合样条线工具提供了三轴(横滚/俯仰/偏航)的扰动(jitter)滑块,以便为装配体的摆放增加自然变化:
组合样条线工具具备地形塑形功能,可根据用户设计的样条自动调整周围地形,使其与装配体自然融合。这对于打造真实、与地形高度贴合的基础设施非常有用。
注意:噪声系统会自动叠加多层细节,以确保地形变化真实自然。
要制作可用的组装套件,必须仔细规划文件结构、命名规范和锚点设置。系统会自动分析套件架构,并根据分析到的连接关系自动构建“分子”。
建议将所有组装套件文件整理在专用文件夹下:
.dae格式网格每个组装套件的组件都有可配置的属性:
_sag)组装样条工具内置了强大的验证系统,可确保组装套件的结构正确。如果验证失败,系统会在控制台输出一些技术信息以便排查。
系统以健壮性优先,具体特性包括:
'W')输出nail.[joinName].[pointType].[aliasName] 格式(aliasName 可选)root 的网格log('W', logtag, ...) 格式输出rootbridge 命名和 sag 变体var 的命名规则用于任何变体nail.[joinName].[pointType].[aliasName](aliasName 可选)这篇文章对你有用吗?