UDK 언리얼 엔진 배우기(4)-BSP를 이용한 심플 레벨 작성

2011. 6. 25. 09:49Unreal


4번째 문서입니다.
인터페이스를 모두 익혔으니, 이제 이 기능들을 이용해 심플한 레벨을 작성해보겠습니다.
먼저 BSP 와 CSG 에 대해 알아보겠습니다.

BSP와 CSG
이 두개의 차이를 정확히 알고 있어야 합니다.

1. BSP 컨셉
   - BSP(Binary Space Partition)은 이진 공간 분할 구조를 말하며 견고한 물체를 추가하고 조각하여 정의하는 방법을 말한다. 언리얼에서는 CSG(구조 입체 표현방식)를 BSP 브러시와 동격으로 간주합니다.
     : 브러시 와이어 프레임 모드에서 확인가능

   - CSG는 기하구조의 입체적 표현, Constructive Solid Geometry 약자로, BSP 브러시로 만들어진 월드 지오메트리를 말합니다.
     : 와이어 프레임 모드에서 확인 가능

   유념할게 습니다.
   BSP : 움직이고, 수정할 수 있습니다. 브러시 와이어 프레임 모드에서 확인가능
   CSG : 수정/이동불가합니다.
           (즉 BSP모드에서 수정하고 재빌드해서 새로운 CSG를 만드는 개념입니다. )

2. BSP 가이드 라인
- 이왕이면 더하기 레벨만 사용한다. (성능이 더 좋다.)
- 간단하게 하라.(복잡할수록 성능에 이슈, 복잡한거는 스태틱 메시를 사용하라.)
- 벽을 세울경우 정확히 일치시켜라(겹치는부분이 없게하라.)
  : 드래그 그리드를 통해 좀더 세밀하게 일치 시킬수 있습니다.

- 텍스쳐를 정렬하라.
- 디테일은 스태틱 메시에 일임하라.(왠만하면 3dsmax 에서 만들걸 사용하라.)

- 브러시 순서를 기억하라.
  예를들면
  브러시를 통해 큐브 CSG 에 빼기용 큐브 를 더했다.
  브러시를 통해 빼기용 큐브에 더하기용 큐브를 더했다.
  이 2개가 동일할까요? 그럲지 않습니다. 첫번째는 한쪽 구석이 깍여서
  보일테지만, 두번째는 전혀 변한게 없을겁니다. 이래서 브러시 순서가 중요합니다.
  해결방법: CSG를 선택한후 마우스 오른쪽/정렬/ 맨뒤로를 선택하면 된다.
            이제 변경되었으니 지오메트리를 다시 빌드해야겠죠 .다시 빌드하면 이제 깎인게 보일껍니다.


BSP를 이용한 심플레벨 작성

간단하게 바닥위에서 돌아가는 심플 레벨을 만들어보죠.
아래가 최종 목표인 이미지 입니다. 스태틱 메시를 이용한게 아닌 BSP를 이용해 일일이 만든것입니다.

- 브러시에서 큐브를 선택하고 사이즈를 정한다. x,y,z= 1024,1024,32
  얇은 바닥이 생성되는걸 볼수 있다.

- CSG더하기를 통해 CSG를 생성한다.

- 생성된 바닥 CSG 를 선택하고 L+마우스 좌클릭을 하면 Point Light 가 생긴다.
  적절히 위치시켜본다.


- 이제 생성된 지오메트리를 수정해보겠습니다. 모드/지오메트리 모드를 실행하세요.
  돌출을 선택하고 Length=288로 선택하면 지오메트리가 우측으로 추가되는걸 볼수 있습니다.
  추가된 돌출부분을 클릭하고 위와 아래의 버텍스를 클릭해서 아래로 당시면 아래와같이 만들 수 있습니다.
  (여기서 중요한건, 반드시 트랜슬레이션 모드가 켜져있어야겠죠? )

- 벽을 만들어 봅니다. 현재 바닥의 CSG의 길이를 어떻게 측정할까요. 정답은 휠에 있습니다.
  탑다운 뷰에서 왼쪽 라인에서 휠을 누른상태로 드래그 합니다. 그러면 아래오 같이 두점의 길이를
  측정할 수 있습니다. :)

- 벽을 만들때 대각선은 어떻게 처리할까요?( 지오메트리 모드를 이용하면 됩니다. 돌출할때와 동일하죠.)
  이외에 또 유용한 기능이 있는데 바로 미러 기능입니다. 생성된 CSG를 ALT+드래그를 하면 복사가 됩니다.
  복사한후 아래쪽에 붙입니다.(물론 대각선이 반대로 되어 있겠죠) 이때 미러 기능을 이용합니다.
  마우스 오른쪽/트랜스폼/x축미러 를 하면 미러형태로 뒤집어집니다.
  (좌표는 x:빨강, 연두:Y, 파랑:z 축임을 명심해야합니다. 화면에 나옵니다.)

- 이제 양쪽 과 가운데에 벽을 만들고 가운데에 문을 만듭니다. 문은 어떻게 만들까요.
  문크기만큼의 브러시를 만든다음 겹친후 CSG 빼기를 하면 멋진 문이 만들어지죠.

- 우측의 깍인부분으로 방을 넓혀 봅시다.
  이때는 지오메트리 도구에서 분할 기능을 사용합니다.
  수정하고자 하는 폴리곤을 선택하면 중앙이 잡힙니다. 여기서 분할하면 반으로 쪼개지죠.
  이렇게 쪼개진 점들을 (CTRL+ALT 드래그로 선택합니다.) 선택한후 위로 드래그 합니다.
  아래쪽도 마찬가지입니다. 쪼갠후 아래로 이동시키면 총 3개의 영역으로 나누어 집니다.

  이제 가운데 BSP를 선택한후 우측으로 확장하면 자연스럽게 깍인부분에 맞게 넓어지게 됩니다.

-----------------------------------------

- 이제 모두 빌드를 한다.(라이트,지오메트리만 빌드해도 됩니다. 이 2가지만 바뀌었으니까요,
  * 항상 빌드해야 한다는걸 명심해야 합니다.)

- 바닥을 선택한후 마우스 오른쪽+여기에서 플레이를 선택하면 아래와 같이 심플한 게임이 보여집니다.


UDK 튜토리얼 동영상중2-01 심플레벨(BSP) 작성편을 보시면 더 확실합니다. :)
실제 게임을 만들때 BSP보다는 3d툴에서 만든 스태틱 메시를 주로 사용할껍니다. 하지만 이런 기법도 당연히 알고 있어야 겠죠.

- CSG와 BSP의 공통점과 차이점
- 휠을 이용한 거리 계산
- CTRL+ALT 를 이용한 동시 이동
- ALT+드래그를 이용한 Actor 복사


는 꼭 기억해야 합니다. :)