VRChat 마이너 갤러리 저장소

제 목
일반 블렌더로 본 추가하고 프로젝트 살리기 + 클릭 한번으로 옷입히기 강좌
글쓴이
ㅇㅇ
추천
11
댓글
6
원본 글 주소
https://gall.dcinside.com/vr/1823682
  • 2022-04-28 01:33:40
  • 124.146
							

시작하기에 앞서...

 

이 강좌는 "나는 아바타 뚜따를 많이 해봤고 블렌더로 본을 추가하고 웨이트까지 칠 할 줄 안다" 는 분들을 위한 강좌입니다.

최대한 알기 쉽게 쓰려고 하지만 강좌 진행에 다소 불친절한 부분이 있을 수 있으니 양해 부탁드립니다!


 

최근 피직스본 업데이트를 하고나서 아바타 뺨에 본을 심거나 혀에 본을 심는 작업을 하는 분들이 많아졌는데

   


   

보통 본을 추가하는 작업 후에 다시 옷입히고 어쩌고 하면 너무 시간이 오래 걸리니 유니티에 FBX 덮어쓰기를 하실거에요

근데 그러면 문제점이 하나 생깁니다.


(있었는데요? 없었습니다..)



Skinned Mesh Renderer, Mesh에 수정한 메쉬를 집어 넣어도 아무것도 렌더링 되지 않습니다.

 

본을 추가하는 작업 후에 FBX덮어쓰기를 하면 이런 문제가 생기는데요

이거 해결하는 방법을 알려드리려 합니다.



본 강좌에서 나오는 방법을 응용하면 간편하게 버튼 하나로 아바타 옷을 입힐 수도 있고

옷 본과 바디 본을 합칠 수도 있습니다.






그럼 강좌 시작합니다..

우선 오브젝트에 할당된 메쉬의 웨이트를 이름만 같은 다른 오브젝트로 재할당 하는 코드를 하나 작성합니다. 

 

 

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

 

 

[ExecuteInEditMode]

public class ReassignBoneWeigthsToNewMesh : MonoBehaviour

{

public Transform newArmature;

public string rootBoneName = "Hips";

public bool PressToReassign;

 

void Update()

{

if (PressToReassign)

Reassign();

PressToReassign = false;

}

 

// [ContextMenu("Reassign Bones")]

public void Reassign()

{

if (newArmature == null)

{

Debug.Log("No new armature assigned");

return;

}

 

if (newArmature.Find(rootBoneName) == null)

{

Debug.Log("Root bone not found");

return;

}

 

Debug.Log("Reassingning bones");

SkinnedMeshRenderer rend = gameObject.GetComponent<SkinnedMeshRenderer>();

Transform[] bones = rend.bones;

 

rend.rootBone = newArmature.Find(rootBoneName);

 

Transform[] children = newArmature.GetComponentsInChildren<Transform>();

 

for (int i = 0; i < bones.Length; i++)

for (int a = 0; a < children.Length; a++)

if (bones[i].name == children[a].name)

{

bones[i] = children[a];

break;

}

 

rend.bones = bones;

}

 

}

 

 

위 코드를 복사하고 Visual Studio를 켜서 붙여넣기 그리고 ReassignBoneWeigthsToNewMesh 라는 스크립트를 하나 만들어줍니다.

(비주얼 스튜디오는 무료 개발자 소프트웨어 입니다. 마이크로 소프트에서 다운로드 받으시면 됩니다.)

7eef9e36ebd518986abce8954484766e26

작성한 스크립트는 작업중인 유니티에 넣어주도록 합니다.





혀 본 추가 작업을 했다고 가정하고 진행하겠습니다. 수정본의 FBX를 하이어라키로 끌어옵니다.




수정본 FBX에서 우리가 블렌더로 추가한 혀(Tang) 본을 기존 아바타 Head 본에 끌어넣습니다.




그 후 새롭게 끌어왔던 FBX의 모든 메쉬를 shift + 클릭으로 다중 선택하고 우리가 이전에 만든 ReassignBoneWeigthsToNewMesh 컴포넌트를 추가해줍니다.





a17d2c746e18f1e6e2483039eb3d6a2d3b3754bf2c8a58ea7306289ad4

이런 컴포넌트가 추가 되었을 텐데 New Amature에 기존 모든 메쉬가 증발한 아바타의 Amature를 넣고 Press To Reassign을 눌러 주시면 됩니다.

그럼 아무반응이 없을텐데 아무 반응이 없는게 정상 적용된겁니다. 에러가 뜨면 체크박스에 체크가 됩니다.


보통 에러가 나는 경우는 웨이트를 옮길 본의 이름이 맞지 않다던가 경로가 이상한 경우입니다.

에러가 나는 경우 망가지는건 없으니 크게 걱정하지말고 본의 이름과 경로를 다시한번 확인해보시길 바랍니다.


에러의 경우 본의 포지션 값과는 관계가 없습니다.




잘 적용 되었다면


기존의 메쉬들은 삭제해주고 새로 끌어왔던 FBX의 메쉬들을 전부 끌어다 증발했던 아바타 안으로 옮겨주고

ReassignBoneWeigthsToNewMesh도 삭제해주고 하이어라키를 정리해줍니다.



새로운 메쉬들이 웨이트가 옮겨져 잘 따라오는 모습을 볼 수 있습니다.



앞서 소개한 응용해서 옷을 입히는건 더 쉽습니다.


그냥 입힐 옷에 ReassignBoneWeigthsToNewMesh 컴포넌트 넣고 본 합치면 됩니다.


쉐이프키 녹화나 애니메이션도 망가지지 않습니다.

이상으로 강좌 마칩니다.



정말 사용하기 나름 작업시간을 엄청 단축 시킬수 있는 꿀팁이라

많은 분들이 알았으면 좋겠네요.

Happy 2022.04.28 01:35:01
레레땅 개추 2022.04.28 01:35:53
토끼찹쌀떡 이젠 하다하다 코딩까지해야하네... 2022.04.28 01:37:01
Paisly 근본적인 해결책인거같아서 좋네여 아바타툴즈쓰면 스크립트없이 비슷한작업할수있긴한거같아여 - dc App 2022.04.28 01:38:09
ㅇㅇ 읽진 않았지만 좋은 강좌네요 219.241 2022.04.28 01:48:33
2만마일 트위터에서보고잘쓰고잇슴이거 - dc App 2022.04.28 01:49:48
번호 분류 제목 글쓴이 날짜 추천
1833566 일반 아니 저새끼들이 고래 핵쓰는거 몰랐다는거 씹구란데? 15 ㅇㅇ 49.175 2022-05-02 21
1833526 일반 미호는 건드리지마라 9 ㅇㅇ 39.7 2022-05-02 21
1833500 일반 아 진짜 존나 웃기네 씨발 ㅋㅋㅋㅋ 7 ㅇㅇ 110.70 2022-05-02 15
1833483 일반 미호같은 핵쟁이 친구 쉴드 딱 티나도 차단못함? ㅇㅇ 223.38 2022-05-02 12
1833482 일반 같이붙어있던애들이 제일피해자지 씨발련아ㅋㅋ 5 사렌 2022-05-02 14
1833469 일반 045692 SAREN SiNS4 .고래. 8 ㅇㅇ 39.7 2022-05-02 26
1833437 일반 갤럼 아바타 수집 교류회 합니다 !!! 근데 저댄을 곁들인 7 ㅇㅇ 106.102 2022-05-02 19
1833411 정보 저새끼 정신병동패밀리 후기 11 ㅇㅇ 175.223 2022-05-02 23
1833391 일반 완장라인 전원 사퇴하는게 맞지 않나 3 박얘쁜 2022-05-02 12
1833382 일반 내옆에고래있는데 23 ㅇㅇ 27.124 2022-05-02 34
1833300 일반 주딱파딱하는게 딱이거임ㅋㅋㅋㅋㅋㅋ 5 ㅇㅇ 223.39 2022-05-02 16
1833249 일반 다른 고로시 때는 닉언해도 냅두더만 ㅇㅇ 175.223 2022-05-02 10
1833214 일반 파딱이랑좆목라인탄탄하면확실히좋긴하네.. 3 2만마일 2022-05-02 12
1833140 일반 리퍼스토어 프로그램쓰는 갤럼새끼 저격함 31 ㅇㅇ 124.49 2022-05-02 61
1831129 제작/출품 아바타 출시했습니당. 4 ㅇㅇ 125.136 2022-05-01 17
1830803 일반 저 차였음 21 페이 2022-05-01 15
1829808 일반 앞으로 추천 누르는 사람들 다 따먹어벌일거임 24 Cllure 2022-05-01 13
1829120 제작/출품 아바타 제작 현재진행 상황 28 네루06 2022-04-30 17
1828643 월드 소개 잡지컨셉으로 월드 소개해보기 2022년 4월호.png 5 ㅇㅇ 112.151 2022-04-30 12
1828388 일반 인덱컨 2달만에 만난다 ㅠㅠㅠㅠ 14 앺찌 2022-04-30 17
1828258 일반 쟨 왜 인사만해도 댓글이 넘침 29 새벽바람 2022-04-30 13
1828104 일반 생ㅇ리 18 케시아 2022-04-30 12
1828051 일반 자고 일어나자 마자...사고친듯.. 36 설탕소다 2022-04-30 15
1825715 일반 어제머더교류회하는데좆같아서소신발언하나함 18 도라지 2022-04-28 19
1824493 일반 병신겜 1 Flko 2022-04-28 14
> 일반 블렌더로 본 추가하고 프로젝트 살리기 + 클릭 한번으로 옷입히기 강좌 6 ㅇㅇ 124.146 2022-04-28 11
1822779 일반 우왓 뭐야 이거 꼭뷰다있는데 4900엔?! 26 존나나 2022-04-27 11
1821418 일반 심심해서 글 쭉 읽어보는데 이게 ㄹㅇ웃기네 6 세느월(차단) 2022-04-27 76
1820647 일반 브갤은 이런 사람들만 있나요? 12 ㅇㅇ 118.235 2022-04-26 15
1820227 일반 예전에 여자친구랑 vr챗 입문한다는 사람입니다.. 38 ㅇㅇ 183.101 2022-04-26 14
1820180 일반 념글 해명합니노. 41 쌩쥐 2022-04-26 21
1820146 일반 본인 지금 PC방인에 ㅁㅌㅊ? 24 Dark_Chocolate 2022-04-26 22
1820139 일반 아 개시발 좆목디코꺼라 40 ㅇㅇ 118.235 2022-04-26 24
1820058 일반 진짜 갤 좆같네 시발럼들ㅋㅋ 9 미호ツ 2022-04-26 12
1819824 일반 아니뭐좆도없잖아씨발ㅇㅇ 4 drdos 2022-04-26 18
1819563 일반 근데 브챗하면서 첨으로 불편한 사람 생겨서 하는 하소연(요약업슴) 15 ㅇㅇ 27.124 2022-04-26 11
1819466 일반 가모립말고 다른 사람이랑 섹스함? 8 새벽바람 2022-04-26 72
1818872 일반 파딱새끼들 글싸는거 존나 불편함 11 arukas 2022-04-26 11
1817851 일반 이 디씨콘 뭔가 쓰기좀그럼 13 Rury 2022-04-25 10
1817399 일반 얘들아 제발 이거 한번씩만 눌러주라 6 퍼지협회 2022-04-25 12
념글 삭제글 갤러리 랭킹