Mixamo animation을 max파일로 만드는 과정 영상

 

 

3dsmax normal은 DirectX 기반이고,

Unity는 OpenGL방식이니깐 넣을때 헛갈리지 않는게 좋겠습니다.

 

DirectX와 같은 방향으로 맥스,크라이,소스,언리얼

 

OpenGL과 같은 방향으로 마야,블렌더,툴백,모도,유니티

wiki.polycount.com/wiki/VertexNormal#Editing_Normals_in_3ds_Max

 

VertexNormal - polycount

Vertex normals are invisible lines pointing out of a 3D model's surface, at each vertex. The game compares these normals against a light's direction. If the light is directly facing a normal, the surface is brightest there. When a normal is facing away fro

wiki.polycount.com

youtu.be/R-Zxzq49wCg

 

1. 레이어에 선택한 오브젝트가 없는 경우가 종종 있습니다.

2. 오브젝트를 누른후 익스플로러 하단에 아이콘을 선택하면 선택된 오브젝트가 나옵니다.

3. 우클릭하여 새로운 레이어에 추가하면 레이어가 생기면서 나타납니다.

 

 

- 맥스에서 익스포트시 휴머노이드에서 캐릭터의 엄지손가락이 제대로 동작하지 않는 문제가 발생하였습니다.

- 이리저리 테스트해본 결과 휴머노이드는 IK방향이 정해져있어서 손가락의 경우는 한쪽 방향으로 움직이게 만들어놨기 때문이라. 손가락 본을 틀어 놔야지 정상적으로 작동한다는것을 알았습니다.(이건 또 버전별로 좀 다릅니다.-_-;)

 

- 그외 휴머노이드는 덩치가 다른 캐릭터가 있다면 물건을 양손으로 잡는데 문제가 있습니다. (팔벌리는 거리가 비례적으로 늘기 때문입니다.)

뷰포트 그대로 렌더링한다기 보다는 유사하게 렌더링한다는게 맞을거 같습니다.

 

 

아래는 화면 캡쳐입니다.

이 방법은 제가 작업하면서 우연히 알아낸 방법입니다. (어딘가 있을거 같긴하지만, 본적이 없으므로...)

일반적으로 인터넷에 있는 Render to texture 방식을 이용하면 뭔가 음영이 명확하게 텍스쳐에 안뽑히곤합니다.

도타 가이드(support.steampowered.com/kb/8700-SJKN-4322/dota-2-character-texture-guide)를 보고 해도...

그렇게 만족스러운 텍스쳐가 뽑아지지 않았었습니다.(약간 흐릿하다고 할까요?)

그러던중, 섭스턴스 페인터를 사용하다보니, World space normal이라는 노멀을 알게되면서 작업 방식에 큰 변화가 왔었습니다.

그래서, 아래 내용을 공유해봅니다.

 

1. 하이폴과 로우폴리곤 물체가 있습니다.

2. 섭스턴스 페인터에서 베이킹을 합니다.

3. 베이킹된 결과물을 텍스쳐로 뽑아냅니다.

   이때 중요한것은!!! 바로 World space normal을 뽑아야 한다는 것입니다.

4. 결과를 보듯이 자연스럽게 위에서 아래로 빛을 받은 형태의 그림자가 명확하게 생성되는것을 볼수 있습니다.

   R은 좌에서 우로 방향으로 빛이 들어온것이고, G는 위에서 아래로 빛방향이 , B는 정면에서 빛이 들어온것입니다.

  이것을 적절히 잘 섞으면 뚜렷한 음영을 뽑아낼수 있습니다.

아래는 일반 노멀입니다.

5.  오른쪽의 음영이 뚜렷하고 자연스럽게 텍스쳐링 된것을 알수가 있습니다.

 

이것만 봐서는 잘 모를수 있지만 캐릭터를 뽑아보면 꽤 이쁘게 뽑힌것을 확인할수 있습니다.

macroScript TestUvw
category:"RHY"
buttontext:"TestUvw"
toolTip:"TestUvw v1.0"

(
try(destroyDialog TestUvw)catch()
rollout TestUvw  " <TestUvw> " width:162 height:300

(
button bt1 "    UVW190   "
button bt2 "   UVW200   "

	on bt1 pressed do 
		(
		modPanel.addModToSelection (Uvwmap ()) ui:on
		$.modifiers[#UVW_Map].length = 190
		$.modifiers[#UVW_Map].width = 190
		$.modifiers[#UVW_Map].axis = 1
			)
			
	on bt2 pressed do 
		(
		modPanel.addModToSelection (Uvwmap ()) ui:on
		$.modifiers[#UVW_Map].length = 200
		$.modifiers[#UVW_Map].width = 200
		$.modifiers[#UVW_Map].axis = 1
			)	
		)
	createdialog TestUvw

)

스크립트라기보다는 매크로입니다. (개인적으로 꼭 필요한 기능인데...왜 이런게 없는지..)

물체를 정면으로 펼쳐주는겁뉘다.