$bonemerge
< Zh
Jump to navigation
Jump to search
$bonemerge
是一个QC命令,可在所有的 起源 游戏中使用。
该命令在指定骨骼上设置骨骼合并标志,用于提示游戏代码该骨骼将在游戏运行期间用于骨骼合并(参见Attachments )。若未设置此标志,骨骼仍可用于合并,但会触发性能警告。

$bonemerge
还具有以下扩展用途:
- 通常†可阻止studiomdl在模型编译时剔除骨骼。作为优化流程,studiomdl会尝试删除MDL文件中非必要的骨骼,主要针对两类情况:1) 无顶点权重的骨骼;2) 其顶点权重仅关联单一骨骼的情况。前者直接删除,后者则删除骨骼并将顶点权重转移至父骨骼。通过设置
$bonemerge
可强制保留这些骨骼。若为模型所有骨骼设置此标志,理论上†可确保完整骨骼结构保留在最终MDL中。
- 该标志是实现过程化控制面部表情 的关键要素,相关过程化骨骼必须设置此标志方可生效。
通常会在大纲视图和视口中隐藏$proceduralbones 。为过程化骨骼设置此标志可强制显示。
语法
$bonemerge <骨骼名称>
在Notepad++中批量编写
当前尚无自动化工具,但可通过正则表达式手动实现,耗时约两分钟。

- 在Notepad++中打开mesh.smd
- 复制文件顶部的骨骼名称至新文件
- 按下Ctrl+H进入替换模式
- "查找目标"输入:
^\s*\d+\s*"(.+)"\s*-?\d+\s*$
- "替换为"输入:
$bonemerge "\1"
- 确保取消勾选". 匹配新行"
- 点击"全部替换"
生成的内容可粘贴至QC文件或保存为QCI文件。