SkinLayerStudio API (Beta) / API Reference / Skin

quick_skin()

下载 Markdown

用网格和现有骨骼生成权重,写进你选定的一层。

不指定图层时,涂在当前选中的图层上。先选中 Layer 1 再调用,就只有 Layer 1 会变,[Base] 保持原样。默认会保留其他图层。

省略 falloff 和 resolution 时,用 scan 选出的值。分辨率只能是 64、128、256、512。像 300 这样范围外的数字不会就近改掉,而是直接拒绝。error 是 bad_resolution。falloff 不在 0 到 1 之间则是 bad_falloff。

bones 里的名字才会分到权重。其余骨骼仍留在影响列表里,权重是 0。一个名字都对不上是 no_bones。没有网格是 no_mesh。

即使成功,unseeded_bones 也可能有内容。那是落在网格外面、没坐上格子的骨骼。它们的权重是 0,过后会看起来像「只有这根骨骼不动」。相信结果之前,先把这个列表打印出来。

Trial 锁住 Quick Skin 时,error 是 trial_feature_locked。中途停下是 cancelled,图层会回到调用之前。

签名

skin.quick_skin(
    falloff=None,
    resolution=None,
    max_influences=4,
    keep_other_layers=True,
    bones=None,
) -> result
参数 含义
falloff 0 柔,1 硬。省略则用推荐值。
resolution 64、128、256、512。省略则用推荐值。
max_influences 一个点能接受的骨骼数。默认 4。
keep_other_layers True 时其他图层保持不变。
bones 要播种的骨骼名。省略则用槽里的全部骨骼。

窗口挂进度条时才会用到的 progress、target_layer_id、seed_gap、smooth_strength、smooth_iterations 也能传。脚本里要选图层,就先把那个图层设为激活,这些参数留空。

返回

字段 含义
ok 涂色是否完成。
error 失败代码。成功时为空。
layer_name 实际涂到的图层名。
vert_count 顶点数。
bone_count 骨骼数。
unseeded_bones 没坐上格子的骨骼。
elapsed_s 用了多少秒。

示例

skin = api.skin()
result = skin.quick_skin(bones=["Bip001 L UpperArm", "Bip001 L Forearm"])
print(result.ok, result.layer_name)
print(result.unseeded_bones)

要用人体图把整套人形绑定拆开,用 quick_skin_human。

💬

Need help with the API?

Open a support ticket or join the community discussion.

联系支持