이전에 작업하면서 로그 남긴건데 조금 다듬어서 올린당

국내에는 자료가 없어서 해외포럼에서 긁어와 내 입맛대로 맞춤 ㅇㅇ..


복셀 종특이 텍스쳐가 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