SkinLayerStudio API (Beta) / API Reference / Skin

quick_skin()

마크다운 다운로드

메시와 지금 있는 본으로 웨이트를 만들어, 고른 레이어 한 장에 넣습니다.

레이어를 지정하지 않으면 지금 선택된 레이어에 칠합니다. 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.

문의하기