//구글콘솔 광고 추가가
728x90
반응형

가끔 웹툰에서 보면 대사들 중간중간 멋진 그라데이션 효과가 들어가 있는 Text들을 볼 수 있다.

이런 방식으로 유니티에서 특정 단어들에 그라데이션 효과를 주고 싶을 때, 따라 해 보자.

 

 

 

1. 그라데이션 프리셋을 만들어 주기 전 프리셋을 저장해 줄 폴더를 추가해 주자.

< 프리셋을 만들어 주기 전 그라데이션 프리셋은 TextMesh Pro가 찾을 수 있는 특정 폴더에 저장해야 한다. >
- 기본적으로 "TextMeshPro/Resources/Color Gradient Presets" 경로를 사용.

****
그라데이션 프리셋은 반드시 "TextMesh Pro/Resources/Color Gradient Presets" 폴더에 저장해야 한다.

폴더 구조를 다르게 하면 태그가 제대로 작동하지 않을 수 있다.(태그가 일반 텍스트로 표시될 수 있음)

>> 그렇기에 저 경로에 맞게 "Color Gradient Presets" 폴더를 우선 만들어주자.

 

 

2. 그라데이션 프리셋 생성하기

< 그라데이션 프리셋 생성하기. >
- 만들어 준 폴더 내에서 Unity 메뉴 >> Assets >> Create >> TextMeshPro >> Color Gradient 클릭. 

 

 

3. 새로 생성된 Color Gradient에셋에 원하는 타입과 색상 설정

< 새로 생성된 Color Gradient 에셋의 이름을 정해주고, Color Mode와 Colors를 선택해 주면 된다. >

< Color Mode는 총 4가지. >
- Single
: 단일 색상 적용. 텍스트 오브젝트의 버텍스 색상과 곱해짐.

- Horizontal Gradient
: 두 가지 색상을 사용하여 좌우로 그라데이션 적용. 각 문자에 대해 왼쪽에서 오른쪽으로 색상 변화.

- Vertical Gradient
: 두 가지 색상을 사용하여 위아래로 그라데이션 적용. 각 문자에 대해 위에서 아래로 색상 변화.

- Four Corners Gradient
: 네 가지 색상을 사용하여 가장 다양한 그라데이션 효과를 만들어 냄.
각 색상이 문자의 네 모서리에서 시작하여 퍼져나감. 다양한 조합으로 여러 종류의 그라데이션 만들 수 있음.
(대각선, 3색, 복합적인 그라데이션)

 

 

4. 리치 텍스트 태그 사용(Rich Text)

< 원하는 특정 단어에 그라데이션을 적용하기 위해 리치 텍스트 태그를 사용. >
1. TextMesh Pro 텍스트 컴포넌트에서 텍스트를 입력할 때,  아래 형식으로 태그 사용해 주면 됨.
:  <gradient="그라데이션 프리셋 이름">적용하고 싶은 단어</gradient> 

ex) "하늘에서는"을 그라데이션 해주고 싶음. 프리셋이름은 "RedToBlue"로 만들어 둠.
>> 아주 먼 옛날 <gradient="RedToBlue">하늘에서는</gradient> 물고기를 잡고 있었다. 

 

 

++

Rich Text에 대해 더 자세하게 알고 싶다면 참고해 보자.

http://digitalnativestudios.com/textmeshpro/docs/rich-text/

 

Rich Text, TextMesh Pro Documentation

You can use rich text tags to alter the appearance and layout of your text. These tags work like HTML or XML tags, but have less strict syntax. A tag looks like . Many tags operate on a scope, which you can end with . Such scopes can be nested, and you don

digitalnativestudios.com

 

 

아래처럼 그라데이션 재사용도 가능.

 

끝이다. 

이렇게 하면 텍스트 특정 부분에만 그라데이션을 적용할 수 있으며, 나머지 텍스트에는 영향을 주지 않는다.

그라데이션 프리셋을 사용하게 되면 여러 텍스트 객체에서 동일한 그라데이션을 쉽게 재사용 할 수 있다. 

 

하지만 여러 그라데이션을 연속해서 사용할 때는 각각의 태그를 올바르게 열고 닫아야 하고,
과도하게 사용하면 렌더링 성능에 영향을 줄 수 있기에, 필요한 부분에만 제한적으로 사용하는 것이 좋을 듯하다.

 

 

 

 

 

 

++

추가로 어디서는, Text에 색깔이 존재한다면 원하는 그라데이션 효과를 보기에 한 가지 작업을 더 해줘야 된다 했다.

위에서 말해준 것처럼 TextMesh Pro에서 그라데이션은 기존 텍스트 색상에 곱셈으로 적용되기 때문에 기존 텍스트 색상이 흰색이 아니라면 기본 색상과 혼합이 된다는 말인데,

테스트해 보니 아래처럼 결과가 나온다. 아마도 업데이트가 된 거 같다.

 

- Text1 기본 색깔 : 분홍색.

- Text2 기본 색깔 : 흰색.

 

이전에는 텍스트 기본 색상이 빨간색이고, 그라데이션이 흰색이서 검은색으로 설정된 경우, 결과값이 그라데이션의 흰색부분은 원래의 빨간색으로 보이고 검은색 부분은 검은색으로 나왔나보다. 그래서 순수하게 내가 원하는 그라데이션 색을 나타내게 하고 싶으면 "<color>"태그를 사용해서 흰색으로 만들어 주고 </color>태그를 달아 준 것 같다.

그라데이션 태그 적용 전에 텍스트 색상을 흰색으로 리셋하는 건데 바로 아래 예시처럼 말이다.(#FFFFFF == 흰색)

ex )
<color=#FFFFFF><gradient="MyGradient">그라데이션 텍스트</gradient></color>

 

그냥 이랬었구나 알아만 두자.

728x90
반응형

+ Recent posts