직접 만든 옷 갈아입히기 인형 공유
설계도 한 장에서 3D까지
Opus 5.5와 협업하며 검증한 워크플로입니다. ChatGPT, Tripo, Blender, three.js를 사용해 설계도 한 장으로 브라우저에서 옷을 갈아입고, 춤추고, 네 가지 언어로 말하는 3D 옷 갈아입히기 인형을 만들었습니다. 각 단계마다 방법, 검수 기준, 이유를 함께 적었습니다.
설계도 한 장, 열 개의 단계
영상 속 주인공은 히나(陽菜) Hina이며, 네 가지 스타일로 각각 다른 언어를 말합니다. OL 정장 차림에서는 화를 내며 중국어, 아이돌 의상에서는 수줍어하며 일본어, 짧은 머리에서는 한국어, 원래 스타일에서는 영어를 말합니다. 히나는 3D 옷 갈아입히기 인형이고, VRM(3D 캐릭터에 많이 쓰이는 파일 형식)으로 저장했습니다. ChatGPT가 그린 설계도에서 시작해 2026-09-29에 작업을 시작했고, 10-05에 공개 버전을 완성했습니다. 중간에 Claude Code 사용량을 다 써서 며칠간 멈춰 있었습니다.


이 프로젝트는 처음부터 끝까지 Opus 5.5와 대화하며 진행했습니다. 이 글에서는 검증으로 알아낸 방법을 열 개의 단계로 정리했고, 각 단계는 세 칸으로 나뉩니다.
- 방법: 그대로 따라 할 수 있는 절차
- 검수: 수치로 확인할 수 있는 기준
- 이유: 테스트하면서 겪은 일과, 그래서 이렇게 정하게 된 배경
사용한 도구는 다음과 같습니다. ChatGPT(설계도, 4면도), Tripo(3D 생성, 자동 리깅), Blender(조립 및 수정), three.js와 three-vrm(웹 렌더링), ElevenLabs(음성), wav2vec2(립싱크), Mixamo(모션)입니다.
저는 그림을 보고 결정하고, Opus 5.5가 실제 작업을 합니다
역할 분담은 첫날 정했고, 이후 바꾼 적이 없습니다.
- 나: 디자인 방향을 결정합니다. 각 단계가 끝날 때마다 그림을 보고 통과 여부를 정합니다. Tripo 포인트를 쓰기 전에 승인합니다. 계정 로그인과 결제를 맡습니다
- Opus 5.5: Blender, 측정, 웹 페이지용 코드를 작성하고 백그라운드에서 Blender를 실행합니다. ChatGPT와 Tripo의 웹 페이지를 조작합니다. 각 단계의 결과물로 비교 이미지를 만들어 저에게 보여 줍니다
그림을 확인할 때는 두 가지 규칙이 있습니다.
- 검수용 이미지는 최소 1024 px로 하고, 얼굴은 따로 잘라 확대한 이미지를 한 장 더 준비합니다
- 얼굴은 정면, 좌우 30°, 완전한 측면의 네 각도에서 확인합니다

이유
첫 번째 시도에서는 설계도 한 장으로 모델 전체를 한 번에 생성하려 했는데, 너무 허황된 생각이었습니다. 생성된 모델은 폴리곤 수가 부족했고 디테일도 모자랐습니다. 그래서 이후에는 머리, 머리카락, 몸을 따로 생성한 뒤 마지막에 합치는 방식으로 바꾸었습니다.
먼저 품질 기준을 정합니다
방법
작업을 시작하기 전에 three-vrm 공식 샘플 모델을 같은 미리보기 웹 페이지에 넣고 스크린샷을 찍어, '이 정도 수준까지 만든다'는 목표를 먼저 정했습니다.

이유
첫 번째 시도에는 기준이 없어서, 다 만들고 웹페이지에 올려 보고서야 차이가 크다는 것을 알았습니다. 참고한 두 크리에이터도 모두 완성품이 아직 거칠다고 말했고, 그중 한 분의 말을 그대로 옮기면 "카메라를 가까이 당기면 버티지 못한다"였습니다. 기대치는 작업을 시작하기 전에 분명히 해 두어야 합니다.
4면도 3세트 그리기
방법
- ChatGPT에게 4면도(정면, 왼쪽, 오른쪽, 뒷면) 3세트를 그려 달라고 요청합니다:
- 머리: 머리카락이 없는 민머리에 귀가 드러나게 합니다. 눈은 크게 뜨고 홍채 전체가 보이게 합니다. 입은 "아" 하고 벌려 위쪽 앞니와 혀가 보이게 합니다. 목은 쇄골 위에서 평평하게 자릅니다
- 머리카락: 머리카락과 머리 장식만 있고 안쪽은 비어 있습니다
- 몸: T자 자세로 세웁니다. 목은 머리와 같은 높이에서 자릅니다
- 모든 이미지에 디자인 시안과 같은 각도의 뷰를 첨부하고, "첨부 이미지를 편집해 달라"고 요청합니다
- 이미지 한 장마다 새 대화를 엽니다
- 몸의 측면도에는 "팔이 카메라를 정면으로 향하게"라고 명시합니다



검수
- 정수리, 턱, 어깨, 발바닥의 높이 차이가 네 장의 이미지 사이에서 이미지 높이의 2% 미만이어야 합니다
- 왼쪽 측면도에서 캐릭터의 얼굴이 화면 왼쪽을 향해야 합니다
- 네 장의 이미지에서 장신구 개수가 같아야 합니다
이유
- 머리는 입을 벌린 상태로 생성해야 치아, 혀, 구강이 입체 메시가 됩니다. 입을 다무는 방향은 나중에 되돌려 만들 수 있지만, 입을 다문 머리로는 구강을 만들 수 없습니다
- 텍스트 설명만으로 그린 머리카락 4면도는 헤어스타일이 설계 시안과 많이 달랐습니다
- 같은 대화에서 이어서 측면을 생성하면 3/4 시점이 됩니다. 몸 측면을 명시하지 않으면 팔이 등 뒤로 뻗습니다
- 설계 시안 자체가 모순되기도 합니다. 측면의 코끝은 눈에서 턱까지의 44% 위치인데, 정면에서는 27%입니다. 정면을 기준으로 삼았습니다
Tripo로 생성하고, 텍스처는 마지막에 입힙니다
방법
- Smart Mesh P2.0 멀티뷰로 부품을 하나씩 보냅니다: 머리 → 몸 → 머리카락. 부품당 100 포인트입니다
- 전송하기 전에 매번 네 가지 항목을 다시 설정합니다: 모델 P2.0, 업로드 창의 두 번째 아이콘(멀티뷰), 면 수 25,000, 공개 설정 Private
- 우선 메시만 생성합니다. 조립과 비율 수정을 모두 끝낸 뒤 마지막에 텍스처를 입히고(부품당 20 포인트), 정점 위치를 기준으로 UV를 수정된 메시로 옮깁니다

검수
다운로드한 뒤 면 수를 셉니다. 부품당 사각형 면이 약 25,000개여야 합니다. 5,000개뿐이라면 설정이 초기화된 것입니다.
이유
- 페이지를 불러올 때마다 기본값으로 돌아가고, 면 수 기본값은 5,000이기 때문입니다
- 업로드 창의 세 번째 아이콘은 일괄 모드로, 이미지 네 장에서 각각 모델을 하나씩 생성하며 300 포인트가 차감됩니다
- 머리가 가장 어렵기 때문에 머리부터 생성하고, 마음에 들지 않으면 머리만 다시 뽑습니다
- 실측해 보니 텍스처를 입혀도 메시는 바뀌지 않았습니다. 머리의 52,220개 면은 전부 찾을 수 있었고 정점 위치도 그대로이며, UV 이음선을 따라 분리될 뿐이었습니다. 따라서 메시는 먼저 안심하고 수정해도 됩니다
- Left 칸에는 캐릭터 본인의 왼쪽 측면을 넣어야 합니다. 첫 번째 시도에서는 반대로 넣는 바람에 머리의 옆얼굴이 뒤통수에 생겨 360 포인트가 헛되이 사라졌습니다
설계 시안의 높이에 맞춰 조립합니다
방법
- 디자인 시안에서 정수리, 눈, 턱, 목 밑동의 픽셀 높이를 잽니다
- 치맛단과 신발 밑창을 기준으로 미터로 환산하고(이번에는 픽셀당 0.785 mm), 그 높이에 맞춰 부품 세 개를 배치합니다
- 행마다 모델과 시안의 실루엣 너비를 비교하여 차이표를 만듭니다
- 한 번에 한 부위씩 고치고, 고친 뒤에는 표 전체를 다시 돌린 다음 다음 부위를 고칩니다
- 앞면과 뒷면이 맞지 않을 때는 양쪽의 평균을 취합니다


검수
한 곳을 고칠 때마다 비교표를 다시 돌리고, 수정 전후 비교 이미지를 보여 주세요.
이유
- 목 너비에 맞춰 스케일했더니 머리가 1.4배 커졌습니다. 생성된 목이 몸 쪽 부분보다 가늘었습니다
- 첫 번째 비교표에는 십여 개 항목의 차이가 나열되었는데, 그중 두 항목은 잘못 잰 것이었습니다. 턱이 "22% 좁다"는 것은 눈으로 읽은 수치였고, 열마다 다시 재 보니 70 대 69 px였습니다. 발목이 "16% 가늘다"는 것은 신발 입구를 잰 것이었고, 모델의 해당 행은 아직 양말이었습니다. 차이가 말이 안 될 만큼 크면 먼저 잰 위치를 확인합니다
- 시안의 앞면도와 뒷면도가 서로 어긋납니다. 같은 치마인데 앞면이 뒷면보다 10% 넓습니다
이음매는 한 층씩 고칩니다
방법
머리와 몸은 목에서 이어지므로, 아래 순서대로 확인하고 수정합니다.
| 순서 | 층 | 점검 항목 | 수정 방법 | 이번 결과 |
|---|---|---|---|---|
| 1 | 지오메트리 | 경계를 따라 샘플링하여 틈을 측정합니다 | 몸의 절단면에 머리 쪽 링을 구성하는 각 정점을 보충합니다 | 0.19 mm → 0 |
| 2 | 법선(빛을 받는 방향) | 이음매 양쪽 법선이 이루는 각도 | 이음매에는 양쪽의 평균 법선을 사용합니다 | 22.2° → 0.01° |
| 3 | 텍스처 | 절단면 양쪽의 RGB 차이 | 몸 텍스처에서 피부색에 가까운 픽셀에 채널별로 게인을 곱합니다 | (13, 9, 11) → (1, 1, 2) |
| 4 | 가중치(어느 뼈를 따라 움직이는지) | 일곱 가지 포즈에서의 최대 균열 | 머리의 가장자리를 몸의 가장자리에 붙이고, 가중치는 몸 기준으로 보간하며, 위쪽으로 15 mm에 걸쳐 원래 가중치로 다시 섞습니다 | 3.27 mm → 0.001 mm |
| 5 | 외곽선 | 육안 | 이음매 1 cm 이내에는 외곽선을 그리지 않습니다 | 검은 선이 사라졌습니다 |



이유
머리와 몸을 따로 생성했기 때문에 이음새는 모든 층에서 한 번씩 문제를 일으켰고, 앞 층을 고쳐야 다음 층의 문제가 보였습니다. 가중치는 두 차례 수정했습니다. 첫 번째는 고개를 들 때 갈라지는 문제, 두 번째는 고개를 숙일 때 턱 아래에 생기는 주름을 처리했습니다.
리깅과 스프링 본
방법
- 전체를 4.5만 면으로 줄이고 Tripo Auto Rig(VRM 1.0 휴머노이드 본, 20 포인트)에 업로드합니다
- 다운로드한 뒤 90° 방향 4가지를 시도하고, ICP로 원래 위치에 맞춥니다
- 가장 가까운 면에서 보간하여 가중치를 전체 메시에 복사합니다
- 머리카락의 가중치는 모두 머리 본에만 연결되도록 설정합니다
- 스프링 본을 추가합니다. 머리카락은 머리를 둘러 20°마다 체인 1개(13개, 각 5마디), 치마는 골반 본을 둘러 30°마다 1개(12개, 각 3마디)입니다
- 치마의 좌우 절반은 높이에 따라 가중치 일부를 같은 쪽 허벅지에 나누고, 치맛단은 최대 절반까지 나눕니다
- 몸통 윤곽을 측정합니다(2 cm마다 한 층, 층마다 36방위). 웹에서 동작을 재생할 때 손이 윤곽 안으로 들어오면 상완을 바깥쪽으로 회전시키며, 한 번에 4°씩 최대 48°까지 돌립니다





검수
- 가중치가 없는 정점은 0개이고, 정렬 잔차는 약 1 mm입니다
- 여섯 가지 포즈(팔 내리기 45°, 팔꿈치 90°, 무릎 60°, 허리 비틀기 20°, 고개 돌리기 30°, 끄덕임 15°)의 클로즈업입니다. 관절과 목이 깨지지 않습니다
- 36개의 테스트 포즈에서 몸통에 파고든 손 정점이 976개에서 59개로 줄었습니다
이유
- 15.7만 면의 모델 전체를 Auto Rig에 보내면 「Polygon Limit Exceeded」가 표시됩니다
- Tripo는 업로드한 모델의 방향을 바꾸고 높이 1 m로 줄입니다
- Tripo가 준 머리카락 가중치를 쓰면 팔을 내리자마자 앞머리가 끌려가서 구겨집니다
- 치마는 20° × 4마디로 시험해 봤습니다. 치마 안감이 허벅지에 너무 붙어 있어서 콜라이더가 5 mm로 줄어들었고, 허벅지가 그대로 뚫고 나왔습니다
- Mixamo의 모션은 다른 체형으로 만들어졌기 때문에 손이 가슴과 허리를 파고듭니다
표정은 입을 벌린 상태에서 거꾸로 만듭니다
방법
- 입을 다문 표정도 눈을 감은 표정도 입을 벌리고 눈을 뜬 모델에서 거꾸로 밀어서 셰이프 키(정점의 변위를 기록하는 변형)로 만들었습니다
- 별도로 눈과 입을 감은 참조용 머리(100 포인트)를 생성하고, 정렬한 뒤 눈꺼풀과 입술이 그 표면의 깊이를 가져오게 하며, 주변으로 갈수록 점점 약해지게 했습니다
- 눈꺼풀의 슬라이드는 조화장으로 풀고, 눈꺼풀의 단단한 부분과 아래 눈꺼풀, 바깥 둘레를 고정했습니다
- 입술 사이의 치아 텍스처는 립스틱으로 덮어 가립니다. 두 입술 사이의 오목한 부분을 따라 얼굴 텍스처에 베이크하고, 입술선 위 2.2 mm 이내에서 입술색보다 밝은 픽셀을 먼저 입술색으로 덮습니다
- 립스틱은 색상만 바꾸고, 원래 입술색의 명암은 그대로 유지합니다







검수
- 입 다묾: 다섯 각도에서 입 안을 봤을 때 보이는 픽셀은 0입니다(대조군: 완전히 벌렸을 때 정면 10,854 px)
- 입 벌림: 25%, 50%, 75%, 100%까지 벌려도 치아와 혀 모두 입술 밖으로 뚫고 나오지 않습니다
- 눈 감김: 정면과 좌우 30°에서 드러나는 안구 틈을 셉니다(이번 확정판은 오른쪽 눈 0개, 왼쪽 눈 1–3개)
- 모든 표정을 옆에서도 한 번씩 확인합니다
이유
- 이 머리는 안구가 주변 피부보다 6 mm 더 깊이 들어가 있습니다. 눈꺼풀을 원래 깊이 그대로 아래로 내리면 눈구멍에 U자형 홈이 생기고, 매끈하게 펴 주면 이번에는 부어오른 것처럼 보입니다
- 윗입술을 그대로 닫으면 6.4 mm 앞으로 튀어나오지만, 정면에서는 눈에 띄지 않습니다. 참조용 머리를 빌린 뒤에는 3.8 mm로 줄었고, 참조용 머리 자체는 4.0 mm입니다
- Tripo는 윗니를 입을 벌린 텍스처에 그려 두었기 때문에, 입을 다물면 윗입술 아래쪽에 딱 겹쳐서 정면에서는 흰 테두리 한 줄로 보입니다. 립스틱을 베이크한 뒤에는 입술 선 위의 흰색 픽셀이 577개에서 0개로 줄었습니다
옷 갈아입히기와 표정
방법
- 옷: ChatGPT에 4면도를 새 옷으로 고쳐 그려 달라고 요청합니다 → Tripo로 T자 자세의 머리 없는 몸을 생성합니다 → ICP로 히나에 정렬합니다(매 회차마다 오차가 가장 큰 30%는 제외) → 각 정점이 히나 몸에서 가장 가까운 점의 가중치를 복사합니다(치마는 제외하고, 영향이 큰 뼈 네 개만 유지) → 목 절단면을 머리에 연결합니다
- 헤어스타일: Tripo로 '머리+머리카락'을 생성하고, 히나의 머리를 그 머리 위에 겹쳐 정렬을 계산합니다. 머리카락은 이쪽으로 옮겨 와서 머리 본에 바인딩합니다
- 화남, 부끄러움: 눈썹을 텍스처에서 오려 내 패치로 만들고, 원래 자리는 피부색으로 메웁니다. 부끄러움에는 홍조를 따로 추가합니다




검수
모든 의상을 웹페이지에서 실제로 입혀 보았고, 모든 표정을 웹페이지에서 한 번씩 전환해 보았습니다.
왜 그렇게 했는가
- 한 번 몸에 리깅을 해 두면 옷이 그 가중치를 복사하기 때문에, 몇 벌을 갈아입혀도 다시 리깅할 필요가 없습니다
- 눈썹을 피부에 그려 넣으면 피부가 2–4 mm 움직일 때 눈썹 꼬리 근처에서 22–47개의 삼각형이 뒤집힙니다
- 보라색 곱슬머리는 만들었지만 얹지 않았습니다. 머리숱이 너무 적어서 대머리처럼 보였기 때문입니다
현재 헤어스타일은 하이 포니테일, 공주 머리, 짧은 머리 세 가지이고, 의상은 아이돌 의상과 OL 정장 두 벌이 있습니다.
목소리와 립싱크
방법
- ElevenLabs의 Voice Design으로 텍스트로 음색을 묘사해 히나의 목소리를 생성하고, Eleven v4로 중국어, 일본어, 영어, 한국어 대사를 읽게 합니다(무료 플랜)
- wav2vec2(XLSR-53, 국제 음성 기호를 출력하는 버전)로 20 ms마다 소리를 하나씩 인식합니다
- 음소를 a, i, u, e, o 다섯 가지 입 모양으로 묶습니다. i, u로 시작하는 활음(「月」「亮」 같은 소리)은 뒤에 오는 모음의 입 모양을 사용합니다. b, p, m, f, v에서는 잠깐 입을 다뭅니다
- 입을 벌리는 크기는 음량으로 정하며, 닫힘, 반쯤 열림, 완전히 열림의 세 단계로 나누어 초당 30프레임으로 처리합니다
- 모델에는 입을 벌린 형태가 하나뿐입니다. i, e, o, u는 웹 페이지에서 그 형태로부터 만들어 냅니다. 입 벌림을 줄이고 입꼬리를 바깥으로 당기면 i, e가 되고, 안쪽으로 모으면서 앞으로 내밀면 o, u가 됩니다
- 자막은 ElevenLabs가 돌려주는 단어별 시간 정보를 사용하며, 언어마다 오프셋을 하나씩 보정합니다

검수
자막 시간은 소리와 맞아야 합니다. 「이 단어를 발음하는 중」과 「소리가 충분히 큼」이라는 두 타임라인을 어긋나게 해 가며 비교하여, 겹치는 구간이 가장 많은 오프셋을 선택했습니다. 이번 결과는 중국어가 0.24초, 한국어가 0.15초, 일본어가 0.12초, 영어가 0.04초 앞당겨진 값이었습니다.
이유
립싱크는 소리만 보기 때문에 네 가지 언어가 같은 프로그램을 공용으로 사용합니다. ElevenLabs가 돌려주는 시간은 실제 소리보다 늦으며, 얼마나 늦는지는 언어에 따라 다릅니다.
웹 페이지에 올리기
방법
VRM을 내보내고, three.js와 three-vrm으로 웹페이지에서 실시간으로 렌더링합니다. Mixamo의 모션은 먼저 로컬에서 히나(陽菜)의 뼈대로 변환해 두었습니다. 완성본은 글 맨 아래에 있으며, 바로 즐기실 수 있습니다.
공개판에는 별도로 세 겹의 보호를 적용했습니다:
- 텍스처는 256 px로 낮추고, 원본은 제 컴퓨터에만 보관합니다
- 모델과 모션은 암호화하여 전송합니다
- 텍스처에 눈에 보이지 않는 워터마크를 숨겨 두었습니다
웹페이지에서 돌려 볼 수 있는 모델은 결국 파일이 독자의 컴퓨터까지 전달됩니다. 이 세 겹의 보호는 진입 장벽을 높이는 정도에 그칩니다.

검수
라이선스는 하나하나 확인했습니다.
- Mixamo: 상업적 이용은 가능하지만 원본 모션 파일은 배포할 수 없습니다. 공개판에는 변환한 모션만 넣었습니다. 이는 게임에서 하는 방식에 따라 제가 약관을 해석한 것이며, Adobe에는 확인하지 않았습니다
- Bandai Namco 모션 데이터셋: CC BY-NC-ND. 다른 캐릭터에 적용하면 2차적 저작물에 해당하므로 공개판에는 넣지 않았습니다
- ElevenLabs 무료 플랜: elevenlabs.io를 표기하며, 비영리입니다
얼마나 들었나
기록이 남아 있는 현금 지출은 Tripo의 한 달 Pro 플랜뿐입니다. 월 요금은 CN¥140이고 첫 달은 30% 할인되어 실제 결제액은 CN¥98이었습니다. 2026-09-29에 결제했고 청구 기간은 9/29–10/29입니다. P2.0 모델을 내보내려면 Pro가 필요합니다.

포인트(기록이 남아 있는 부분만이며, 옷 갈아입히기 생성은 기록하지 않았습니다):
| 용도 | 포인트 |
|---|---|
| 머리, 몸, 머리카락의 메시 | 300 |
| 몸, 머리카락 텍스처(머리는 8K 시험 사용, 0 포인트) | 40 |
| Auto Rig | 20 |
| 눈과 입을 감은 참조용 머리 | 100 |
| 첫 번째 시도는 좌우를 반대로 만들어서 무효가 되었습니다 | 360 |
그 밖의 도구: ElevenLabs 무료 플랜, Mixamo 무료, Blender와 three.js는 오픈소스 소프트웨어입니다. ChatGPT와 Opus 5.5의 구독료는 위의 현금 금액에 포함하지 않았습니다.
Opus 5.5가 이번 한 주 동안 작성한 코드와 수정은 총 93개의 commit입니다.
아직 끝내지 못한 것
현재 알려진 문제는 다음과 같습니다:
- 눈을 감았을 때 바깥쪽 눈꼬리에 가느다란 조각이 생기고, 속눈썹이 다소 두꺼우며 뾰족한 부분이 몇 군데 있습니다. 왼쪽 눈은 옆에서 보면 안구 이음새가 1~3개 드러납니다
- 고개를 숙이면서 돌리면 턱 아래에 옅은 주름이 아직 남아 있습니다
- 오른쪽 입꼬리에 60°를 넘게 꺾인 작은 면이 2개 있습니다
- 가까이에서 보면 아랫입술 아래에 미세한 알갱이가 보입니다
- T자 자세에서는 팔이 머리카락을 뚫고 지나갑니다(공개 버전은 기본적으로 팔을 내린 상태입니다)
- 아직 휴대폰에서 성능을 테스트하지 못했습니다. 공개 버전 페이지의 통계로는 삼각형 면이 약 27만 개이며, 외곽선 때문에 모델을 한 번 더 그리게 됩니다
다음 단계는 히나를 완전한 옷 갈아입히기 인형으로 만드는 것입니다. 아래 세 가지는 아직 모두 시도해 보지 않았습니다:
- 옷 갈아입히기 시스템
- 눈동자 색: 안구는 독립된 메시이므로 해당 텍스처의 색만 바꿀 계획입니다
- 표정: VRM 표준인 기쁨, 슬픔, 놀람, 편안함을 추가합니다
- 의상과 동작: 계속 추가합니다
- 체형과 얼굴형 만들기
- 키, 다리 길이, 머리와 얼굴 크기: 본을 스케일링할 계획입니다. 예상되는 위험은 비균등 스케일링으로 인해 얼굴과 손이 변형되는 것입니다
- 가슴둘레, 허리둘레, 엉덩이둘레, 얼굴 너비: shape key로 만들어 슬라이더로 조절할 계획입니다
- 옷: 모든 옷에 몸과 대응하는 shape key 세트가 하나씩 있어야 몸을 살찌웠을 때 옷도 함께 변합니다. 이 부분이 작업량이 가장 많을 것으로 예상합니다. 체형 슬라이더를 하나 추가할 때마다 모든 옷에 세트를 하나씩 더 만들어야 합니다
- webcam 모션 캡처: 브라우저 안에서 얼굴과 몸의 특징점을 감지하고, 이를 본 각도와 표정 가중치로 변환해 히나에게 실시간으로 적용할 계획입니다. 영상은 독자의 컴퓨터 안에서만 처리하며 업로드하지 않습니다
직접 해보기
드래그하면 시점을 돌릴 수 있고, 버튼으로 머리 모양, 옷, 표정을 바꿀 수 있습니다. 오른쪽 위 메뉴에는 38개의 동작이 있습니다. 모델이 그대로 다운로드될 위험을 줄이기 위해 웹 버전의 텍스처는 256 px로 낮췄습니다. 가까이에서 보면 조금 흐릿한데, 정상입니다.
저작권 고지
- 히나 Hina의 캐릭터 디자인, 3D 모델, 텍스처, 표정, 옷 갈아입히기는 © 2026 JonesHong의 저작물입니다. 이 페이지에서 보는 용도로만 사용할 수 있으며, 다운로드, 재게시, 재배포, 개작은 허용되지 않습니다
- 3D 메시와 텍스처: Tripo AI로 생성(tripo3d.ai)
- 설계도와 4면도: ChatGPT(OpenAI)로 생성
- 음성: ElevenLabs로 생성(elevenlabs.io)
- 동작: Mixamo(© Adobe). 페이지에는 변환된 동작 데이터만 올려 두었으며 원본 파일은 제공하지 않습니다
- 웹 렌더링: three.js(MIT, © three.js authors), @pixiv/three-vrm 및 @pixiv/three-vrm-animation(MIT, © pixiv Inc.)
- 3D 편집: Blender(GNU GPL, Blender Foundation)
- 립싱크: wav2vec2 XLSR-53 음소 인식 모델(Apache-2.0, Meta)
10단계를 여러분의 캐릭터 파일과 대조해 봅니다
따로 생성하기, 층별로 이음새 고치기, 표정은 옆모습으로 확인하기, 공개 전에 라이선스 확인하기. 이 네 가지가 가장 빠뜨리기 쉽습니다.
아래 내용을 사용 중인 AI에 붙여 넣어, 가지고 있는 3D 캐릭터와 대조하게 해 보세요.
더 읽을거리
| 리소스 | 왜 중요한가 |
|---|---|
| Nano(@Dstudio_ai)의 제작 공유 | 머리와 몸이 각각 2만 면이고, 절반 이상의 시간을 웨이트 페인팅에 쓰며, 얼굴 텍스처는 손으로 수정해야 합니다. 그래서 각 부품을 25,000면으로 설정했습니다. |
| お寿司職人(@SushiNFTart)의 장문 글 | 머리카락, 머리, 몸 세 가지를 따로 생성하고, 입은 벌린 모델에서 거꾸로 작업합니다. 이 워크플로의 순서는 이 글에서 가져왔습니다. |
| three-vrm의 humanoidAnimation 예제 | Mixamo 모션을 VRM 스켈레톤으로 옮기는 방법입니다. 단계 10에서 모션을 미리 변환할 때 쓰는 것이 바로 이 변환 프로그램입니다. |