블로그 이미지

[언리얼 엔진4 강좌] 글로벌 일루미네이션

2015. 10. 4. 08:00
  


라이트매스(Lightmass)


Lightmass는 언리얼 내에서 사실적인 스태틱 라이트를 계산하기 위해 개발된 라이팅 시스템을 말합니다. 이 시스템은 과거의 언리얼 버전에서 사용하던 라이팅 시스템보다 강력한 글로벌 일루미네이션을 구현합니다. Lightmass는 지역 그림자(Area Shadowing)와 확산 상호반사(Diffuse Interreflection)와 같은 정교한 빛의 상호작용을 통하여 라이트 맵에 조명 정보를 기록합니다. 라이트 맵은 한번 형성되면 다시 라이팅 빌드를 하기전까지 수정을 할 수 없기 때문에 주로 고정된 오브젝트에 사용됩니다.  



에어리어 라이트와 쉐도우(Area Light and Shadow)


현실에서 빛과 그림자는 광원의 크기에 영향을 받습니다. 예를 들어 광원의 크기가 커질수록 더욱 부드러운 빛과 그림자를 만들어 냅니다. 이러한 현실에 존재하는 광원의 물리적 크기를 흉내낸 조명을 지역 조명(Area Light)라 하며, 언리얼 엔진의 Point Light와 Spot Light를 통하여 이를 시뮬레이션할 수 있습니다. 이 두 종류의 라이트는 공통적으로 동그란 구형의 광원을 갖고 있으며, Source Radius 속성을 통하여 광원의 크기를 조절할 수 있습니다. 결국 Source Radius 값은 그림자의 부드러운 정도에 영향을 미치며, 보다 사실적이고 고품질의 결과물을 얻는 효과가 있습니다.



Source Radius : 5


Source Radius : 30


디퓨즈 인터리플렉션(Diffuse Interreflection)


확산 상호반사(Diffuse Interreflection)는 빛이 반사되어 퍼져나가는 효과를 말합니다. 이는 글로벌 일루미네이션을 구현하는데 있어 시각적으로 가장 중요한 라이팅 효과이기도 합니다. 만일 이 효과가 발생하지 않는다면 직접 빛을 받는 지역을 제외하고 나머지 영역은 어둠으로 채워질 것입니다. 확산 상호반사는 카메라의 보는 방향이나 위치에 상관없이 모든 방향에 똑같이 빛을 반사합니다. 


Num Indirect Lighting Bounces : 0


Num Indirect Lighting Bounces : 3


또한 재질의 기본 색상에 영향을 받기 때문에 빛이 반사되는 주변에 재질의 색이 함께 묻어나는 컬러 블리딩(Color Bleeding) 효과를 발생시킵니다.



앰비언트 오클루전 (Ambient Occlusion)


Ambient Occlusion은 모서리, 갈라진 틈, 물체와 물체가 접하는 부분 등 빛이 폐색되는 영역을 어둡게 만들어주는 셰이딩 기법입니다. 이는 어떠한 라이팅의 영향을 받지 않고 오직 오브젝트 간의 거리를 기준으로 계산됩니다. Lightmass는 앰비언트 조명을 통하여 빛이 폐색되는 영역을 자연스럽게 어둡게 만들어주는데, Ambient Occlusion 옵션을 활성화하면 좀 더 장면에 깊이감이 부여되고  물체와 물체 간의 입체적인 상관 관계가 부각됩니다. Ambient Occlusion은 그림자와 함께 라이트맵에 구워지며, 음영의 급격한 변화를 표현하기 위해 고해상도의 라이트맵이 요구됩니다.


Use Ambient Occlusion : On


라이팅 빌드 시간 최적화하는 방법


- 라이트매스 임포턴스 볼륨(Lightmass Importance Volume) 배치 


라이트매스는 레벨의 모든 영역에 빛의 입자를 방출합니다. 따라서 레벨의 크기가 클수록 방출하게 되는 입자의 수가 함께 늘어나 라이팅 빌드 시간이 증가하게 됩니다. Lightmass Importance Volume은 라이트매스가 광자를 빙출하는 영역을 제한하여 정교한 간접광을 필요한 지역에 집중할 수 있도록 해줍니다. 대신 볼륩 밖 영역은 한 차례 반사되는 저품질의 간접광을 갖게 됩니다. 주광원 하나에 한 개의 Lightmass Importance Volume만 허용하기 때문에 레벨 안에 여러 개의 볼륨을 배치한다해서 빛 입자를 밀집시키는데 도움이 되지 않습니다.



- 라이트맵 해상도 설정


라이트맵의 해상도가 높을수록 정교하고 고품질의 조명을 얻을 수 있습니다. 하지만 고해상도의 라이트맵은 텍스쳐 메모리를 더 많이 사용하며 라이팅 빌드 시간도 늘어나는 단점을 갖고 있습니다. 따라서 시각적으로 중요한 지역 또는 그림자의 정교한 형태를 요구하는 영역에서 선택적으로 고해상도의 라이트맵을 사용하고, 직사광 아래 놓여있지 않고 단순히 부드러운 간접 그림자를 드리우는 영역에서는 저해상도 라이트맵을 적용합니다. 


Light Map Resolution : 128


Light Map Resolution : 256


- 라이트매스 솔버(Lightmass Solver) 퀄리티 설정



라이팅 빌드 옵션의 Lighting Quality 탭에서 선택하는 퀄리티에 따라 자동으로 설정됩니다. Preview, Medium, High, Production 과 같이 네가지 옵션을 지원합니다. Preview에서 Production으로 올라갈수록 고품질의 결과물을 얻을 수 있지만 이에 비례하여 라이팅 빌드 시간도 함께 증가하게 됩니다. Lighting Build Info 대화창을 통하여 단일 메시별로 라이팅 빌드 시간을 확인할 수 있습니다.




블로그 이미지

[언리얼 엔진4 강좌] 라이팅 기초

2014. 8. 31. 08:11
  




라이트의 종류와 속성 



디렉셔널 라이트


Directional Light는 태양광과 같이 무한히 먼 거리에서 오는 광원을 표현합니다. 씬 위의 오브젝트들은 광원과 떨어진 거리에 상관없이 동일한 밝기의 빛을 받습니다. 때문에 씬 안의 라이트를 오브젝트에 가깝게 위치시키거나 멀리 놓는다하여 물체가 받는 빛의 강도가 달라지지 않습니다. 디렉셔널 라이트는 모든 물체에 동일한 각도로 빛을 비추기 때문에 이로 인해 발생한 그림자 역시 서로 평행을 이루게 됩니다. 


Transform


트랜스폼 속성에 값을 입력하여 라이트의 위치, 회전, 크기를 조절할 수 있습니다. Directional Light의 Rotate 값을 조정하여 회전시키면 빛이 오는 방향을 바꿀 수 있습니다. 라이트가 가리키는 방향에 따라 그림자의 방향과 반사체위에 맺히는 스펙큘러 하이라이트의 지점이 함께 바뀌는 것을 볼 수 있습니다.  



Intensity


빛의 세기를 표현합니다. 값이 낮을수록 어두워지고 높을수록 밝아집니다.



Light Color


조명의 색을 결정합니다. Color Picker에서 원하는 색을 선택하여 라이트의 색을 바꿔줄  수 있습니다.




Min Roughness


반사체에 맺히는 스펙큘러 하이라이트의 크기와 뭉게진 정도에 영향을 미칩니다. 값이 낮을수록 작고 날카로운 하이라이트가 맺히는 반면 값이 높을수록 커지면서 뭉게집니다.




포인트 라이트


Point Light는 텅스텐 전구와 같이 광원을 중심으로 모든 방향으로 발산하는 빛을 표현합니다. 일정 지역 안에서 빛의 효과를 주는데 알맞아 공간 연출 시 빛의 볼륨 효과를 통해 아늑한 분위기를 조성해줍니다. 따라서 실내 전등, 횃불 등을 시뮬레이션하는데 자주 사용됩니다.   


Attenuation Radius


빛의 시작점에서 소멸하기까지의 거리, 즉 감쇠 반경을 표현합니다. 값이 낮을수록 빛이 멀리 퍼져나가지 못하고 어두워지는 반면, 값이 클수록 시작점으로부터 먼 거리까지 빛이 퍼져나갑니다.



Source Radius


반사체 위로 비치는 조명의 크기를 결정합니다. 값이 커질수록 반사체에 비치는 광원의 크기가 커집니다.



Source Length


반사체 표면에 비치는 광원의 모양에 영향을 미칩니다. 값이 커질수록 기다란 모양의 조명이 반사체 표면에 비치게 됩니다.



스포트 라이트


Spot Light는 손전등과 같이 방향성을 갖고 일정 영역에 빛을 비추는 조명을 표현합니다. 빛이 방향성을 갖고 있다는 점에서 Directional Light와 같지만 씬 전체에 영향을 주는 Directional Light와 달리 일정 범위 안에 빛을 드리웁니다. 또한 한 점에서 빛을 발산한다는 점에서 Point Light와 닮았지만, 모든 방향으로 빛을 발산하지 않고 특정 방향으로만 빛을 발산합니다. 이러한 차이는 Spot Light가 갖고 있는 원뿔 모양의 콘(cone)에 기인한 것으로, 콘이 가르키는 방향과 그 지름에 따라 빛의 방향과 범주가 달라집니다. 등대 불빛, 차량 헤드라이트, 무대조명 등을 시뮬레이션 하는데 자주 사용됩니다.


Inner Cone Angle


Spot Light에는 두 개의 원뿔, Inner Cone과 Outer Cone이 존재합니다. Inner Cone은 두 원뿔 가운에 안쪽에 위치하는 원뿔로서 Inner Cone Angle을 조절하여 빛을 받는 영역을 정할 수 있습니다.



Outer Cone Angle


Outer Cone은 바깥쪽에 위치한 원뿔입니다. Outer Cone Angle을 조절하여 Inner Cone과 Outer Cone 사이에 공간을 만들 수 있는데 그 거리만큼 빛의 감쇠가 일어납니다. 그 결과 조명을 받는 영역의 외각으로 갈수록 빛이 퍼지며 부드럽게 어두워집니다.




스카이 라이트


Sky Light는 단순히 말해 하늘에서 오는 빛을 재현하는 조명입니다. 이를 위해 대기, 구름, 원거리에 존재하는 산과 같이 장면 전체를 둘러싸고 있는 모든 환경을 캡쳐하여 조명으로 변환합니다. Sky Light는 그 자체만으로 훌륭한 필 라이트(Fill Light) 역할을 수행하며, 사용자가 직접 큐브맵을 이용하여 다양한 조명 연출이 가능합니다. 씬 안에 배치하여 바로바로 확인할 수 있는 다른 조명들과 달리 Sky Light는 라이팅 리빌드 과정을 거친 후에 그 변화를 확인할 수 있습니다.  


Source Type


Sky Light는 주위 환경을 캡쳐한 다음 그것 조명소스로 활용하여 라이트로 적용합니다.  따라서 조명 소스가 될 환경을 만들어주는 것이 우선되어야 합니다. Sky Light는 두가지 방식의 소스 타입을 제공하고 있는데, 캡쳐를 통해 조명을 얻고자 한다면 SLS Captured Scene을 선택하고, 특정 큐브맵을 직접 이용하려면 SLS Specified Cubemap을 선택합니다.



Sky Light의 활용방법을 간단히 살펴보겠습니다. 먼저 Modes 패널의 Visual>Atmospheric Fog 선택 드래그하여 씬 안에 대기를 만들어 줍니다. Atmospheric Fog는 Sky Light가 캡쳐하게 될 환경이 될 것입니다. 



Sky Light를 설치하고 Source Type을 SLS Captured Scene으로 하여 씬 전체를 캡쳐할 준비를 합니다. Sky Light는 자동으로 환경을 업데이트하지 못하기 때문에 언리얼 에디터 상단의 툴바에서 Build 버튼을 클릭하여 라이팅 리빌드를 해줍니다. 캡쳐하게 될 씬에 변화가 생길 경우 다시 Build 버튼을 클릭하여 라이트를 리빌드해주거나 Sky Light의 Details 패널에서 Recapture Scene 버튼을 눌러줍니다.



라이팅 리빌드를 마치면 아래 이미지와 같이 Sky Light에 의해 캡쳐된 환경이 조명으로 적용되어 씬을 밝히게 됩니다. 



  1. 버크하우스 2014.08.31 08:19 신고  address  modify / delete  reply

    잘 보고 가요. 좋은 하루 되세요. ^^


블로그 이미지

[언리얼 엔진4 강좌] BSP 지오메트리 브러시 활용

2014. 8. 10. 08:00
  




BSP (Binary Spacing Partition)


언리얼에서 레벨을 제작할 때 주로 3D 툴에서 준비해온 스태틱 메시가 사용됩니다. 하지만 언리얼의 BSP 지오메트리 브러시를 이용하여 간단한 구조물을 빠르게 제작할 수 있습니다. BSP는 언리얼에서 제공하는 기본 레벨 제작 툴로서 블록을 조립하듯이 직관적으로 형태를 잡아갈 수 있습니다. 이러한 이점으로 레벨 디자이너들은 레벨 디자인 초기에 3D 툴 도움 없이 빠르게 3D 공간을 테스트하고 가이드라인을 잡는데 BSP를 이용합니다. BSP 브러시로 생성된 지오메트리는 UV 매핑 과정없이 빠르게 텍스쳐와 머티리얼을 적용할 수 있습니다.


BSP로 간단한 Indoor 샷 만들기



브러시 생성하기


Modes 패널의 Geometry 탭에서 Box 를 선택하여 뷰포트로 드래그합니다. 박스 브러시가 생성됩니다.



브러시 크기 조절하기


박스 브러시를 선택한 상태에서 Details 패널로 이동합니다. Brush Settings 탭의 X, Y, Z에 각각 500, 500, 20을 입력하여 레벨에서 바닥으로 사용할 타일을 만들어 줍니다.



브러시 복사하기


브러시를  Alt키를 누른 상태에서 이동하면 복사가 됩니다. 메뉴바에서 Edit>Duplicate 명령을 실행하여 복사할 수도 있습니다. Top 뷰에서 그리드 스냅을 이용하여 복사한 브러시의 모서리가 맞붙도록 배치합니다. 



아래 그림과 같이 타일을 연결하여 바닥이 될 면을 만들어 줍니다.



벽 만들기


기존의 박스 브러시를 복사하거나 새롭게 만들어 Brush Settings를 수정합니다. X, Y, Z 속성에 각각 20, 500, 500을 입력하여 벽 타일을 만들어 줍니다. 



Front 뷰 또는 Side 뷰를 활용하여 벽면이 될 타일을 바닥 면과 맞붙입니다. 그리드 스냅을 이용하여 정확하게 위치시킵니다.



박스 브러시를 복사하고 이동시키기를 반복하여 아래 그림과 같이 측면 벽을 만들어 줍니다. 



다시 새롭게 박스 브러시를 생성하거나 기존의 브러시 하나를 복사합니다. Brush Settings 탭의 X, Y, Z 속성에 각각 500, 20, 500을 입력합니다.



그리드 스냅과 각 뷰를 적절히 활용하여 아래 그림과 같이 나머지 벽을 채워 줍니다. 



천장 만들기


바닥을 이루는 여섯 개의 박스 브러시를 복사하여 윗방향으로 이동합니다. 앞 단계에서와 마찬가지 적절한 뷰와 그리드 스냅을 이용하여 천장을 만들어 줍니다. 



창문 만들기


정면 벽을 구성하고 있는 세개의 박스 브러시를 선택하고 Alt키를 누른 상태에서 이동하여 복사합니다. 복사된 브러시의 Brush Type을 Subtractive로 변경해주면 투명하게 바뀝니다. Brush Settings의 X, Y, Z 속성을 각각 200, 20, 300으로 수정하여 창문 모양을 만들어 줍니다. 



형태를 수정한 세 개의 박스 브러시를 다시 원래의 자리로 이동하여 벽면과 교차시킵니다. Top 뷰에서 그리드 스냅을 이용하면 정확하게 벽면의 위치와 일치시킬 수 있습니다.



창문에 해당하는 박스 브러시의 Brush Type이 Subtractive이므로 벽면과 교차하는 부분에 구멍이 뚫린 것을 볼 수 있습니다.



지오메트리 에디팅


Modes 패널의 Geometry Editing 탭에서 브러시를 보다 세밀하게 변형할 수 있습니다.



Geometry Editing 탭을 선택하면 브러시의 버텍스(Vertex)가 수정 가능하도록 활성화됩니다. 버텍스를 여러개 혹은 낱개로 선택하여 원하는 모양대로 이동, 회전, 크기조정을 할 수 있습니다. 



완성된 Indoor 샷라이팅 작업을 통해 실내를 밝혀주었습니다. 




블로그 이미지

[언리얼 엔진4 강좌] 언리얼 머티리얼 제작

2014. 7. 27. 08:00
  



Workflow03. 언리얼 머티리얼 제작


그래픽툴을 활용하여 3D 모델을 제작한 다음, 이를 다시 언리얼에서 호환할 수 있는 상태인 스태틱 메시로 변환하였습니다. 이제 이 메시를 게임 안에서 어떻게 보여질지에 대한 시각화하는 단계로 머티리얼을 제작하여 최종적인 게임 비쥬얼을 완성합니다.


머티리얼이란?


머티리얼(Material)은 색상, 무늬, 광택, 투명도, 표면의 거친 정도 등 물체의 시각적인 특징을 설명해주는, 즉 재질을 의미합니다. 일반적으로 물체의 외적인 색상과 무늬를 표현해주는 디퓨즈(Diffuse), 빛의 맺힘과 반사를 표현해주는 스펙큘러(Specular), 표면의 입체적인 굴곡을 표현하는 노멀(Normal) 등이 머티리얼을 정의하는 구성 요소로 사용됩니다. 물리기반 셰이딩 모델을 활용하는 언리얼 엔진4는 위 요소 이외에도 금속성을 표현하는 메탈릭(Metallic), 표면의 거칠기 정도인 러프니스(Roughness) 등 보다 사실적인 재질 제작을 위한 세부적인 속성을 지원합니다.  


머티리얼 생성


머티리얼을 제작하는 방법은 기존에 만들어진 머티리얼을 수정하는 방법과 새롭게 머티리얼을 생성하고 노드를 직접 연결하는 방법이 있습니다. 전반적인 머티리얼 제작 흐름을 살펴보기 위해 머티리얼을 생성하는 과정부터 살펴보겠습니다.


콘텐츠 브라우저에서 New 버튼을 클릭한 다음 드랍메뉴에서 Material을 선택합니다.



콘텐츠 브라우저에 새롭게 머티리얼이 생성되고 머티리얼의 이름을 입력해줍니다. 이름을 수정하고 싶다면 머티리얼 위에서 오른쪽 버튼을 클릭한 다음 팝업 메뉴에서 rename을 선택하여 이름을 변경하면 됩니다. 




머티리얼 에디터


언리얼에서 머티리얼 제작은 머티리얼 에디터에서 이루어집니다. 새롭게 생성된 머티리얼을 더블클릭하여 머티리얼 에디터를 띄웁니다. 머티리얼 에디터는 크게 중앙의 그래프 패널, 우측의 팔래트 패널, 좌측 하단의 디테일 패널로 나눠집니다. 팔래트 패널에서 원하는 노드를 선택하여 중앙의 그래프 패널에 가져와 네트워크를 연결하고 디테일 패널에서 노드의 세부 속성을 조절하는 방식으로 머티리얼 제작 과정은 이뤄집니다. 



1. 디테일 패널
2. 그래프 패널
3. 팔래트 패널

노드의 구조


노드(Node)는 Input과 Output으로 구성되어 있습니다. 외부로부터의 정보를 Input을 통해 받아들인 후 해당 노드에서 연산 과정을 거쳐 그 결과를 다시 Output을 통해 밖으로 내보냅니다. Output은 모든 채널을 이용거거나 Red, Green, Blue, Alpha 각각 채널을 분리하여 사용할 수 있습니다.



머티리얼 제작


처음 머티리얼을 생성하면 머티리얼 에디터의 그래프 패널에는 아직 어떤 노드와 연결되지 않은 메인 머티리얼 노드만 존재합니다. 메인 머티리얼 노드에는 Base color, Specular, Normal, Roughness 등 재질의 다양한 기본 속성이 있습니다. 




텍스쳐를 불러와 보겠습니다. 머티리얼 에디터의 팔래트 패널에서 Texture > TextureSample을 선택하여 중앙의 그래프 패널로 드래그해 가져옵니다. 또는 그래프 패널에서 단축키 T를 누른 상태에서 마우스 왼쪽 버튼을 클릭하면 Texture Sample 노드가 생성됩니다.



디테일 패널로 이동해보면 Material Expression Texture Base 카테고리의 Texture 속성이 None으로 되어있는 것을 알 수 있습니다. 드롭다운 메뉴버튼을 클릭하여 원하는 텍스쳐를 선택합니다. 여기서는 crate_diffuse01이라는 파일명의 디퓨즈 텍스쳐를 불러옵니다.



Texture Sample 노드에 텍스쳐가 시각화됩니다. Texture Sample 노드의 Out put 채널 가운데 모든 채널을 의미하는 하얀색 단추를 클릭 드래그하여 메인 머티리얼 노드의 Base Color의 Input 위에 놓습니다. 두 노드가 실선으로 연결되었습니다.


 

같은 방식으로 새로운 Texture Sample을 만들어준 다음 나머지 텍스쳐를 불러와 메인 머티리얼 노드의 각 속성에 연결해 줍니다.  아래 이미지는 디퓨즈, 스펙큘러, 노멀이 연결된 기본적인 형태의 머티리얼을 구성입니다. 물론 실제 제작되는 노드 구조는 이보다 훨씬 더 복잡할 수 있지만 여기서는 간단히 그 원리만 살펴보았습니다. 



머티리얼 적용


머티리얼 제작을 마쳤다면 액터에 적용해 봅니다. 콘텐츠 브라우저에서 완성된 머티리얼을 뷰포트에 놓인 액터 위로 끌어다 놓습니다.



 액터에 머티리얼이 적용되며 오브젝트 상에 텍스쳐와 재질이 표현됩니다. 



  1. 공학코드 2014.07.31 23:37 신고  address  modify / delete  reply

    잘 보고 갑니다 ㅎ


블로그 이미지

[언리얼 엔진4 강좌] 스태틱 메시 생성

2014. 7. 13. 08:00
  






Workflow02. 스태틱 메시 생성


그래픽 툴을 활용하여 어셋 제작을 마쳤다면, 다음으로 완성된 어셋을 언리얼 엔진에서 인식할 수 있는 상태로 만들어주어야 합니다. 즉 '스태틱 메시 (또는 스켈레톤 메시)'로 변환해주는 과정이 필요합니다. 


스태틱 메시(Static Mesh)란?


스태틱 메시는 'Static'이라는 단어 의미에서 알 수 있듯이 고정되어 움직임이 없는 메시를 뜻합니다. 언리얼 엔진에서 레벨의 지오메트리를 구성하는 기본 단위이며, 집, 언덕, 나무, 자동차, 가로등과 같이 움직임이 없는 대부분의 배경 구조물에 스태틱 메시가 사용됩니다.


익스포트


Maya와 3ds Max와 같은 그래픽툴을 통해 제작된 3D 모델들은 자체 익스포트 기능을 사용하여 언리얼 엔진과 호환되는 포맷으로 변환할 수 있습니다. 


3D그래픽툴과 언리얼 엔진 사이에 호환가능한 여러가지 포맷이 존재하며, 그 가운데 FBX 포맷은 몇가지 편리를 제공합니다. FBX는 오토데스크가 개발한 파일 포맷으로 Maya와 3ds Max 양쪽 모두에 플러그인이 내장되어 있습니다. 그리고 여러 어셋을 하나의 파일에 포함시켜 저장할 수 있으며, 머티리얼과 텍스쳐가 메시에 적용된 상태로 한 번에 임포트할 수 있습니다.


먼저 3D 그래픽 툴에서 언리얼 에디터로 가져올 오브젝트를 선택한 후, File 메뉴의 Export Selection을 클릭합니다. (Maya 2013 기준)



Export Selection 창이 뜨면 파일 경로와 이름을 정해주고, File of type을 FBX export로 해줍니다. 창 오른편 Options의 Geometry 탭 아래 Smoothing Group, Smooth Mesh, Triangulate의 체크박스가 표시되었는지 확인합니다. Triangulate를 체크하면 기존의 사각형의 메시를 자동적으로 삼각형으로 변환해줍니다.


하단의 Export Selection 버튼을 클릭하면 확장자 .fbx를 가진 파일이 생성됩니다. 언리얼 에디터로 불러올 수 있는 스태틱 메시가 만들어진 것입니다.



임포트


생성된 스태틱 메시를 언리얼로 불러와 보겠습니다. 언리얼 에디터의 콘텐츠 브라우저에서 Import 버튼을 클릭합니다.



열린 Import 창에서 불러오고자 하는 fbx 포맷의 파일을 선택한 다음 열기 버튼을 클릭합니다.



FBX Import Options 창이 뜹니다. Select Asset Type에서 임포트하는 어셋의 유형을 선택해줍니다. Static Mesh를 선택해줬습니다. Advanced> Material의 Import Materials와 Import Textures의 체크박스를 체크해줍니다.  어셋과 함께 어셋에 적용되어 있던 머리티얼과 텍스쳐가 불려옵니다. 



콘텐츠 브라우저에 스태틱 메시와 함께 머티리얼과 텍스쳐가 임포트된 것을 확인할 수 있습니다. 경우에 따라 텍스쳐가 누락되어 임포트되지 않을 때가 있는데, 이 때는 다시 한 번  Import 버튼을 클릭하여 직접 텍스쳐 파일을 불어오면 됩니다. 




블로그 이미지

[언리얼 엔진4 강좌] 그래픽툴을 활용한 어셋 제작

2014. 6. 29. 08:00
  




본격적으로 언리얼 엔진을 다루기 앞서 언리얼 엔진을 활용한 게임 그래픽 작업에 대한 전반적인 제작 흐름(Workflow)을 살펴보도록 하겠습니다. 


제작 흐름은 크게 세 부분으로 나눠볼 수 있습니다.


1. 그래픽툴을 활용한 어셋 제작

2. 스태틱 메시 생성

3. 언리얼 머티리얼 제작


아쉽게도 언리얼 에디터는 자체적으로 게임 요소를 제작할 수 있는 그래픽 툴을 제공하고 있지 않습니다. 물론 레이아웃을 위한 간단한 배경 구조물를 만들 수 있지만 고퀄리티의 결과물을 뽑아내기에는 한계가 있습니다. 따라서 2D와 3D 각 분야에 최적화된 그래픽 툴을 활용하여 어셋 제작이 선행되어야 합니다.


Workflow 01. 그래픽툴을 활용한 어셋 제작


모델링


 Maya 또는 3ds Max와 같은 3D 그래픽 툴을 사용하여 오브젝트의 형태를 만들어줍니다.



모델링에서 주의해야할 점은 형태를 이루는 폴리곤 면이 최종적으로 삼각형인 트라이앵글로 되어야 한다는 점입니다.이는 언리얼 엔진이 트라이앵글만을 취급하기 때문인데, 이를 위해 애초에 모델링 단계에서 삼각형 면으로 형태를 잡아가거나, 모델링을 마친 다음 한번에 트라이앵글로 변환하는 방법이 있습니다.  


트라이앵글(좌)과 쿼드앵글(우)


UV 세팅


모델링 과정을 마쳤다면 텍스쳐 작업에 들어가기 앞서 오브젝트의 UV 맵을 정리해줘야 합니다. 올바르게 UV 맵을 펴줘야 텍스쳐의 왜곡없이 오브젝트에 적용할 수 있습니다.


UV 그리드를 적용한 모습


한 오브젝트에 대하여 다중의 UV세트를 제작할 수 있습니다. 일반 디퓨즈용 UV세트는 텍스쳐를 반복사용해도 무방할 경우 UV를 겹쳐 배열하고, 라이트맵용 UV세트는 겹치는 면이 없도록 UV를 펼쳐 배열해줍니다. 


디퓨즈용 UV 세트


라이트맵용 UV 세트


텍스쳐 제작


텍스쳐 작업은 주로 2D 그래픽 톨인 포토샵에서 이루어집니다. 정리된 UV맵을 포토샵으로 불러와 텍스쳐를 그려줍니다. 모델링 작업이 오브젝트의 형태를 잡아주는 일이라면 텍스쳐 작업은 그 형태에 색과 재질을 입혀주는 작업이라고 이해하면 쉽습니다. 디퓨즈 맵, 스펙큘러 맵, 노말 맵 등 각 재질의 속성에 해당하는 텍스쳐를 제작합니다. 제작된 텍스쳐는 언리얼 에디터에 불러올 수 있는 포맷으로 저장합니다. (tga, png, psd, jpg, bmp, hdr 지원)



디퓨즈 맵 (Diffuse Map)


스펙큘러 맵 (Specular Map)


노말 맵 (Normal Map)


그래픽툴을 활용하여 어셋을 제작하는 과정에 대해 대략적으로 살펴보았습니다. 텍스쳐를 모델링에 맵핑한 결과는 아래 이미지와 같습니다.




블로그 이미지

[언리얼 엔진4 강좌] 액터 다루기

2014. 6. 15. 08:00
  




캐릭터, 메시, 라이트, 카메라 등 월드에 배치할 수 있는 모든 종류의 오브젝트를 액터(Actor)라 부릅니다. 그리고 이러한 액터들이 놓여지는 게임 안의 지형이나 건물 등의 배경을 레벨(Level)이라 합니다. 액터를 레벨에 위치시키고 자유롭게 다루는 방법에 대해 알아보겠습니다.


액터 배치


마우스 클릭과 드래그를 이용하여 간단히 액터를 레벨에 배치할 수 있습니다.


Modes 패널에서 place 탭으로 이동한 후 원하는 유형의 액터(Geometry, Lights, Visual..)를 선택하여 뷰포트로 끌어옵니다. 레벨에 방금 전 Mode 패널에서 선택한 액터가 배치가 됩니다.



Content Borwser에서도 마찬가지 방법으로 액터를 레벨에 배치시킬 수 있습니다.

브라우저 좌측 창에서 원하는 유형이 담긴 폴더를 선택한 후 오른쪽 창에서 세부 어셋을 선택하여 뷰포트로 끌어 놓습니다. 액터가 레벨 위에 배치됩니다.



보다 정확한 위치에 액터를 배치할 수 있는 방법이 있습니다.  먼저 Content Browser에서 원하는 어셋을 마우스로 선택합니다. 그 다음으로 뷰포트의 액터를 위치시킬 지점에서 마우스 오른쪽 버튼을 클릭합니다. 활성화된 메뉴창에서 place actor 메뉴를 선택하면 그 자리에 방금 전 Content Browser에서 선택했던 액터가 배치됩니다. 



액터 선택


액터를 선택하는 가장 기본적인 방법으로는 뷰포트에서 마우스로 액터를 클릭하는 것입니다. 여러개의 액터를 동시에 선택하고자 한다면 Ctrl 키를 누른 상태에서 차례로 복수의 액터들을 클릭하면 됩니다. 그 가운데 일부를 선택해제하고자한다면 Ctrl 키를 누른 상태로 해제하고 싶은 액터를 다시 한 번 클릭하면 선택이 해제됩니다. 



여러개의 액터를 한꺼번에 선택하는 또 다른 방법은 직교뷰를 이용하는 것입니다. Top 뷰, Front 뷰, 또는 Side 뷰에서 마우스 왼쪽 버튼을 클릭한 채 드래그하면 사각박스가 형성되어 박스 안에 들어간 액터들이 선택됩니다. 마찬가지로 Ctrl 키를 이용하여 액터를 추가로 선택하거나 해제할 수 있습니다.



이밖에도 Scene Outliner에서 목록에 보이는 액터의 이름을 클릭하여 실제 액터를 선택 또는 선택 해제할 수 있습니다.



액터 이동


언리얼 에디터에서는 선택한 액터를 트랜스폼 위젯을 사용하여 이동하거나, 회전시키거나, 크기를 조절할 수 있습니다. 트랜스폼 위젯 아이콘은 뷰포트의 오른쪽 상단에 위치하며, 단축키 W (이동), E (회전), R (크기)키를 사용하여 빠르게 각 상태로 전환할 수 있습니다. 



액터를 이동시키고자 한다면 뷰포트에서 Translation 위젯 아이콘을 선택하거나 단축키 W키를 누릅니다. 선택한 액터 위로 화살표 모양의 이동 위젯이 활성화됩니다. 화살표는 빨강, 초록, 파랑색으로 구분되며 각각 X, Y, Z축을 가리키고 있습니다. 원하는 방향의 화살표를 선택하여 잡아 당기면 액터가 그 방향으로 이동합니다. 그리고 세 화살표가 교차하는 지점의 중앙의 조그만 구를 선택하여 움직이면 액터를 모든 방향으로 자유자재로 이동시킬 수 있습니다.



액터 회전


액터를 회전시키기 위해서는 먼저 선택 후 Rotation 위젯 아이콘 또는 단축키 E를 클릭합니다. 액터 위로 세 가지 색상으로 이루어진 원호가 활성화 됩니다. 빨강색은 X축을 중심으로, 초록색은 Y축을 중심으로, 파란색은 Z축을 중심으로 회전한다는 의미입니다. 회전하기 원하는 방향의 원호를 선택하여 잡아 당기면 액터가 축을 중심으로 회전합니다. 



액터 크기 조정


Scale 위젯을 사용하여 액터의 크기를 조절할 수 있습니다. 뷰포트에서 Scale 위젯 아이콘을 선택하거나 단축키 R버튼을 클릭하면 액터 위로 삼색 큐브가 달린 핸들이 나타납니다. 큐브 가운데 하나를 선택하여 드래그하면 잡아 당긴 방향으로 크기가 변화합니다. 액터의 비율을 유지한 채 크기를 조절하고 싶다면 세 축이 모이는 중심의 흰색 큐브를 잡아 끌어 전체적으로 조정할 수 있습니다.



트랜스폼 위젯을 사용하면 액터의 이동, 회전, 크기를 직관적으로 조절할 수 있다는 점에서 편리하지만 정교함이 떨어집니다. 정교한 조절을 위해 Details 패널을 사용하는 방법이 있습니다. Details 패널의 Transform 탭에 위치, 회전, 크기에 대한 정보를 직접 입력합니다. 



물론 트랜스폼 위젯을 사용하여 정교한 작업을 할 수 있습니다. 그리드 스냅을 이용하는 것입니다. 트랜스폼 위젯 아이콘 옆에 이동, 회전, 크기 조정을 위한 각각의 그리드 아이콘이 존재합니다. 그리드 아이콘을 클릭하여 활성화시키면 그 옆에 정해진 단위만큼 액터를 스냅시키며 조정이 가능합니다.



월드 좌표와 로컬 좌표


트랜스폼 위젯을 사용하여 액터를 이동하거나 회전할 때 기준이 되는 좌표계를 바꿔가며 작업할 수 있습니다. 기본적으로 액터를 선택하였을 때 트랜스폼 위젯은 Z축이 항상 위쪽를 가리키는 월드 스페이스 기반의 좌표를 사용합니다. 뷰포트에서 트랜스폼 위젯 아이콘 옆의 지구 그림 아이콘을 클릭하면 아이콘이 정육면체 그림으로 바뀝니다. 동시에 월드 좌표가 오브젝트 자체 축을 기반으로 하는 로컬 좌표로 바뀝니다.



월드 (World) 좌표


로컬 (Local) 좌표



블로그 이미지

[언리얼 엔진4 강좌] 뷰포트 조작법

2014. 6. 1. 08:00
  




마우스 또는 키보드를 이용하여 뷰포트 안에서 자유자재로 움직일 수 있습니다. 뷰포트 조작법은 크게 표준 조작법, 마야 스타일 조작법, 그리고 게임 스타일 조작법이 있습니다.



표준 조작법


언리얼 에디터에서 기본적으로 사용하는 방법으로 오직 마우스를 사용하여 뷰포트 내에서 움직입니다.


마우스 왼쪽 버튼을 클릭한 채 앞뒤로 드래그하면 뷰포트 카메라가 앞뒤로 움직입니다. 그 상태에서 마우스를 좌우로 드래그하면 카메라를 중심으로 수평방향으로 회전합니다.


마우스 오른쪽 버튼을 클릭한 채 상하좌우로 드래그하면 카메라를 중심으로 마우스가 움직이는 방향으로 회전합니다.


마우스 휠버튼을 클릭한 채 앞뒤로 드래그하면 카메라가 위아래로 이동하며, 좌우로 드래그하면 카메라가 좌우로 이동합니다. 마우스 왼쪽 버튼과 오른쪽 버튼을 동시에 클릭한 채 드래그해도 마찬가지로 카메라가 움직입니다.


  

 조작법

 앞뒤 이동

 좌클릭 + 드래그

 상하좌우 이동

 클릭 + 드래그 or 좌클릭 + 우클릭 + 드래그

 회전 (카메라 중심)

 우클릭 + 드래그



마야 스타일 조작법


언리얼 에디터는 마야(Maya) 유저에게 익숙한 뷰포트 조작법을 제공합니다.


Alt 키를 누른 상태에서 마우스 왼쪽 버튼을 클릭 드래그하면 카메라가 화면을 중심으로 회전합니다.


Alt 키를 누른 상태에서 마우스 오른쪽 버튼을 클릭 드래그하면 카메라가 앞뒤로 줌 인/아웃합니다.


Alt 키를 누른 상태에서  마우스 휠 버튼을 클릭 드래그하면 카메라가 상하좌우로 이동합니다.

 

씬 안의 오브젝트를 선택한 후 F키를 누르면 선택한 오브젝트를 중심으로 카메라가 가까이 이동합니다.


 동작

조작법 

앞뒤 이동

Alt + 우클릭 + 드래그

상하좌우 이동

 Alt + 휠클릭 + 드래그

회전 (화면 중심)

 Alt + 좌클릭 + 드래그 



게임 스타일 조작법


키보드에서 WASD 키를 이용한 방향 조작법으로, PC용 슈팅게임을 플레이할 때 흔히 사용되는 방식입니다.  영문 WASD 키뿐만 아니라 방향키와 숫자패드에서도 그대로 적용됩니다. WASD 키를 사용하여 방향을 조절할 때 마우스 휠버튼을 굴려 이동 속도를 조절할 수 있습니다.


 동작

 조작법

 앞으로 이동

 우클릭 + W

 뒤로 이동

 우클릭 + S

 좌측 이동

  우클릭 + A

  우측 이동

우클릭 + D

위로 이동

우클릭 + E

 아래로 이동

 우클릭 + Q

  줌 인

 우클릭 + C

 줌 아웃

  우클릭 + Z



직교뷰 카메라 조작법


위에서 언급한 방향 조작법은 3차원 뷰인 Perspective 뷰에 한하여 사용될 수 있습니다. Top뷰, Front뷰, Side뷰와 같이 2차원 직교(orthographic)뷰에서는 다음과 같은 방법으로 화면을 움직입니다.


마우스 왼쪽 버튼을 클릭한 채 드래그하면 선택영역을 지정할 수 있습니다.


마우스 오른쪽 버튼을 클릭한 채 드래그하면 화면이 이동합니다.


마우스 휠버튼을 굴리거나, 마우스 왼쪽 버튼과 오른쪽 버튼을 동시에 클릭한 채 드래그하면 화면이 줌 인/아웃됩니다.

 

 동작

 조작법

 이동

우클릭 + 드래그

 줌 인/아웃

 좌클릭 + 우클릭 + 드래그 or 휠 회전 

 선택영역 지정

좌클릭 + 드래그



블로그 이미지

[언리얼 엔진4 강좌] 뷰포트 살펴보기

2014. 5. 25. 08:00
  





뷰포트 (Viewport)


언리얼 에디터 안에서 구현된 3D 월드를 보는 창입니다. 내비게이션을 이용하여 화면 안에서 자유자재로 움직이며 작업을 진행할 수 있습니다. 뷰포트는 크게 원급법을 적용한 Perspective 뷰, 건축 설계도면과 같이 윗면, 정면, 옆면을 볼 수 있는 Top 뷰, Front 뷰, Side 뷰로 나눠집니다. 한 화면에 네 뷰를 동시에 보거나, 원하는 뷰 하나를 선택하여 전체 화면으로 확대하여 볼 수 있습니다.


뷰 확대, 축소, 이동


언리얼 에디터를 처음 실행시켰을 때 뷰포트는 기본적으로 Perspective 뷰를 보여줍니다.



Perspective뷰에서 다른 뷰로 이동하기 위해서 뷰포트 오른쪽 상단 가장자리의 뷰포트 축소 버튼을 누릅니다.



Perspective 뷰가 축소되며 화면 안에 Side 뷰, Front 뷰, Top 뷰가 보여집니다.



원하는 뷰의 크기를 확대 혹은 축소하고 싶다면 각 뷰의 오른쪽 상단 가장자리에 위치한 뷰포트 확대 , 축소  버튼을 번갈아 누르면 됩니다.


뷰를 이동하는 또 다른 방법은 뷰포트의 왼쪽 상단에 위치한 뷰 이름 버튼을 클릭하여 메뉴에서 이동하기 원하는 뷰의 이름을 클릭하는 방법이 있습니다. 



단축키를 눌러 빠르게 원하는 뷰로 이동할 수 있는데 Alt 키와 함께 동시에 G (Perspective 뷰), H (Front 뷰), J (Top 뷰), K (Side 뷰)를 눌러 각각의 뷰로 이동할 수 있습니다.


뷰모드 (View Mode)


언리얼 에디터에서 만들어진 3D 월드를 어떻게 뷰포트 상에서 보여줄 지에 대한 다양한 시각적 방법을 제공합니다. 여러가지 뷰모드를 활용하여 확인하고 싶은 데이터 유형만 골라 살펴볼 수 있습니다. 씬에서 예상치 못한 문제 혹은 에러가 발생할 시, 어떠한 데이터 요소에 원인이 있는지 뷰모드를 통해 빠르고 정확하게 파악할 수 있습니다. 


뷰포트 왼쪽 상단의 Lit 버튼을 클릭하면 뷰모드 메뉴가 활성화됩니다.




Lit 모드는 씬 안의 모든 오브젝트에 재질과 라이트가 적용된 최종상태를 보여줍니다. 뷰포트의 기본 모드로서 게임플레에서 보게 될 화면과 동일한 결과를 보여줍니다.



Unlit 모드는 씬에서 모든 라이팅 정보를 빼고 오브젝트에 적용된 재질의 디퓨즈 컬러만 보여줍니다. 



Wireframe 모드는 씬 안의 모든 오브젝트를 폴리곤 형태의 와이어프레임을 보여줍니다.



Detail Lighting 모드는 재질 색상으로 인한 혼동없이 라이팅 정보를 확인하기 쉽도록 재질의 컬러값을 회색으로 통일하여 보여줍니다. 그리고 노멀맵이 적용되어 표면이 조명에 어떻게 반응하는지 확인할 수 있습니다. 


Lighting Only 모드는 회색으로 오브젝트의 컬러값을 통일하여 라이팅 정보를 보기 쉽도록 한다는 점에서 Detail Lighting 모드와 유사하지만 노멀맵이 적용되지 않습니다.



Reflections 모드는 오브젝트에 적용된 재질의 반사 값을 시각화하여 보여줍니다. 반사 정도를 확인하고 수정하는데 용이합니다.



이외에도 지오메트리에 영향을 미치는 라이트의 개수를 표시해주는 Light Complexity 모드,  쉐이더 구조의 복잡성을 표시해주는 Shader Complexity, 라이트맵 밀도를 표시해주는 Lightmap Density 모드 등 다양한 뷰 모드가 존재합니다.  


또한 뷰모드에서 화면의 노출을 조절할 수 있습니다. Exposure 메뉴에서 원하는 노출값을 선택합니다.



Brightness 1/16x 화면 (좌)와 Brightness 16x 화면 (우)


Show 플래그


Show 플래그를 이용하여 뷰포트 안에 존재하는 모든 어셋들을 요소별로 보이게 하거나 숨길 수 있습니다. 복잡한 씬을 작업할 때 불필요한 요소를 배제하고 원하는 요소만 골라 선택적으로 작업할 수 있어 편리합니다.


 

예를 들어 씬 안의 모든 스태틱 매쉬를 숨기고자 한다면 메뉴에서 Static Meshes의 체크박스를 꺼주거나, 그리드를 숨기고자 할 경우 Grid의 체크박스를 꺼주는 식입니다.


Show 플래그에서 Grid 체크박스가 켜져있을 때 (좌)와 꺼져있을 때 (우)


또한 Lighting Components 메뉴에서 Diffuse, Specular, Ambient Occlusion 와 같은 라이팅 구성요소를 시각적으로 활성화 또는 비활성화시킬 수 있습니다.


Lighting Components에서 Specular를 켰을 때 (좌)와 껐을 때 (우)


  1. 적샷굿샷 2014.05.26 16:25 신고  address  modify / delete  reply

    잘보고 갑니다.


블로그 이미지

[언리얼 엔진4 강좌] 인터페이스 소개

2014. 5. 18. 08:00
  



언리얼 에디터의 인터페이스는 크게 7가지로 나눠 살펴볼 수 있습니다.


1. 메뉴바

2. 툴바

3. 모드

4. 콘텐츠 브라우저

5. 뷰포트

6. 씬 아웃라이너

7. 디테일



메뉴바 (Men Bar)


화면 좌측 최상단에 위치하며 언리얼 에디터의 기본적인 명령을 수행하는 메뉴들이 담겨있습니다. File, Edit, Window, Help 이렇게 4가지 탭이 존재합니다. 새로운 프로젝를 생성, 기존 파일을 열거나 저장, 프로젝트 셋팅, 창 관리, 도움말 보기 등 전반적인 에디터 실행에 필요한 메뉴들이 각각의 탭 안에 들어있습니다.



툴바 (Toolbar)


자주 사용하는 기능에 빠르게 접근할 수 있도록 해주는 명령 모음입니다.



모드 (Modes)


작업 목적에 따라 변경할 수 있는 5가지 모드가 존재합니다. 특정 오브젝트를 씬 안에 배치하도록 해주는 Place 모드, 브러시 작업에 사용하는 Paint 모드, 랜드스케이프를 조각하도록 해주는 Landscape 모드, 폴리지를 생성하기 위한 Foliage 모드, 지오메트리의 브러시를 변경할 수 있는 Geometry Editing 모드가 있습니다.



콘텐츠 브라우저 (Content Browser)


게임 제작에 필요한 다양한 콘텐츠를 생성하고 관리하는 창입니다. 콘텐츠 브라우저 안에 있는 기존 콘텐츠뿐만 아니라 외부에서 제작한 콘텐츠를 불러들여 사용할 수 있습니다. 프랍, 재질, 맵, 블루프린트 등 각각의 콘텐츠를 폴더별로 정리할 수 있으며, 그 안에 들어있는 개별 어셋을 간단히 뷰포트 안으로 드래그하여 가져다 사용할 수 있습니다.  



뷰포트 (Viewport)


언리얼 에디터 안에서 구현된 3D 월드를 보는 창입니다. 내비게이션을 이용하여 화면 안에서 자유자재로 움직이며 작업을 진행할 수 있습니다. 뷰포트는 크게 원급법을 적용한 Perspective 뷰, 건축 설계도면과 같이 윗면, 정면, 옆면을 볼 수 있는 Top 뷰, Front 뷰, Side 뷰로 나눠집니다. 한 화면에 네 뷰를 동시에 보거나, 원하는 뷰 하나를 선택하여 전체 화면으로 확대하여 볼 수 있습니다.



씬 아웃라이너 (Scene Outliner)


씬 안에 존재하는 모든 오브젝트에 대하여 계층구조를 가진 목록의 형태로 표시합니다. 목록에 존재하는 이름을 선택하면 뷰포트에서 해당 오브젝트가 자동으로 선택됩니다.   



디테일 (Details)


선택한 오브젝트의 자세한 정보를 보여줍니다. 위치, 회전, 크기 값을 보여주는 Transform, 재질 정보를 보여주는 Materials  등 편집가능한 모든 속성이 존재합니다. 입력상자에 직접 값을 입력하거나 부가적인 세부 에디터로 이동하여 수정할 수 있습니다.