본문 바로가기

Unreal/Udemy 강의

(308)
Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-5 UE_LOG with FStringulog에 대한 마지막 강의이다.이번엔 FString에 대해 알아보게 된다.언리얼에서는 주로 FString을 사용하는데, 일반적인 String 보다 다양한 문자와 언어를 지원한다.그리고 기본적으로 언리얼에서 API와 클래스에서 대부분 FString을 사용하여 문자열을 처리한다. 문자열의 경우 넘길 변수 앞에 * 을 작성하는 것을 잊으면 안된다.%s 포맷 지정자는 C 스타일 문자열을 받는데,  이는 포인터 타입이기 때문에 *을 작성해주어야 한다. 그리고 GetName() 함수를 통해 현재 인스턴스의 이름을 알 수 있다.앞서 설명했듯 언리얼에서 API와 클래스에서 대부분 FString을 사용한다고 했는데, GetName() 함수 또한 FString을 반환한다. 컴파일 하고 ..
Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-4 UE_LOG Format Specifiers저번에 이어서 ulog에 대해 더 자세히 알아보자.이번엔 사용되는 지정자에 대해 간단히 알아본다. 저번엔 int만 사용했지만, float, double, char, bool 등 여러 지정자들이 존재한다.이에 대해서도 간단히 ulog를 통해 테스트해보자. int의 경우 %d를 사용했지만, 지정자에 따라 다른 % 값을 사용하는 것을 볼 수 있다.bool의 경우 int로 변환이 간단하기에 %d를 사용하게 된다. 그리고 여기서 wideChar가 다소 생소한데, char 보다 더 많은 바이트를 사용하여 문자를 표현하는 데 사용된다.주로 다국어 문자나 특수 문자 등이 이에 해당된다. 컴파일 해보면 다음과 같다. 한 번에 여러개를 지정하는 것 또한 당연히 가능하다.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-3 UE_LOG Format String - Int이번엔 ulog에 대해 잠시 배워보는 시간을 가진다.이는 언리얼 엔진의 로그에 출력하는 기능으로, 디버깅 할 때 체크하는 용도로 요긴하게 사용이 가능하다.ulog만 쳐도 자동완성으로 인해 긴 문장을 한 번에 완성시키는 것이 가능하다. 간단한 문장을 출력해보자.해당 ulog는 캐릭터 클래스에서 작성해보자.Warning이라 쓰면 출력 부분에서 노란색으로 강조할 수 있다.자동완성시 기본 값은 display이다. 인트 값도 할당해보자.해당 강의에서는 {}을 이용한 통합 초기화 방식을 사용하였다. 이제 컴파일하고 출력해보면 로그창에서 해당 문구들을 볼 수 있다.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-2 Character Class이번엔 캐릭터 클래스를 만들어 주자. 이어서 해당 클래스르 기반으로 BP 클래스도 생성해주자. 해당 BP 클래스로 들어가 보면 구성 요소를 볼 수 있다.특히 해당 클래스가 캐릭터 기반이므로 캐릭터 무브먼트를 가지는 것을 볼 수 있다. 캡슐 컴포넌트를 누르고 디테일 패널에서 Hidden in Game의 체크를 비활성화하면 게임 플레이에서도 캡슐 컴포넌트를 볼 수 있게 된다. BP 게임 모드에서 디폴트 폰 클래스도 방금 생성한 BP 캐릭터로 바꿔주자. 이제 게임을 실행해보면 BP 캐릭터 클래스가 존재하는 모습을 볼 수 있다.
Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-1 Project Setup섹션 1에 대한 내용은 간단한 소개 내용 및 설치에 관한 내용이므로 생략한다.이번 강의는 간단하게 세팅하는 과정이다.또한 이번 섹션 자체가 기본적인 세팅에 대한 전반적인 내용을 다루게 된다. 그리고 사용할 폴더들도 미리 생성해두자. 현재 맵을 저장하고, 이를 기본 맵으로 설정해두자. 강의에서는 GameModeBase에 대한 Cpp와 Header 파일이 프로젝트 생성부터 같이 생성되었는데, 본인 환경에는 생성되지 않아 만들어주었다.강의는 언리얼 4이고, 본인 환경은 언리얼 5여서 그런 것 같다고 추측만 하고 있다. 이를 토대로 블루프린트 클래스도 생성해주자. 우측 상단 세팅에서 월드 세팅을 활성화 해주고, 여기서 만든 BP 클래스를 GameMode에 할당해주자. 다음으로 맵을 할당했..
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-52 마무리 및 도전 과제이제 마무리 할 차례이다.배경음악과 간단한 인트로 음악을 생성해주자.우선 배경음악은 액터 배치 패널에서 사운드를 화면에 끌어다주자. 이후 우측 하단의 디테일 패널에서 사운드를 할당할수 있다. 이제 인트로 음악이다.인트로 음악은 말그대로 인트로 역할을 하기에 게임 시작시 간단하게 음악이 재생된다.따라서 BP_PlayerShooterCharater 에서 Beginplay에 연결하여 사운드를 설정해주자.이때 사용하는 함수는 Play Sound at Location 이다. 컴파일을 해보면 시작 시 인트로 음악이 재생되다가 이어서 설정한 배경 음악이 재생된다. 주어진 도전과제로는 레벨 레이아웃 확장, 무기 스위칭, 탄약 시스템, 더 진보된 AI 등이 존재한다.특히 무기 스위칭 및 더 진보된 A..
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-51 복잡한 스테이트 머신 다시 EventGraph로 돌아가서 is Falling 함수를 통해 is Airborne의 값을 할당해주자.이 상태에서 컴파일하고 플레이해 보면 바로 점프시 애니메이션이 바뀌는 것을 볼 수 있다. 완성도를 높이기 위해서 점프하고 있는 순간의 애니메이션을 추가해주자.스테이트를 추가하고, 기존 Grounded에 연결해주면 된다. 다음으로 점핑 -> Airborne 변환이다.변환 부분을 더블 클릭하지말고 한 번만 누르면 디테일 패널을 볼 수 있다.여기서 Automatic Rule Based on Sequence Player in State 옵션을 활성화 해주자.이를 활성화 해주면 점핑 애니메이션을 마추고 자연스럽게 Airborne 애니메이션으로 넘어가게 된다.그리고 하단의 블렌드에서 지속..
Unreal Engine 5 - C++ 개발자: C++ 학습하고 비디오 게임 제작하기 Section 6-50 애니메이션 스테이트 머신스테이트 머신이라는 애니메이션 블루프린트의 새로운 요소를 사용해보자.이를 사용해 점프 애니메이션을 할당하게 된다.우선 기존의 AnimGraph에서 우클릭을 하면 스테이트 머신을 생성할 수 있다. 이후 생성된 스테이트 머신을 더블 클릭하고 해당 화면에서 여러가지 스테이트를 생성 및 연결하면 다음과 같은 화면을 만들 수 있다. 여기서 또 State를 더블 클릭하여 들어가면 애니메이션을 할당할 수 있다.테스트 용도이기에 간단하게 아무 애니메이션 하나를 할당해주었다. 이제 다른 State로 변경되는 조건을 보자.화살표로 연결된 좌측의 버튼을 누르면 State와 마찬가지로 변경 조건을 할당할 수 있다. 예시로 죽었을 때의 조건을 달아보았다. 이제 실제로 할당해보자.위에 내용은 테스트 삼아 ..