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 がロックされていると 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.

お問い合わせ