3DsMax
- 3Dmax에서 노말맵 추출 RTT를 이용한 추출 효과적 2017.11.11
- 모델링 최적화 UE4 2017.11.11
- UE4 Light map 작업 & 2채널 2017.10.31
- 맥스 인터페이스 초기화 (재설치 없이) 2017.04.04
- 3d MAX에서 노말맵 추출 방법 2017.03.17
- 3D max 캐릭터 리깅 (바이패드 셋팅 & 스킨) 2016.08.19 1
- 현재씬에 사용중인 맵 연결 확인창 핫키 Shift + T 2016.02.25
- Ambient Occlusion (AO)경계모서리 그림자 2015.04.21
- 노말맵 추출 2015.04.20
- 3Dmax에서 Mudbox연동 후 Unity 까지 작업 과정 2015.04.09
3Dmax에서 노말맵 추출 RTT를 이용한 추출 효과적
모델링 최적화 UE4
알파맵MASK 과하게 사용하면 엔진 비용이 높다. 과부하
적절한 정식 폴리곤과 알파맵 쓸것
메쉬선이 균일하지 못하면 LOD옵티마이즈 적용하면
균일하지 못한 엣지 부분에서 이미지가 찌그러진다.
알파맵MASK는 엔진에서 메쉬 3Dmax로 보내 알파맵MASK 영역 중 안쓰는 부분을 컷팅
알파맵MASK 영역이 크면 엔진 비용이 높다. 과부하
UE4 Light map 작업 & 2채널
균일하게 맵을 전부 펴줘야 라이트 맵이 자연스럽다. 겹치거나 자잘하게 조각나면 균열이나 얼룩짐
언랩 UV맵 펴기
\
UV 펴기 끝나면 Convert Editable Poly 변경 [uv저장됨]
1채널은 겹쳐 있어도 무방하다.[겹치게작업하면 2채널 라이트맵에서 고르게 펴야한다.]
낭비되는 공간을 줄이려면 1~2채널을 사용하기
가급적 라이트맵을 고려한 UV를 1채널에서 고루게 펴주면 2채널을 안만들어도 된다.
다시 언랩 실행
2채널 변경 후
라이트맵을 고르게 전부 펴준다.
그리고 Convert Editable Poly 변경 [uv저장됨]
2채널이 확인하기
다시 UV 실행 후
1 채널과 2 채널을 열어보면 된다.
Abandon 버튼을 채널 마다 눌러주면 UV맵이 바로 바뀌는것을 확인할 수 있다.
위 이미지는 자잘한 조각으로 라이트 품질이 좋지 않다. 가능하면 고르게 펴줄것
맥스 인터페이스 초기화 (재설치 없이)
맥스 인터페이스 초기화 메뉴 Customize -> Customize UI and default Switcher -> aimdark로 설정해서 UI를 초기화 하시고요.
탐색기에서 아래 경로 들어가셔서 3dsmax.ini 파일을 지우시면 됩니다.
C:\Users\Administrator(컴퓨터 이름)\AppData\Local\Autodesk\3dsMax\2013 - 64bit\ENU
@내 컴퓨터 C:\Users\Administrator\AppData\Local\Autodesk\3dsMax\2017 - 64bit\ENU
3d MAX에서 노말맵 추출 방법
3dsMax에서 로우폴리곤 작업을 완료합니다. 지브러시로 넘겨서 스컬프팅을 원활하게 진행하기위해 폴리곤은 사각으로 작업하는게 좋습니다.
모델링을 완료했다면 언렙을 해줍니다. 어차피 RTT를 이용해 노멀맵을 추출하기 때문에 언렙이 우선적으로 진행되야 하는것은 아니지만
미리미리 해주는것도 좋겠죠.
언렙까지 모두 끝낸 로우폴리곤을 OBJ파일로 익스포트하여 지브러시로 가져간 뒤 스컬프팅 작업을 모두 끝냅니다.
사정상 지브러시 스컬프팅 과정은 생략합니다. 단, 지브러시에서 5~6단계까지 진행한 오브젝트(하이폴리곤)는 몇만에서 몇십만에 육박하는 폴리곤으로 구성되었기 때문에 맥스로 가져오기 위해선 폴리곤 최적화가 필요합니다. 너무 많은 폴리곤 상태에서 맥스로 임포트시 컴퓨터가 다운되기 때문입니다. 폴리곤 최적화에 사용되는 툴은 다음과 같으니 참고하시기 바랍니다.
ㆍPoly Cruncher : 지브러시나 맥스2009가 등장하기 전에 주로 많이 사용하던 폴리곤 최적화 툴로 지금은 권하지 않습니다.
ㆍPro Optimize : 단독프로그램이었던 Poly Cruncher가 맥스2009에 포함되면서 Pro Optimize로 이름이 바뀌어 Modify에 추가되었습니다.
ㆍDecimation Master : 지브러시3.1의 플러그인으로 빠른 속도와 강력한 최적화를 보여줍니다.
위의 툴을 사용하여 지브러시에서 제작한 하이폴리곤의 폴리곤 수를 최적화 했다면 이제 맥스로 로우폴리곤과 하이폴리곤을 함께 임포트합니다.
맥스상에 로우폴리곤과 하이폴리곤을 함께 임포트 했습니다. 만약 불러오는 과정에서 컴퓨터가 다운되거나 도저히 작업을 진행할 수 없는 상황이라면 퀄리티를 조금 포기하더라도 폴리곤을 더 최적화 하는게 좋습니다. 임포트한 로우폴과 하이폴은 스무스그룹이나 모디파이리스트에서 스무스를 적용해 줍니다. 최적화를 하는 과정에서 폴리곤이 튀는 형상이 발생하기 때문에 노멀맵 퀄리티를 위해 스무스를 적용해 주는게 좋습니다.
이제 로우폴리곤을 선택하고 Modify리스트에서 Projection을 적용합니다.
자 이제 렌더 투 텍스쳐(RTT)를 이용해 노멀맵을 추출할 차례입니다. 아래 이미지는 클릭해서 봐 주세요.
프로젝션이 적용된 로우폴리곤을 선택하고 Renderring > Render To Texture를 선택합니다. (단축키 : 숫자0)
1 : 떨어진 UV간 경계로 인해 차후 끊김현상을 줄이기 위해 패딩값을 적당히 조절합니다. 제 경우기본값 2로 되었있을때는 주로 끊겨 보이더군요.
2 : Projection Mapping 을 활성화 시켜주고 옵션버튼 클릭.
3 : 필터링 옵션의 셋업버튼을 클릭.
4 : 안티엘리어싱 필터 항목을 Mishell-Netravali 나 Catmull-Rom으로 선택합니다. (보다 선명하고 좋은 품질의 노멀맵을 얻기 위함입니다.)
5 : 글로벌 슈퍼샘플링을 활성화 해주고 다시 RTT창으로 돌아갑니다.
6 : Mapping Coordinates에서 Use Existing Channel을 선택합니다. (자신이 적용한 언렙 좌표값을 사용합니다.)
7 : Add버튼을 클릭하고 NormalsMap을 선택합니다.
8 : 추출할 노멀맵이 저장될 경로를 지정해 준 뒤
9 : 추출할 맵의 사이즈를 선택합니다. (작은 사이즈를 선택하여 노멀맵이 잘 추출되는지 확인해 보는것도 좋습니다.)
10 : 마지막으로 렌더버튼을 클릭하면 노멀맵을 베이크합니다.
추출된 노멀맵입니다. 포토샵으로 가져가 샤픈필터를 적당히 적용해 주는것도 좋습니다.
노멀맵이 적용되지 않은 로우폴리곤과(좌) 노멀맵이 적용된 로우폴리곤(우)
출처 : http://blog.naver.com/zrocker78/130070740755
3D max 캐릭터 리깅 (바이패드 셋팅 & 스킨)
바이패드로 캐릭터 셋팅 & 스킨관련
캐릭터 애니메이션을 하기 위해선 기본적인 바이패드 셋팅과 스킨 작업이 선행 되어야합니다.
바이패드를 이용해 기본적인 셋팅 방법과 스킨 작업에 대해 간단한 튜토리얼을 작성해 보았습니다.
도타2 공개 캐릭터를 이용해 기본적인 바이패드 셋팅에 대해서 설명하도록 하겠습니다.
도타2 공개 캐릭터는 밑에 주소에서 다운 받을수 있습니다.
http://www.dota2.com/workshop/requirements
01. Reset XForm & Collapse
캐릭터 셋팅전 모델링을 Reset XForm을 해주는것이 좋다. 캐릭터 모델링 과정에서 버텍스의 포지션이 움직였거나 기준점이
달라졌을수도 있으니 시작전 꼭 신경써야되는 부분입니다.
- 화면상에 있는 모델링의 모슨 파츠를 선택한다.
- 화면 우측 설정창에 Utilities 탭을 선택한다.
- Reset XForm를 누르면 노란색으로 활성화 된다.
- 밑에 Reset Selected 를 클릭한다.
이과정을 거치면 이모델링은 깨끗한 상태가 됩니다.
Reset XForm을 해준후 Collapse 를 해주면 Modify 의 히스토리도 깨끗하게 정리됩니다.
- Collapse 탭을 선택합니다.
- Output Type 에서 Modifier stack Result 로 변경합니다.
- Collapse Selected 를 클릭합니다.
- Front 뷰로 설정한다. (정면에서 캐릭터 크기에 마춰서 바이패드 생성하는것이 좋다)
- Create - Systems - Biped 를 선택한다.
- Biped 를 선택하면 마우스 화살표가 바뀌는데 z 축 밑쪽부터 위로 드레그하면 바이패드가 생성된다.
- Biped 가 생성되면 Create Biped 창에서 세부설정을 할수 있다.
- Body Type 에서 Classic 으로 바꿔준다.
다음은 파츠를 모두 선택한 후에 우클릭으로 설정 창을 띄운후 Object Properties 를 선택한다.
이제 부터는 바이패드를 모델링에 맞게 셋팅 하는것입니다.
- 바이패드의 Figure mode 를 선택하면 바이패드의 속성을 다시 변경 할수 있습니다.
- 바이패드의 com의 포지션을 이용해서 모델링의 중심으로 맞춥니다.
- 좌표값을 0,0,0 에서 부탁 시작하는것이 유용합니다.
- 바이패드의 세부 설정을 다시 할 수 있습니다.
바이패드 세부설정에서 팔목의 트위스트 본을 추가해줍니다.
트위스트본은 팔목을 돌릴때 팔뚝의 회전값이 서서히 돌아가서 자연스러운 팔목의 움직임을 만들기 위해서 입니다.
트위스트 본을 만들면 처음에는 트위스트본이 Freeze 상태이기 때문에 생성한후에 Unfreezw All 를 해줘야 합니다.
이제부터 가장 중요한 모델링에 맞게 바이패드 뼈대를 심는 작업입니다.
이작업에서는 인체학적인 지식이 필요하기 때문에 뼈에 대한 공부를 많이 해줘야 합니다.
가령, 어깨 뼈가 어디까지 위치해서 움직이는지 팔목은 어디에서 접혀져야 가장 자연스러운 움직임을 만들어 낼수 있는지 와 같은
해부학적인 공부를 변행하면 도움이 될꺼 라고 생각합니다.
바이패드의 다리 부분을 선택하고 Object Properties 에서 Display as Box 체크를 해주면 바이패드가 박스형태로 바뀌고
모델링형태를 더 잘 볼수 있게 됩니다.
이런식으로 바꿔주면서 바이패드를 모델리에 마춰 나갑니다.
한쪽 다리의 위치를 맞췄다면 반대쪽 다리는 복사에서 사용하면 됩니다.
- 복사하고자 하는 바이패드의 다리 한쪽을 모두 선택합니다.
- 우측 바이패드 속성 탭에서 Copy/Paste 를 엽니다.
- 노란색 별 모양의 Crecte Collection 으로 새로운 레이어를 생성해줍니다.
- 복사하고자 하는 다리를 카피합니다.
- Paste Posture Opposite 를 클릭하면 반대쪽 다리도 정확하게 복사 됩니다.
03. Bones
- Create 탭 에서 Systems 을 선택합니다.
- Bones 을 선택합니다.
- Bone Parameters 창에서 생성할 본의 사이즈를 설정합니다.
- 그리드 좌석 툴을 활성화 시켜서 그리드에 정확하게 위치할수 있게 합니다.
- 좌클릭을 이용해서 본을 생성하고 원하는 만큼의 본이 생성했다면 우클릭으로 마무리 처리를 해줍니다.
생성된 본을 바이패드와 동일하게 Box 형태로 바꿔준후 (Object Properties 에서 Display as Box 체크)
여기서 중요한 부분은 본을 스케일 사용을 하지말아야 합니다.
본의 길이를 맞춰주기 위해서는 메뉴에서 Animation 탭에 Bone Tools 에서 Bone Edit Mode 를 클릭한 후에
Move 툴을 이용해서 조절해줍니다.
적절한 크기조절이 끝났다면 끝 본을 지워주는것이 좋습니다.
이런식으로 서브애니메이션이 들어갈 본들을 만들어 나갑니다.
모든 본이 적절하게 셋팅이 완료 됐다면 이제 각위치에 맞게 본을 바이패드에 링크시켜줍니다.
예를 들어서 치마본은 - Pelvis에 오른손 옷자락은 - R Forearm 에 ...
- 링크를 적용 시킬 본을 선택합니다. (치마본)
- 좌측상단에 있는 Select and Link 아이콘을 선택합니다.
- 선택한 본에 마우스를 위치하면 마우스 아이콘 모양이 바뀌는데 좌클릭은 한 후에 끌어다가 Pelvis 드레그 인 드롭 해주면 링크가 완료 됩니다.
모든 본의 링크가 끝났다면 우측 상단 메뉴에 있는 Schematic View 에서 구조를 확인할 수 있습니다.
02. Skin
이제부터 본격적인 Skin 작업에 들어가보도록 하겠습니다.
이 캐릭터 모델링은 각각 파츠가 나눠져 있기 때문에 파츠마다 따로 스킨을 해주거나 모든 파츠를 합친후 스킨을 적용하는 방법도 있는데 이번에는 각각의 파츠에 따로 스킨을 넣어보도록 하겠습니다.
우선 몸 전체의 기본 바디 파츠만 남기고 다 숨겨줍니다. (보기 편하기 때문에..)
- 스킨을 적용한 모델링을 선택합니다.
- Modify 탭에서 Skin 을 선택합니다.
- Skin Parameters 창에서 Bones Add 클릭해줍니다.
- Select Bones 툴에서 해당 파츠에 추가할 본들을 선택해야되는데 기본적으로 Scene Root, Bip01 은 스킨값이 적용하지않아도 되므로 빼준다.
- 선택한 파츠에 불필요한 본들도 선택해제 해줍니다.
- 본들이 정확히 선택됐다면 Select 눌러 추가해줍니다.
- Edit Envelopes 활성화 시킨후 Vertices 체크해줍니다.
- 모델리의 모든 버텍스를 선택해줍니다.
- Parameters 창을 살짝 내리면 스페어 모양의 아이콘 Weight Toll 이나오는데 그 툴을 열어줍니다.
- Add 한 본들중 Bip01 Pelvis 를 선택하고 웨이트 값을 1를 적용해줍니다.
- 이렇게 되면 선택한 모든 파츠의 웨이트 값은 Bip01 Pelvis 로 들어갑니다.
- 우측에 Advanced Parameters 열어 Remove Zero Weights 를 클릭해 Bip01 Pelvis 를 제외한 웨이트 값이 0 인 부분을 목록에서 제거해줍니다.
이제부터 각각의 버텍스를 클릭해서 웨이트 값을 주면서 스킨을 진행하면 되는데 이부분에서 중요한 부분이 손 발 끝부터 안쪽으로
들어가면서 스킨을 하는것이 좋습니다.
또한 스킨을 할때 바이패드에 움직임을 키로 넣어주고 움직이면서 스킨작업을 진행해야되는데 캐릭터가 움직일수 있는 최대치의 키를 넣어주고 계속해서 움직여보면서 웨이트 값을 조절해 나갑니다.
한가지 팁은, 스킨을 하다 보면 가려져있는 모델링 형태 때문에 스킨할때 버택스를 구분하기가 불편할때가 잇는데
이럴때는 불필요한 파츠를 숨겨 놓고 스킨을 하고 나서 다시 차례데로 스킨을 하면 편합니다.
- 모델링을 선택한후에 Editable Poly 에서 모델링 수정 탭으로 이동합니다.
- 모델링 선택하는데 여러가지 모드가 있는데 여기서는 Element 를 선택합니다.
- 숨기고 싶은 부분을 클릭한다.
- 우측 설정탭에 Hide Selected 하면 선택한 부분을 숨길수 있습니다.
- 이상태에서 다시 Skin 탭으로 돌아가면 계속해서 스킨을 할수 있습니다.
- 다시 숨긴 파츠를 보이게 하려면 다시 모델링 수정 탭에서 Unhide All 선택하면 됩니다.
이런식으로 서서히 스킨 값을 잡아가면서 작업을 진행 하면됩니다.
또하나 기능중에 스킨값 반절을 복사하는 기능이 있는데 이부분은 자주 쓰지 않는것이 좋습니다.
정확히 좌우 대칭인 캐릭터한테는 쓰면 편한데 종종 좌우 대칭 구조가 다른 캐릭터한테는 적용이 되지 않습니다.
한쪽 다리 스킨이 끝났다면 반대쪽 대칭되는 다리 스킨값은 복사해서 사용하도록 하겠습니다.
우측 메뉴에 Mirror Mode 에서 Paste Blue to Green Verts 로 오른쪽 버택스 웨이트 값을 왼쪽 버텍스로 동일 하게 적용됩니다.
위와 같은 방법으로
발목 - 다리 - 손가락 - 손목 - 팔 얼굴 - 목 - 상채 순으로 가슴쪽에서 먼 곳부터 서서히 움직임을 잡아가면서 스킨작업을
진행합니다.
이런식으로 바이패드에 움직임을 확인할 수 있는 키를 넣어주면서 스킨을 진행합니다.
처음부터 완벽한 스킨을 하려기 보다는 전체적으로 크게크게 스킨을 진행하고 애니메이션 작업에 들어갔을때 극한의 포즈에서
스킨 값을 수정하게 되는 경우도 있으니깐 스키닝 과정에서 너무 많은 시간 소비는 불효율적인 것 같습니다.
여기까지 바이패드를 이용한 가장 기본적인 스킨 작업과정이 었습니다.
스킨 작업하시는데 조금이나마 도움이 되셨으면 좋겠습니다.
춢처 http://banho.tistory.com재호재호
현재씬에 사용중인 맵 연결 확인창 핫키 Shift + T
Shift + T
Ambient Occlusion (AO)경계모서리 그림자
노말맵 추출
3Dmax에서 Mudbox연동 후 Unity 까지 작업 과정
3D Scan data 메쉬 를 폴리로 바꾸고 지져분한 면들 정리 필수 리토폴리지 프로그램으로 포리면을 최적화한다
면 정리와 최적화 반복
맵 꼬임 없이 잘 정리되면 머드박스로 보냄
ptx 로 그림판을 만든다 (그리는용도)
눈으로 적적 퀄리티 선택 (높일수록 버벅거림)
포토샵 처럼 그릴 레이어 추가후 작업
다 그렸으면 다시 맥스로 가서 @ptx 모델링 원본을 머드박스에 추가한다.
(머드박스에서 그린것은 맥스에서 바로 사용 할 수 없다.)
아래 뷰 에 2개의 오브젝트가 있다 방금 가져온것의 맵을 편다.
아래와 같이 맵이 펴진다 맵 수정은 머드박스만 가능
두 오브젝트를 선택후 아래 과정을 거친다.
그렸으면 다시 맥스로 보냄
맥스에서 유니티로 익스포트 할때 확장명은 fbx (2014)로 하기 바람.
unity를 열고 새로 만든다 New Unity Project 에 이름지정 반드시 영문 들만 쓸것 모든 경로 도 해당된다.
1번째 줄 캐릭터 컨트롤 선택한다.
맥스에서 만든 fbx파일을 영문폴더 안에 해당 맵소스 다 넣고 unity 화면 inspector 창에 드래그해서 넣는다
unity 맵소스는 2진수 사이즈 지정됨 512x, 4096x, ...머터리얼과 맵소스 이름 같게할것.
unity 창에서 크리에이트에 / 큐브를 드랍하고 위치를 0.0.0으로 잡는다
가져온 fbx파일을 크리에이트 창에 생성된 큐브에 하위 자식으로 넣는다(같은위치로 감)
카메라도 같은 방법으로 넣고 다시 빼내어(자식관계 떼어냄) fbx 오브젝트 보이게 위치 시킨다.
Create/Assets/Standard Assets/Character Controllers/Sources/Scripts/MouseLook.cs ->마우스 룩을
fbx 에 넣는다(스크립트 적용됨)
스크립트를 더블 클릭해 열어보면 (20~29)번 항목에 있다. (자연스러운 마우스 로테이트 로 바꿔준다.)
public enum RotationAxes { MouseXAndY = 0, MouseX = 0, MouseY = 0 }
public RotationAxes axes = RotationAxes.MouseXAndY;
public float sensitivityX = 15F;
public float sensitivityY = 15F;
public float minimumX = -360F;
public float maximumX = 360F;
public float minimumY = -90F;
public float maximumY = 90F;
Hierarchy / Create / fbx 선택후 옆창 Inspector 창에서 맨 안래 하단 Add Component 누르면 롤 메뉴가 나오는데 M 알파벳 치면 Mesh Collider 가 첫 줄에 뜬다 그것을 적용한다. (물리충돌 된다.)
간단한 단일 오브젝트 같은 경우는 Mesh Collider 까지 궂이 적용은 안해도 될것이다.
FBX 파일이 너무 어두우면 머터리얼 맵에 쉐이더 셀프-일루미너을 추가하면 된다.(조명을 설치하던가.)
맵퀄리티 설정후 이제 웹 플레이로 보자 빌드셋팅은 로고나 추가 씬 작업 설정이고 빌드런 같은경우
바로 테스트해 볼 수 있다.