본문 바로가기

언리얼엔진/Github 깔기

언리얼 깃허브 연동하기 팀장편

결론부터 말하면 공짜 깃허브는 용량이 1GB라 언리얼 프로젝트 관리가 불가능하다. 처음에는 몇백MB정도인데 조금만 하다보면 간단하게 1GB가 넘어 버린다. 선생님 예제 파일을 연결해서 볼수 있지. 자신의 프로젝트는 안된다. 한달에 4$내고 pro를 쓰던지 학생인증해서 pro를 무료로 사용해아 50GB로  업그레이드 된다.

학생인증은 유효기간이 보이는 학생증이나 학교 홈페이지에 현재날짜와 자신의 정보, 학생ID정도가 보이는 화면을 캡쳐하면 된다. 굳이 서류를 돈내고 떼지 않아도 된다. 

깃허브 쓰는 법을 간단히 배워지만 잘 안된다. 언리얼의 파일들이 커서 항상 LFS에러에서 걸린다 . LFS란 큰 파일을 쪼개서 보내는 옵션인다. 한번 에러가 나기 시작하면 풀기어려워 결국 다른 계정을 만들어 해결중이다. ㅠㅠㅠ 그냥 프로젝트 기간중은 돈내고 하던지 학생들은 학교이멜로 프로버젼 사용가능하다고 한다. 무료버전의 비애

Github 깔아보기

가을고양이 2023. 8. 27. 21:21

언리얼 엔진에서 다른 사람과 협업하는 방법은 다양하다. Perforce, SVN, 그리고 모든 프로그래머들의 GitHub까지.

그러나 SVN 등의 방법은 회사 내 사용이 기본이라, 같은 곳에 있지 않다면 외부 서버를 이용해야 한다.

여건 상 불가능했기에 우리 팀은 GitHub를 통한 협업을 채택했다. 그리고 다양한 시도 끝에 언리얼과 깃허브를 연동하는데 성공했다.

이번 시간엔 언리얼과 깃허브를 연동시키는 방법, 팀장 편을 알아보겠다. 여기서 팀장은 리포지터리(Repository)를 생성하고, 관리하는 사람을 뜻한다.


설치해야 하는 프로그램

  1. 언리얼 엔진(ver. 5.2.1) (https://www.unrealengine.com/ko/download?sessionInvalidated=true)
  2. Git (https://git-scm.com/book/ko/v2/시작하기-Git-설치) 64-bit Git for Windows Setup.를 깔아준다.
Launch Git Bash를 체크한다.

  1. 설치후 git bash에서  git lfs install  

GitHub Desktop (https://desktop.github.com/) 설치

GitHub Desktop은 Git bash의 GUI버전으로 Git bash의 전기능은 지원하지 않는 간이 버전이다.

1. Unreal Project만들기

언리얼을 켜서 게임프로젝트를 하나만들자.

레벨에디터 오른쪽 하단 Revision Control을 클릭하면 Revision  Control Login이 나온다. Provider는 git(beta version)을 선택하고 Add a gitattributes files에 체크하고 intialize project with Git를 클릭한다.

새로운창이 나오면 Accept Setting을 클릭한다.

Accept후 에러가 발생한다면 에러가 없을때까지 프로젝트폴더에서 .git및 아래 파일 2개를 지운뒤. 다시한다.

 git desktop 를 보면 아직 변화가 없다.

방금만든 언리얼폴더이름 위를 우클릭후 컨텐츠팝업에서 추가메뉴로 들어가 아래와 같이 명령하면 GitBash가 현재 폴더상태로 뜨는데 

 다음과 같이 큰파일의 확장면을 입력한다.

Git Desktop에서 

File-Add Local repository를 클릭후 프로젝트 폴더를 입력한다. Initialize Git LFS를 물어보면 클릭한다.

 프로젝트명이 보이고 추가된 파일들이 보인다. 프로젝트에서 파일을 추가하면 Git Desktop에서 +가 추가된다.

 git Desktop에서 Commit하거나 언리얼 우측하단에서 submit Content하거 나 똑같다.

 Commit하면 publish repository하라면 창이 나온다.

Publish하면 우상단 진행로고가 뺑글뺑글 한참을 돌다 완성된다. 이후  github에서 남들도 볼수 있게 된다.

github.com에 로그인해보면 추가된 파일들을 github에서도 잘 볼수 있다.

해당 리포지터리 <>Code를 눌러보면 Download ZIP을 다운 받아 파일을 보면 정상이 아닌 경우 zip파일이 1MByte정도로 작다. 이건 lfs설정이 잘안되어 .uasset .umap파일들이 푸시되지 않아서 그렇다.

이경우 리포지터리 이름위 설정을 눌러

 Archives의 Include Git LFS objects in archives를 활성화 해준다. 

 이제 ZIP을 다운 받아보면 파일이 커진걸 알수 있다.

아래는 일반적인 방법이다.

1. GitHub 리포지터리생성

github.com으로 이동후 login 한다.

우선 GitHub에서 리포지터리생성해야 한다. 리포지터리는 일종의 프로젝트라고 생각하면 된다. 

프로필로 들어온 뒤, 위 사진에서 초록색 New 버튼를 눌러 아래와 같이 새 리포지터리를 생성해도 되지만 여기서는 언리얼에서 만들어 보겠다.

 

  • Repository name: 생성할 리포지터리의 이름
  • Description: 리포지터리에 대한 설명, 생략 가능
  • Public/Private: 리포지터리의 외부 공개 여부. Public으로 설정해두면 누구나 내 리포지터리에 들어와 소스 코드, 에셋 등을 열람하고 다운받을 수 있다.
  • Add a README file: README 파일을 생성. 리포지터리에 접근 시 나타나는 대문이라고 생각하면 된다. 생성하지 않으면 파일만 나타난다.
  • Add .gitignore: 깃허브에 업로드하지 않을 파일을 지정한다. 토글을 누르고 Unreal Engine을 선택해준다.
  • Choose a license: 리포지터리의 저작권을 설정하는 부분. Private이라면 None으로 둬도 무방하다.

마지막으로 Create repository를 누르면 리포지터리가 생성된다.

생성된 리포지터리의  모습. README 파일을 추가하지 않아 위처럼 뜬다.

Add a README를 누른 후, 다음 다음 클릭하다보면 위처럼 모습이 변한다. 나타나는 내용은 연필 모양 아이콘을 클릭하거나, README.md 파일을 클릭해 변경 가능하다.

이는 생성 시 Add a README file을 체크해도 동일하다.


2. 컴퓨터에 리포지터리 클론

리포지터리가 생성됐으니, 이번엔 컴퓨터 내에 로컬 저장소를 생성해보자.

 

 

 

우선 GitHub Desktop을 켜면 위와 같은 창이 나타난다.

File - Clone repository를 눌러 방금 생성한 리포지터리를 불러오겠다.

방금 생성한 리포지터리를 선택하고, Local path에서 경로를 지정해준다. 이때 경로엔 한글이 입력되지 않게 주의한다.

이 폴더 내에 언리얼 프로젝트를 생성할 건데, 언리얼 프로젝트는 경로 상 한글이 있을 때 에러가 나며 열리지 않는다. 다행히 팀원에겐 영향을 끼치지 않지만, 꼭 영어로만 경로를 설정해주자. 

성공적으로 리포지터리를 불러왔다.


3. 언리얼 프로젝트 생성

언리얼을 실행한 후, 프로젝트를 생성해주자.

  • 프로젝트 위치: 방금 만든 리포지터리 경로를 지정해주면 된다. 기본 값은 문서 - GitHub에서 찾을 수 있다.
  • 프로젝트 이름: 프로젝트 이름. 원하는 대로 생성해주자.

위 같은 창이 뜨면 제대로 된 것. 생성할 땐 시간이 오래 걸리니 차분히 기다려주자.

프로젝트가 생성되었다.

 

+) 이때, 프로젝트가 생성되면 아래와 같은 상태일 것이다.

구체적인 모습은 좀 다르더라도, UnrealTest 폴더(리포지터리 폴더) 내에 또다른 UnrealTest 폴더(프로젝트 폴더)가 생겨 있다.

이 상태론 GitHub가 생성해준 .gitignore가 제대로 적용되지 않는다.

반드시 프로젝트 폴더 내의 파일을 모두 꺼내, 위와 같이 만들어주자.

여기에 .gitignore가 제대로 적용된다면, GitHub엔 아래 파일들만 올라가게 된다.

특히 Saved, Intermediate, DerivedDataCache는 아래 에러를 일으키는 주범이니, 절대 올라가지 않게 하자.

원인이 참 다양해서 짜증나는 친구. 다신 보지 말자... 제발... 그만 보게 해 줘...

 

관련 포스팅을 첨부해두겠다.

 

[언리얼5/GitHub] .gitignore가 적용되지 않는 현상

프로젝트를 올리고, 내려받을 때마다 자꾸 에러가 떴다. 히스토리를 살펴보니, .gitignore에 들어있던 Saved, Intermediate 폴더가 그대로 리포지터리에 올라가고 있었다. 그제서야 .gitignore가 적용되지

autumncat.tistory.com


4. 깃허브와 언리얼 프로젝트 연동하기

언리얼은 내부적으로 버전 관리 프로그램을 연동할 수 있다. 이를 리비전 컨트롤이라고 부른다.

화면 우측 하단의 리비전 컨트롤을 클릭해주자.

지금은 연동되지 않았으니 위와 같이 나온다. 리버전 컨트롤에 연결… 을 클릭하자.

아직 아무 것도 연결하지 않아 제공자가 없음으로 되어 있다. 이를 클릭하고 Git을 골라주자.

그럼 위와 같이 자동으로 세팅이 완료된다. 만약 Git 경로가 비어있다면, 처음 Git을 설치한 경로로 찾아가 넣어주면 된다. 아마 대부분 위 경로에 있을 것이다.

 

자동으로 세팅이 완료된 이유는, 언리얼 프로젝트 파일이 로컬 저장소(GitHub) 경로 내에 존재하기 때문이다. 만약 리포지터리 없이 그냥 프로젝트를 생성했다면, 원격 리포지터리 주소를 넣거나 새로 생성하는 화면이 나타난다.

세팅 수락을 눌러주자.

그럼 위와 같은 성공 안내가 나타나며 리비전 컨트롤에 초록색 체크 표시가 나타난다.


5. 프로젝트 푸쉬하기

다시 GitHub Desktop으로 와보면, 위처럼 수많은 변경 사항이 맞이해줄 것이다.

용량이 크거나, 개인마다 내용이 다른 파일들을 .gitignore가 걸러줬으니, 우린 이대로 커밋(Commit)을 한 번 해야 한다.

왼쪽 아래에 제목과 내용을 작성하고, 커밋을 눌러주면 된다.

  • Summary: 요약, 제목과 동일하다. 최대한 간결하고 이해하기 쉽게 작성해주자.
  • Description: 내용, 변경된 사항을 상세하게 적어 추후 다른 팀원들이 변경점을 쉽게 파악할 수 있게 한다

Description은 옵션이고, Summary만 작성하면 위처럼 Commit to main 버튼이 활성화 된다. 바로 눌러주자.

Files too large는 올리려는 파일 용량이 너무 클 때 나타나는 에러다. 50MB 이상일 때 경고를, 100MB 이상일 때 에러를 띄운다.

하지만 걱정마라. 우린 이때를 위해 Git LFS까지 설치했으니. 우선 취소하고 LFS를 세팅해보자.

로컬 저장소 폴더를 열어준다.

 

 

 

여기서 빈 공간에 우클릭을 한 후, Git Bash Here을 선택해주자.

그리고 git lfs install을 입력해주자.

위처럼 Git LFS initialized.가 출력되면 성공이다. Updated Git hooks.는 신경쓰지 않아도 된다.

이제 LFS가 용량이 큰 파일을 추적하게 설정해보자. 아래 명령어를 입력하면 된다.

git lfs track "파일 경로"

위에서 용량이 커서 못 올린 파일은 “.vcxproj” 파일이었으니, 아래와 같이 쳐준다.

*는 모든을 뜻하는 문자다. 이제 LFS가 모든 .vcxproj 파일을 대신 올려줄 것이다.

에러가 떴던 파일. 짧막한 3줄로 변한 것을 볼 수 있다. 바로 커밋을 눌러보자.

커밋이 완료되면 No local changes(변경 사항 없음)이 나타나며, Push origin하라고 재촉한다.

Push origin은 원본 리포지터리에 변경 사항을 적용한다는 뜻이다. 이걸 눌러주면 모두가 내 커밋을 볼 수 있게 된다.

즉 GitHub Desktop에서 하는 건 내 컴퓨터 안에서만 일어나고, GitHub 홈페이지에서 생성한 리포지터리는 서버에서 일어나는 것이다.

프로젝트 용량이 매우 크기 때문에 오랜 시간이 걸린다. 차분히 기다려주자.

Push까지 모두 끝마치면, 기본적인 세팅이 완료된 것이다. 이제 팀원을 초대하고 작업에 착수하면 된다.


6. 브랜치(Branch) 생성하기

브랜치는 리포지터리 내 개인 폴더라고 생각하면 편하다.

예를 들어 5명이 작업하고, 그때마다 하나의 파일에 계속 작업 내용을 업로드한다면, 서로 작업한 내용이 충돌하고 깨져 프로젝트가 영영 날아갈 수도 있다.

그렇기에 우린 리포지터리에 개인 브랜치를 생성하고, 자신의 작업물은 자신의 브랜치에 업로드해야 한다.

이번엔 브랜치를 생성해보자.

브랜치는 GitHub 홈페이지에서도, GitHub Desktop에서도 생성할 수 있다. 우선 GitHub Desktop을 기준으로 설명하겠다.

Current branch 버튼을 누르면 위 사진처럼 현재 생성된 브랜치들이 나타난다. New branch 버튼을 눌러주자.

그럼 매우 심플하게 브랜치 이름을 적으라는 창이 뜬다. 그렇다. 이게 다다. 편하게 작성하자.

한글로 작성해도 문제는 없지만, 프로그래밍 제 1원칙은 일단 영어로 작성하라다. 알 수 없는 에러를 만나고 싶지 않다면 영어로 적는 걸 추천한다.

Current branch가 KMC로 변경된 것을 볼 수 있다.

Publish branch는 생성한 브랜치를 원본 리포지터리에도 생성하는 버튼이다. 꼭 눌러주자.

 

오른쪽 위에 Fetch origin이 떴다면 성공이다. 이제 모든 커밋은 당신의 개인 브랜치에 저장되니, 맘편히 작업하길 바란다.


7. 팀원 초대하기

환경 세팅이 모두 끝났으니, 팀원을 초대해보자.

GitHub 홈페이지 - 리포지터리 - Settings - Collaborators - Manage access에서 팀원을 추가할 수 있다. 추가된 사람은 접근 권한이 생기며, 파일을 올리거나 다운받을 수 있다.

Add people을 눌러주자.

이곳에서 닉네임, 또는 이메일을 작성해 초대 링크를 보낼 수 있다

성공적으로 팀원을 초대했다.


이번 글에선 프로젝트를 생성하고, GitHub 리포지터리와 연동하는 법을 알아보았다.

다음 글에선 반대로, 초대받은 팀원의 입장에서 둘을 연동하는 법을 알아보겠다

https://autumncat.tistory.com/23