클리핑 마스크
업데이트: 2020/07/30
클리핑 마스크는 눈 깜빡임 동작 등에 자주 사용됩니다.
여기에서는 클리핑 마스크의 순서에 대해 설명합니다.
클리핑 마스크 절차
마스크로 만들 아트메쉬의 ID를 지정하면 클리핑 마스크를 사용할 수 있게 됩니다.
여기에서는 흰자의 아트메쉬로 검은자 부분의 아트메쉬에 대해 클리핑 마스크를 적용하기까지의 단계를 소개합니다.
먼저 마스크로 만들 아트메쉬(흰자 부분)를 선택하고 복사합니다.
클리핑할 아트메쉬(검은자 부분)를 선택하고 [인스펙터] 팔레트의 [클리핑] 필드에 붙여넣습니다.
[클리핑]에 마스크로 만들 아트메쉬의 ID(ArtMesh36)가 붙여넣기 되고 검은자 부분이 클리핑됩니다.
아래의 절차에서도 마찬가지로 클리핑 마스크를 적용할 수 있습니다.
- 마스크로 만들 아트메쉬를 선택하고 [인스펙터] 팔레트에서 [ID]의 텍스트를 복사합니다.
- 클리핑할 아트메쉬를 선택하고 [인스펙터] 팔레트의 [클리핑]에 붙여넣습니다.
TIPS
쉼표로 구분하여 여러 아트메쉬를 지정할 수 있습니다. (예: ArtMesh1, ArtMesh2…)
POINT
SDK 이외의 동영상 작품 등에서 사용하는 경우 클리핑 마스크는 많이 사용해도 문제 없습니다.
파츠 트리에서 오브젝트 추가/삭제
아래 그림의 빨간색 테두리 버튼으로도 클리핑 마스크를 적용할 수 있습니다.
- 아래 그림의 빨간색 테두리 버튼을 클릭합니다.
- 마스크로 만들 아트메쉬에 체크합니다.
클리핑 관계에서 오브젝트 선택
클리핑 마스크 선택
대상 오브젝트를 선택하고 [클리핑] 오른쪽 끝의 과녁 마크 버튼을 클릭하면 클리핑 마스크에 사용할 오브젝트를 선택할 수 있습니다.
또한 [모델링] 메뉴 → [클리핑] → [클리핑 마스크 선택]으로도 실행할 수 있습니다.
클리핑 역순으로 찾기
[모델링] 메뉴 → [클리핑] → [클리핑 역순으로 찾기]에서 선택한 오브젝트를 클리핑 마스크로 사용하는 오브젝트를 역순으로 선택할 수 있습니다.
예를 들어, 샘플 모델 「무지개 색 마오」에서는 왼쪽 흰자를 선택하고 [클리핑 역순으로 찾기]를 클릭하면 왼쪽 흰자를 클리핑 마스크로 사용하는 아래의 오브젝트가 선택됩니다.
・왼쪽 반짝반짝
・왼쪽 하이라이트(1, 2, 3)
・왼쪽 눈알
SDK 사용 시 클리핑 주의점
게임 개발 등을 목적으로 하고 SDK에 대한 임베디드를 상정하고 있는 경우는 반드시 아래의 주의점을 확인해 주세요.
- 클리핑 상한
-
Cubism 3 SDK 이상의 클리핑 렌더링 방식에서는 클리핑에 지정한 ID의 순열 종류가 일정 수를 초과하면 표시가 흐트러지는 등 문제가 발생할 수 있습니다.
실제 특성은 프로그램의 구현에 의존하기 때문에 실제 기기로 표시를 확인해 주세요.자세한 원리에 관해서는 SDK 매뉴얼의 「마스크 전처리 방식」을 확인해 주십시오.
- 부하·성능 저하
- 일부 환경에서는 클리핑으로 인한 부하가 커질 수 있습니다.
사용은 필요 최소한으로 유지하는 것이 좋습니다. - 표현의 차이
- 환경, 표시 사이즈 등에 의해 표현・외형에 차이가 발생하는 경우가 있습니다.
엄밀한 표현이 요구되는 경우는 사전에 실제 기기로 확인해 주십시오.
TIPS
각 플랫폼 SDK에서 표준 마스크의 특성은 다음과 같습니다.
플랫폼 이름 | 마스크 상한 수 | 준비되는 마스크 범위 | 준비되는 마스크 크기 |
---|---|---|---|
Cubism SDK for Native | 36/모델 ※1 | 클리핑되는 모든 아트메쉬가 들어가는 직사각형 | 수에 따라 가변 |
Cubism SDK for Web | 36/모델 | 클리핑되는 모든 아트메쉬가 들어가는 직사각형 | 수에 따라 가변 |
Cubism SDK for Unity | 64/장면 | 마스크하는 모든 아트메쉬가 들어가는 직사각형 ※2 | 고정 |
※1
Cubism SDK for Native에서는 CubismRenderer::_useHighPrecisionMask를 true로 변경하여 렌더링마다 마스크를 생성하게 됩니다.
이렇게 하면 마스크 수의 상한이 없어지고 마스크의 품질은 항상 최대로 렌더링됩니다.
※2
Cubism SDK for Unity에서는 다른 for Native, for Web과 마스크 준비 범위가 다릅니다.
자세한 내용은 「각 Cubism SDK 비교」의 마스크 특성 항목을 확인하십시오.
마스크의 흰색 경계선에 대해
Cubism Editor나 Cubism SDK에서 클리핑 마스크를 설정한 모델을 표시하면 윤곽선에 경계선이 보일 수 있습니다.
이것은 마스크의 윤곽선에 있는 반투명 부분에 의해 아래에 있는 아트메쉬의 색이 비쳐 보이기 때문입니다.
Cubism의 클리핑 마스크는 다음 두 가지로 표현되며 각각 다른 아트메쉬로 존재합니다.
- 마스크용 아트메쉬
- 마스크로 잘라내는 클리핑용 아트메쉬
마스크의 윤곽선에 있는 반투명 부분은 잘라내는 아트메쉬에 불투명도가 적용됩니다.
마스크용 아트메쉬가 표시 상태이면 잘라낸 윤곽선의 반투명 부분으로 마스크용 아트메쉬의 반투명 부분의 색이 보입니다.
마스크의 모양이 복잡하지 않은 경우 다음 절차에 따라 모델을 수정하여 회피할 수 있습니다.
- 마스크용 아트메쉬 복제
- 지정한 마스크용 아트메쉬를 복제 원본 아트메쉬에서 복제한 아트메쉬로 변경
- 복제한 아트메쉬를 복제 원본의 윤곽선이 숨겨지도록 확대
- 이 아트메쉬의 불투명도를 0%로 설정
- 복제 원본과 같은 변형을 한다
마스크 수 확인
에디터에서 마스크 수 확인
Cubism Editor에서는 통계 정보에 모델에 포함된 클리핑 수와 마스크 순열 종류를 확인할 수 있습니다.
SDK에서 인식되는 마스크를 세는 방법
SDK에서 인식되는 마스크 수는 ID 순열로 식별됩니다.
예를 보면 다음과 같은 세는 방법이 됩니다.
마스크 ID 표시 | 인식되는 매수 |
---|---|
ArtMesh1 ArtMesh1 ArtMesh2 | 2장 |
ArtMesh1 , ArtMesh2 ArtMesh1 ArtMesh1 , ArtMesh2 ArtMesh2 | 3장 |
ArtMesh1 , ArtMesh2, ArtMesh3 ArtMesh1 , ArtMesh2, ArtMesh3 ArtMesh1 , ArtMesh2, ArtMesh3 ArtMesh1 , ArtMesh2, ArtMesh3 | 1장 |
조합이 동일하고 순서가 다른 경우 for Native, for Web에서는 동일한 마스크로 인식되지만 for Unity에서는 다른 마스크로 인식됩니다.
마스크 ID 표시 | for Native, for Web에서의 인식 수 | for Unity에서의 인식 수 |
---|---|---|
ArtMesh1,ArtMesh2 ArtMesh2,ArtMesh1 ArtMesh1,ArtMesh2 ArtMesh2,ArtMesh1 | 1장 | 2장 |
Cubism Viewer (for OW)에서 확인
Cubism Viewer (for OW)에서도 통계로 마스크 ID의 순열 수를 확인할 수 있습니다.
마스크에 대한 경고 정보
클리핑 마스크에 사용되는 마스크가 잘못된 상태에 있으면 경고가 표시됩니다.
경고 발생 시 주의점
「마스크에 관한 경고」가 발생한 상태에서 임베디드용 파일을 출력해, 그것을 SDK를 사용한 어플리케이션으로 읽어 버리면 다음과 같은 문제가 발생할 수 있습니다.
발생하는 문제:
- 강제 종료
- 임베디드용 파일을 로드할 수 없음
- SDK와 Editor의 표시가 다름
이상의 문제를 회피하기 위해 「편집상 일시적으로 허용되지만, 출력 시에는 바람직하지 않은」상태에 대해서 경고가 표시됩니다.
Animator에서는 문제가 없는 것처럼 보이지만 향후 업데이트의 영향으로 표시 내용이 변경될 수 있으므로 수정을 권장합니다.
경고 발생 시의 상황에 대해
「마스크에 관한 경고」가 발생하는 상황은 크게 나누어 두 종류가 있습니다.
- 키 로스트:
- 마스크가 되는 아트메쉬가 파라미터의 키 폼 밖에 존재하기 때문에 보이지 않는 상태.
어플리케이션의 구현 상황에 따라서는 표시가 크게 다를 가능성이 있습니다. - 비표시/밑그림으로 설정된 아트메쉬:
- 숨기거나 밑그림으로 설정된 아트메쉬는 임베디드용 파일을 출력할 때 표준 설정으로 출력되지 않습니다.
이 때문에, 그대로 SDK로 읽어들이면 마스크의 아트메쉬는 부정한 값을 지시한 상태가 되어 강제 종료 등의 문제가
발생할 수 있습니다. - 마스크 삭제됨:
- 마스크가 될 아트메쉬가 삭제되었으며 클리핑의 아트메쉬 인스펙터의 클리핑란이 「null」로 되어 있는 상태.
상황별 모델 수정 방법
- 1. 투명한 아트메쉬를 마스크로 참조하고 싶은 경우
- 마스크에 설정한 아트메쉬의 불투명도를 0%로 해 대응해 주세요.
아트메쉬에 이미 키 폼이 찍혀 있어 불투명도 조작이 어려운 경우에는 「멀티 키 편집」을 사용하거나 디포머를 아트메쉬의 부모로 설정하여 불투명도만을 일괄적으로 조작하는 방법도 있습니다.
TIPS
클리핑 마스크의 동작은 구현 상황에 따라 다릅니다.
자세한 주의사항은 개발 담당자와 상담한 후 모델을 작성하는 것이 좋습니다.
- 2. 숨겨진 파츠 안에 존재하는 아트메쉬를 마스크로 참조하고 싶은 경우
- Cubism Editor 3.2.05부터 모든 마스크가 숨겨진 상태가 되면 클리핑 마스크 자체가 해제됩니다.
숨겨진 파츠 내의 아트메쉬를 마스크로 설정하면 클리핑 마스크가 해제된 모양이 됩니다.
편집이 어려운 경우 마스크에 설정된 아트메쉬를 일시적으로 표시 파츠로 이동시켜 대응해 주십시오.
TIPS
숨겨진 상태가 되는 마스크가 존재하면 앞에서 설명한 경고나 moc3를 내보낼 때에 오류가 표시됩니다.
임베디드 용도로 사용하는 경우 숨겨진 채 moc3을 내보내면 의도하지 않은 표시가 될 수 있으므로 파츠을 표시 상태로 만드는 것을 잊지 않도록 주의하십시오.
- 3. 팔 전환 등으로 보간하지 않고 사라지는 아트메쉬를 마스크로 참조하고 싶은 경우
-
키 폼의 범위 외로 키가 이동했을 때에, 아트메쉬의 표시가 사라지는 효과를 그대로 사용하고 싶은 경우입니다.
Cubism Editor 3.2.05부터 모든 마스크가 숨겨지거나 마스크로 설정된 오브젝트가 키 폼 범위를 벗어나 숨겨진 상태가 되면 클리핑 마스크 자체가 해제됩니다.
회피책으로 빈 아트메쉬를 만들고 항상 표시 상태의 마스크로 사용합니다.
빈 아트메쉬는 「충돌 감지용 아트메쉬」를 이용합시다.작성한 빈 아트메쉬를 「표시를 지우고 싶은 마스크」와 함께 마스크로서 설정해 둠으로써 항상 표시 상태의 마스크가 존재하게 됩니다.
이렇게 하면 클리핑 마스크 자체가 해제되지 않고 키 폼 범위 밖의 표시를 지우는 효과를 사용할 수 있게 됩니다.※이 경우 빈 아트메쉬에는 키를 찍을 필요가 없습니다. 위치나 사이즈도 영향은 없기 때문에 자유롭게 설정해 주세요.
※비표시 상태가 되는 마스크가 존재하면 전술한 경고나 moc3를 내보낼 때에 오류가 표시됩니다.
임베디드 용도로 사용하는 경우 구현 상황에 따라 의도하지 않은 표시가 될 수 있으므로 개발 담당자와 상담 후 모델을 만드는 것이 좋습니다.
경고 비표시
경고 표시는 「파일/설정/마스크의 설정을 항상 표시한다」의 체크를 해제하면 표시되지 않게 할 수 있습니다.
경고를 무시하고 작성할 때는 실제 기기의 표시 상태를 확인하면서 하십시오.