-
[3DMAX FacialRigging] 04. Rig를 넘겨주는 작업3DMAXFacialRigging 2022. 12. 1. 13:20반응형
skinning이 된 arkit 정보를 옮기고자 하는 캐릭터에 넘겨주는 작업
- arkit.obj
- 옮겨줄 메쉬.obj
이 두개를 export하여 wrap으로 가져갑니다
. obj exportwrap 되어진 obj export 해와서
unihead000<------unihead001 몰핑 해줍니다
(이때, 축이 맞지 않으면 morph가 잘 되지 않으므로 unihead000에 unihead001을
affect pivot only 키고 align, xyz pivot축 하고 align- resetXform하고 edit poly 해줍니다)
(editable mesh 인 상태로 합니다. editablepoly인 상태로 object transform이 reset이 되지 않음)
- cage_face복사해서 써야 하기에, 많은링크가 걸려있어서 snapshot을 해줍니다
snapshot (ex)cage_AverageFace,
cage_average을 skinnig 되어있는 arkit unihead000을 따라가게 skinwrap합니다
(unihead000에는 unihead001이 morph되어있지만 영향값은 "0"으로 합니다. 그래야지 morphing을 해서 모양을 바꿔주니까)
cage_averageface가 skinwrap으로 unihead000을 따라가고 unihead000의 모프값이 unihead001 값 "100"을 가져서 원하는 얼굴로 바뀌면 cage_averageface를 convert to ploy해서 mesh를 fix 하고 unihead000에 걸려있는 unihead001을 해제합니다
--->unihead000의 skin을 저장
- cage_face가 cage_average 메쉬로 바뀌면 되는 것입니다
cage_face*mouth
*nose
*e
*brow
*morpher <---- 여기 맨아래 cage_averageface "100" 줍니다
bone 까지 따라오면서 cage_face모양이 바뀜 cage_averageface는 face_cage Layer에 넣어줍니다
원래있던 unihead000은 skin때문에 모양이 바뀌었는데 skin을 날리고 unihead001을 morph"100"걸어주고 convert poly하고 아까 복사한 skin 불러넣기
바꾸려던 mesh에 skinwrap으로 ( arkit)unihead000을 따라가게 하면 unihead000,add,faceDeformer,convertToskin, skinwrap날리고 skin 적용
====> 스킨이 넘어가고 cage 정보도 넘어 갔습니다.
- 현재 목이랑 머리본이 없어서 그쪽부분이 깨짐, 셋팅해줍니다
- b_Neck, b_Head, b_Head_Nub--- skin bone layer(edit bone으로 위치와 stretch ...none등 설정)바꿀메쉬 스킨에 neck, head추가
- arkit인 unihead000에 b_M_Brain에 있던 스킨값을-->head bone으로 넘겨줘야 함
(jaltool에서 copy,paste 해줍니다, 바꿀메쉬 영향값안에 b_m_brain과 b_head,b_neck이 같이 있지만 copy paste해줌)
- skin 찢어진 곳을 수정하는데 하나하나 vertex copy,paste 할수 없으니 Deboneskin합니다
- modifier setting에서 data channel-delta mush-해주는데
이 deltamush의 역할은 원본메쉬가 움직임값만큼 relax mesh 해줌으로 보간한다.
averageface 52개 표정을 snapshot하여 morph 해줘야 하는데 이런경우를 대체하는 script 존재
*****(script) SetKeyToCusAtt.ms(deltamush 셋팅해주고 이 스크립트를 쓰시오)
SetKeyToCusAtt.ms로 인해 vertex sequencing을 해줄 mesh를 다 뽑았으니까 morph target으로 만든다음 alembic 파일로 뽑아주면 됩니다
여기까지 현재- (ex)eunju_export는 SetKeyToCusAtt.ms 스크립트 하여 morphing을 뽑아내고 bone 기반으로 움직이는 keyframe이 찍혀 있음(bone 기반 움직임)
- eunju_export를 snapshot하여 SetKeyToCusAtt.ms로 뽑은 52를 morph 연결, vertex, morph기반
- bone 기반의(frame 0_51)과
- vertex기반의 (morpher 0~51)가
(script) SetKeyToMorphAsAttOrder.ms 써줍니다.(SetKeyToMorph.ms아님)script 실행해 주면 2개의 mesh가 frame 별로 같은 표정을 합니다.같은 방식으로 dembone skin 해주기- morph, vertex기반 mesh는 export .abc
- mesh에 원래 있던 morph날리고 skin을 걸어줌( 얼굴본 neck과 head본 추가)
****** 중요. skin으로 잡은 facebone 들은 unlink해줍니다왜냐하면 b_m_brain에 hierachy 되어있던 본들과 지금 skin으로 잡아주는 자식본들의 정보가 달라서 dembone이 제대로 안 먹힐수가 있음******* 중요. fbx export 시 z축 위로 체크명령프롬프트 열고 dembone 해줍니다Out_AvgFace.fbx 최종파일 받아서 열어보면 skin 값들이 잘 들어오고 skin 값을 복사할수 있습니다 (jaltool이용)원래파일 열어서Avg_face_ export에 morph 지우고 editpoly하고 복사해온skin 값을 넣어줍니다Avg_face_export의 skin 값을 원래 Avg_face옮겨줘야 하니까 걸려있던 ModifierSetting 다 지워주고 skinwrap- face deformation-0.001-convert to skin해줍니다- mesh 정보가 같으면 캐릭터성이 다른(예를들어 노인이나 아이) 캐릭터라도 기존의 메쉬에 morpher와cage_snapshot, morph, skinwrap등을 이용하여 바꿔준다
'3DMAXFacialRigging' 카테고리의 다른 글
[3DMAX FacialRigging] 06. Unreal setting (0) 2022.12.01 [3DMAX FacialRigging] 05. faceCap App. - 블렌드쉐입 수치값과 오디오파일 (2) 2022.12.01 [3DMAX Facial Rigging] 03.Skinning (0) 2022.12.01 [3DMAX FacialRigging] 02. Attribute (0) 2022.12.01 [3dMax FacialRigging] 01. FaceCage 만들기 (14) 2022.12.01