본문 바로가기

볼봇의 코딩 생활/언리얼한 엔진

(35)
[UE4] UE_LOG 로 Logging 하기 게임 개발에서 로그를 남기는 과정은 매우 중요하다. 단순히 값을 확인 하는 차원을 넘어서 특정 값을 디스크에 저장하여 이후에 문제가 발생했을때 이 로그를 참고하여 조사 할 수 있다. 언리얼 엔진은 기본적으로 Logger 를 가지고 있다. 가장 간단한 방법 UE_LOG(LogTemp, [Verbosity], [Message]); 카테고리, 수준, 내용 순서로 값을 입력하면 된다. 간단히 값을 출력해보는 경우에는 기본적으로 정의된 LogTemp 라는 카테고리를 사용하면 편하다. 새 카테고리를 지정해서 사용 언리얼 엔진의 로그 필터를 사용하려면 LogTemp 로는 한계가 있다. 따라서 카테고리를 직접 지정해줄 필요도 생긴다. 언리얼 엔진은 카테고리 생성을 위해서 두가지 메크로를 지원한다. 모듈의 헤더 파일([..
.uproject 파일이 연결되지 않는 경우. 언리얼 엔진을 처음 설치 하면, .uproject 파일 (언리얼엔진 프로젝트 파일)이 열리지 않을것이다. 이런 경우에, 대게 EpicGamesLauncher 를 다시 시작해주면 아래와 같은 다이얼로그가 뜨면서 .uproject 파일을 연결 할 수 있는데. 문제는 종종이 다이얼로그가 뜨지 않는다는 것 이다. C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64 이때 해결책은 간단하다. 애픽게임즈 런처를 설치한 경로로 이동한다. 아래로 쭉 내려가다보면 UnrealVersionSelector.exe 가 있다. 이 파일을 복사한다. [PATH_TO_ENGINE]\Engine\Binaries\Win64 위 경로에 해당 파일을 붙여넣고, 실행한다. '예..
UE4 MediaPlayer 에서 Seek 사용하기 인 게임에서 미디어를 재생하다가 중간에 특정한 위치로 이동해야할 필요가 있다. 이때 유튜브에서 쉽게 볼 수 있는 플레이 바를 이리저리 움직이는 기능을 구현하고 싶을텐데, 언리얼 엔진에서는 Seek 라는 함수를 통해 이 기능을 제공 한다. UMediaPlayer::Seek | Unreal Engine Documentation UMediaPlayer::Seek Seeks to the specified playback time. docs.unrealengine.com 오늘은 UMediaPlayer::Seek 함수를 사용하는 방법에 대해 간단히 알아보겠다. Media 열기 우선 간단히 오디오 파일을 열 수 있도록 구현해보겠다. void AMusicSelectPawn::BeginPlay() { MediaPlaye..
UE4 UMG 웹 이미지 띄우기 게임 내 화면은 거의 대부분 이미지 (Texture) 로 이루어진다. 하지만 특정 조건에서만 필요한 이미지를 패키징 할 때 모두 넣어버리면 이는 공간 낭비일 수 밖에 없다. 그렇다고 분할 패키징을 하기에는 번거롭고 귀찮은건 사실이다. 따라서, 이번 튜토리얼에서는 웹에서 이미지를 다운로드 받아서 UMG UI 환경에서 띄우는 방법을 알아보겠다. 또한 이 튜토리얼을 응용하면 UPaperSprite2D 등의 스폰 가능한 형태로 변환하여 UI 환경을 벗어나 더 다양하게 응용 할 수 있을거라고 기대한다. UImage 를 상속받는 클래스 만들기 클래스 만들기 앞서서 C++ 만 아래 작업이 가능한 사실을 알린다. http 모듈을 사용해야하는데, 이는 C++ 에서만 사용 가능하기 때문이다. UImage 를 상속받는 클래..
UE4 구글 플레이 게임 업적 연동 하기 얼마 전, 언리얼 엔진 에서 구글 플레이를 연동하는 방법에 대해 알아봤다. 이번에는 구글 플레이 게임에서 제공하는 여러 기능 중 "업적" 에 대해 알아보려고 한다. 이번 포스팅은 구글 플레이 게임이 연동되어 있는 게임 프로젝트에 한하여 작동하므로 아직 연동하지 않은 독자는 아래 포스팅을 참고하여 연동을 마치고 돌아오자. [UE4] 구글 플레이 로그인 구현 (tistory.com) [UE4] 구글 플레이 로그인 구현 게임 내 사용자를 구분하는건 중요한데 HTTP 웹 서버를 따로 구현해서 인증 서비스를 만들지 않는 이상 쉬운 작업은 아니다. 따라서 이번 포스팅에서는 구글 플레이 게임에 로그인 하는 방법에 ballbot.tistory.com 업적이란? 구글 플레이 게임에서 업적 기능은 특정 레벨이나 등급에 도..
UE4 안드로이드 무선 디버깅 & 디플로이 adb shell ip -f inet addr show wlan0 언리얼 게임을 개발하는 도중 휴대폰에서 잠시 테스트 해야 할 때, 케이블은 여간 불편한것이 아니다. 개다가 PC-휴대폰간 케이블을 연결하면 하나밖에 없는 핀을 점유해야해서 충전을 하거나 GearVR (지금은 망한것) 에 연결 할 수도 없다. 따라서, 같은 망에 있는 장치 끼리는 무선으로 디플로이 할 수 있는 기능을 이용해보겠다. 설정하기 설정 과정에서는 기본적으로 PC 와 휴대폰이 케이블로 연결되어 있어야 한다. 명령 프롬프트에 아래 명령어를 입력해보자. adb shell ip -f inet addr show wlan0 IP 주소가 보인다. 휴대폰의 사설 IP 주소이다. 저쪽으로 연결하면 되겠다. 본인에게 보이는 IP 주소를 잠시 외워두거..
UE4 자이로스코프 센서 사용하기 모바일 장치에서 자이로 센서를 사용하는 방법에 대해 알아본다. 자이로 센서가 무슨 기능을 하는지는 대부분 알고 있겠지만, 간단하게 정리하자면 장치가 얼마나 회전했는지 감지해내는 기능이다. 자세한 센서의 역할이나 역사를 알고 싶으면 아래 글을 참고하자. 필자는 잘 모르니까 아래 글 참고. 자이로스코프 - 위키백과, 우리 모두의 백과사전 (wikipedia.org) 자이로스코프 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 자이로스코프(영어: gyroscope)는 위아래가 완전히 대칭인 팽이를 고리를 이용하여 팽이 축에 직각인 방향으로 만들고 다시 그것을 제2의 고리를 써서 앞의 것과 ko.wikipedia.org 레이싱 게임의 처럼, 키보드 입력이 아니라 핸들을 돌리듯한 조작감을 제..
[UE4] JSON 데이터 파싱 하기 게임은 데이터 덩어리이다. 데이터를 다루는데 규격은 필수이다. 그 중 JSON 은 굉장히 유용하게 쓰인다. 언리얼 엔진에서 JSON 문자열을 다루는 기능을 제공한다. (블루프린트 사용 안됨, C++ 만 가능) 이 기능을 사용하여 JSON 스트링을 파싱해보자. 준비하기 먼저 [ProjectName].build.cs 파일의 의존성 배열에 "Json" 을 추가한다. 빌드할때 Json 관련 라이브러리를 추가하게 된다. JSON 문자열 읽어오기 JSON 스트링을 읽어오려면 TJsonReader 가 필요하다. TSharedRef Reader = TJsonReaderFactory::Create("JSON STRING"); "JSON STRING" 부분에 알맞는 JSON 문자열을 적어야 한다. 그대로 실행하면 오류난다..