스캔데이터 메시 언리얼 엔진에서 쪼개기 과정





(소스코드)




마야에서 온갖 방법을 다 써보았지만 쪼개는 거 실패했다. 마야 자체 기능 및 보너스 툴 안되고 풀다운잇이나 FX fracture에서도 안된다. 블렌더에서도 Cell fracture 해보았지만 실패. 메시 자체에 불안정 요소가 있어서 그런것 같다. 

퀄리티를 타협하고서라도 폴리곤 갯수를 줄이고 데이터 정리를 하고 난 뒤 쪼개볼까 생각했으나 그러기 위해서 들이는 시간과 공이 너무 크다.

그러다 언리얼 엔진으로 쪼개는 방법을 생각하게 되었다. 언리얼 엔진은 어지간한 오류는 무시하면서도 강제 진군을 하는 무대뽀 장수 같은 부분이 있어서 자원 소모를 많이 할 지언정 간단한 몇 단계 작업만으로도 가능할 것 같아 언리얼 엔진으로 작업하기로 했다.


1. 우선 마야에서 무거운 3D 스캔 데이터를 FBX 익스포트를 해줬다.



2. 언리얼 엔진에서 FBX를 임포트 한다. (데이터가 무거워 시간은 좀 걸린다)

임포트는 디폴트 셋 옵션으로 임포트 해주면 되는데 쉐이딩 그룹 어쩌고 저쩌고 에러가 나면 무시한다. 마야에서 익스포트 할때 FBX 옵션에서 쉐이딩그룹 포함에 옵션 박스 체크하고 다시 익스포트 하게 되면 언리얼 엔진에서 임포트 할때 무한 로딩이 걸려버린다.

 

마야에서는 엄청나게 무거워서 버벅거리는 데이터가 언리얼 엔진에서는 아주 가볍게 콘트롤이 된다. 렌더링도 실시간 개꿀.

3. 언리얼 엔진에서 프랙처 모드로 바꿔준다



그럼 모드 툴바가 뜨는데 조깰 오브젝트를 선택한 뒤 [신규] 버튼을 누른다



그러면 저장할 경로를 선택하라고 한다. 지오메트리 컬렉션을 생성하는 단계이다.



지오메트리 컬렉션이 생성이 되면 박스모양이 생긴다


이제 어떻게 쪼갤지 모양을 정한다. 지금 나는 균등하게 쪼개지길 원하기 때문에 (균등)을 선택했다.


자 그럼 균등하게 쪼갤 예상 가이드 라인이 보이게 된다. 여기서 아 이제 쪼개졌구나 하면 안된다. 이제부터가 긴 작업 시간을 요하게 된다.

이제 디테일 설정 메뉴가 나오게 되는데 조각 갯수와 시드(랜덤)와 노이즈(진폭, 주파수) 등을 설정을 해서 좀 더 원하는 쪼갬 모양으로 조정을 하고 [프랙처]를 눌러야 쪼개지게 된다.



(쪼개는 중...)



창 우측에 쪼개진 정보가 나온다. 20개로 쪼개지길 원했는데 20개보다 좀 더 많기도 한듯..? ㅎㅎ

자, 쪼개지긴 했는데 아직도 이 상태는 지오메트리 컬렉션인 상태인 것이고 이걸 메시로 변환을 해야 한다.


메시로.. 까지만 글자가 보이는데 [메시로 변환] 버튼이다 클릭한다.


그럼 세부 옵션 창이 나오게 되는데 여기서 세부 설정을 하고 [변환] 버튼을 눌러야 된다.




'본별'과 '센터피벗' 옵션은 꺼준다.

센터피벗을 하지 않아야 쪼개진 다음에 부모의 피벗을 따라가기 때문에 조각낸 걸 모두 합쳐도 원래 모양으로 잘 배치가 된다. 만약 센터피벗 설정을 해버리면 모든 조각이 0,0,0으로 위치 하기 때문에 원래 모습대로 배치하기가 어려워진다.


변환될 메시를 어디에 저장할지를 물어본다. 원래 임포트 할땐 메시였지만 지오메트리 컬렉션 프랙처를 통해서 새로이 재생성된 메시이기 때문에 새로운 메시라고 보면 되고 그래서 저장을 해줘야 한다.

여기서 중요한 것은 이렇게 메시로 변환을 해주었다고 해서 조각이 난 상태로 여러 메시로 저장이 되는 것은 아니다. 조각 정보만 갖고 있는 통 메시라고 보면 된다.



이제 저장이 되었고 '모델링모드'로 돌아간다




지오메트리 콜렉션이 아닌 SM 스태틱 메시를 선택하고 모델링 툴에서 어트리뷰트>폴리그룹생성을 해준다. (시간이 꽤 걸림)



 

폴리그룹 생성 중 시간이 꽤나 걸린다.

폴리그룹 변환 모드를 From Connected Tris 로 바꿔준다.

그럼 빨간색으로 뒤덮여 보인다.


[수락]을 해주고..





작업이 끝나면 메시 부분에서 트라이앨글 선택을 누른다 (언리얼 엔진 버전 마다 메뉴 위치가 조금씩 다름. 암튼 '트라이앵글 선택'을 잘 찾아서 실행한다.


이 작업 과정이 이제서야 중요한 작업이다. 쪼개진 정보를 기반으로 메시를 선택해서 '트라이앵글 선택' 세부 메뉴에서 [Separate]를 눌르서 하나씩 쪼개주는 과정이다.

회색 포인트로 뒤덮여서 잘 안보이는데 근접해서 브러쉬 툴로 하나씩 선택하며 [Separate]를 해준다.

Seaprate를 할때마다 아웃라인 창에 보면 조각이 하나씩 배치가 될 것이다.


페이스 컬러 모드를 By Group으로 바꿔주고


선택모드를 Brush에서 All Connected로 변경한다





Separate 할때마다 쪼개진 조각은 쉐이딩 모드로 보이게되고 우측 아웃라인에는 새로운 메시가 배치되는 것이 보인다. 




생성된 조각 메시는 _GENERATED 폴더에 있다.

이제 생성된 조각 메시들을 FBX로 익스포트 하면 마야에서 애니메이션 작업 가능. 


이미 메시 조각은 다 생성이 되었으므로 트라이앵글 선택 창에서 마지막에 [취소]를 눌러서 나가도 된다.

끝!





0 comments:

댓글 쓰기