게임코디 게임코디 연구소 GCGC 프로카데미 교육센터   회원가입 회원등급 실무자 인증 공지사항 RSS
게임프로그래머 만담 커뮤니티 베타게시판 :   지금은 개발중  |             |   무리수 건의함  |  이미지 HDD  |
게임개발자 실시간 만담
   로그인이 안돼요 자동 로그인


새로운 댓글
  안녕 ~ 게임코디 ㅋㅋ
  막아야 하는데 귀찮아...
  답글은 달고 봅니다 ㅋ...
  ㅋㅋㅋㅋㅋㅋ 이러지 ...
  이러지 마십쇼 아직 작...
  아 포인트는 어제 19시...
  두구두구두구두구....
  오!
  누군가 전염병주식회사...
  앗 아앗...
  16200원
  삼성전자우KODEX200KO...
  오오 마토찡의 게임
  되는걸로 알고있습니다...
  코스피 1680찍고 말...
  2019버전이긴 한데, ...
  흠... 과연
  올해만 버티시고5기가/...
  호우 감사함돠
  답변들 감사합니다. dl...
  .....
  비쥬얼이 재미있어보이...
  글로벌 판데믹으로 변...
  해외 직구 배송비 포함...
  ㅎㅎ 그런가요? 감사합...
  아... 사놓을걸...미...
  저도 유투브 보다가 이...
  마감되었습니다. 감사합...
  외부로부터 의도하지 ...
  쩐이 없는거 같어요총...

# 여기는 읽기 전용의 구 '게임코디 1st' 입니다

# 우리는 이제 게임코디 2nd 로 갑니다. https://gamecodi.com

게임 프로그래머의 만담은 새로운 '게임코디 2nd' 에서 진행됩니다.

개발만담 - 개발,업무,우리의 밥벌이와 관련된 만담 게시판.

Loading...
유니티 텍스트 메쉬 프로에 대한 사용법 간략 정리
  루트군 
작성 : 2019-10-04 21:23:27    |    조회 : 12,607
    8       
  

텍스트 메쉬 프로에 대한 사용법에 대하여 검색용으로 간략히 적어 놓습니다.

편하게 적다 보니 반말체인 점 양해 부탁드립니다.

---------------------------------------------------------------------------------------------------------

ㅁ 텍스트 메쉬 프로(이하 텍메프)의 설치
  1. 유니티 메뉴의 Window -> Package Manager 에서 받아서 설치한다.




ㅁ 텍메프 생성

  1. 하이라키 뷰에서 마우스 오른쪽 클릭 -> UI -> Text - Text Mesh Pro를 실행한다. 텍메프는 유니티 GUI 기능을 이용하며 이는 캔버스 내부에 사용한다.



ㅁ 폰트 에셋
  텍메프는 폰트 파일(ttf)가 아닌 폰트 파일을 이용해서 만든 폰트 에셋을 사용한다. 폰트 에셋 생성은 다음과 같다. (한글 파일 기준)



1. 유니티 메뉴의 Window -> TextMeshPro -> Font Asset Creator 를 실행한다.

2. Source Font File에 폰트 파일(ttf)를 입력한다.

3. Padding에 글자 간 간격을 입력한다. 4~5 정도가 적당한 듯 하다.

4. Atlas Resolution에서 아틀라스 이미지 파일의 크기를 결정한다. 한글 폰트의 경우 4096 X 4096 정도는 되어야 할 듯 하다.

5. Character Set에서 어떤 방식을 사용할지 결정 할 수가 있다.




주목할 점은 Custom Range, Custom Characters.

- Custom Range 은 폰트의 글자 위치를 이용하여 아틀라스로 만들 글자를 정한다.

- Custom Characters는 특정 원하는 글자를 직접 입력하여 원하는 글자를 추출할 수 있다. "가나다"라고 입력 시 가나다 3글자만 추출한다.

여기서는 Custom Range를 이용하여 모든 글자를 추출한다.

6. Character Sequence에 추출할 글자를 입력한다.

완성형 기본 한글의 경우 44032-55203을 입력한다.

7. Rander Mode를 설정 한다.


특정 렌더 모드이 경우 텍메프에서 메테리얼이 비트맵 형식으로 가공된다. 이 경우 아웃라인등 추가적인 효과를 입력하기 어렵다.

이번에는 추가적인 효과를 입력할 수 있는 Distance Field 형식이 필요하기에 SDF32 방식으로 설정한다.

- 특정 렌더 모드의 경우 글자 끝을 둥글게 처리한다. 즉 고딕 폰트를 설정하였는데 돋음체 처럼 끝이 둥근 형태로 나올 수 있다.
- 추후 메테리얼을 직접 Distance field 로 변경할 수 있다. 하지만 이 경우 한글에 아웃라인 등 추가적인 효과가 적용되지 않는 것을 확인하였다.

8. Generate Font Atlas를 클릭하여 굽는다.


굽는다. 시간이 오래 걸린다.




시간이 오래 걸리니 귀여운 고양이를 보자.

귀엽다.





안고도 잔다.

귀엽다.





배고도 잔다.

귀엽다.





귀엽다.



9. 폰트 에셋이 노릇노릇 구워 지면 Save를 눌러 저장하자. 저장하는 걸 잊지 말자.


ㅁ 텍메프에 폰트 에셋 연결

1. 텍메프의 인스팩터 뷰에서 Font Asset 부분에 방금 구워진 폰트 에셋을 추가한다.


2. 한글을 입력해 본다.

잘 나온다.



ㅁ 프리셀


이건 프리셀이다.



ㅁ 메테리얼 프리셋

텍스트 메테리얼 부분을 이용하여 특정 효과를 입력 추가 하여 보자.



폰트에 아웃라인을 추가하였다. 하지만 이때 문제는 같은 메테리얼을 공유하는 모든 텍메프에 효과가 동일 하게 적용된다.

우선 추가로 다른 메테리얼을 추가해 보자.


1. 폰트 에셋의 작은 삼각형 화살표를 열고 메테리얼 파일을 복사한다.  (맥 기준 Alt + D.. 윈도는 컨트롤 디였던가…?)


2. 복제된 메테리얼의 이름을 수정한다. 이때 폰트명은 폰트 에셋의 이름이 반드시 포함되어야 한다.
예 ) 폰트 에셋 명 : "NSquareB" , 추가된 메테리얼 명 "NSquareB Outline"


3. 텍메프의 인스펙터뷰의 Material Preset에서 새로 추가된 메테리얼을 선택 후 원하는 효과를 추가해 보자.

메테리얼을 변경한 텍메프에만 효과가 적용되는 걸 확인할 수 있다.



ㅁ 로컬라이징
한글 외에 일본어 중국어 등이 추가하여 새로운 폰트 에셋을 생성할 경우 앞에서 만든 기존의 폰트 에셋을 사용할 수 없다.

폰트에셋과 이름이 다른 메테리얼을 사용할 수가 없기 때문이다. (메테리얼에 적용된 아틀라스가 다르니... )

아마 로컬라이징을 생각하는 경우 언어별로 폰트에셋을 사용해야 하는데 이 경우에는 테그를 이용하는 게 편할 듯 하다.



1. 텍메프의 Text 부분에 다음과 같은 테그를 입력하여 적용할 수 있다.

폰트 변경 : font="폰트에셋명"
메테리얼 변경 : material="메테리얼명"

2. 테그 잘 안다고 material = "이름" 같이 사이 띄기 넣지 마라. (내가 헤맨 건 절대 아님….)

3. 이때 폰트 에셋과 메테리얼은 Resources 폴더 안에 위치해야 한다.



ㅁ 스타일
사실 저 테그가 게임 내에 들어갈 글귀들과 함께 들어가기에는 좀 길다. 스타일을 이용하여 단축할 수 있다.


1. 프로젝트뷰에서 텍메프 폴더 하단에 Style Sheets폴더 안 Default Style Sheet 파일을 선택 한다.


2. 인스팩터 뷰의 스크롤을 내린 뒤 + 버튼을 클릭한다.

3. 아무런 변화가 없다.

4. 당황하지 말고 Next를 눌러 다음 페이지로 넘기자.

5. 아마 마지막과 같은 내용의 스타일이 하나 더 추가되어 있을 것이다.



6. 원하는 Name을 입력 후 원하는 테그를 입력한다.

7. 저장 버튼을 누른다.

8. 속았다. 저장 버튼은 없다. 자동 저장이다.



9. 6에서 입력한 Name을 스타일 테그로 불러올 경우 정상적으로 동작하는 것을 확인할 수 있다.

(마지막 이미지의 붉은 글씨가 헷갈릴 수 있을 거 같다. 선택된 텍메프 오브젝트는 위의 글씨다.)




  
장찌루


ㅋㅋㅋㅋㅋ 좋은 내용이군요!

갑자기 고양이라니! ㅋㅋ
 1   
2019-10-04
21:40:21
  
루트군


고양이 진짜 귀엽지 않나요? 친구네 고양이에요
2019-10-04
21:54:45

  
blueasa


포스팅 글이 의식의 흐름대로 진행된듯한!!

P.s. 퍼가도 되나요!!
 1   
2019-10-07
10:10:42
  
루트군


넵넵 ㅎㅎ
2019-10-07
12:23:14

  
루트군




하나 더 추가합니다.

로컬라이징 부분에서 한글 영어, 일어, 등 변경 사항이 있을 때 위에는 폰트 에셋과 메테리얼을

테그로 손보는 방식을 생각해 봤는데 더욱더 간단한 방법이 될 수도 있을 거 같아요.

만드신 폰트 에셋을 선택하고 인스팩터 뷰에서 스크롤 쭉 내리시면 위의 이미지와 같은

Fallback Font Assets이라는 부분이 있습니다.

이건 입력한 문자가 폰트에셋에 없으면 다른 폰트 에셋의 문자로 대처할 수 있는 기능이에요.

여기에 한국어 영어 일본어 등 추가 폰트 등을 물려 놓을 경우 별도의 폰트 로컬라이징 필요 없이

바로 자동으로 연결이 되네요.

2019-10-07
17:10:51

  
루트군




이렇게요!
2019-10-07
17:15:43

  
루트군


** 작성자(또는 관리자)에 의해 삭제된 댓글입니다 **
2019-10-07
17:16:43

  
루트군


국가별 폰트 코드 : https://www.ssec.wisc.edu/~tomw/java/unicode.html#xAC00
2019-10-08
04:46:47

  
쥬라기


귀엽다가 전부인거 같습니다!
2019-10-08
10:24:46

  
blueasa


퍼가요~
 1   
2019-10-10
11:49:39
  
그건일


충간에 프리셀 ㄷㄷㄷ
2019-10-14
14:30:40

  
루트군


Padding 부분에 관련해서 추가
이는 효과에 대한 크기에도 영향이 있습니다. 효과는 최대 -1 ~ 1의 기준으로 정의되어 있는데
패딩이 너무 작을 경우 메테리얼을 통한 큰 효과를 추가할 경우 다른 문자가 추가로 보이는 등의
문제가 발생할 수 있어요. 예를 들어 그림자 효과를 최대로 추가한 경우 하단에 줄이 생겨 보인다든지 말이죠.
2019-10-14
15:24:56

  
성숑


쓰신 글 잘 보았습니다.

제가 지금 나눔스퀘어 라운드 폰트로 뽑았는데 
자음이나 모음 한 글자는 표시가 안 되는데 
혹시 글쓴이 님께서는 표시가 잘 되나요? 
2020-01-31
22:13:18

  
성숑


https://hanpsy.tistory.com/2  이 블로그를 참고하여 자모영역을 추가하여 다시 빌드해보고 있습니다.
2020-01-31
22:35:12

  
루트군


제가 위에서 구운 폰트는 완성형 한글이라 ㄱㄴㄷ ㅏ ㅑ ㅓ 같은 자음만, 모음만은 출력이 되지 않습니다.

자음 또는 모음만 출력이 필요하실 경우 자음 모음을 추가 하여 구우셔야 할꺼 같아요
2020-02-01
05:24:11

  
성숑


넵넵 그랬더니 잘 나오네요! 답변 감사드립니다!
2020-02-01
11:31:12



목록보기  |  
SORT :: |  번호순  |  최근댓글  | HIT
4874
Allright Rig 써보신분 있나요?  [2]   
  참스
19/11/06 835
4873
블렌더 2.81 좋네요  [5]   
  뎐삼
19/11/06 1273
4872
[질문] 게임 벨런스 관련 책 추천좀해주세요!  [2]   
  perpet
19/11/05 941
4871
자체엔진을 쓰는건 어떤 이점이 있나요??  [14]   
  뉴월드
19/11/03 3682
4870
밑에 웹 질문한 늅입니다  [3]   
  Kabel
19/10/25 1020
4869
웹 관련 질문입니다  [4]   
  Kabel
19/10/23 1601
4868
안녕하세요 어플개발에대해서 궁금한게 있어서 질문드립니다.  [5]   
  김김김
19/10/23 1167
4867
좋은 말씀 전하러 왔습니다.  [9]   
  아이아빠
19/10/23 1504
4866
야나두 레벨테스트 돌려보신분??  [6]   
  뎐삼
19/10/22 1582
4865
인프라팀이 개발팀에게 바라는 몇가지     
  드럼라인
19/10/16 1287
4864
OS ‘윈도 독점 깨기’ 나선 정부  [12]   
  뎐삼
19/10/15 1815
4863
C++ 11, 14, 17, 20 에 추가된 문법 목록  [11]   
  언제나초보
19/10/14 4840
4862
Effective 시리즈 같은 JavaScript 책 추천 부탁드립니다.  [3]   
  Hopeness
19/10/14 1054
4861
드래곤볼 제노버스2 vs 파이터Z  [1]   
  뎐삼
19/10/13 883
4860
블리자드 새 사명: 🇨🇳동풍오락 유한공사 (冬風...  [13]   
  노코드
19/10/11 1918
4859
websocekt 서버 구성해 보았습니다.  [8]   
  아이아빠
19/10/10 1399
4858
[질문] 안드로이드 개발을 좀 해보고 싶은데 어떤 언어를 택하는게 나을까요...  [10]   
  수잔™
19/10/09 2169
4857
xpress engine이고뭐고.. 다 망해버렸나봐요  [6]   
  noname
19/10/07 1296
유니티 텍스트 메쉬 프로에 대한 사용법 간략 정리  [15]   
  루트군
19/10/04 12607
4855
수학 공부좀 다시 해야겠네요  [4]   
  Vermond
19/10/04 1437
4854
Cordova 좀 아시는 분 있나요?  [5]   
  Vermond
19/10/01 1266
4853
아이펀팩토리 데브데이 게임 서버 개발 워크숍 (마감임박)  [2]   
  게임코디
19/10/01 865
4852
루비 좋아하시는 분들은 안계신가요?  [14]   
  Ruby사랑
19/09/27 1540
4851
젠킨스 구축중인데 도움좀 주세요ㅠ  [8]   
  놔라숑키야
19/09/26 2036
4850
과제로 게임을 개발하려고 하는 미대생인데요.  [12]   
  미대생
19/09/25 1797
4849
유니티에서는 더블클릭과 롱클릭을 직접 구현해야 하는군요  [12]   
  Vermond
19/09/23 3183
4848
ios 13 rootViewController crash or missing  [3]   
  뎐삼
19/09/23 902
4847
유니티 아이템 거래 구현하는 강좌가 있을까요??  [2]   
  도트
19/09/21 1339
4846
구글링을 잘 하지 못하면 프로그래머가 되기 힘들까요?  [10]   
  로얄스프레이
19/09/19 2251
4845
C++ Korea 제6회 세미나 - "종합 선물 세트 제2호"  [3]   
  유틸
19/09/18 1117
4844
국내외 웹서비스 가격에 대해서  [5]   
  noname
19/09/18 851
4843
[질문] 서버와 DB에서 저장? 하는 정보에 대해 너무너무 궁금합니다.  [6]   
  파이파이
19/09/17 1683
4842
c++을 *진짜로* 마스터 하는데 필요한 시간은?  [6]   
  노코드
19/09/17 2589
4841
아이펀팩토리 데브데이 게임 서버 개발 워크숍  [5]   
  게임코디
19/09/16 984
4840
[펌] 엔지니어가 가장 선호하는 개발언어 1위는 파이썬.. (댓글 폭소 주의 ...  [5]   
  깔깔노트
19/09/16 1587


목록보기  |   이전페이지  |   다음페이지  |   [1][2] 3 [4][5][6][7][8][9][10]..[142] [다음 10개]



게임코디 GAMECODI , 게임 프로그래머 만담 커뮤니티

게임코디 소개     |      크라우드펀딩 후원자     |      관리실 연락처     |