posted by 나무꾼! 2014. 6. 6. 13:46

새 프로젝트 만들기


vForge 에디터에 대한 전반적인 이해를 했다면 이제부터는 직접 장면을 구성해보면서 익숙해질 차례이다. 새로운 프로젝트를 만들고 간단한 장면을 구성하는 과정을 하나씩 따라서 해보면서 사용법을 익히도록 하자

시작 페이지 에서 New Project 버튼을 누르거나 [ File 메뉴 > New > Project ] 버튼을 누르면 새로운 프로젝트를 만들 수 있다. 시작 페이지는 [ File 메뉴 > Start Page ] 버튼을 통해서 열 수도 있다.

새 프로젝트를 만들기 위한 디렉토리 경로 와 프로젝트 이름 그리고 프로젝트 내에서 사용할 리소스들을 종류별로 분류하기 위한 하위 폴더의 생성 여부를 입력할 수 있다

다음으로 프로젝트 내에서 사용될 그래픽 리소스 등의 데이터 파일들의 위치를 지정할 수 있다. 작업 공간이 프로젝트 디렉토리 내의 리소스만을 참조할 경우 "Use Project Directory"를 선택해 준다. 별도의 공용 디렉토리에 그래픽 리소스가 있다면 해당 디렉토리를 추가할 수도 있다.

하나의 프로젝트 내에서 여러 개의 독립된 장면이 포함될 수 있다. 새 프로젝트에는 아직 장면 이 존재하지 않기 때문에 No scene loaded… 라는 메시시가 뜨는 것을 볼 수 있다. 새로운 장면을 만들기 위해 [ File 메뉴 > New > Scene ] 버튼을 누르면 장면을 생성할 위치와 이름을 입력할 수 있다. 어느 위치에 장면을 만들어도 상관은 없지만 분류상 편의를 위해 Scenes 폴더 내에 추가하는 것을 권장한다.

OK 버튼을 누르면 장면을 생성하는데 필요한 주요 옵션을 빠르게 설정하기 위한 장면 마법사Scene Wizard 창이 뜨게 된다. 여기서 설정되는 내용은 단지 사용자 편의를 위한 부분이므로 장면을 만든 후에도 얼마든지 변경이 가능하다.

첫번째 단계에서는 장면의 랜더링 유형을 선택할 수 있다. 여기서는 모바일 환경에 최적화된 Mobile Forward Renderer를 선택하도록 하자

비활성화 되어있는 Deffered Renderer 와 Forward Renderer 는 정식 Vision 엔진 라이선스 보유시에만 사용할 수 있는 기능으로 프로젝트 아나키에는 포함되지 않았다. C++ 언어와 랜더링 파이프라인에 익숙한 프로그래머 라면 제공되는 Renderer를 수정하거나 새로운 Renderer를 직접 개발하는 것도 충분히 가능하다.

선택이 가능한 Renderer 중에서 Mobile Forward Renderer 는 Forward Renderer 와 유사한 랜더링 방식을 사용하지만 모바일 장치에서 원활하게 동작할 수 있도록 최적화가 되어 있다. 대신 Mobile Forward Renderer 에서는 Forward Renderer Renderer 에서 제공되는 고급 기능들은 사용할 수 없다. Forward Renderer 에서 동적 라이트를 사용할 경우 가장 우선 순위가 높은 한 개의 광원이 기본 패스에 랜더링 되고 그외 추가적인 동적 라이트는 추가 적인 Geometry 패스에 랜더링 된다.

Simple Renderer Node는 하위 호환성을 위해 제공되고 있다 이 Renderer는 Forward Renderer 와 동일한 방식으로 랜더링 되지만 별도의 후처리 효과나 고급 기능들이 제공되지 않는 단순한 Renderer 이다

 

앞 단계에서 Mobile Forward 랜더러를 선택했다면 해당 랜더러 에서 지원되는 후처리 효과를 선택할 수 있다.

Mobile Forward 에서는 현재 Glow , Tone mapping 후처리 효과를 지원하고 있다. 후처리 효과는 모바일 디바이스에서 사용하기에 처리 비용이 높은 편이므로 배포 대상 하드웨어의 성능을 고려해서 사용되어야 한다.

Tone Mapping 효과는 이미지의 채도Saturation, 밝기Brightness, 대비Contrast 를 조절해서 전체적인 장면의 이미지를 보정할 수 있고 참조 테이블Lookup table를 활용한 색상 보정Color Grading 도 역시 사용할 수 있다. 또한, 장면 전체에 적용되는 모션 블러 효과를 사용하는 것도 가능하다.

Glow 효과는 밝은 영역에서의 빛의 강도를 더 증가시키고 퍼지게끔 만들어서 밝은 영역이 더 밝아지면서 주변으로 빛이 번지도록 만들 수 있다. Glow를 적절하게 사용하면 더 화사한 이미지를 얻을 수 있지만 너무 지나치면 본래의 색상을 잃고 하얀색이 너무 두드러진 이미지가 되므로 주의가 필요하다. Glow 효과는 HDR 을 사용할 경우 최적의 결과물을 얻을 수 있다.

일단은 아무것도 선택하지 않고 다음 버튼을 누르도록 하자

이번 단계 에서는 시간에 따른 빛의 변화 와 그림자에 대한 설정을 할 수 있다. Time of Day 시스템에 연동이 되는 태양광을 추가해서 밤낮의 변화에 따라 방향과 색상이 변하게 할 수 있고 동적 그림자를 추가하면 Time of Day 시스템에 따라 그림자의 방향도 역시 변하게 된다. 또한 어두운 영역이 지나지게 어둡게 되지 않도록 태양광의 뒤쪽으로 빛을 비추는 Back Light 도 추가할 수 있다.

Sun Glare 는 모바일 플랫폼에서는 지원되지 않기 때문에 비활성화 되어 있다.

장면 마법사에서 설정하는 내용들은 어차피 장면을 만든 후에 다시 변경하는 것이 가능하므로 일단은 아무것도 선택하지 않고 다음 버튼을 누르도록 하자

마지막 단계에서 지금까지 설정한 내용을 재확인 하고 OK 버튼을 누르면 장면이 생성되고 vForge 에디터 에서 장면을 편집할 수 있게 된다.

메인 레이어 속성 설정


 vForge 에디터에 대한 전반적인 이해를 했다면 이제부터는 직접 장면을 구성해보면서 익숙해질 차례이다. 새로운 프로젝트를 만들고 간단한 장면을 구성하는 과정을 하나씩 따라서 해보면서 사용법을 익히도록 하자

하나의 장면 안에는 여러 개의 레이어를 추가해서 복잡한 장면을 효율적으로 분류해서 관리할 수 있다. 그 중 메인 레이어Main Layer 는 각 장면마다 한 개씩은 존재해야 하는 필수적인 레이어 이다. 메인 레이어Main Layer 를 선택한 후 속성Properties 패널을 확인해 보면, 앞서 장면 생성 마법사Scene wizard 를 통해 설정한 장면의 주요 설정들을 다시 변경하거나 좀 더 세부적인 설정을 지정할 수 도 있다.


간단한 장면 구성 해보기


새로 만들어진 비어있는 장면에 무언가 배치를 해보도록 하자

1.새 레이어 추가

장면이 크고 복잡해 지면 관리가 어려워 지므로 레이어를 새로 만들어서 구분하는 습관을 가지는것이 좋다. 새로운 레이어를 만들어 보도록 하자

2.Asset Browser 를 사용해서 Static Mesh 추가 하기

Asset Browser 를 이용해서 엔진 내부에 기본으로 포함되어 있는 StaticMesh 파일을 장면에 추가해 보자 Static Mesh는 애니메이션 되지 않는 단순한 오브젝트로 최적화에 용이하지만 기능 확장에는 제약이 있다.

Note : Asset Browser를 사용하지 않고 [ Shape Creator 패널 > Geometry > Static Mesh Instance ] 를 장면에 추가한 후 속성 패널에서 MeshFileName 에 수동으로 .vMesh 형태의 파일 위치를 지정하는 것도 가능하다.

Note : [ Shape Creator 패널 > Geometry > Static Mesh Group ] 을 이용하면 Static Mesh Group 내에 자식으로 포함된 Static Mesh 가 한번에 그려지게 되므로 빠른 성능을 낼 수 있다.

3. Model 추가

마찬가지로 Asset Browser 를 이용해서 엔진 내부에 기본으로 포함되어 있는 모델 파일을 장면에 추가해 보자 Model 파일은 Static Mesh 와는 달리 다양한 컴포넌트를 추가 할 수 있어서 유연하게 기능을 확장할 수 있다.

Note : Asset Browser를 사용하지 않고 [ Shape Creator 패널 > Objects > Entity ] 를 장면에 추가한 후 속성 패널에서 ModelFile 에 수동으로 .Model 파일 위치를 지정하는 것도 가능하다.

Note : Entity의 속성 패널에서 EntityClass 가 기본값으로 VisBaseEntity_cl 가 설정되어 있는데 게임에 필요한 Entity를 C++로 직접 구현해서 엔진 플러그인으로 추가할 경우 직접 구현한 EntityClass로 변경이 가능하다. 예를들어 기본 제공되는 RPG 게임 샘플을 살펴보면 RPG_Character 등의 커스텀 EntityClass를 만들어서 사용하고 있다.

 

4.위치 이동, 회전, 크기 변경

배치된 오브젝트를 선택하고 엔진 뷰 툴바 에서 이동 , 회전, 크기 변경 버튼을 누르거나 단축키를 누르면 기즈모를 마우스로 끌어서 자유롭게 이동, 회전, 크기 변경을 할 수 있다.

 

5. Static Light 추가

Static Light 레이어를 새로 추가한 후 Shape Creator 패널에서 Static Directional Light 를 엔진 뷰로 드래그 해서 추가해 보고 Property 패널을 통해 라이트의 세부 설정을 편집해 보도록 하자

 

6. Light Properties

 

7. Light Types


기본적인 장면 탐색 방법


기본적으로 마우스를 사용하여 3D 장면을 탐색할 수 있고 추가적으로 WSAD 키 또는 방향키를 이용해서 탐색하는 것도 가능 하다

1.마우스를 이용한 장면 탐색

마우스 좌측 버튼을 클릭한 채 마우스를 움직이면 카메라를 전후 좌우 로 이동시킬 수 있다





마우스 우측 버튼을 클릭한 채 마우스를 움직이면 카메라를 회전시켜서 주위를 둘러볼 수 있다.





마우스 좌측 버튼과 우측 버튼을 동시에 누른채 이동하면 카메라의 높이가 변경되면서 상하로 이동된다.





마우스 중간 버튼을 누른채 마우스를 움직이면 카메라가 바라보는 방향을 유지한채 상하/좌우로 이동하는 Pan 방식으로 이동 한다.

설정에 따라 Pan Horizontal 또는 Orbit Selection 으로 변경도 가능하다


마우스 휠을 이용해서 줌 인 또는 줌 아웃이 가능하다

 

2.카메라 회전 및 이동시 감도의 조절

좀 더 세밀한 작업이나 큰 지형을 탐색하기 위해서 상황에 따라 이동 속도와 회전 속도를 적절히 조절할 수 있다

3.키보드를 이용한 장면 탐색

방향키 또는 WASD 버튼을 통해 장면을 날아 다니면서 탐색해 볼 수 있다.

이러한 탐색 방식을 사용하는 카메라를 보통 Fly Camera 라고 부른다

단, WASD 버튼을 활성화 했을 경우에는 해당 버튼과 중복되는 단축키는 사용될 수 없다