Unreal C++/VS 2017 Setup2017. 11. 23. 14:02

언리얼 엔진에서 C++를 사용하기 위한 VS 2017 Community Edition 설치 및 테스트


언리얼 엔진에서 C++ BlueprintFunctionLibrary 라는 클래스를 상속하여 하위 클래스를 생성하고 static 함수를 선언 및 정의하고 언리얼에서 컴파일만 해주면 그 외의 아무런 설정 없이 블루프린트에서 그 함수를 호출하는 노드를 바로 사용할 수 있다. 

여기서는 Visual Studio 2017 Community Edition을 설치하고 작동하는지 테스트하기 위해서 언리얼 엔진에서 BlueprintFunctionLibrary 기반 클래스를 작성하고 실행해보는 절차까지 안내한다


Unreal Engine 4.15 이상의 버전에 Visual Studio 2017 Community Edition을 설치하고 설정하는 방법

https://docs.microsoft.com/en-us/cpp/build/vscpp-step-0-installation

https://docs.unrealengine.com/en-us/Programming/Development/VisualStudioSetup



테스트 환경

  • Visual Studio 2017 Community Edition
  • Unreal Engine 4.17
  • Windows 8.1, 10




Visual Studio 2017 Community 설치시 확인할 사항

설치 옵션을 선택하는 창에서 아래처럼 Unreal Engine 항목에 선택하면 코딩시에 Code Assistance가 제대로 지원된다




Visual Studio와 Unreal Engine 4를 설치했다 하더라도 Windows SDK가 설치되지 않으면 Unreal Engine에서 C++ 클래스를 생성하더라도 오류가 발생한다. 오류 메시지를 잘 살펴보면 해당 OS의 SDK가 설치되지 않아서 컴파일에 실패한 경우에는 해당 SDK를 다운로드하여 설치해주면 된다.

오류 메시지에는 Windows 8.1 SDK Not installed 와 같은 직접적인 원인이 표시되므로 SDK 버전에 대해서는 고민할 필요가 없다



Visual Studio 설정시 권장되는 설정 사항


VS 2017 Community Edition Recommended Settings

툴바에서 마우스 우측 > 하위항목 맨 아래에서 [사용자 지정] 선택 > 명령 > 도구모음 > 우측의 콤보박스에서 [표준] 선택 > 미리보기 패널에서 [솔루션 구성] 선택 > 우측에서 [선택사항 수정] 선택 > [너비] 항목에 200 입력 > [확인] > 닫기


Add the Solution Platforms Dropdown

툴바에서 거의 끝에 있는 [표준 도구모음 옵션] 을 선택한다

[단추 추가/제거]에 마우스를 올리고 [솔루션 플랫폼]에 체크한다


Turn Off the Error List Window

도구 > 옵션 > 프로젝트 및 솔루션 > [오류로 인해 빌드가 종료될 때 항상 오류 목록표시] 체크해제 > 확인


Show Inactive Blocks 선택해제

도구 > 옵션 > 텍스트 편집기 > C/C++ > 뷰 > 비활성 블록 표시:False > 확인


Disable External Dependencies Folders 항목을 True 설정

도구 > 옵션 > 텍스트 편집기 > C/C++ > 고급 > 외부 종속성 폴더 사용 안함:True 설정 > 확인


Edit & Continue 기능해제

도구 > 옵션 > 디버깅 > 편집하며 계속하기:해제 > 확인


Intellisense, Live Errors, and Squiggles

도두 > 옵션 > 텍스트 편집기 > C/C++ > [고급] 선택 후 아래처럼 설정 > 확인

  • 자동 요약 정보 : True
  • IntelliSense 사용 안 함 : False
  • 자동 업데이트 사용 안 함 : False
  • 오류 보고 사용 안 함 : False
  • 물결선 사용 안 함 : False


Visual Studio 설치 및 설정 후 UE4와 연동 테스트


Unreal Engine 을 실행하고 임의의 템플릿(블루프린트)을 이용하여 프로젝트를 생성한다

Content Browser 영역에서 마우스 우측 > 새 C++ 클래스 > 모든 클래스에 체크 > 검색란에 BlueprintFunctionLibrary를 입력하여 부모  클래스를 선택한다


하단의 [선택] 버튼을 누르면 헤더파일, 소스파일의 파일경로를 묻는데 디폴트로 두고 [클래스 생성] 버튼을 누른다.


Content Browser에 [C++클래스] 노드가 생성되고 그 아래에 C++ 클래스가 생성된다



Conent Browser 에서 C++ 클래스가 보이지 않는 경우

Content Browser 우측 하단의 눈 아이콘(뷰옵션) > [C++ 클래스 표시]



자동으로 Visual Studio가 실행되면서 C++ 프로젝트에 헤더파일과 소스파일 등이 생성된 것이 확인된다. 보이지 않는다면 Visual Studio의 솔루션 탐색기에서 해당파일을 더블클릭하면 에디터에 보이게 된다



헤더파일(*.h)에 다음과 같이 입력한다(적색 부분이 추가된 내용이다)


// Fill out your copyright notice in the Description page of Project Settings.


#pragma once


#include "CoreMinimal.h"

#include "Kismet/BlueprintFunctionLibrary.h"

#include "MyBlueprintFunctionLibrary.generated.h"


/**

 * 

 */

UCLASS()

class CONTAINERTESTMAP_API UMyBlueprintFunctionLibrary : public UBlueprintFunctionLibrary

{

GENERATED_BODY()


UFUNCTION(BlueprintCallable, Category="MyTest")

static FString greetings();

};



소스파일(*.cpp)에 다음과 같이 입력한다(적색 부분이 추가된 내용이다)


// Fill out your copyright notice in the Description page of Project Settings.


#include "MyBlueprintFunctionLibrary.h"


FString UMyBlueprintFunctionLibrary::greetings()

{

return FString(TEXT("Hello World"));

}


Visual Studio에서 위의 내용을 편집한 후에 저장하고 Unreal 레벨 에디터의 툴바에서 [컴파일] 버튼을 누르면 실패, 성공여부가 보여진다


위의 코드가 언리얼에서 컴파일에 성공하면 블루프린트에서 다음과 같이 함수노드를 생성하고 호출할 수 있다



Posted by cwisky