폴더구조
UI/
- Fonts
- Materials
- Textures
- Widgets
엔진설정
//프로젝트 세팅
//해상도에 따라서 스케일링 되는 UI를 사용하겠다는 의미
//Engine ->UserInterface->
- DPI Scaling -> DPIScaleRule -> Scale to Fit 으로 변경 // curve를 이용해서 과도하게 작아지거나 과도하게 커지지 않도록 조절
- Scale to Fit Rule -> 1080*1920 // 사용할 화면에 맞게 조정해준다
- UMG Font // 현재 96 DPI로 되어있다. 때문에 포토샵에서 96으로 해상도를 맞춰주었던 것이다.
포토샵 출력설정
초보자때는 포토샵의 모든 이미지를 조각조각 내면서 붙이기 보다는
전체의 이미지를 바닥에 붙이고 그 위에 얹는 방식으로 보는 것을 권장한다.
// 실제로는 모니터 두개를 놓고 한쪽에 포토샵, 한쪽에 언리얼 켜놓고 맞는지 확인하면서 작업하는게 좋다.
//출력할때
ctrl+ alt + shift + s
- 알파값을 출력해야할때는 transparancy 체크해줘야함, 필요 없을때는 체크를 해제해주는 것이 좋다.
- PNG24로 출력해준다.
- 색깔은 엔진에서 넣어줄 것이기 때문에 반드시 색을 제거하고 투명도만 유지한 채로 하얀색으로 출력한다
// ---------------------------------아이콘 출력---------------------//
//출력할때 한번 더 영상보면서 출력하기
사이즈가 같은 것들은 한꺼번에 출력할 수 있다
//아이콘 출력그룹 만들기
- 같이 출력할 아이콘 or 버튼을 동시에 선택
- Duplicate Layers -> Document = New 선택 -> 새로운 바탕화면에 붙여넣어준다
- 아이콘들을 중앙정렬 Align -> 그룹핑Ctrl+G -> 복사Ctrl+J -> 합치기 Ctrl+E-> Crop(Alt+I+P)
- 만약 아이콘이 깔끔하게 정렬되지 않았다면 그룹을 열어서 완벽하게 겹치도록 설정해준다.
//중앙정렬 맞추기
- 그림자가 있을경우 아마 상하좌우 간격이 안맞을 것이다.
- 간격도 맞춰준다 Alt+c에서 픽셀을 확인후 ->아래 그림에서 좌우 화살표를 클릭해주고-> 픽셀에 필요한 값만큼 + 또는 -를 한다.
- 아이콘마다 중앙이 맞을때까지 픽셀을 체크하면서 크기를 조절해준다
// 캔버스 사이즈를 정사각형으로 맞춰주기
- Ctrl + Alt + C 로 캔버스 사이즈를 켜고
- 더 큰 수를 반대쪽에 입력해준다(정사각형이 되도록)
ex) 67* 76 일경우 -> 76*76으로 변경
- 이렇게 캔버스 사이즈를 정사각형으로 맞춘 후에 이미지 사이즈를 조절해주면 된다.
//이미지 크기 지정
- 중앙정렬이 맞았다면 이제부터는 이미지 크기를 지정해주면된다.
- ctrl+ Alt + I
- 크기는 무조건 2의 상수로 지정해줘야한다.
- 이미지의 수직 수평 크기가, 예를 들어 64에 가까운 수 라면 64*64 / 128에 가까운 수 라면 128*128 -> 이런 방식으로 처리해주면 된다.
- 색깔은 엔진에서 넣을 생각하는게 좋다
- 이름은 (성격_이름)으로 지정해준다.
텍스쳐 임포트 후 텍스쳐 설정
먼저 배경 위치확인용 더미 텍스쳐의 경우 2의 상수를 맞춰 출력하지 않았기 때문에 압축 및 최적화 설정이 올바르게 되지 않았을 것이다.
//Level of Detail
- texture Group = UI
- MipGen = NoMipmaps
//Compression
- Compression setting = UserInterface2D
압축이 안된 세팅이다. 알파가 없을때는 DXT1, 있을때는 DXT2를 사용한다.
//texture
//Advanced
- X-axis Tiling Method = Clamp
- Y-axis Tiling Method = Clamp
//File Path
-Souce File = 개인 texture 폴더를 따로 만들어서 경로 설정
경로가 연결되어있는 곳에서 즉시 확인할 수 있기때문에
혹시 나중에 이미지를 reimport했을때 이미지를 바로 교체할 수 있도록 하기 위해서 좋다.
아이콘으로 임포트를 했을 경우 여러개를 동시에 임포트 했을 가능성이 높다.
이 경우 여러개의 텍스쳐 설정을 동시에 조절해주어야만 한다.
여러개의 UI텍스쳐를 기본 설정하는 방법에 대해 알아보자
수정할 에셋을 여러개 동시에 선택한다->우클릭AssetActions-> Edit Selection in Property Matrix
여기에서 여러개의 텍스쳐를 동시에 수정할 수 있다.
//Texture
- X-axis Tiling Method = Clamp //하나만 사용하기때문에 clamp 설정하는 것, 만약 다른상황에서는 다른 설정을 할 수도 있다
- Y-axis Tiling Method = Clamp
위에서와 동일하게 세팅해주면 된다.
//Copression
- Compression Without Alpha = true // 아까는 알파값이 없었지만, 이번엔 있어야하기때문에 Compress Without Alpha를 체크
- Cook Platform Tiling Setting = UserInterface2D (RGBA) // 알파가 있기때문에 4채널짜리로 선택해준다.
//LevelOfDetail
-TextureGroup = UI
-MipGenSetting = NoMipMaps
위젯 블루프린트에 대한 기본적 내용
1. Canvas Panel 붙이기
- 기본적으로 어떤 크기를 지정해주는 판을 만들고 그 안에 다양한 구성요소를 안전하게 추가하도록 돕는다.
- canvas없이 구성요소를 붙이게 되면 찌그러지는 경우가 빈번하게 발생할 수 있다
- 여기서는 custom 사이즈 설정 후 크기를 조절해준다.
2. image 불러와서 배경 설정하기
- image를 불러오면 그 안에 이미지를 붙여넣을 수 있다.
3. 앵커 포인트 맞추기
- 앵커포인트를 맞추는 작업은 굉장히 중요하다
- ctrl을 클릭한 채로 앵커 포인트를 클릭하면 이미지를 앵커포인트에 맞출 수 있다.
-> 좌우상하를 맞춘 앵커포인트를 선택할 경우 전체화면으로 만들어버릴 수 있다.
//먼저 기억할 것
1) 언리얼 엔진에서 위젯 블루프린트는 다른 위젯 블루프린트의 컴포넌트가 될 수 있다.
2) 이를 이용해서 위셋 블루프린트의 기본적인 형태에 대해 컴포넌트를 제작하고, 구성요소로서 넣을 수 있다.
4. 버튼 불러오기
- 이것도 앵커포인트로 위치 잡고 시작하는건 굉장히 중요하다
- 위치는 임의로 드래그해서 지정하더라도 앵커포인트는 어디에서부터 시작할 것인지 올바르게 설정하는 것이
굉장히 중요하다
5. 버튼에 이미지 넣기
- 이미지를 넣기 전에 SizeX와 Y에 적절한 값을 넣어주는 것 또한 중요하다 (여기서는 64*64)
- Style->Normal / Hovered / Pressed /Disable 에 전부 같은 이미지를 넣어준다.
- Disable의 경우 0.4로 투명도A를 조절해눈다.
- 테두리를 사용하지 않는경우 Draw As에서 None으로 설정해준다
- 텍스트 블록을 사용할 경우 Size To Content를 설정해주면 텍스트에 맞춰서 크기가 알아서 변경된다.
6. 버튼 기능만 사용하고 하위에 이미지를 넣을 경우
- 기본적으로 버튼은 하나의 자식만 가질 수 있도록 설정되어있다.
- 그래서 버튼에 image를 넣는 것 보다는 Canvas나 HorizontalBox같은 것들을 넣어준다.
- 그리고 그 하위계층으로 이미지를 넣어서 이미지의 크기들을 조절하거나 text를 따로 더 추가할 수 있다.
- 폰트가 달라지거나, 텍스트의 길이가 달라지더라도 이미지가 찌그러지지 않도록 조절할수 있다.
// 컴포넌트 교체하기
- 만약 이미 계층구조로 넣은 것을 바꾸고 싶다면 우클릭->ReplaceWith로 다른 컴포넌트로 변경해줄 수 있다.
// 컴포넌트를 하나의 상위 개체를 이용해 묶기
- 묶을 컴포넌트를 같이 선택하고 우클릭 -> Wrap With
ex) 두개의 컴포넌트를 HorizontalBox 안에 배치하여 균일하게 나올 수 있도록 설정한다.
7. Text Block
- AutoWrap을 체크하게되면 크기에 맞춰서 알아서 줄바꿈이 되어진다.
- 원하는 폰트를 넣어서 폰트에 맞게 지정되도록 설정해줄 수 있다.
- Shadow Color에서 A값을 1로 변경하면 텍스트에 그림자 효과를 줄 수 있다.
위젯 버튼 공용화(위젯 블루프린트 추가생성 -> 컴포넌트화)
전체의 위젯이 모여있는 하나의 window는 보통 Scene또는 Page라고 접미사를 붙인다.
하지만 그 구성요소로서 역할을 하는건 WB와 다른 얘기다. 그리고 이것과 Page는 엄연하게 분리되어야만 한다.
Component로 사용하기위해 WidgetBlueprint를 불러온다
위에서 버튼 생성했던 것을 (자르기->붙여넣기)해도 되고 아니면 연습용으로 반복해서 하나 더 만들어줘도 된다
- 다만 앵커포인트는 왼쪽위 상단에 맞춘다. 이 버튼이라는 기능을 기준으로 다른 이미지도 돌려 사용할 것이기 때문이다.
- 밖에서 앵커의 위치를 바꾸는 것이 좋지 컴포넌트 내부에서는 가능하면 앵커는 기본 값을 그대로 유지하는 것이 좋다
그리고 완성된 WBP를 드래그 앤 드롭해서 버튼으로 붙여넣어 줄 수 도 있다.
공용화 했던 컴포넌트들을 내부 세팅
//----------------------------버튼-----------------------//
1. 먼저 버튼 안에 이미지를 넣었다면 이제 다 제거해준다. (버튼은 버튼으로서의 기능만 사용할 것이다)
2. 그리고 버튼 하위계층으로 이미지를 넣어주면 된다.
3. 이미지를 IsVariable = true로 체크해준다.
이제 Graph 탭으로 이동한다.
1. Img를 get으로 가져옴 -> Get Brush를 한다.
// Brush 안에는 이미지뿐만 아니라 컬러 등 다양한 그래픽 관련 변수들이 있다. 이걸 세팅하기 위함이다.
2. brush -> Break 해서 구조체를 쪼갤 수 있다. 조절할 수 있는 다양한 옵션들을 여기서 확인할 수 있다.
3. SetBrush 노드를 불러오고 Make brush를 불러와서 pin에 연결해준다.
4. break했던 brush의 다른 값들은 그대로 할 것이기 때문에 Make bruch의 pin에 그대로 연결해준다.
5. Image만 BtnIcon이미지(안보인다면 IsVariable체크 되어있는지 확인해라) texture를 Make에 pin에 연결해준다.
6. SetBrush노드를 PreConstruct 이벤트에 연결해준다ㅜ.
//PreConstruct 이벤트
- 생성자와 같은 역할을 한다. 엔진에서 컴파일될때 노출되는 형식을 여기서 볼 수 있다.
//Construct 이벤트
- 아이러니하게도 위젯블루프린트에서는 beginplay와 같은 역할을 한다
7. 이제 img를 바꿔줄 BtnIcon을 intance Editable = true로 변경해준다.
8. 가능하면 BtnIcon의 이미지 기본값도 정해주면 좋다.
9. 버튼의 경우에는 hovered / pressed /default 모두 이미지가 다를 수 있기 때문에 고려해서 넣어주면 된다 .
// 위와같은 형식으로 앞으로 컴포넌트로 만든 위젯들의 옵션을 다양하게 조절할 수 있도록 세팅할수 있다.
//Image
1. SetColorAndOpacity //컬러와 투명도를 여기서 설정할수 있다
//----------------------------------텍스트----------//
- 텍스트의 경우도 마찬가지다 set text 노드를 이용해서 텍스트를 바꿔줄 수 있다.
위젯 컴포넌트들 심화
위젯의 배치와 관련된 Box
아이콘, 버튼, 이미지 등을 배치할때 아래와 같은 box종류를 사용하면 좋다.
1) Horizontal Box
- 가로로 균일하게 배치하려 할때 사용하기 좋다.
2) Vertical Box
- 세로로 균일하게 배치하려 할때 사용하기 좋다
3) Retainer Box
- UI Material을 하위 계층구조의 모든 컴포넌트들에게 적용시킨다.
- TextureParamer의 이름을 Material 내부의 파라미터 이름과 동일하게 세팅해준다.
- Show Effects in Designer = true 하면 플레이 하지 않고도 머티리얼이 적용된 것들 확인할 수 있다.
테스트 해보기
1. 해상도 설정
- Editor Preference / Level Editor / Play / GemViewportSetting = 해상도 설정
2. 블루프린트
- GetPlayerController -> ShowMouseCursor = true
- CreateWidget (우리가 만든 WBP) -> AddToViewprot
엔진에서 파일 이동하다가 찌꺼기가 남는경우
//filter
- Other Filter -> Show Redirectors
- 켜진 상태에서 폴더 선택 -> 우클릭 -> FixUpRedirectors 클릭
//이렇게 해주면 남은 찌거기들이 사라진다.
'테크니컬 아트 > 언리얼 UMG' 카테고리의 다른 글
[Inside Unreal] UI Material Lab 1: 오프닝 및 라이브러리 설명 (0) | 2024.06.21 |
---|---|
언리얼 UMG: 이펙트용 리소스 만들기 (0) | 2024.06.20 |
언리얼 UMG: WidgetBlueprint 심화 (0) | 2024.06.20 |
언리얼 UMG: Widget Animation (0) | 2024.06.20 |
UMG 기초 - 포토샵 사용법 1 (2) | 2024.06.19 |