---
title: Blend Shape
slug: studio-guide-kr/blend-shape
docTags: 
createdAt: 2024-09-02T08:34:13.133Z
---

:::hint{type="danger"}
**❗️ 주의사항**
Blend Shape는 단순하게 한 두개의 표정을 섞는 기능이 아닙니다. 다양한 표정들이 서로 다른 수치를 가지고 겹쳐져 표현되기 때문에 가능한 많은 테스트를 하며 작업하셔야 만족스러운 결과물을 얻을 수 있습니다.
:::



## STEP 1 : 준비하기

:::hint{type="info"}
**📘&#x20;**&#xC2DC;작하기에 앞서 파일을 다운로드 합니다.
[Blendshape\_creatorsBaseSet\_zepeto.zip](https://media-contentful.zepeto.io/ttn7jks47ozr/lq9T83wK87JsGvGxQo3XVqX/6IJf83wK8740c97bcd8b901a81b5e0be12941ab458csGvH9rwvpqCf/Blendshape_creatorsBaseSet_zepeto.zip).
:::



## STEP 2 : Blend Shape 제작하기

베이스 메쉬에서 표정이 될 메쉬를 복사합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N--eWq4MJ6H5xofgAL2BqvZ-20240904-102325.jpg)



해당 표정 이름을 입력합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-Y3oyHV5QRTsKpmPnR5QWu-20240904-102325.jpg)



표정 메쉬를 먼저 선택한 다음, 베이스 메쉬를 선택합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-D9asC6-8pHuVEuDgnEHbR-20240904-102325.jpg)



선택이 된 상태에서 windows -> Animation Editors -> Shape Editor 창으로 들어갑니다.

Create Blend Shape 버튼을 누르면, 아래 이미지와 같이 'blendShape1'이라는 이름의 블랜드 쉐입이 생성됩니다. 'blendShape1'에는 방금 제작한 표정이 포함되어 있습니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-qaAQEVUv_3gU0d3-MeHYu-20240904-102324.jpg)



컨트롤 바를 이용해서 0.000 -> 1.000 변화를 체크하며 다양한 표정을 제작합니다.

모든 표정이 제작 완료 되었다면 순서대로 선택한 후 베이스 모델을 선택합니다.

앞서 했던 방식대로 블랜드 쉐입을 생성합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-5DH5SKwDIQEhCfpTqkozv-20240904-102325.jpg)



blendShape1로 생성된 블랜드 쉐입 이름을 ZEPETO로 수정합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-ROWiF2nRKrSnYO-cLViF1-20240904-102325.jpg)

:::hint{type="danger"}
**❗️ 주의사항**
이름이 다를 경우 작동하지 않습니다.
:::



기본 메시를 선택하고 입력 화면에서 'zepeto' 블렌드 셰이프가 연결되어 있는지 확인하여 작업이 완료되었음을 확인합니다. 다음 단계는 리깅입니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-aM1CZVutmeuy2z5FhuV5v-20240904-102324.jpg)



## STEP 3 : 주의사항 확인하기

- 블랜드 쉐입은 베이스 메쉬 vertex와 표정 메쉬 vertex의 이동값을 이용해서 표정을 만들어 내는 작업입니다.
- 표정 메쉬들은 기준이 되는 베이스 메쉬와 UVS를 제외한 모든 카운트와 vertex 넘버링이 같아야 합니다. (베이스모델을 복사해서 사용하는 것이 좋습니다)
- 베이스 메쉬와 표정 메쉬의 vertex 넘버링이 달라지면 블랜드 쉐입이 작동하지 않습니다.
- 하나의 표정을 완성하고 끝내는 것이 아니라, 서로 영향을 주는 표정들은 같이 적용을 시킨 후 최적의 형태를 찾아야 합니다.
- 표정 메쉬들의 나열 순서를 지켜주셔야 합니다.
- 표정 메쉬들의 네이밍이 제공된 것과 같아야 작동합니다. (대소문자 포함)

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-v2ldhZ9voxsnpYQE8y5yZ-20240904-102325.jpg)



- 다른 컨텐츠들과 마찬가지로, 블랜드 쉐입이 포함된 컨텐츠 또한 보이지 않는 부분은 mask에 Black으로 칠해주는 과정이 필요합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-TmcGecqIU-BJCSCg2ayOv-20240904-102325.jpg)



제작 완료 후, 컨버팅할 시 Unity 최신 버전(2020)을 사용합니다. (구 버전으로 컨버팅하면 블랜드 쉐입 정보 값이 빠진채로 컨버팅됩니다)



## 참고 사항 : ZEPETO에서 구현 가능한 표정

inbetween을 제외한 구현 가능한 표정 갯수는 71개입니다.

inbetween은 상황에 따라 추가하거나, 제거 할 수 있어 유동적입니다. (단 제공된 inbetween 리스트 이외의 표정은 작동하지 않습니다)

**eyebrow**

- 눈썹의 경우 눈동자와 겹치는 부분에 유의 하며 작업합니다.
- Left, Right 로 나누어진 표정의 경우, 두 표정에 모두 적용시킨 다음 문제점이 없는지 체크합니다.
- 귀가 있는 디자인의 경우, 귀와 관련된 애니메이션 키가 따로 제공되지 않기 때문에 움직임을 별도로 추가해서 작업합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-hokE-iWtDcuXxBsxsi7f2-20240904-102325.jpg)



**jawOpen**

- 가장 중요한 KEY 표정입니다.
- 입과 관련된 다양한 표정들을 테스트할 때, jawOpen을 함께 사용하며 다듬어야 합니다.

::Image[]{src="https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-lGfmBV5U6wDyqCWzQ2ayG-20240904-102325.png" size="42" width="157" height="194" position="center" alt="157" showCaption="false"}



**cheek**

- cheekPuff = 볼에 바람을 넣는 표정입니다. (jawOpen을 함께 조정하면서 단독 사용 시 보이지 않는 입 안쪽 면도 정리합니다. 해당 표정이 다른 표정과 섞였을 때, 이 부분에서 디테일 차이가 크게 나타납니다.)
- cheekSquint = 볼을 씰룩 거리는 표정 좌, 우 입니다.

![524](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-dr8b77zHzrYgK3OwCt8H8-20240904-102325.png)



**eye**

- eye와 관련된 표정들은 eyebrow와 이동 영역이 겹쳐지는 경우가 많기 때문에, 두 가지 타입을 함께 적용 시키며 최적의 값을 찾습니다.

![890](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-GTj0Q8epyEzZfTNan7Q1--20240904-102325.png)



**jaw**

- jaw 표정들은 아래 턱을 이동하는 표정들입니다. (jawOpen과 함께 테스트합니다.)

![633](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-uHAhlt3HN47lOL-X8H5Y_-20240904-102325.png)



**mouth**

- 가장 많은 종류를 가지고 있는 표정입니다. 함께 적용시켜 체크해야 하는 항목 또한 가장 많습니다.

![928](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-4rbh-FGQg3ADGfuJHimJ3-20240904-102325.png)

- mouthClose를 단독 사용하면 형태가 이상해지는 특수한 표정입니다. jawOpen과 함께 적용할 때만 완성됩니다. 항상 함께 적용시켜 형태를 다듬어야 합니다.
- mouthFunnel 은 '우', 'Woo' 표정입니다.
- mouthPucker 는 '오', 'Oh' 표정입니다.

![1242](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-mHuz4QH01BJLhadyBnOSV-20240904-102325.png)

- mouthShrugLower 와 mouthShrugUpper 또한 함께 적용해보며 자연스럽게 다듬어야 합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-xQvYXTtoiSSpxmkVfc2LW-20240904-102325.png)

- 아래 4개의 표정은 하나의 표정을 나눠 놓은 표정입니다. 항상 동시에 적용해서 제작해야 합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-iZ09SXBvfR90KeBunHeRJ-20240904-102325.png)



**inbetween**

- inbetween은 두 가지 표정이 적용되었을 때, 해결할 수 없는 부분들을 보완해 주는 특수한 표정들 입니다.
- 표정의 이름에 포함되어 있는 표정이 함께 사용됐을 때만 작동합니다.
- 표정의 개수가 늘어날수록 데이터가 무거워지기 때문에 최소한의 표정에만 추가해서 대응합니다.
- 현재는 eyeBlink 와 연계된 표정들에만 사용하고 있습니다.
- 사용하지 않아도 되는 inbetween 표정들은 제거해도 무방합니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-mMOqd9Vuy72mk62Tv5xtC-20240904-102325.png)



**animator**

- 이 표정들은 애니메이션을 제작하는 크리에이터에게 제공되는 좀 더 세분화 된 표정입니다.

![766](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-HIx9CXT8Ni6Fa43HCX4LV-20240904-102325.png)

- 눈썹의 움직임을 세개의 부위로 나눠서 제작합니다.(A, B, C)

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-REj1I8JC3PMPlqSW7hdxw-20240904-102325.png)

- cheekPuff 표정을 좌우로 나눠 놓은 표정입니다.

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-LvBUsnByOpkNl41w-380e-20240904-102325.png)



## STEP 4 : Unity 체크하기

Unity로 작업물을 가져온 뒤에 두 가지 옵션을 체크합니다.

- FBX 파일을 클릭 후, 옵션에서 Import Blendshapes를 활성화합니다.
- Material 네이밍 뒤에 (NoColor)를 추가합니다.

:::hint{type="danger"}
**❗️ 주의사항**
If NoColor를 추가하지 않으면 헤어 컬러 값과 혼합되어 값이 변경됩니다.
:::

![](https://api.archbee.com/api/optimize/fCt3n1oCa8rgNJ8fw9I2N-hjSTKSqmqKHyfAki9N1vn-20240904-102325.jpg)



두 가지 항목이 모두 체크되었다면 컨버팅을 진행하시면 됩니다.


