기본 콘텐츠로 건너뛰기

250404 위젯 블루프린트, Post Process

Check Box

체크, 체크 안됨으로 나뉘는 UI

Spin Box

슬라이더와 비슷하게 값을 표현해주는 UI

Combo Box

드롭다운 메뉴, 옵션 박스 등과 같이 클릭 후 나열된 아이템을 고르는 박스


CheckBox - Get Checked State - Select

SpinBox - Get Value

ComboBox - Get Selected Option


Progress Bar


위젯 블루 프린트 또한 블루 프린트처럼 동일하게 Begin Play와 비슷한 Event Construct를 통해 Player를 가져와 변수로 저장한다.

저장한 플레이어의 Health 변수를 ProgressBar의 Percent와 바인딩 하여, Perecent는 0.0~1.0의 값을 가지므로, MapRangedClamped를 이용해서 체력을 0~1의 값으로 바꾸어 표현한다. 

플레이어의 BeginPlay에서 위젯을 뷰포트에 추가하고, PainCausingVolume을 이용해서 플레이어에게 대미지를 주도록 한다.
Damage Per Sec : 초당 대미지, 대미지 주기(최초1)에 비례해서 값이 바뀜.
Pain Interval : 대미지 주기.




Event Any Damage를 통해 대미지를 받고, Clamp를 이용해 0~100의 플레이어의 최소 최대 체력을 유지 할 수 있게 한다.

플레이어의 체력이 0이 되면 레벨을 새로 시작.


애니메이션
하단의 애니메이션 버튼을 눌러서 애니메이션 창을 띄울 수 있다.

좌측의 Hierarchy에 누른채로 Add버튼을 누르거나, 각 위젯의 Detail 옆에 생긴 마름모 버튼을 누르는 것으로 애니메이션에 사용할 요소를 고를 수 있다.


Play Animation을 이용해서 위젯의 애니메이션을 실행.

닫기 X버튼 만들기
Custom 으로 사이즈를 조절 한다.


만들어놓은 버튼 위젯을 다른 위젯 블루프린트에서 검색하여 불러온다.
X를 누르면, 마우스 커서가 안 보이게 되고, 게임모드로 전환되며, 보이던 위젯들이 사라지게 된다.
X를 포함시키면 자식으로 취급되므로 Parent를 가져오면 해당 위젯이 되고, Clear Children을 하게 되면, X를 포함한 Parent가 가진 위젯들이 사라지게 된다.

위젯 블루프린트 하나를 만들고, 텍스트를 쓴 후 Desired로 설정한다.

액터를 이용해 위젯 표시
블루프린트Actor를 하나 만들어 위젯을 만들어 넣고, 캐릭터에는 Child Actor를 만들어 Widget을 불러온다.



Loading
Circular Throbber
원형으로 돌아가는 모습의 위젯
Throbber
왼쪽부터 오른쪽으로 생겨나는 위젯

두 위젯모두 Number Of Pieces를 조절하는 것으로 양을 늘릴 수 있다.

Progressbar - Is Marquess를 설정하면 로딩처럼 보인다. 무적 등의 다른 용도로도 사용가능.



CCTV
Widget 블루프린트를 만들고 이미지를 넣어 놓는다.
Render Target을 만들고 오른쪽 클릭을 눌러 머티리얼을 만든다.
머티리얼에 Material Domain을 User interface로 설정하고 Widget의 이미지에 포함한다.








SceneCapture 2D를 생성하고, Render Target을 설정해준다.

RotatingMovement 를 추가하는 것으로 회전하도록 만들 수 있다.



Level 블루프린트를 만들어, SceneCapture2D가 플레이어를 바라보도록 만든 모습.





카메라의 화질을 높이고 싶다면, RenderTarget의 size X, Y를 조정해주면 된다.
단, 무거워지므로 주의


Grid, Vertical Box, Horizontal Box
그리드의 경우는 Column, Row로 이루어져서 값을 주면 열과 행에 맞추어짐.
Vertical Box는 세로로, Horizontal은 가로로 아이템을 채워줌.
Fill을 이용하는게 사용하기 편해서 자주 이용된다.




Post Process Volume
카메라가 볼륨 안에 들어가야 된다는 점을 잊지 말자.캐릭터X

Bloom
눈부심 효과


Chromatic Aberation / 색수차
색이 분리되는 현상. 두통, 머리 공격 받음 등


Dirt Mask
화면에 흙이 튀거나, 얼어 붙음, 피가 튐 등등




Lens Flare
렌즈 계에서 빛이 산란되거나 반사되어 입사된 원래 상에 없는 허상이 나타나는 현상.



Vignette
가장자리가 어둡게 보이게 됨.


Color Grading Temperature
온도 색감 : 따뜻한 느낌, 차가운 느낌 6500 기본


Color Grading MISC - LUT
색상톤



Film
여러 타입의 필름 스톡을 모방하는 값.



Post Process Material
Material의 Material Domain을 Post Process로 바꿔야함.
Scene Trexutre ID - PostProcessInput0

Rendering Features - Post Process Materials의 Array에 Add하여 넣어줘야 함.




🐵참고

언리얼 위젯 블루프린트 바인딩
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/property-binding-for-umg-in-unreal-engine

언리얼 위젯 블루프린트 애니메이션
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/animating-umg-widgets-in-unreal-engine

PostProcess
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/post-process-effects-in-unreal-engine

이 블로그의 인기 게시물

250523 PCG 2

PCG Building Volume Sampler를 사용할 경우 Voxel Size를 맞추어주자. 2m길이를 Transform Points로 Offset을 이동시켜 Difference를 통해 메쉬를 생성한다. 사용시에 Pivot의 위치가 중앙이 아니면 제대로 표현되지 않을 것이다. PCG Landscape Landscape 생성후 PCG Volume 생성. Get Landscape Data - Surface Sampler 안보인다면 Generate Surface Sampler 일반 그리드 패턴으로 서피스 데이터에 포인트를 샘플링합니다. 이 노드에는 다음과 같은 옵션이 있습니다. 포인트 규모(Point Extents) : 서피스의 기본 그리드 셀 크기를 정의합니다. 여유(Looseness) : 변형 가능한 셀 크기를 정의합니다. 실제로 셀 크기는 포인트 규모 * (1 + 여유)입니다. 제곱미터당 포인트(Points Per Square Meter) : 유지되는 셀의 비율을 계산합니다. 이 프로퍼티는 그리드가 클 때 과잉을 제한합니다. Looseness : 기본 1. 0일경우 Extent의 길이 만큼, 1일경우 2배가 됨.  Attribute Filter를 생성하고, Material에 해당하는 Layer를 찾아서 이름을 넣어준다. Type을 Float로 하고 Float Value를 설정하면, 해당 머티리얼이 색칠된 정도 0~1에서 Operator에 의해 >(초과) 0.6초과 일 경우만 생성되게 할 수 있다. 값을 1로 하고 Equal을 이용해서 1인 경우만 생성되게 하는 것도 가능하다. plugin Water body lake를 넣으면, 이또한 Spline이라는 것을 알 수 있다. 따라서 Get Spline Data-Spline Sampler를 통해 사용할 수 있다. GetActorData와 Difference를 통해서 Lake내부를 제거해주기 PCG Mesh Mesh Sampler를 쓰기위해 Get Actor Property를 이용하면, 해당 액터가 ...

250604 저장불러오기

SaveGame 블루프린트 생성 Game Instance 생성, Init 오버라이드 AC_Inventory Save Load

250609 온라인

 Online Subsystem외에도 어느 서버를 사용할 것인지에 따라 플러그인을 추가해주어야 한다. 공통으로 OnlineSubsystem으로 시작한다. 헤더파일 CPP파일 cmd에서 Ipconfig를 통해 Ipv4를 넣어주면 된다. DefaultEngine.ini 수정 https://dev.epicgames.com/documentation/ko-kr/unreal-engine/online-subsystem-steam-interface-in-unreal-engine#%EC%99%84%EC%84%B1%EC%84%B8%ED%8C%85 [/Script/Engine.GameEngine] +NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver") [OnlineSubsystem] DefaultPlatformService=Steam [OnlineSubsystemSteam] bEnabled=true SteamDevAppId=480 bInitServerOnclient=true [/Script/OnlineSubsystemSteam.SteamNetDriver] NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection" 전용 서버 없이 클라이언트가 서버를 만들 수 있게 함. 호스팅 Binaries와 Saved파일을 한번 제거해주고, Generate해주기 헤더파일 헤더파일 CPP 파일 CreateSessionComplete, FindSessionsComplete, JoinSessionComplete 생성자 CreateGameSession 세션을 생성하고 존재하면 제거한다. OnCreateSessionComplete ServerTrav...