Unreal/TA&Development 14

[BP][Editor] Tool 제작을 위한 첫걸음

[BP][Editor] Tool 제작을 위한 첫걸음   UE 5에서 사용할 보조 툴 제작을 위해 기본적인 버튼을 이용하여 출력 로그에 'String'을 출력해 보기 위해 공부하였다.  기본적으로 블루프린트를 이용하여 하단과 같이 Custom Event를 이용하면 Print 노드를 이용하여 문자(String)를 콘솔창에 띄울 수 있다.  위와 같이 블루프린트를 작성하고, 블루프린트 액터를 레벨에 배치 후, 디테일 패널을 확인하면 이런 식으로 버튼이 생긴다.  이것은 쉽게 이렇게 작동한다.  처음 프로그래밍을 배우며 작성한 printf 함수를 이용한 Hello World가 생각났다.  다음으로 UI에 붙여서 게임 개발을 할 때, 편하게 사용할 수 있도록 하기 위하여 위젯과 블루프린트를 이용하여 작업해 보았다..

[UE5] UV Editor

[UE5] UV Editor   언리얼 5에는 UV를 직접 수정할 수 있는 기능이 존재한다.  이 UV 에디터는 언리얼 5의 내장 플러그인을 활성화 해야 가능하며, 플러그인을 활성화 하면 '버텍스 컬러 제거' 위에 'UV Editor'라는 메뉴가 추가 된다.  참고로 Unity에서도 이와 비슷한 기능이 존재하지만 둘의 차이점을 생각해보면, 언리얼 5쪽이 좀더 많은 작업을 할 수 있다는 것이다.  UV 에디터가 가능한 이유는 아마도 언리얼에서의 Mesh 데이터는 언리얼의 엔진 데이터로 변경되어 존재하기 때문에, 에디팅이 가능한 것 같다.  유니티에서도 UV를 변경하기 위해서는 언리얼과 비슷하게 플러그인을 추가 해야하지만, Mesh 데이터를 직접 변경하는 것이 아닌, 원본과 다른 또 다른 Mesh 데이터를 ..

[UE5][BP] 조건 강화, 기능 추가, 게임의 클리어 조건 - UI추가, 디버깅

[UE5][BP] 조건 강화, 기능 추가, 게임의 클리어 조건 - UI 추가, 디버깅 조건 강화, 기능 추가 등을 진행할 것이다. 계획은 이렇다. 탄창의 총알을 모두 소비 하면 총이 발사 되지 않는다. 그렇기 때문에 총알을 충전할 수 있는 아이템을 만들어 레벨에 배치한 후, 유저가 이 아이템을 통하여 총알을 충전 할 수 있도록 한다. 정해진 목표치의 몹을 파괴시 게임은 클리어 되도록 하며, 관련 UI도 제작한다. 먼저 총알 충전용 아이템을 획득 시 총알이 충전되는 노드를 제작한다. 'Event Actor Begin Overlap' 이벤트 노드를 이용하여, Ammo Pickup Count 라는 변수를 만들어 Current Ammo의 변수에 더해준다. 'Event Actor Begin Overlap' 이벤트..

[UE5][BP] 조건을 생성해보자

[UE5][BP] 조건을 생성해보자 앞선 HUD에서 보았듯이 나는 Stamina라는 캐릭터의 능력치를 만들어두었다. 그리고 이 능력치는 '쉬지 않고 최대 달릴 수 있는 시간'이라는 조건으로 사용하려고 한다. 계획은 이렇다. 최대 스태미나는 10이고, 0.5초마다 1씩 떨어트린다(소모한다). 달리지 않는 상태에 스태미나를 2씩 회복한다. 참고로 아래의 노드는 최대 스태미나가 1이고, 0.5초마다 0.1씩 소모하도록 만들었다... 먼저 달리기 노드를 제작한다. 유저가 Sprint 키를 눌렀을 때, 플레이어의 스태미나가 소비되는 스태미나보다 크거나 같다면, Branch 노드를 통하여 캐릭터의 이동속도가 2200이 된다. > 달리기 상태 가능 Set Timer 노드를 이용하여, 0.5초마다 위 노드를 루핑 한다..

[UE5][BP] HUD 2/2

[UE5][BP] HUD 2/2 앞장에서 전반적으로 HUD를 제작하였다. 마지막 결과물을 보면, HP바와 ST바가 회색으로 되어 있다는 것을 알 수 있을 것이다. HUD 1/2 링크 : https://asatala.tistory.com/176 UI의 디테일창을 보면 '바인딩'이라는 버튼이 존재하는데, 이것은 유저에게 정보를 상태에 대한 정보(변수, 저장된 값)를 제공하는 용도와, 그리고 UI 자체를 꾸며주는 경우에도 쓰인다. 둘의 용도는 엄연히 다르며, 디테일창을 읽어 보면 쉽게 이해할 수 있다. 위쪽의 녹색 줄은 HP 변수를 보여주는 함수를 UI에 바인딩 시킨 것이고, 아래쪽 빨간 줄은 HP 바를 꾸며주는 역할이다. 이것은 다시 HUD의 블루프린트 내부의 함수들을 보면 이렇게 되어 있다. 역시나 빨간 ..

[UE5][BP] HUD 1/2

[UE5][BP] HUD 1/2 HUD란? Heads-up Display는 플레이어에게 게임에 대한 정보를 표시해주는 기능 기본적인 UI를 만들어 보자. 슈팅 게임에서 가장 필요로 하는 UI 요소로 HP, ST와 사냥한 적을 카운팅, 장전된 총알의 수를 넣기로 하였다. 언리얼에서는 UI 제작 툴로 '언리얼 모션 그래픽 UI 디자이너(UMG)를 제공하고 있고, 유니티의 UGUI와 비슷하면서 다르다. 내가 사용해 볼 때는 기본적으로 이 둘은 비슷한 구조를 가지고 있다. 슬레이트(Slate)라는 것도 존재하는데, 이것은 C++로 작업하여 개념이라고 한다. 그리고 이것을 블루프린트 버전으로 만든 것이 UMG UI라고 생각하면 편할 것 같다. 언리얼 슬레이트 문서 : https://dev.epicgames.com..

[UE5][BP] Actor Moving, Action Mapping, Timeline

[UE5][BP] Actor Moving, Action Mapping, Timeline 오브젝트를 이동시켜보자. 이 작업을 진행하기 전에 간단한 몇 가지 지식을 알고 시작하면 좋을 것 같다. 3D 게임은 당연히 3D 공간에서 이루어진다. 그렇기 때문에 상하좌우와 앞뒤가 존재한다. 우선 상하, 좌우에 대해서 알아보자. 상하, 좌우에 쉼표를 넣은 이유는 각 축에 대해서 하나의 값만 이용하면 되기 때문이다. 무슨 말이냐면, 상, 하가 아닌, 좌, 우가 아닌, +상, -상, +좌, -좌 이렇게 하면 두 개의 값으로 4방향을 모두 조정할 수 있다는 것이다. 다음으로 Normalize에 대해서이다. Normalize는 Shader 작성에서도 자주 쓰이는데, 정규화이다. 이것은 무슨 말이냐면, 벡터의 방향을 유지한 ..

[UE5][BP] Change Material

[UE5][BP] Change Material   일반적으로 블루프린트는 이벤트, 조건, 액션으로 이루어진다.  1. 이벤트 : 언제를 뜻한다.   2. 조건 : 액션이 실행될 조건을 뜻한다.   3. 액션 : 어떤 행동을 할 것인가를 뜻한다. 위 세 가지를 전부 합쳐보면, '조건을 만족했을 때, 어떤 행동을 취한다'라는 간단한 로직이 나오며, 이것에 몇 가지 살을 붙여서 프로그램(기능)을 돌린다.  몇가지 살을 붙인다는 것은 예를 들어 '방아쇠가 당겨지면 총이 발사된다'를 '주인공이 권총의 방아쇠를 당기면 총이 적을 향해서 발사된다'라는 식으로 살을 붙일 수 있다.  그리고 이 살들은 모두 조건이 될 수 있다.  블루프린트를 작성하면, 기본적으로 세 가지 트리거를 확인할 수 있는데, 'Event Beg..