SlideShare a Scribd company logo
1 of 21
Download to read offline
“왜 제 그림 다 깨졌죠”
유니티3D로 2D 이미지 다루기
해상도란?
한 화면, 한 그림이

픽셀 몇개로 표현되는가?
이미지가 깨지는 이유는
해상도가 안 맞아서
그림 파일이 화면에 표시되기까지...
그림 파일

(1000px * 1000px)
스프라이트

(10u x 10u)
카메라
화면

(800px * 800px)
1유닛당 몇 픽셀인가?
카메라에 몇 유닛만큼 표시되나?
화면 크기가

몇 픽셀인가?
최종적으로
80% 축소되어 표시됨
그림 파일을 스프라이트로
54px * 54px 그림
Pixel per Unit을 54로 설정
1x1 크기 스프라이트
스프라이트를 카메라로
size=2 인 카메라
(세로길이 4)
1x1 스프라이트
스프라이트가
카메라 세로길이의 1/4를 차지하게 됨
카메라를 화면으로
카메라 세로길이의 1/4을 차지하니까
화면 세로길이의 1/4를 차지함
따라서 화면이 800px * 600px 크기라면
스프라이트는 150px * 150px 크기로 그려짐
유니티 인스펙터 살펴보기
• 스프라이트인가,

3D 모델에 쓸 텍스쳐인가?
• 이미지 하나에 여러 스프라이트가
들어있는가?
• 유니티 길이 단위 1유닛 당 몇 픽셀
을 표현할까?
• 어느 점을 중심으로 그려지는가?
• 밉맵을 생성하는가?
• 어떻게 확대/축소하나?
• 빌드할 때 어떻게 넣을까?
그래서,
제 그림은 왜 깨졌는데요
실전사례 분석 (모나드 중심)
Case 1.
이미지 해상도가
화면에서 표시될 해상도보다
낮은 경우
(이미지를 크게 그리세요...)
추천하는 해결책
전체 게임화면 크기 (1920*1080, 1680*720...)를 정하고
그 화면에 맞춰서 (혹은 2배 크기로) 그립니다.
Case 2.
Mip Map 생성으로 인해
낮은 해상도가 선택된 경우
Mip Map 이 무엇인가요?
• 미리 절반씩 축소한 이미지를 

만들어 두는 것
• 유니티는 화면에 표시되는 크기와
제일 가까운 이미지를 불러와서 

표시한다.
• 이미지를 70% 크기로 축소하면,

50% 크기로 축소해뒀던 이미지를
140% 확대해서 보여주는 것
• 줄였다가 확대하니까 

당연히 깨진다!
그러니까...
2D 게임에 밉맵 켜지 마세요.
X
Case 3.
이미지를 무리하게 축소한 경우
축소하면 왜 안돼요?
• 런타임에서 확대/축소를

구현하는 알고리즘은

우리의 예상보다 구림
• 체감상 50% 이하로 축소하기
시작하면 조금씩 깨진다
• 지나치게 큰 이미지는

넣기전에 미리 화면 해상도에
맞도록 축소해서 넣는다
• 아니면 차라리 밉맵을 켜던가
Case 4.
해상도 상한선에 부딛친
경우
화면 전체 크기의 이미지를 

넣고 싶을 때...
• 이미지 크기 제한의 디폴트 값
은 1024px
• 이것보다 큰 이미지는 1024px
로 축소됨
• 화면 전체 크기라면 보통
1680~1920px에 맞춰야 하기 때
문에 크기제한을 올리는 것이
좋다
• 8192px까지 조절 가능
• 이미지를 쪼개던가...
Case 5.
도트 게임을 만들고

싶을 때
도트는 왜 뭉개지죠
• 확대/축소 옵션을 확인
• Bilinear : xy 방향 보간
• Trilinear : xyz 방향 보간

(2D 게임 만들땐 무쓸모)
• Point : 가까운 픽셀 색.

도트 스타일은 Point를
사용
Bilinear
Point
Point 방식의 문제점
• 2배 이상이면 상관없는데, 1
배~2배 사이의 애매한 배율
로 확대됐을 때 기묘하게 깨
진다!!
• 애초에 1배~2배 사이의 크
기로 쓰인다면 도트 스타일
을 사용하지 않는 것이 좋다
• 굳이 도트로 찍은 이미지를
쓴다고 해도 Point 방식으로
쓰지 않는 게 좋다
정리
• 화면 크기에 맞는 이미지를 쓸 것
• 위 사항을 잘 지키면 문제가 없다
• 위 사항을 잘 지켜라
• 그렇게 해라

More Related Content

What's hot

어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?Lee Sangkyoon (Kay)
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점Ryan Park
 
게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)Lee Sangkyoon (Kay)
 
주니어 디자이너들에게 알려주고 싶은 2D게임그래픽 실무팁
주니어 디자이너들에게 알려주고 싶은 2D게임그래픽 실무팁주니어 디자이너들에게 알려주고 싶은 2D게임그래픽 실무팁
주니어 디자이너들에게 알려주고 싶은 2D게임그래픽 실무팁Yunjeong Kim
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다Jinho Jung
 
정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)JP Jung
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)Kay Kim
 
복귀 이벤트를 해도 유저가 돌아오지 않는 이유
복귀 이벤트를 해도 유저가 돌아오지 않는 이유복귀 이벤트를 해도 유저가 돌아오지 않는 이유
복귀 이벤트를 해도 유저가 돌아오지 않는 이유Chanman Jo
 
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까Han Je Sung
 
게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티Seungmo Koo
 
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화Eunseok Yi
 
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나Lee Sangkyoon (Kay)
 
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기강 민우
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준영준 박
 
[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니Yongha Kim
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?강 민우
 
목적으로써의 게임, 도구로써의 게임
목적으로써의 게임, 도구로써의 게임목적으로써의 게임, 도구로써의 게임
목적으로써의 게임, 도구로써의 게임KwangSam Kim
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 

What's hot (20)

어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?어서와 게임기획은 처음이지?
어서와 게임기획은 처음이지?
 
위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점위대한 게임개발팀의 공통점
위대한 게임개발팀의 공통점
 
게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)게임 기획 튜토리얼 (2015 개정판)
게임 기획 튜토리얼 (2015 개정판)
 
주니어 디자이너들에게 알려주고 싶은 2D게임그래픽 실무팁
주니어 디자이너들에게 알려주고 싶은 2D게임그래픽 실무팁주니어 디자이너들에게 알려주고 싶은 2D게임그래픽 실무팁
주니어 디자이너들에게 알려주고 싶은 2D게임그래픽 실무팁
 
쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다쩌는게임기획서 이렇게 쓴다
쩌는게임기획서 이렇게 쓴다
 
정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)정종필 팀장이됐어요(더저용량)
정종필 팀장이됐어요(더저용량)
 
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
쩌는 게임 기획서, 이렇게 쓴다(How to write great design documents) from GDC 2008 (Korean)
 
복귀 이벤트를 해도 유저가 돌아오지 않는 이유
복귀 이벤트를 해도 유저가 돌아오지 않는 이유복귀 이벤트를 해도 유저가 돌아오지 않는 이유
복귀 이벤트를 해도 유저가 돌아오지 않는 이유
 
기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까기획자의 포트폴리오는 어떻게 써야 할까
기획자의 포트폴리오는 어떻게 써야 할까
 
게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티게임제작개론: #3 간접통제와 게임 커뮤니티
게임제작개론: #3 간접통제와 게임 커뮤니티
 
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
NDC 2016 이은석 - 돌죽을 끓입시다: 창의적 게임개발팀을 위한 왓 스튜디오의 업무 문화
 
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나
스토리텔링과 비주얼 내러티브: 놀 치프틴은 어떻게 형님이 되었나
 
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
[IGC 2017] 넥슨코리아 오현근 - 평생 게임 기획자 하기
 
NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준NDC 2011 영웅전 런칭팀 박영준
NDC 2011 영웅전 런칭팀 박영준
 
[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니[NDC 2021] 게임 PD가 되어 보니
[NDC 2021] 게임 PD가 되어 보니
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
[IGC 2016] 컴투스 김동준 - 기획 지망생은 무엇을 준비하나요?
 
목적으로써의 게임, 도구로써의 게임
목적으로써의 게임, 도구로써의 게임목적으로써의 게임, 도구로써의 게임
목적으로써의 게임, 도구로써의 게임
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
게임 디렉팅 튜토리얼
게임 디렉팅 튜토리얼게임 디렉팅 튜토리얼
게임 디렉팅 튜토리얼
 

More from Jungsoo Park

유니티 애니메이터 FSM으로 활용하기
유니티 애니메이터 FSM으로 활용하기유니티 애니메이터 FSM으로 활용하기
유니티 애니메이터 FSM으로 활용하기Jungsoo Park
 
48시간, 복셀로 표현하기
48시간, 복셀로 표현하기48시간, 복셀로 표현하기
48시간, 복셀로 표현하기Jungsoo Park
 
풀타임 개발 도전기
풀타임 개발 도전기풀타임 개발 도전기
풀타임 개발 도전기Jungsoo Park
 
LINQ란 무엇인가
LINQ란 무엇인가LINQ란 무엇인가
LINQ란 무엇인가Jungsoo Park
 
셰이더 만들기 실습
셰이더 만들기 실습셰이더 만들기 실습
셰이더 만들기 실습Jungsoo Park
 
셰이더가 뭐에요?
셰이더가 뭐에요?셰이더가 뭐에요?
셰이더가 뭐에요?Jungsoo Park
 
IEnumerator란 무엇인가?
IEnumerator란 무엇인가?IEnumerator란 무엇인가?
IEnumerator란 무엇인가?Jungsoo Park
 
딥 다크 던전 그래픽 작업기
딥 다크 던전 그래픽 작업기딥 다크 던전 그래픽 작업기
딥 다크 던전 그래픽 작업기Jungsoo Park
 
딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기Jungsoo Park
 

More from Jungsoo Park (10)

유니티 애니메이터 FSM으로 활용하기
유니티 애니메이터 FSM으로 활용하기유니티 애니메이터 FSM으로 활용하기
유니티 애니메이터 FSM으로 활용하기
 
NABLA 개발기
NABLA 개발기NABLA 개발기
NABLA 개발기
 
48시간, 복셀로 표현하기
48시간, 복셀로 표현하기48시간, 복셀로 표현하기
48시간, 복셀로 표현하기
 
풀타임 개발 도전기
풀타임 개발 도전기풀타임 개발 도전기
풀타임 개발 도전기
 
LINQ란 무엇인가
LINQ란 무엇인가LINQ란 무엇인가
LINQ란 무엇인가
 
셰이더 만들기 실습
셰이더 만들기 실습셰이더 만들기 실습
셰이더 만들기 실습
 
셰이더가 뭐에요?
셰이더가 뭐에요?셰이더가 뭐에요?
셰이더가 뭐에요?
 
IEnumerator란 무엇인가?
IEnumerator란 무엇인가?IEnumerator란 무엇인가?
IEnumerator란 무엇인가?
 
딥 다크 던전 그래픽 작업기
딥 다크 던전 그래픽 작업기딥 다크 던전 그래픽 작업기
딥 다크 던전 그래픽 작업기
 
딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기딥 다크 던전 그린라이트 도전기
딥 다크 던전 그린라이트 도전기
 

유니티3D에서 2D 이미지 다루기

  • 1. “왜 제 그림 다 깨졌죠” 유니티3D로 2D 이미지 다루기
  • 2. 해상도란? 한 화면, 한 그림이
 픽셀 몇개로 표현되는가? 이미지가 깨지는 이유는 해상도가 안 맞아서
  • 3. 그림 파일이 화면에 표시되기까지... 그림 파일
 (1000px * 1000px) 스프라이트
 (10u x 10u) 카메라 화면
 (800px * 800px) 1유닛당 몇 픽셀인가? 카메라에 몇 유닛만큼 표시되나? 화면 크기가
 몇 픽셀인가? 최종적으로 80% 축소되어 표시됨
  • 4. 그림 파일을 스프라이트로 54px * 54px 그림 Pixel per Unit을 54로 설정 1x1 크기 스프라이트
  • 5. 스프라이트를 카메라로 size=2 인 카메라 (세로길이 4) 1x1 스프라이트 스프라이트가 카메라 세로길이의 1/4를 차지하게 됨
  • 6. 카메라를 화면으로 카메라 세로길이의 1/4을 차지하니까 화면 세로길이의 1/4를 차지함 따라서 화면이 800px * 600px 크기라면 스프라이트는 150px * 150px 크기로 그려짐
  • 7. 유니티 인스펙터 살펴보기 • 스프라이트인가,
 3D 모델에 쓸 텍스쳐인가? • 이미지 하나에 여러 스프라이트가 들어있는가? • 유니티 길이 단위 1유닛 당 몇 픽셀 을 표현할까? • 어느 점을 중심으로 그려지는가? • 밉맵을 생성하는가? • 어떻게 확대/축소하나? • 빌드할 때 어떻게 넣을까?
  • 8. 그래서, 제 그림은 왜 깨졌는데요 실전사례 분석 (모나드 중심)
  • 9. Case 1. 이미지 해상도가 화면에서 표시될 해상도보다 낮은 경우 (이미지를 크게 그리세요...)
  • 10. 추천하는 해결책 전체 게임화면 크기 (1920*1080, 1680*720...)를 정하고 그 화면에 맞춰서 (혹은 2배 크기로) 그립니다.
  • 11. Case 2. Mip Map 생성으로 인해 낮은 해상도가 선택된 경우
  • 12. Mip Map 이 무엇인가요? • 미리 절반씩 축소한 이미지를 
 만들어 두는 것 • 유니티는 화면에 표시되는 크기와 제일 가까운 이미지를 불러와서 
 표시한다. • 이미지를 70% 크기로 축소하면,
 50% 크기로 축소해뒀던 이미지를 140% 확대해서 보여주는 것 • 줄였다가 확대하니까 
 당연히 깨진다!
  • 13. 그러니까... 2D 게임에 밉맵 켜지 마세요. X
  • 15. 축소하면 왜 안돼요? • 런타임에서 확대/축소를
 구현하는 알고리즘은
 우리의 예상보다 구림 • 체감상 50% 이하로 축소하기 시작하면 조금씩 깨진다 • 지나치게 큰 이미지는
 넣기전에 미리 화면 해상도에 맞도록 축소해서 넣는다 • 아니면 차라리 밉맵을 켜던가
  • 16. Case 4. 해상도 상한선에 부딛친 경우
  • 17. 화면 전체 크기의 이미지를 
 넣고 싶을 때... • 이미지 크기 제한의 디폴트 값 은 1024px • 이것보다 큰 이미지는 1024px 로 축소됨 • 화면 전체 크기라면 보통 1680~1920px에 맞춰야 하기 때 문에 크기제한을 올리는 것이 좋다 • 8192px까지 조절 가능 • 이미지를 쪼개던가...
  • 18. Case 5. 도트 게임을 만들고
 싶을 때
  • 19. 도트는 왜 뭉개지죠 • 확대/축소 옵션을 확인 • Bilinear : xy 방향 보간 • Trilinear : xyz 방향 보간
 (2D 게임 만들땐 무쓸모) • Point : 가까운 픽셀 색.
 도트 스타일은 Point를 사용 Bilinear Point
  • 20. Point 방식의 문제점 • 2배 이상이면 상관없는데, 1 배~2배 사이의 애매한 배율 로 확대됐을 때 기묘하게 깨 진다!! • 애초에 1배~2배 사이의 크 기로 쓰인다면 도트 스타일 을 사용하지 않는 것이 좋다 • 굳이 도트로 찍은 이미지를 쓴다고 해도 Point 방식으로 쓰지 않는 게 좋다
  • 21. 정리 • 화면 크기에 맞는 이미지를 쓸 것 • 위 사항을 잘 지키면 문제가 없다 • 위 사항을 잘 지켜라 • 그렇게 해라