본문 바로가기
Development/Unreal Engine

[언리얼엔진 #1] MySQL 연결하기 (무료 플러그인, 무료 DB)

by 남디윤 2023. 7. 27.

늦기 전에 언리얼엔진 개발일지를 쓰려고 합니다

우선 이번 포스팅에서는 유튜브를 바탕으로 언리얼엔진 mysql 연결하는 법을 정리해보겠습니다

유튜브를 따라가는 것이며 실제로는 변형 활용하셔도 됩니다.

 

저는 현재 언리얼엔진 5.1 버전을 쓰고 있습니다

오늘 보여드릴 플러그인 언리얼엔진 4.26버전 기준이긴 하지만, 언리얼엔진 5.1 버전에는 사용 가능합니다.

유튜브에 올라와있는 다양한 영상들 중에 가장 따라하기 쉬운 영상이고 무료라서 이 방법을 사용 중에 있습니다.

영상 그대로라 영상보고 하셔도 됩니다 :)

 

+ 23.09.17 추가

해당 플러그인은 패키징 할 때 에러가 발생합니다..

+ 23.10.06 추가

데이터베이스 부분은 Firebase 로 해결하였습니다.

https://uni-datastudy.tistory.com/30

 

[언리얼엔진 #3] Firebase를 통한 무료 데이터베이스 구축(Firebase Functions, REST API, express)

안녕하세요 오늘은 Firebase Functions와 REST API를 활용해서 데이터베이스를 구축한 이야기를 해보려고 합니다. firebase 유로 플러그인이 아닌 rest api 와 varest 플러그인을 사용하는 무료 방법입니다. 0.

uni-datastudy.tistory.com

 

저도 100프로 이해하고 한 게 아니라서 최대한 아는 부분 적도록 하겠습니다 ~

 

 

유튜브 링크

https://www.youtube.com/watch?v=bX0nUa_bUXw 

 

 


 

1. 프로젝트 생성

영상과 마찬가지로 BLANK, C++로 생성해주었습니다.

(언리얼엔진에서 C++로 프로젝트 생성시 시간이 조금 걸립니다. 가만히 내비두면 비쥬얼스튜디오가 켜지는데 그때까지 가만히 내비둡니다)

 

2. 플러그인 설치

깃허브 다운로드 ZIP 다운해주고 압축을 풀어줍니다.

https://github.com/darkgoogle/MysqlDBUnrealengine4.26

 

GitHub - darkgoogle/MysqlDBUnrealengine4.26

Contribute to darkgoogle/MysqlDBUnrealengine4.26 development by creating an account on GitHub.

github.com

 

 

 

언리얼엔진 프로젝트가 있는 폴더로 이동합니다.

아래 사진과 같이 [Plugins] 라는 폴더를 만들어줍니다.

 

압축 풀어둔 전체 폴더를 [Plugins]폴더에 옮겨줍니다

 

 

 

[언리얼엔진 vsconfig 파일에서 오른쪽 마우스 클릭] - [추가 옵션 표시] - [Generate Visual Studio project files] 를 클릭해주면 파일이 가동됩니다. 기다려주세요.

다 진행되면 아무것도 뜨지 않습니다. 그다음 단계로 넘어가주세요.

 

 

 

그 다음 SQL.sln 파일을 클릭해줍니다. 

우측에 (보통 우측에 있음) 있는 솔루션 탐색기에서 [SQL 파일을 오른쪽 클릭] - [빌드] 클릭

출력 창에서 빌드 진행 상황이 나옵니다.

사진과 같이 "빌드 1개 성공", 이라고 뜨면 끝난겁니다

그 다음 언리얼엔진 프로그램을 다시 클릭하면 언리얼엔진이 켜지고, [Plugins]에서 mysql을 검색해보면 이미 적용이 된 것을 확인할 수 있습니다.

 

 

 

3. 레벨 생성

영상과 마찬가지로 [Content Drawer] 에서 [Content 폴더에서 오른쪽 클릭] [Level 에셋]을 생성해줍니다.

생성해준 뒤 더블클릭해서 적용

그 다음 [Open Level Blueprint]를 클릭해줍니다.

 

 

 

 

 

블루프린트에서 빈 곳에 [오른쪽 클릭] - [My SQL Connect] 클릭

[Event BeginPlay] 와 [My SQL Connect] 를 연결해줍니다. (게임을 플레이했을 때 적용된 레벨 블루프린트가 실행되는데, 실행될 때 [My SQL Connect]가 실행된다는 뜻)

 

 

 

4. Clever Cloud 가입

무료 DB 사이트를 사용합니다.

영상과 같이 clever cloud를 이용합니다

추후에는 GCP 로 바꿨지만 우선 이 방법을 알려드릴게요

 

 

아래 링크에서 이메일 회원가입을 합니다

아래 사진처럼 "이메일 인증" & "결제 정보"를 입력해줍니다.

https://www.clever-cloud.com/

 

Home - Clever Cloud

We help developers deploy and run their apps with bulletproof infrastructure, automatic scaling, fair pricing and other cool features.

www.clever-cloud.com

 

 

 

그 다음에 별도의 페이지나 단계가 필요했는지 기억이 나질 않습니다..

확실한 건 [+Create] - [Mysql Select] - [DEV] 선택 (무료 버전 선택) -  [이름 정하고, 나라 선택]

저는 이름은 test0727, 나라는 프랑스로 선택해주었습니다

그럼 끝!

 

 

 

 

5. Clever Cloud 랑 mysql connect 연결

clever cloud에 있는 정보를 mysql connect 노드에 넣어줍니다.

 

 

 

[Mysql Select] 의 Success 에 [Print String] 을 연결해주고 [Compile]클릭

(compile이 되면 초록색 체크로 바뀝니다.)

레벨 페이지 (여기선 Map1)로 돌아와서 플레이(초록색) 버튼을 눌러줍니다

연결 성공시 "Hello"가 프린트됩니다

그 다음에는 다시 정지를 눌러줍니다

 

 

 

clever cloud 에서 PHPMyAdmin에 들어가줍니다 (조금 기다려야 창이 떠요)

왼쪽에 있는 [데이터베이스]를 클릭해주고 [Create Table]누릅니다

저는 test라는 이름의 테이블을 만들어줬고 2 row로 설정했습니다.

사진과 같이 컬럼들을 만들어주었습니다. 그리고 [save]클릭

 

 

 

 

[Insert] 에서 [Value]값들을 채운 뒤 [Go] 버튼 클릭

저는 총 2 행을 만들어주었습니다.

[Browse] 에서 확인 가능합니다.

 

 

 

 

블루프린트로 돌아가서 [My SQL Execute Query with Result] 를 만들어준 뒤 [My SQL Connect] 와 아래와 같이 연결해줍니다.

연결된 MySQL 에 [My SQL Execute Query with Result]를 통해 쿼리를 날리고 그 결과를 출력해주는 노드입니다

그 다음 [For Each Loop]을 연결해줍니다. 결과물을 반복하여 처리하는 노드입니다.

[For Each Loop] 의 [Array Element]에서 오른쪽 클릭한 뒤 [Split Struct Pin]을 눌러주면 [Array element fields]로 변경됩니다

그 이후 다시 한 개의 더 [For Each Loop] 를 생성해주고 마찬가지로 [Array Element]에서 오른쪽 클릭 해주면 아래 사진과 같이 [Array Element Key] 와 [Value]로 나뉘어져 나옵니다.

그 이후 Value 값에 [Print String]을 연결해줍니다

 

 

 

 

그리고 Map1 로 돌아가서 플레이해주면, 아래 사진과 같이 쿼리의 결과값이 출력됩니다

 

영상에서는 complete 시 sql 을 끝내는것 까지 넣어놨네요

 

 

 

+) 추가적으로 insert 하는 것도 진행해보았었습니다

아래 그림처럼 블루프린트를 넣어주면 간단히 값을 넣어주는 쿼리를 짤 수 있습니다

테이블 이름이 다르긴 한데..logs를 test 로 바꾸시면 됩니다

그리고 한단계 한단계 보려고 각 단계 사이에 print string 을 넣어줬었네요

앞에 select 와 다른건 [My SQL Execute Query with Result] 가 아닌 [My SQL Execute Query]를 사용했습니다

insert 쿼리여서 굳이 result 가 필요없었기 때문이죠

 

이 외에도 깃허브에 가시면 wiki 페이지에서 간단한 활용법을 보실 수 있습니다.

 

 

 

 


오늘은 이렇게 아주 간단한 mysql 연결 내용을 정리했는데요

음,, 역시 오래 걸리네요..

다음번에는 직접 만든 내용만 정리를 해야겠습니다

 

다음 포스팅에서는 GCP와 mysql 을 연결하는 방법을 쓰려고 합니다

그 다음엔 로그인 시스템 만드는 법을 보여드릴게요

 

감사합니다