이전에 작업하면서 로그 남긴건데 조금 다듬어서 올린당
국내에는 자료가 없어서 해외포럼에서 긁어와 내 입맛대로 맞춤 ㅇㅇ..
복셀 종특이 텍스쳐가 1*n 개의 수평 텍스쳐라서 아틀라스 대용으로 쓰기도 애매하고 라이트맵도 안먹힘
이 방식이 폴리곤 갯수도 줄고, 텍스쳐와 UV배치도 깔끔하게 배치되고 라이트맵도 잘 들어갈꺼야
도중에 텍스쳐 뽑을 때 원하는 규격으로 하면 된당 (ex. 256x256)
메모장이나 어디 적어뒀다가 유용하게 쓰삼
준비물
Magica Voxel
Voxel Shop: https://github.com/simlu/voxelshop/releases
Blender
3D MAX
Photoshop
Unity3D
Magica Voxel
1. 모델링
2. 팔레트(Palette) 저장
3. *.vox 저장
Voxel Shop
1. 가져오기(Import)
2. 내보내기(Export)
- Format: *.dae
- Algorithm: Optimal (Poly2Tri)
- Textures
ㆍExport textured Voxels: X
ㆍTriangulate by Color: X
ㆍUse Vertex Coloring: X
ㆍUse Power of Two textures: X
ㆍUse overlapping UVs: O
ㆍUse skewed UVs: O
ㆍUse Texture Padding: 0
- Misc
ㆍPrefix Object Names with File Name: O
ㆍFix all T-Junction problems: O
ㆍObject Scale: 0.035 (프로젝트 일반 배율)
- Object Separation: Merged
ㆍFill in enclosed Holes: O
- Format
ㆍSet Y instead of Z as the up axis: X
ㆍExport orthogonal Vertex Normals: X
- Scene Origin: Use Cross
- Object Origin: Use Local Object Center(s)
Blender
※ A~D : 리깅/스키닝 시 팔, 다리 등 분해해서 별도로 움직일 때 적용
A. 모델 분리
- Edit Mode > P > Separate
B. 히든메시 제거
- 파트 별로 불필요한 Face 제거
C. 메시 정리
- Vertex, Edge, Face 미세 조정
- 필요한 경우에만 해당
D. 파트 재조립
- 조립 과정에서 불필요한 더블 버텍스는 제거
ㆍEdit Mode > Tools > Remove > Remove Doubles
ㆍObject Mode > Tools > Shading > Flat
1. 세팅
- Unit Scale은 설정 금지 (3D Max용)
- 뷰포트 스크린: 2개
- 뷰포트 쉐이딩: Texture
2. 피봇 설정
- Edit Mode > Vertex Select > 중심 축 Vert 4개 선택
- Shift+S > Cursor to Selected
- Tools > Set Origin > Origin 3D Cursor
- Shift+C > Shift+S > Selection to Cursor
3. 텍스쳐 생성
- UV/Image Editor > Image > New Image
ㆍWidth/Height: 2k(2048 x 2048)
ㆍColor: Black
ㆍAlpha: X
ㆍGenerated Type: Blank
ㆍ32 bit Float: X
4. UV 리매핑
- UV Maps > Add > Smart UV Project
ㆍAngle Limit: 66.00
ㆍIsland Margin: 0.50
ㆍArea Weight: 1.00
ㆍCorrect Aspect: X
ㆍStretch to UV Bounds: O
- UV 검수
ㆍ비스듬하게 틀어진 경우 Rotate로 맞추기
5. 텍스쳐 설정 (Image Sampling)
- Alpha
ㆍUse: X
ㆍCalculate: X
ㆍInvert: X
ㆍFlip X/Y Axis: X
- Main
ㆍNormal Map: X
ㆍDerivative Map: X
ㆍMIP Map: X
ㆍMIP MAP Gaussian filter: X
ㆍInterpolation: X
- Filter
ㆍUse: Box
ㆍFilter Size: 1.00
ㆍMinimun Filter Size: X
6. 텍스쳐 베이킹
- Bake Mode: Textures
- Option
ㆍBake to Vertex Color: X
ㆍClear: X
ㆍMargin: 2 px
ㆍSplit: Automatic
ㆍSelected to Activate: O
ㆍDistance: 0.500
ㆍBais: 0.001
6. 텍스쳐 저장
- Save As Image(F3)
ㆍChannel: RGB
ㆍColor Depth: 8
ㆍSave As Render: X
ㆍCopy: X
ㆍRelative Path: X
7. 마무리
- 이전 UV 제거
- 이전 머티리얼 제거 > 새로 만들기
- 텍스쳐 새로 만들기 > 저장 된 텍스쳐 가져오기
- 이름 수정(오브젝트, UV, 머티리얼, 텍스쳐)
ㆍ오브젝트 (하이어라키)
ㆍUV (상단바 이름)
ㆍ머티리얼 (+diffuse white)
ㆍ텍스쳐
- Blender 저장
8. *.fbx 내보내기
- 옵션
ㆍMain: Mesh only
ㆍGeometries: Smoothing(Face)
ㆍArmatures: Add Leaf Bones(X)
ㆍAnimation: Baked Animation(X)
3ds Max
1. 세팅
- Units Setup
ㆍSystem Unit Setup: Centimeters
ㆍDisplay Unity Scale: Meters
2. 모델 편집
- Rotate로 z - 180˚ 플랫
- Adjust Transform
ㆍReset Transform
ㆍReset Scale
- Pivot
ㆍAffect Pivot Only: x + 90˚
3. 3ds Max 저장
- 옵션
ㆍCameras: X
ㆍLights: X
ㆍAnimations: 필요한 경우 Bake Animation 체크
ㆍUnity Scale Factor: Automatic
ㆍAxis Conversion: Y-up
ㆍFBX File Format: 가장 최신버전 (Binary)
Texture Edit & Inspection
- 검수
ㆍPOT 규격 확인
ㆍ2k 이하 패스
ㆍ비트 수준: 24bit (alpha 없을 시)
- 포토샵
ㆍ이미지 크기 > 모델 사이즈 맞게 조정
ㆍ이미지 리샘플링: 최단입점(하드 가장자리 유지)
Unity
1. 모델 편집
- Model
ㆍScale Factor: 1
ㆍUse File Scale: O
ㆍMesh Compression: Off (모양이 뭉개진다면 조정 필요)
ㆍRead/Write Enabled: 동적O / 정적X
ㆍOptimize Mesh: O
ㆍImport BlendShapes: 해당O / 비해당X
ㆍGenerate Coliders: X
ㆍKeep Quads: X
ㆍIndex Format: 16bit (65535 verts)
ㆍWeld Vertices: O
ㆍImport Visibility: X
ㆍImport Cameras: X
ㆍImport Lights: X
ㆍPreserve Hierarchy: X
ㆍSwap UVs: X
ㆍGenerate Lightmap UVs: X
ㆍNormals: Import
ㆍTangents: 캐릭터-Split / 일반-Calculate Tangent Space
- Rig
ㆍAnimationType: 선택
ㆍAvatar Definition: Create From This Model
ㆍOptimize Game Objects: 본에 아무런 추가 요소가 없을경우 체크
- Animation
ㆍImport Animation: 선택
ㆍLoop time: 선택
- Materials
ㆍImport Animation: 선택
ㆍLocation: Use External Materials (Legacy)
ㆍNaming: By Base Texture Name
ㆍSearch: Recursive-Up
2. 텍스쳐 편집
- Main
ㆍTexture Type: Default
ㆍTexture Shape: 2D
ㆍsRGB(Color Texture): O
ㆍAlpha Source: None (알파채널 쓰는 경우 Input)
ㆍAlpha is Transparency: X (알파채널이 투명도인 경우 O)
- Advenced
ㆍRead/Write Enabled: X (쉐이더 입힐경우 O)
ㆍGenerate Mip Maps: O
ㆍBorder Mip Maps: X
ㆍMip Map Filtering: Box
ㆍMip Maps Preserve Coverage: X
ㆍFadeout Mip Maps: X
- Mode
ㆍWrap Mode: Repeat
ㆍFilter Mode: Point (no filter)
- Default
ㆍMax Size: 텍스쳐 사이즈에 맞게
ㆍResize Algorithm: Mitchell
ㆍCompression: None
ㆍUse Crunch Compression: X
3. 최종 검사
- Mesh
ㆍvert
ㆍtris
ㆍuv
ㆍ기타 옵션(colors, blendshapes, normal)
- Meterial
ㆍdiffuse color: white
- Transform
ㆍRotation: 0, 0, 0
ㆍScale: 1, 1, 1
- Pivot: y-up
현업에서 일할때는 다 이런식으로 분류해서함?
난 1인개발이라 ㅎㅅㅎ
원래는 그냥 뚝딱 만들다가 최적화 딜레마에 빠지니까 저렇게 정리가 된 듯하네
매지카복셀이 업뎃이 되서 그런가 파레트를 못 뽑는것 같은데 ㅠ
존나복잡하네... 준비물도 많고