공부/시작해요2025 언리얼 & 트윈모션

4주차 강의 요약해보기, 트윈모션에서 언리얼엔진으로 레벨을 가져오자 [ 시작해요 트윈모션&언리얼 2025 ] 2025.5.18 일요일

koreajubsok 2025. 5. 19. 01:34
반응형

 오늘은 티비에서 5.18 행사를 하는 5월 18일 일요일입니다.

오늘은 왠지 무거운 마음이 드는 하루네요.

 

 시작해요 트윈모션&언리얼 강의 4주차 강의가 14일 수요일에 있었습니다. 

운좋게 3주차 도전과제에도 당첨되었더군요~ 기대도 안했었는데 참 감사하네요~

사실 1주차때는 열심히 해보려는 마음이 들었었는데 도전과제에 뽑히는 퀄리티를 보니 넘사벽이라 가능성이 안보여 도전과제를 할 의욕이 안생기기도 했었습니다~ 이런 초보들의 마음을 아시고 이렇게 뽑아주신 것 같네요~

 

 오늘은 일요일이라 등산도 다녀왔는데 1주차 시청자 당첨으로 받은 검은색티를 입고 등산을 다녀왔습니다.

105 사이즈였는데 굉장히 편하고 널널해서 좋았습니다. 크키가 조금 크게 만들어졌는지 너무 좋았습니다. 엉덩이까지 티가 내려와 가려주고 널널해서 땀이나도 달라붙지않아서 원래 입던 옷 보다 더 편했어요 -0-

언리얼, 트윈모션 마크가 가슴쪽에 있고 등쪽에는 에픽게임즈 마크가 있었습니다.

 

 수요일에 강의도 참여했지만 그 이후에도 계속 반복 재생으로 하루종일 들으면서 보냈습니다. 

들으면 마음이 조금 안심이 되긴하는데 그다지 효과가 있는지는 모르겠어요. 그냥 듣는것도 좋지만 집중해서 1번 제대로 보는 것도 중요한 것 같습니다.

 

 아무튼 수,목,금,토,일요일인 오늘까지 매일 유튜브에서 4주차 강의를 반복재생해놓고 들었습니다. 

사실 강의 내용을 녹화도 해놨습니다. 그리고 폴더에 잘 보관해놨죠~ 나중에 볼 일이 있을 수도 있고 유튜브에는 올라오지 않는 마지막 QnA와 그 뒷부분의 도전과제 선정 및 제출까지 볼 수 있습니다. 유튜브에 공개된 공식 영상은 뒤의 QnA와 과제선정은 나오지 않죠~그리고 시청자들에게 제공되는 제한된 링크에도 도전과제 선정은 나오지 않습니다~ 그래서 가끔 뒷부분이 다시 보고 싶을때 난감할 수 있죠~

 녹화해논 걸 보면 유튜브 광고도 피할 수 있지만 그래도 조금이라도 에픽게임즈에 도움이 되기 위해서 유튜브에 들어가서 광고도 다 보면서 강의를 다시 보고 있답니다~ 녹화해놓은건 그냥 소장용 정도로 활용하면 되겠습니다.

그리고 제가 알기로 강의 내용을 녹화하고 공유하는건 금지되어 있는 걸로 알아요~ 

 

 내일 월요일엔 도전과제 마감날이라서 도전과제를 해 볼 생각입니다. 도전과제를 하기전에 이렇게 요약을 해보려고 합니다.

그러면 도전과제를 더 잘 할 수 있겠죠?

 

 

 

 

 4주차  언리얼 엔진으로 트윈모션 가져오기

 

 

 

1. 트윈모션에서 작업하뎐 심파일을 연다.

2. 좌측 상단의 파일 - 데이터스미스 - 표준으로 파일으로 익스포트한다. 저장할때 데이터는 언리얼 폴더에 해야 하는데 이 강의에서는 미리 다운로드 컨탠츠로 제공된 언리얼 폴더인 LS2025폴더 안에 이름을 지정해주고 익스포트 해준다.

3. 데이터스미스에 관련해서는 언리얼 문서를 적극 활용하자.

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/datasmith-plugins-for-unreal-engine?application_version=5.4

 

 

4.언리얼 엔진 설치하기.

설치할때 안드로이드 등 용으로 만들일이 없다면 저장공간 절약을 위해 체크를 해제한다.

5. 메타휴먼 설치하기

팹 사이트에 들어가서 'metahuman'을 검색해 플러그인을 라이브러리에 추가해준다. 계정 로그인을 해야한다. 엔진으로 돌아가서

팹라이브러리를 새로고침 해주고 검색에서 metahuman 플러그인을 찾아서 설치해준다.

6. 트윈모션 머터리얼 팩 설치하기

팹 사이트에서 위와 같이 추가해서 설치해준다.

7. 라이브러리 설치 용량 최적화

엔진에서 노란색 화살표를 눌러 로컬 컨탠츠 제거하거나 

설정 - 다운로드 설정에서 팹 라이브러리 파일 위치 복사후 탐색기에 붙여넣기로 폴더로 이동해서 폴더를 삭제할 수 있다. 런처를 새로 껐다키면 적용된다.

 

 

8. 샘플 프로젝트 실행

언리얼 5.5 버전을 실행하면 창이 하나 뜨는데 최근프로젝트를 선택하고 탐색을 눌러서 4~6주차의 LS2025 폴더안의 LS2025 파일을 열어준다.

처음을 제외하고 다음부터는 런처의 내프로젝트에 표시되어서 쉽게 열 수 있다.

처음엔 좀 오래걸리지만 다음부턴 바로바로 열린다.

 

 

9.기본조작

시작해요 언리얼 2024 1주차 영상을 보면 자세히 알 수 있다.

카메라 이동 - 마우스 좌클릭 누른채 + 드래그 , 해보면 좀 특이하네요~ 

카메라 회전 - 마우스 우클릭 누른채 + 드래그

카메라 패닝 - 마우스 휠을 누른채 + 드래그

뷰포트 전후좌우 이동 - 마우스 좌 또는 우클릭 누른채 + A S D W

뷰포트 상하 이동 - 마우스 좌 또는 우클릭 누른채 + Q E

 

카메라 포커스 정렬 - 오브젝트 선택 후  F 

포커스 카메라 줌 조절 - Alt 누른 채 + 마우스 우클릭 누른 채 이동

포커스 카메라 패닝 - Alt 누른채 + 휠버튼 누른채 이동

 

 

10. 아웃라이너창

탭을 드래그해서 왼쪽으로 배치해서 길게 볼 수 있다

탭을 우클릭해서 사이드바에 고정으로 하면 뷰포트를 더 넓게 볼 수 있다.

탭 숨김으로 공간을 절약할 수 있다.

 

 

11. 디테일 창

오브젝트를 선택했을때 그 오브젝트의 속성들을 볼 수 있다.

 

 

12. 상단의 툴바 - 저장, 추가, 플레이 등등

많이 쓰는 기능을 모아두었다.

 

 

13. 콘탠츠 브라우저

컨트롤 + 스페이스바를 누르면 열린다.

 

 

14. 레벨에 배치된 오브젝트의 에셋 선택하기

오브젝트에 마우스 우클릭 후 에셋 탐색 선택한다.

이렇게 나온 컨탠츠 브라우저의 에셋은 뷰포트의 것과 똑같은게 아니다.

컨탠츠 브라우저에 있는건 가장 기본이 되는 설계도이다.

 

 

15. 데이터스미스로 임포트 하기.

좌측 상단 편집 - 플러그인에서 데이터스미스 임포터를 활성화를 시킨다.

활성화를 시켰다면 재시작을 해야한다.

 

새 레벨을 만든다. 컨트롤 + N

기본 레벨을 생성해준다. 라이트 등이 세팅되어 있다.

툴바의 추가버튼 - 데이터스미스 - 파일임포트 - 토스터 데이터스미스 파일을 열어준다 - 콘탠츠 폴더에 새폴더를 만들어서 LS2025_01 이라고 이름을 짓는다.- 임포트 설정에서 라이크, 카메라, 애니매니션, 라이트맵 UV 생성 옵션을 꺼준다.

 

 

16. 블루프린트 : 임포트 데이터를 블루프린트 엑터로 전환

토스터의 모든 계층구조를 선택 후 툴바의 블루프린트 선택 - 선택된 액터를 블루프린트 클래스로 전환 선택 - 컴포넌트 수집 선택하고 블루프린트 이름을 BP_Toaster_01 로 만들고 경로를 LS2025_01 로 선택 후 선택을 누른다.

열린 블루프린트 창은 드래그해서 뷰포트 옆으로 옮겨준다.

 

 

17. 블루프린트 : 기능소개

많은 오브젝트와 컴포넌트로 구성된 것을 하나의 오브젝트로 관리할 수 있다.

토스터의 많은 기능을 넣을 수 있게 해준다. 문을 열거나 다이얼을 돌리는 등..

 

 

18. 블루프린트 : 에디터 UI 소개

뷰포트 - 보여지는 곳

이벤트 그래프 - 비쥬얼 스크립팅 으로 기능을 넣을 수 있다.

 

 

19. 블루프린트 : 계층구조 정리 및 축 /피벗 정렬

이동모드 W , 회전모드 E, 스케일 모드 R

 

오브젝트를 선택하고 추가를 눌러 씬 컴포넌트를 추가하면 선택된 오브젝트의 자손으로 생성됩니다.

이름을 Jog_L 로 해줍니다. Jog_L 의 디테일 창에서 위치값을 모두 0 으로 바꿔줍니다.(입력값 초기화 - 데이터 입력창 우측의 화살표 클릭)

이 상태에서 Jog_L 오브젝트를 가장 상위 계층으로 이동시키고 붙이기를 합니다.

같이 붙이고 싶은 왼쪽 손잡이 오브젝트 2개를 이동시켜서 Jog_L 오브젝트로 이동시켜줍니다.

이제 Jog_L 이 상위계층이 되고 왼쪽 손잡이 오브젝트 2개가 자손이 됩니다.

이제 Jog_L 만 방향 회전을 해도 두가지가 같이 움직입니다.

 

토스트의 문의 컴포넌트도 블루프린트로 정리했습니다.

뷰포트의 문을 선택하면 문을 구성하는 요소 중에 1가지 컴포넌트가 선택이 되는데 위와 마찬가지로 씬 컴포넌트를 추가합니다.

그리고 이름을 Door로 정해줍니다. 그리고 트랜스폼 위치, 회전값을 초기화해줍니다.(화살표 클릭)

 Door 컴포넌트를 가장 상위로 붙이기해서 밖으로 꺼내고 이제 원래 문의 구성요소 컴포넌트들을 모두 Door로 이동시켜서 자손으로 만들어줍니다. 그러면 이제 Door만 선택하면 모두 같이 움직입니다.

 

철망도 나중에 문과 연결하는 동작을 위해서 뷰포트에서 철망을 클릭해서 컴포넌트창에서 위치를 찾고 그 컴포넌트를 Door로 이동시켜서 자손으로 만들어줍니다.

 

컴포넌트 삭제 - 컴포넌트 선택 후 Del 키를 눌러서 블루프린트로 만들어줘서 쓸모없어진 것들을 삭제한다.

 

블루프린트를 마치면 컴파일을 꼭 누른 후 저장을 해준다.

컴파일 : 블루프린트를 컴퓨터가 이해하도록 변환하는 것

 

 

20. 데이터프랩으로 레벨 임포트하기

컨트롤 + N 을 눌러서 기본 레벨을 새로 열어준다. 그러면 기존의 블루프린트로 작업한 레벨을 저장할거냐고 물어보는데 저장하지 않아도 된다. 왜냐면 토스터 블루프린트는 별도의 파일로 저장되어 있기 때문에 레벨을 저장하지 않아도 토스터를 사용하는데는 문제가 없다.

 

편집 - 플러그인- dataprep 을 검색해서 데이터프랩으로 검색되는 2가지를 활성화 해준다. 활성화 되어 있지 않았다면 활성화 해주고 재시작을 해주어야 한다.

 

컨트롤 + 스페이스 를 눌러서 컨탠츠 브라우저를 열고 빈 곳에 우클릭해서 데이터프랩 에셋 - 데이터프랩 에셋 생성하기를 해준다,

이름은 Dataprep_TMScene_01 로 해준다.

만든 데이터프랩 에셋을 더블클릭한다.

창이 새로 뜨는데 우측 상단에 입력 - 데이터스미스 파일 임포터를 클릭한다.

LS_EX~~파일을 연다.(4~6주차 자료로 미리 다운받아놓았던 파일) . 임포트를 해주면 시간이 좀 걸린다.

 

 

21.데이터프랩 : 기능소개

데이터프랩을 쓰는 이유는 반복적인 작업을 한꺼번에 할 수 있기 때문이다.

데이터스미스를 임포트를 해서 언리얼 엔진에서 하나하나 수정하면 비효율적이라서 데이터프랩을 쓴다.

임포트는 단일한 개체를 불러올때 데이터프랩은 큰 레벨을 불러올때 사용하자.

데이터프랩에 관해 자세한 내용은 언리얼 문서와 강의 영상을 참고하자.

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/dataprep-overview-in-unreal-engine

문서

 

https://dev.epicgames.com/community/learning/courses/9zD/unreal-engine-987faf/qZVK/unreal-engine-ae5329

영상 강의 튜토리얼, 영어지만 한극 자막이 있으니 잘 보도록 하자.

 

 

 

22. 데이터프랩 : 에디터 UI 소개

왼쪽 창은 컨탠츠 브라우저같은 설계도

오른쪽의 씬프리뷰는 제품의 역할이다.

가운데의 뷰포트창은 보여주는 곳이다.

뷰포트창의 화면이 잘 나오질 않는데 씬프리뷰의 아무거나 선택하고 F 를 눌러 포커스 해서 레벨 안으로 들어가자.

 

선탠된 것의 속성을 보여주는 디테일창은 가장 오른쪽 아래에 있다. 그 위에는 임포트 창이 있다.

레벨 이름을 TMScene_01_SubMap 으로 바꿔주고 저장을 해준다.

저장을 했어도 끄면 모든것이 날아가니 조심하자.

 

하단의 레시피창에서 필요한 반복작업을 할 수 있다.

 

 

23. 데이터프랩 : 임포트한 레벨 분석

시야가 조금만 멀어져도 나무의 품질이 떨어지는 문제가 있다. 그 이유는 LOD 때문이다.

LOD(Level Of Detail)는 카메라와의 거리나 화면 내 크기에 따라 더 낮은 디테일의 메시로 교체하는 최적화 기법이다.

 

뿌리기나 채우기로 랜덤으로 심은 나무는 트윈모션에서 언리얼로 가져오는 경우 변환이 필요하다.

그런데 데이터프랩에서는 변환하기 전이라 나무가 한곳에 뭉쳐져 있다.

 

계층형 인스턴스드 스태틱 메시(HISM) : 인스턴스별로 동일한 LOD를 사용하는 더 최적화된 인스턴스드 스태틱 메시

인스턴스드 스태틱 메시(ISM) 드로 콜과 메모리를 줄이기 위해 반복 사용된 스태틱 메시들의 드로 콜을 결합하는 최적화 기법

 

 

24. 데이터 프랩 : LOD 수정하기

문제가 되는 나무를 아무거나 클릭해서 디테일창에서 이름을 클릭해 아래의 스태틱매쉬의 이름을 확인한다.

나무라서 Growth 라는 단어를 확인한다. 에셋프리뷰에서 검색으로  Growth를 쳐보면 여러개 나온다.

 

필터에서 '오브젝트 이름'을 레시피로 드래그 한다.

오브젝트 이름 필터링 기능을 활용한다. 빨간 점을 눌러 배열로 바꿔주고 + 를 눌러 추가해준다.

그리고 Contains 기능을 이용해 Growth를 입력하면 Growth가 들어간 모든 에셋을 다 찾아준다. 

 

Contains - 일부라도 같은 이름이 있으면 가져올것인가

Exact MAtch - 완전히 동일한 이름만 가져올 것인가

WildCard - 다수의 대상을 선택하기 위해 구체적인 문자 대신 사용하는 *, ? 등의 특수 기호

 

그리고 클래스임을 드래그해서 오브젝트 이름 필터링 밑에 스탭 추가로 붙여준다.

클래스 필터링 기능을 통해 Growth 에셋 중에서도 스태틱메시만을 추리기 위해서 

Statcimesh를 선택해준다.

 

그리고 오브젝트 삭제 필터를 클래스임 아래에 붙여넣기 해준다.

이러면 찾은 Growth 에셋 중에서 스태틱메쉬만 찾아 삭제하게 된다.

 

좌측 상단에서 저장을 한 후 실행을 누르면 레시피가 작동하게 된다.

만약 여기서 실수를 해서 오브젝트 삭제 필터를 따로 만들어줘서 모든 레벨이 삭제되는 등 문제가 생겼다면 레시피의 오브젝트 삭제 필터를 지운 후 다시 실행해주면 다시 정상적으로 되니 다시 시도할 수 있다.

 

잘 작동해서 나무가 사라졌는데 몇몇 나무는 사라지지 않았다.

그 나무를 클릭해서 다시 이름을 확인해주고 에셋 창에서 다시 한번 검색해서 확인 한 후 오브젝트 이름 필터링에 추가해준다.

여러개가 나오면 정확한 이름을 입력해야하니 에셋에 우클릭해서 복사하기를 해서 붙여넣어준다.

이 작업은 많은 파일들을 다 확인하는 작업이라 시간이 좀 걸릴 수 있다.

 

이렇게 삭제를 해가면서 잘못된게 있는지 다 확인하고나면 스태틱 라이팅 구성 필터를 찾아서 클래스 필터링 밑에 붙여넣어준다.

라이트맵 UV가 기본적으로 켜져 있어서 나무가 에러가 생기고 껐다켜야하는 불편함을 없애기 위해서 스태틱 라이팅 구성의 UV 생성을 체크해제 해준다.

 

또 LOD 설정 필터를 스태틱 라이팅 구성 밑에 붙여넣어준다.

사실 LOD 설정을 다시 해주기 위해 데이터프랩을 가지고 지금까지 고생한것이죠~ 이게 제일 중요한 부분이겠네요.

+ 를 두번 눌러 감소세팅을 2개 추가하고 위에걸 1,1 로 바꿔준다. 

 

이제 더 찾을 오브젝트가 없다면 오브젝트 삭제 필터는 지워준다.

 

오늘 강의는 조금 초보자에겐 힘든 부분이 있네요. 그래도 따라하다보니 조금 익숙해집니다.

두번 정도 천천히 따라하니 이제 좀 알겠습니다.

저같은 경우는 이렇게 요약하면서 1번, 다시 과제를 하면서 1번, 두번따라했네요~ 

듣는것도 좋지만 직접 해보면 확실히 좋네요.

 

 

25. 데이터프랩 : 콜리전 추가하기

바닥에 콜리전을 추가하기 -  바닥을 컨트롤 + 클릭을 활용해 다중 선택 후 레시피 빈공간에 우클릭 후 필터를 생성을 클릭해준다.

그러면 단독으로 레시피가 생성되고 콜리전 복잡도 설정 필터를 드래그해서 그 밑으로 붙여준다. Use Complex Collision As Simple 을 선택해준다. 메시 모양 그 자체에 충돌체를 만들어주는 것이다.

 

장식장 등 네모난 물체 콜리전 추가하기 - 컨트롤 + 마우스클릭으로 다중 선택 후 레시피 빈 공간에 우클릭 후 필터를 단독으로 생성한다. 그 밑에 단순 콜리전 필터를 붙여주고 Box 콜리전을 선택해준다.

 

다 되었으면 저장하고 실행을 해준다. 실행이 완료되면 저장을 한번 더 하고 커밋을 해준다.

완료되면 화면이 없어진다. 가장 처음에 열었던 레벨인 무제창으로 가주면 레벨이 들어와있는 걸 볼 수 있다. 

완료되면 LS2025_01 폴더에 다른 이름으로 저장하고 한번 껐다 킨다. 끌때 선택저장을 하라고 나오는 건 모두 저장해준다.

 

레벨에서 편집 - 프로젝트 세팅 - 맵 앤 모드에서 에디터 시작할때 특정맵이 열리게 할 수 있다.

 

데이터 트랩의 필요성

- 만약 트윈모션에서 언리얼엔진으로 가져온 머티리얼이 마음에 안들때도 머터리얼 대체 필터로 한꺼번에 교체할 수 있다.

- 특정 이름의 에셋을 지우거나 블루프린트로 필요한 기능을 만들 수 있다.

 

 

 

 저는 여기에서 막히네요 ㅠㅠ 다시 켰을때 레벨을 여니 라이팅만 남은 허공이 열리는군요~

따라하면서 요약을 해오다가 막혀서 다시 보면서 뭐가 잘못되었을까 찾고 싶은데 잘 모르겠습니다~

두번 따라했는데 두번 다 이런 현상이 일어나네요~

(이 현상은 해결했습니다. 버그인것 같네요. 다른 이름으로 저장하기를 하지말고 그냥 끄면 선택저장하라고 하는데 그때 수락을 하고 끄면 되네요.)

 

 

26. 언리얼 엔진 서브 레벨 소개

창 - 레벨을 눌러 레벨 계층 구조를 볼 수 있다.

퍼시스터트 레벨 밑에 서브레벨이 있는 걸 볼 수 있고 껐다 켰다 할 수 있다.

 

 

27. 라이팅 세팅 변경

익스포낸셜 하이 포그 선택 - 시작거리 2000 으로 세팅. : 안개가 시작되는 위치가 20미터 뒤로 이동. 

언리얼 엔진에서 거리를 나타내는 단위는 모두 cm 로 통일되어 있습니다.

 

디렉션 라이트 - 강도 80000 으로 조정.

눈순응기능: 어두울때도 잘보이는 기능. 그래서 빛 부분의 조정이 필요하다.

 

 

28. 블루프린트 머터리얼 지정하기

데이터스미스로 임포트한 데이터에서 축이 어긋나 있는 문제는 원본 데이터가 잘 정리되어 있으면 보통은 발생하지 않습니다.

언리얼엔진에서 추가작업이 가능하지만 일반적으로 원본 데이터를 정리하는 것이 더 횩과적입니다.

 

 토스터기의 경우 만들어놓은 블루프린터를 실행하고 창을 띄워 놓은 후 언리얼 엔진의 오류가 난 토스터의 색깔로 블루프린터의 토스터기의 색을 바꿔보자.

 엔진에서 토스터기 부분을 클릭한 후 디테일 창의 머터리얼에서 돋보기를 눌러서 머터리얼을 콘탠츠 브라우저에 나타나게 하자.

찾은 머터리얼을 다시 블루프린터 머터리얼창에서 화살표를 눌러 머터리얼을 집어넣자.

 

 

 이번 강의 요약은 조금 힘들었네요.

따라하면서 요약을 하고 또 문제에 직면도 해보니 그냥 듣기만 하는 것보다 시간이 오래걸렸지만 공부는 잘된 것 같습니다.

도전과제를 어쩔 수 없이 맵이 안열리는 부분을 영상으로 올려야 겠습니다~

 

 

https://youtu.be/A8cI3uvPVlw?si=JIfU7WmtKPFvIjOK

 

 

반응형