상세 컨텐츠

본문 제목

Project_Aventador 02

Unreal Engine 4/Project

by hwano 2015. 7. 22. 01:10

본문

메인 스테이지 구성

기본 스테이지를 구성하자.


사용자가 직접 컨트롤 할 수 있는 것은 

자동차 컬러, 유리진하기, 차문오픈, 제원 인포그래픽 켜기, 부품파트 컬러 변경, 가능하다면 시간대 변경 

요정도와 다른 스테이지로 이동 정도가 되겠다.

해상도를 조절하고 싶다. 16:9보다 좀더 와이드한게 좋은뎅

->그냥 카메라 컴포넌트의 세팅에 보면 있구낭

전체화면으로 플레이하고 싶은데 r.SetRez로 설정하라는 말이 있는데 console command에 넣어도 화면은 커지는데 전체화면은 안된다.

어찌하는지 모르겟네 

 

 

뒤엎자

 

생각을 바꿨다. 지금 시간적 여유로는 컨트롤이 가능한  결과물을 만들어 내는게 사치인것 같다.

겨우 한달도 안남았는데,,   

 

차라리 그냥 '어디까지 실사처럼 뽑을 수 있나'에 포커스를 맞춰 마티네로 씬을 영상처럼 담는 작업하는게 나을거 같다.

 

 

프리비주얼

프리비주얼이 언리얼에서 바로 가능할까?   2개의 레벨이 있고 각각의 마티네가 있는데 1레벨의 플레이가 끝나면 2레벨의 플레이가

바로 플레이 되도록 할 수 있나?  매뉴얼을 보니 이런건 쉽게 해결된다. 다만 레벨의 디테일이 아주 복잡해졌을때

레벨간 이동시 로딩문제가 발생할 것 같은 생각이 들긴하다.

 

 

씬 구성은 2분정도의 시간을 목표로 하고

실내 -> 복도 -> 실외 의 구성으로 한다. kooolalala나 alex roman 영상 방식을 취한다.

 

 

 

 

 

smooth 문제

 

마야에서 F4키 눌러 보여지는 스무스는 넘길수 없다. 마야에서 애초에 폴리곤으로 변환해서 넘겨야 한다.

modify / convert / smooth mesh 어쩌고를 이용하자

 

 

 

Camera preview Size 바꾸기

 

카메라를 클릭하면 화면에 프리뷰가 조그맣게 생긴다. 이걸 사이즈를 늘리려면

editor preferences에서 level editor / viewports / camera preview size를 수정하면 된다.

 

 

 

그림자 비져블

 

카메라가 멀어지면 그림자가 단순화 되거나 사라지게 되는데 그게 필요이상으로 급격하게

사라진다.

 

이 경우엔 두가지가 문제 인건데 생각해 보니 저번 샘플씬을 만들때는 이런 문제 생기지 않았었다.

왜냐면 저번에는 메쉬들을 임포트해서 바로 씬에다가 배치했었지만 지금은 카페질문글의 조언으로

메쉬들을 오브젝트 단위로 BP로 만들어서 씬에 배치하고 있다. 메쉬들을 BP로 만들면서 세팅이

메쉬가 movable로 들어가 있었다. movable로 되게 되면 그림자를 굽는게 아니므로 거리에 따라 계산이

제외되는 범위가 커진다.

 

static으로 바꿔주던지 꼭 movable로 해야하는 경우면 아래 글을 참고하여

ini값을 바꿔주면 된다.

https://answers.unrealengine.com/questions/39362/movable-mesh-shadows-gradually-disappear.html

 

조언에 따르긴 했지만 막상 오브젝트들 마다 BP로 만들어서 관리하는게 옳은가?

BP로 만드는게 매우 손도 많이가고 메쉬들을 컨트롤 하기도 불편하다. 라이트맵의 퀄리티를 바꾸거나

재질을 줄때 메쉬를 바로 씬에 던져넣으면 화면에서 메쉬를 바로 클릭하여 수정할 수 있지만

 

BP로 만들어 버렸더니 BP에 하나하나 들어가서 라이트맵 퀄리티나 재질을 수정해야하는 번거러움이 생긴다.

예를 들어 화면에서 잘안보이는 오브젝트들을 몽땅 선택하고 한번에 라이트맵 퀄리티 64 이렇게 지정하는게

불가능하다는 얘기.

 

다른 샘플들을 열어봐도 배경 static오브젝트들은 그냥 메쉬를 바로 던져놓으면서 작업되어 있다.

결국 마야상에서 FBX를 export하는 경로를 scene/FBX/메쉬이름/메쉬이름.fbx로 하여 해결하기로 했다.

 

이렇게 해두면 에펙에서 각 pass 시퀀스들을 폴더들을 집어넣는것처럼 메쉬이름 폴더들을 일괄적으로 잡아서

UE에 던져넣으면 각각의 폴더채로 들어간다.

 

 

 

 

Smoothing Group

 

 

현재 export 스크립트로 뽑아내면 언리얼에서 부를때

smoothing group에러날때가 있다. 근데 큰 문제는 없는거 같다.

 

 

 

Texture Object 와 Texture Sample

 

 

메터리얼 에디터 창에서 둘 사이에 컨버트 시킬수 있는데

RBG채널을 뽑을 수 있다는 차이 말고는 특별한 차이가 있는건 아니다

 

 

 

 

Texture Coordinate의 Tiling

 

 

U, V의 Tiling값은 parameter로 연결을 받지 않는다. 그래서 Tiling을 파라미터로 만들고 싶으면

다음과 같이 하면된다.

 

 

 

 

 

Glass 재질

 

 

글래스 재질을 만들때는 다른 것도 중요한게 많겠지만 꼭 필요한 요소로는

blend mode를 translucent, translucency / lighting mode를 surface로 바꿔주는게 가장 중요하다.

refraction에는 ior값을 fresnel로 적당히 만들어 연결해 준다.

 

 

 

 

Hue

 

 

메터리얼에서 텍스쳐의 컬러를 바꿔주는 가장 쉬운방법은 다음과 같다.

 

 

 

Color Grading

 

 

UE4 도큐문서에서 컬러그레이딩을 치면 다운받을수 있는 컬러표가 나온다 그걸 포토샵으로 가져온다.

내가 작업하던 이미지를 포토샵에 놓고 그 위에 컬러그레이딩을 올리고 그 위에 내가 원하는 톤조절을 한다.

그런다음 색이 변한 컬러표를 저장하고 UE4에서 부르면 포샵에서 수정한데로 톤이 바뀐다.

 

 

 

 

중간 보고

 

 

가구들을 우선 같은 재질로 둘러놨다. 재질을 조금만 다른걸 주면 현실감이 깨져버린다.  톤이 달라져서

현실감이 깨지는게 첫번째이지만 재질의 디테일함 또한 현실감이 깨지는데 일조를 한다. 

roughness값을 얼마나 줄건지 roughness와 metal 등등이 어떻게 텍스쳐들과 물고 들어가는지 등에 대한 것들이 쉽지 않다.

벽 재질을 만들때 만든 재질은 그나마 디테일하게 손을 대놨기 때문에 가구들에 그대로 적용하니 현실감이 그나마 살아난다.

 

 

이제 바깥쪽도 어느정도 손을 한번 대보자.

하늘을 만들고 배경을 제대로 손을 대보자.

 

샘플들을 뒤져봐도 특별하게 physical sky를 제공해 주지는 않고 있고 그냥 구름 텍스쳐등을 BP로 연결해서 하늘을 만들어 쓰고 있다.

아님 아예 하늘 HDR을 깔고 놓고 쓰기도 한다.

 

나도 뭐 대단한 하늘을 시뮬레이션 할것도 아니고 그냥 하늘 HDR을 하나 찾아서 박아야 겠다.

 

하늘은 그냥 기본 스피어 배치하고 쉐이더를  surface, opaque는 기본으로 두고 밑에 shading medel을 Unlit로 바꾼다.

라이트 제외되며 불이나 빛을 뿜는 오브젝트 경우에 이걸로 쓴다. 다른 오브젝트에 쉐도우 계산을 주지 않는다는거 같다.

 

HDR을 연결할 때 주의 할 점은 coercion failed 어쩌고 에러가 뜰 수가 있다.

그럴경우 texturecoordinate가 아니라 다음과 같이 연결해주면된다.

 

 

 

 

 

Speed Tree 정리

 

 

기대했던것보다 쉬은듯 어렵다. 무엇보다 제공되는 샘플이 너무나도 부실하다. 아마 월 정액을 싸게 하고

나무들을 구입하라고 그러는거 같기도 한데 이렇게 부실해서야 결제한 보람이 없다.

자세한건 튜토를 봐야 할테고 간단한 파이프라인을 정리해 본다.

 

 

1. 제작방법

 

스피드트리 모델러에서 new로 새로운 화면을 부르자.

아래 원을 클릭하고 우클릭 add geometry에서 원하는것을 붙이면 된다. 나무를 만들 것이므로 trunks / standard로 하였다.

다시 만들어진 trunk를 선택하고 add geometry to selected해서 branch / standard를 추가해보자.

이제 만들어진 두단계 레벨 중 끝단계 레벨 2를 선택하고 leaves / camera facing / standard를 선택하자.

그러면 스프라이트들 같이 생겨난다.

 

오른쪽 materials 탭을 찾아 위에보면 +/- 버튼과 +버튼이 있는데 +버튼으로 잎사귀 재질을과 몸통 재질을 불러오자.

강좌에 보면 좀더 샘플이 많은데 실제 깔아보면 샘플이 몇개 있지도 않는다... 짜증남

 

없는데로 broadleafBark를 불러 손바닥 아이콘으로 줄기에

cap은 꽁다리에

Broadleaves_card_destop은 잎사귀에 적용해 보자.

 

 

 

2. 수정

 

잎사귀 모양을 바꿔보자 Meshes탭에서 +아이콘으로 다른 sampleleaves obj 들을 불러 올 수 있다.

불러와서 메터리얼을 적용하듯 손바닥으로 잎사귀로 던져넣으면 잎사귀 모양이 바뀐다.

여기에 직접만든 오브젝트를 가져와서 열매나 특정 오브젝트를 구현할 수 도 있다.

 

바람은 메인화면 아이콘에서 enable 시켜도 잘 움직이지 않는데 그냥 wind wizard에서 원하는 바람을 가져오는게 좋다.

그냥 쌩짜로 바람을 먹이려고 하면 어떻게 하는지 모르겠다. 잘 적용이 안됨. 바람은 여기서 세팅한데로 언리얼에서 불러진다.

 

왼쪽 세부 설정 탭들 중 중요한것들은

Generation에서 갯수나 퍼짐 정도를 정할 수 있고

Spine에서 길이를 수정

Branch에서 두께를 수정할 수 있다. 나머지는 직접 살펴보고.

 

잎사귀의 색을 바꾸려면 메터리얼 탭에보면 Color Adjustment가 있다.

이걸로 바꾸면 된다.

 

잎사귀의 크기를 바꾸려면 잎사귀를 선택하고 왼쪽 위를 보면 Cards라고 있다 여기서 크기를 변경하면된다.

 

제일 루트의 Tree를 선택하면 왼쪽에 leaf collision 설정탭이 보인다. enabled를 하면 잎사귀들이 서로 겹치지 않고

떨어진다.

 

보통 branch는 level3단계까지 가는게 더 자연스럽다. 무거우면 level2에서 끝낼것

아래는 레퍼런스 사진을 보고 만들어본 나무.

사진 상으로 몇가닥 삐쭉삐쭉 튀어나온 나뭇가지는 화면 정중앙 위쪽에 보면 Generators라는 아이콘을 눌러

Nodes로 바꾸면 각각의 branch들을 하나씩 수정할 수 있다.

 

 

 

3. 라이트맵 UV

 

이제 LightMap UV를 확인 해야 한다. 위쪽에 View / Render 버튼을 눌러 lightmap density였나를 클릭해보자.

 

이런식으로 라이트맵 밀도를 볼수 있다.

초록색은 이상적인 밀도 파란색은 해상도가 너무 낮은부분 빨강은 해상도가 너무 높아 낭비되는 부분이다.

 

루트인 트리를 선택해보면 라이트맵 해상도를 정하는 부분이 있다 여기서 나무에 맞는 해상도를 정하고

나중에 각 trunk나 level을 선택해보면 라이트맵탭에 스케일을 정하는 부분이 있다. 여기서

각각의 파트들이 차지하는 크기들을 지정해 주면 된다.

 

근데 생각해보면 바람이 불어 움직이는 나무는 static shadow가 안걸리니 그냥 무시해도 되는건가?

 

 

 

4. UE4로 가져가기 

 

어처구니 없게도 컬러를 변경했던게 가져가지지 않아서 구글을 검색 했더니

http://www.speedtree.com/forum/showthread.php?3442-Can-t-seem-to-export-textures-from-the-modeler-with-color-adjustment

원래 그런거라고 한다..   포토샵에서 바꾸라고..   뭐하러 그런 기능을 넣어서 사람을 헷갈리게 만드는지.

 

근데 색이 안바뀌는게 문제가 아니고 나뭇잎 메터리얼이 그냥 하나로 묶여서 들어오는데 그건 어떻게 해야되지?

 

원래 했던 방법이 스피드트리에서

A라는 텍스쳐를 부른다 - 그러면 자동으로 A라는 이름의 메터리얼이 하나 생된다.

A메터리얼을 복사한다. color adjust로 색을 바꾼다.

또 복사한다 색을 바꾼다. 이런식으로 색색깔의 나뭇잎을 가진 나무를 만들었었다. 이렇게 한다음 UE4로 가져오니 그냥 하나의 텍스쳐로

만들어진 재질이기 때문에 하나의 재질로 인식하여 나뭇잎들이 하나의 재질을 합쳐쳐서 들어왔었다.

 

그래서 포토샵에서 아예 빨간색 나뭇잎 재질을 따로 만들고 적용하였더니 위 그림처럼 빨간색 잎사귀가 살아 있는체로 잘 들어왔다.

 

 

파일정리는 3D / SpeedTree / Tree_01 이라고 나무별로 폴더를 만들고 그 하위에 Texture, Export 폴더를 따로 두어 관리했다.

나무에 적용할 텍스쳐는 텍스쳐 폴더에 두고 Export폴더로 Save as with Asset을 해주면 텍스쳐들이 정리되어 들어간다.

아래는 자동으로 합쳐진 텍스쳐들.

 

 

 

 

5. 퀄리티 높이기

 

 

이제 해결해야 할 문제가 실제적으로 퀄리티를 높이는 방법이다. 위 스틸도 그나마 post process volume에서 screen percentage를 200으로

올려서 찍은 스크린샷이다.

100 default로 내리면 왼쪽 그림처럼 상당히 퀄리티가 떨어져 보이게 된다. (오른쪽이 screen percentage 200 ) 

 

 

뒤에 깔려있는 sky때문인가 싶어 sky를 지우고 나무뒤에 메쉬를 깔아봤지만 역시 마찬가지.

speed Tree로 만들어는지는 모르지만 Suntemple에 있는 나무를 확인해 보자.

재질 쪽에 스피드 트리 관련 노드들은 안보이지만 확실히  AA가 다르다.

 

구글에 여럿 뒤져봤는데 mipmap 문제일 경우 텍스쳐 에디터의 texture / never stream을 끄라는

얘기도 있고 한데 해봐도 딱히 변하는건 없다.

 

정확한 해결법은 전혀 모르겠고 내가 해결할 수 있는 선에서 해결해야겠다.

내 문제는 우선 잎이 너무 작다는 것. 너무 자글자글한 잎사귀들때문에

계산상의 문제가 생기는 거 같기도 하고 나무가 흔들리는 범위를 좀 줄여야겠다. 잎사귀들이 움직이면서 
모션 블러가 먹듯 흐려지는 문제가 있다.

 

잎사귀 샘플들에 대해선 SpeedTree쪽에 메일을 보내봤는데 원래 버젼이 바뀌며 없어졌고 샘플로 주는 트리 5개 인가? 그거에 만족하라는 답변 뿐..

 

 

..........................................................

인터넷으로 찾은 사과나무 샘플을 집어넣어봤다.

 

 

확실히 자잘한 텍스쳐가 아닌 확실한 윞사귀들이 들어가니 한결 깨끗하게 보인다.

왼쪽이 그냥 오른쪽이 screen percentage 200을 줬을 때인가 그럴꺼다. 약간의 차이가 있긴하지만 큰 차이가 없다.

 

 

 

 

 

 

5. 트리 제작

 

 

사과 나무 샘플을 가지고 이제 실제 나무를 만들어 보자.

나무의 경우 무작정 가지를 늘리면 아무래도 부하가 심해진다. 그래서 나뭇가지 메쉬에 나뭇가지 텍스쳐를 넣기도 한다.

예를 들어 현재 branch가 레벨 1까지만 있는 상태다.

 

하지만 나뭇가지에 디테일한 작은 나뭇가지들이 붙어있다.

 

실제론 이런 플랜에 나뭇가지 텍스쳐를 집어넣은 것이다.

 

저런 잔 나뭇가지용 메쉬를 frond라고 한다. level1 branch를 선택하고 Geomery types에 보면 frond가 있다. 그걸 켜주면

저런 메쉬가 생겨난다. frond라는건 원래 이런식의 일렬로 자라난 잎사귀들을 뜻한다. 아마 저런 플랜에 아래 그림처럼

여러 잎사귀들이 붙어있는 그림을 넣으라고 하는게 원래 목적인거 같다.

 

Geomery types에 leaf style fronds를 선택하면 level의 아이콘이 바뀐다.

레벨에다가 사과나무 샘플의 잎사귀들도 일반 leaf가 아닌 leaf style frond를 켜키고

작업한 나뭇잎들이다. 두개의 차이가 정확히 뭔지는 지금은 잘 모르겠다.

 

.......................................................................................

 

레벨을 2까지 만들고 가장 기본적인 leaves / camera facing / standard를 주고 잎사귀 재질을 넣어봤다.

잎사귀들이 branch랑 다 떨어져 보인다. 이건 설정에서 흩트려져서 그런건지 원래 이런건지 모르겠네

 

그래서 그냥 frond / individual leaves 이걸로 줬다. 이게 맞는지는 모르겠는데 이렇게 하면 각각의 나뭇잎들이 모두

메쉬를 가지니까 꽤나 무거워질거 같은에 내 Scene은 나뭇가지가 메인이 아니니 그냥 해볼까 한다.

 

 

아..   생각보다 나무 만드는게 무척 까다롭다..  이러저러하다가 우선 테스트로 배치해본 모습

디테일 하게 다듬어야 하는데 원하는데로 컨트롤이 쉽지 않으니 시간이 많이 낭비된다.

 

 

 

 

 

나뭇잎 날리기

 

하다가 지겨워서 나뭇잎 날리기 혹은 먼지 날리기를 추가해 보자.

 

 

 

 

 

 

 

관련글 더보기