개발자가 알려주는 게임 비주얼 이펙트 테크니컬 가이드
처음 이펙트를 배우는 분들이나 이펙트에 관심이 있어서 시작하려는 분들이라면 좋은 지침서가 될 것입니다. 특히 기초에서 중급으로 이어지는 스킬에 대한 답을 잘 정리했으므로 많은 시행착오를 겪지 않고 큰 경험을 쌓을 수 있는 장점이 있습니다. 또한 학습 중 저자가 직접 이펙트를 만드는 예제 동영상을 QR코드로 찍어 볼 수 있으므로 기능에 대한 이해뿐 아니라 직접 만들어보기 유용해서 유니티 인터페이스에 익숙하지 않은 사람들이 볼 때도 쉽게 따라할 수 있습니다.
이 책은 게임 이펙트 리소스 개발을 위한 기초 기술로 시작되어 유니티 엔진을 기반으로 게임 이펙트를 실제적으로 제작하고 표현하는 방법에 대해 다루고 있습니다. 게임 비주얼 이펙트를 개발하기 위한 본격적인 아트와 셰이더 기술의 융합 부분에 대해 배우고 최적화를 위한 방법과 알아두면 좋은 기능에 대해서도 안내합니다.
출판사 서평
초급자도 쉽게 접근할 수 있는 단계적 학습 방법
우리나라는 게임 개발에 대해 폭발적인 성장을 거듭하였음에도 불구하고 개발에 대한 정보가 매우 부족한 편입니다. 캐릭터를 그리기 위한 일러스트나 3D 모델링과 같은 아트 전문적인 저서는 나름대로 많고 종사하는 인구도 많지만, 게임 개발은 캐릭터 하나만 혹은 배경 하나만 가지고 이루어지지 않습니다. 그 중에서 게임 비주얼 이펙트는 책이나 강좌조차 구하기 매우 어려운 영역 중 하나이고, 아트 능력만으로는 한계가 있는 업무입니다.
몇 세대의 개발 시기를 거치며 경험했던 노하우를 바탕으로 자라나고 있는 미래의 개발자들이 보다 빠르게 기술을 습득하고 발전하는 데 도움이 되었으면 하는 바람으로 이 책이 만들어졌습니다.
게임 개발을 목표로 하고 있는 분들 그리고 아트나 디자인, 프로그램 직군이지만 이펙트를 제작해야 하는 분들에게 게임 비주얼 이펙트 개발 이해를 돕고 아이디어를 구현하는 데 도움이 될 것입니다. 또한 저자가 운영하는 홈페이지(ateliersera.blog.me)에서 직접 피드백을 받을 수 있습니다.
2000년 소프트맥스를 시작으로 창세기전 시리즈와 4LEAF, 테일즈 위버, SD건담 캡슐파이터 등을 개발하였다. NHN(링크스 스튜디오) 이후 네오위즈 게임즈에서 테크니컬 아트 디렉터(Teachnical Art Director)로 활동하고 있다.
개발 프로젝트에 있어서 기술적인 가이드와 방향을 제시하고 기술과 아트를 융합해서 결과물을 만들어 내는 일을 하고 있으며, 모든 개발 직군의 사이에서 커뮤니케이션 역할을 수행하고 있다.
PART A 기초편
1. 게임 비주얼 이펙트
2. 실무에서의 게임 비주얼 이펙트
2-1. 실무에서 이펙트 작업자로서의 역할
2-2. 파트 간의 협업과 이해
2-2-1. 게임 기획자(디자이너)
2-2-2. 게임 프로그래머
2-2-3. 그래픽 디자이너
2-2-4. 사운드 디자이너
2-3. 개발 프로세스 구현을 위한 단계
2-3-1. 이펙트 기획
2-3-2. 이펙트 콘셉트
2-3-3. 구현 방법과 스크립트 작업
2-3-4. 리소스와 최종 데이터 생성
2-4. 그래픽 디자이너가 알아야 할 이펙트 구조
2-4-1. 애니메이션 스프라이트(Animation Sprite)
2-4-2. 단일 텍스처(Texture) 방식
2-4-3. 빌보드(Billboard) 이펙트
2-4-4. 3D 매쉬(Mesh) 이펙트
2-4-5. 셰이더 이펙트
2-4-6. 애니메이션 트윈(Tween)
2-4-7. 애니메이터(Animator)
3. 이펙트 리소스 제작 방법
3-1. 포토샵과 이펙트
3-1-1. 레이어(Layer) 속성과 이펙트
3-1-2. 필터(Filter)와 이펙트 리소스
4. 포토샵으로 만드는 속성별 이펙트 텍스처
4-1. 불 속성 텍스처
4-1-1. 불꽃 파티클 스프라이트
4-1-2. 파이어볼 스프라이트 애니메이션
4-1-3. 화염 구름 만들기
4-2. 물 속성 텍스처
4-2-1. 눈과 비의 표현
4-2-2. 물결과 물 튀기는 효과
4-2-3. 얼음 이펙트 오브젝트
4-3. 바람 속성 텍스처
4-3-1. Shear 필터와 바람 텍스처
4-3-2. UV Scroll 그리고 Offset의 활용
4-3-3. 알파(Alpha) 채널과 구름 텍스처
4-4. 번개 속성 텍스처
4-4-1. 라이트닝 볼트
4-4-2. 플라즈마 구슬과 Spherize, Pinch
4-4-3. Polar Coordinates의 활용
5. FumeFX를 이용한 이펙트 리소스 제작
5-1. FumeFX의 사용 방법
5-2. 화염 이펙트
5-3. 폭발 이펙트
PART B 중급편
1. Unity(유니티) 엔진
1-1. 파티클 시스템(Particle System)
1-1-1. 파티클 시스템의 파라미터(Parameter)
1-1-2. Emission
1-1-3. Shape
1-1-4. Velocity over Lifetime
1-1-5. Limit Velocity over Lifetime
1-1-6. Inherit Velocity
1-1-7. Force over Lifetime
1-1-8. Color Over Lifetime
1-1-9. Color by Speed
1-1-10. Size Over Lifetime
1-1-11. Size by Speed
1-1-12. Rotation over Lifetime
1-1-13. Rotation by Speed
1-1-14. External Forces
1-1-15. Collision
1-1-16. Triggers
1-1-17. Sub Emitters
1-1-18. Texture Sheet Animation
1-1-19. Renderer
1-1-20. Lights
1-1-21. Trails
1-1-22. Noise
1-2. 애니메이션(Animation)과 애니메이터(Animator)
1-2-1. 애니메이션(Animation)
1-2-2. 애니메이터(Animator)
1-3. 스크립트(Script)와 트윈(Tween)
1-3-1. 이펙트 연출을 위한 스크립트
1-3-2. 트윈(Tween)
1-4. 셰이더(Shader)와 이펙트(Effect)
1-4-1. 셰이더 제작 방법
1-4-2. 유니티에서 지원하는 셰이더
1-4-3. 셰이더 포지(Shader Forge)
2. 파티클 이펙트 만들기
2-1. 캠프파이어 이펙트
2-1-1. 텍스처 소스 구하기
2-1-2. 매터리얼 준비와 파티클 세팅
2-1-3. 파티클의 파라미터 값 세팅
2-2. 비 이펙트
2-2-1. 카메라와 환경 이펙트
2-2-2. 파티클의 파라미터 값 세팅
2-3. 검광 이펙트
2-3-1. 검광 텍스처 시트 애니메이션
2-3-2. Mesh Particle 활용
2-3-3. Trail Renderer 활용
2-4. 아이스볼트 이펙트
2-4-1. 아이스볼트와 눈 파티클
2-4-2. 아이스볼트 파티클의 파라미터 값 세팅
2-4-3. Distance 값의 영향을 받는 파티클
2-5. 피격 이펙트와 카메라 쉐이크(Camera Shake)
2-5-1. 파티클 피격 이펙트
2-5-2. 카메라 쉐이크(Camera Shake) 이펙트의 제작
3. Image Effects
3-1. Other
3-1-1. Antialiasing
3-1-2. Screen Overlay
3-2. Bloom and Glow
3-2-1. Bloom
3-2-2. Bloom and Flares
3-2-3. Bloom Optimized
3-3. Blur
3-3-1. Blur와 Blur Optimized
3-3-2. Motion Blur
3-4. Camera
3-4-1. Camera Motion Blur
3-4-2. Depth Of Field / Depth Of Field Depercated
3-4-3. Tilt Shift
3-4-4. Vignette And Chromatic Aberration
3-5. Color Adjustments
3-5-1. Color Correction
3-5-2. Contrast
3-5-3. Grayscale과 Sepia Tone
3-5-4. Tonemapping
3-6. Edge Detection
3-7. Displacement
3-8. Rendering
3-9. Noise
4. Animation과 Animator
4-1. Animation
4-1-1. 애니메이션 편집
4-1-2. 애니메이션 이벤트의 추가와 편집
4-2. Animator
PART C 상급편
1. 셰이더와 게임 비주얼 이펙트
1-1. 셰이더
1-2. 셰이더의 활용
2. 유니티용 셰이더 제작
2-1. Shader Lab
2-1-1. 셰이더 랩의 기초
2-1-2. 블렌딩 옵션
2-1-3. 태그와 셰이더 속성
2-1-4. 스텐실(Stencil)
2-2. 버택스(Vertex) & 프래그먼트(Fragment) 셰이더
2-2-1. VF 셰이더의 기초
2-2-2. 오버레이(Overlay) 모드 구현
2-2-3. 버텍스(Vertex )제어로 파도 만들기
2-3. 서페이스(Surface) 셰이더
2-3-1. UV 스크롤과 텍스처 블렌딩
2-3-2. 프레넬(Fresnel)과 림 라이트(RimLight)
2-3-3. 커스텀 라이팅과 툰 셰도우
3. Shader Forge
3-1. 셰이더 포지 시작하기
3-2. Main과 Node
3-3. 셰이더와 Node 소개
3-3-1. Arithmetic
3-3-2. Constant Vectors
3-3-3. Properties
3-3-4. Vector Operations
3-3-5. UV Operations
3-3-6. Geometry Data
3-3-7. Lighting
3-3-8. External Data
3-3-9. Scene Data
3-3-10. Math Constants
3-3-11. Trigonometry
3-3-12. Code
3-3-13. Utility
3-4. 활용도가 높은 노드(node)
3-4-1. 그레이디언트(Gradient)
3-4-2. 프레넬과(Fresnel) 림 라이트(Rim Light)
3-4-3. 타임 노드
3-4-4. 굴절(Refraction)과 UV 좌표 편집
4. 이펙트와 셰이더
4-1. 파티클 디스토션(Distortion) 셰이더
4-2. 그레이디언트(Gradient)와 마법진 연출
4-3. 알파 테스트와 그레이디언트 맵
4-4. 뎁스 블렌드(Depth Blend)를 활용한 실드 이펙트 만들기
4-5. 정점 제어를 위한 Vertex Offset
4-6. 포털(Portal) 이펙트와 렌더 텍스처(Render Texture)
5. Post Process 셰이더 이펙트
5-1. 포스트 프로세스 셰이더 시작하기
5-2. 카메라 굴절 효과 만들기
부록 이펙트 최적화
1. 이펙트 최적화
1-1. 최적화를 위한 도구
1-2. 텍스처의 최적화
1-2-1. 아틀라스(Atlas) 활용하기
1-2-2. 텍스처 사이즈
1-2-3. 이미지 압축
1-2-4. 밉맵 활용하기
1-2-5. RGBA 채널 활용하기
1-3. Mesh 데이터의 최적화
1-4. 셰이더/매터리얼 최적화
1-5. 오버드로우(Over Draw) 줄이기
2. 알아두면 좋은 기능
2-1. Asset Serialization
2-2. 애니메이션과 파티클과 TimeScale
3. 추천하는 툴
3-1. AmplifyShaderEditor
3-2. 후디니(Houdini)