UDN
Search public documentation:

UT3MultiplayerMapTheoryKR
English Translation
日本語訳
中国翻译

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Multiplayer Map 이론 (UT3)

문서 요약: 일부 UT3 용 레벨 디자이너들이, 이제 에디터가 공용이 되었으니 멋있는 UT3 Multiplayer Map을 만드는 것과 관련된 저희의 철학을 공유하고 싶다고 합니다. 여러분이 이를 유효하게 이용하셨으면 합니다.

문서 변경 내역: 작성 Dave Ewing과 Richard Nalezynski?.

서론

이 문서는 UT 맵을 최대한 활용하기 위한 비법과 기교들을 포함하고 있습니다.

이는 사용자 맵을 프로 수준에 가깝게 만들기 위한 방법에 대한 제안일 뿐이며, ‘맵을 제작하려면 반드시 이 단계를 따르시오’ 식의 단정적인 가이드가 아니라는 점을 인식해 두시기 바랍니다 .

Gameplay

Shelling (깍지 까기)

레벨을 시작할 때는, 게임 타입을 막론하고, 항상 시각화 작업을 시작하기 전에 gameplay의 ‘깍지를 벗기는’ 것이 최선입니다. BSP 및 극소수의 정적 메쉬를 가지고, 레벨 전체를 레벨을 재생할 지점까지 재빨리 흘려보내 얼마나 재미있는지 보십시요. 시각화 작업을 하기 전이어서 재미가 없다면, 시각화 작업 후에도 재미가 없을 것입니다. 그리고 UE3에서는 시각화 작업이 레벨 작업 시간의 큰 부분을 차지하기 때문에, 시작하기 전에 레벨이 최대한 재미있는 것이 되도록 확실히 해두어야 할 것입니다. 그래야 나중에 gameplay의 변경내용을 수용하기 위해 메쉬및 조명을 다시 만드는데 많은 시간을 낭비하지 않게 됩니다.

Scale (크기 조정)

Shelling 을 시작할 때 가장 먼저 살펴보아야 할 것 중의 하나는 레벨의 스케일입니다. 다양성을 갖는 것은 좋습니다만, 일반적으로 레벨이 너무 커서 이것을 열었을 때 이를 가로지르는 것이 달팽이 걸음처럼 느껴지는 것은 바람직하지 않습니다. 마찬가지로, 복도와 방이 몸을 약간 돌려 살펴볼 수 있되 끼이지는 않을 만큼만 충분히 열리면 좋을 것입니다. 또 한가지 좋은 비결은 더블 점프를 할 것 같지만 실제로는 더블 점프의 범위보다 약간 더 높은 턱을 피하는 것입니다. 일단 한 구역을 대충 계획해 놓은 후에는 PIE (Play In Editor)로 그 안에 들어가 이리저리 이동해 보면서 스케일에 대한 감을 잡으십시요.

Flow (흐름)

이는 이따금 제대로 하기가 까다로운 것이지만, 레벨이 이리저리 움직이기에 편안하고 감을 잡기 쉬운 것이 좋습니다. 플레이어를 맵의 주위로 끌어올 때 실수로 사람들이 뒤로 넘어지게 하는 일이 없어야 할 것입니다. 픽업의 배치는 흐름에 큰 영향을 갖지만, 흔히 레벨 자체의 도형도 흐름에 영향을 줍니다. 흐름을 점검하는 가장 좋은 방법은 여러분의 레벨을 본 적이 없는 사람으로 하여금 이를 시도해보도록 하는 것입니다. 그 사람에게 레벨 주위를 몇 번 돌아다녀 이에 익숙해지도록 한 다음, 특별히 마음에 드는 지점이 있는지 또는 그가 완전히 빼먹은 지점이 있는지 확인하는 것입니다. 그가 맵을 몇 번 돌아다닌 다음 길을 잃는 일이 없도록, 또 그가 부주의로 그 자신 위로 넘어지지 않도록 확실히 해두십시요.

Pickup Placement (픽업의 배치)

물건들을 여기저기 흩어 놓으십시요! 중요한 것들이 너무 가까이 있으면 레벨의 다른 부분들은 아주 적은 교통량만을 볼 수 있을 것입니다. 플레이어들이 무기를 아주 빠르게 찾을 수 있도록 해두십시요. 위험 대 보상은, 픽업들을 배치할 때 대개 획득하기 어려운 지점에서 사람들이 더 강력한 픽업을 원한다는 점에서 항상 훌륭한 경험법칙입니다. 지킬 수 있는 지역에서 커다란 픽업을 가지는 것이 좋습니다. 한 플레이어가 일단 픽업을 확보하면, 그는 그것을 유지하려고 노력합니다.

Creativity (창조성)

여러분의 맵이 다른 것들보다 돋보이게 하는데는 이것이 열쇠입니다! UT 매핑은 gameplay의 놀이터이며 이를 특별하게 만드는 것은 시각적인 가능성 입니다. 상식에서 벗어나는 것을 두려워하지 말고, 뭔가 완전히 다른 것을 시도해 보십시요. 가끔은 비참한 실패 (저 자신이 수 없이 겪은 것처럼!)를 맛볼수도 있지만, 일단 성공하면 두고두고 기억에 남을 일을 가지게 되는 것입니다.

Blocking Volumes (봉쇄 볼륨)

레벨에 마무리 손질을 하고 이를 세계에 배포하기 위한 한 가지 필수 단계는 Blocking Volume 패스를 실행하는 것입니다. 에디터에서 UT3 배포시에 따라온 맵을 아무것이나 열어보면, 이것이Blocking Volume에 싸여 있는 것을 발견하게 될 것입니다. 이는 성가신 일이지만, 매끄러운 벽과 바닥을 가지도록 해주는, 가치있는 작업입니다. 그저 관례적인 정적 메쉬 충돌에 의존하면, 두 메쉬가 서로 밀착되어 있다고 해도, 플레이어들이 두 메쉬가 만나는 지점에서 ‘포위’ 되는 일이 흔히 생깁니다. Blocking Volume에 완전히 싸여 있는 메쉬에서는 충돌을 무효화 하거나 플레이 구역 밖에 있도록 하십시요 (무기를 발사하면 Blocking Volume을 통과해 갈 것이므로, 이들을 ‘Block_Weapons’으로 설정).

Force Direction Volumes (방향 강제 볼륨)

이 볼륨은 플레이 가능 공간에 차량을 포함하는데 매우 유용합니다. 이는 본질적으로 차량을 정지시키는 ‘유연한’ blocking volume 같지만, 영향력이 적어서 보이지 않는 벽에 부딪친 것 같은 느낌이 들지 않습니다. ‘ForceDirVolume\Arrow’ 탭을 열어보면 그 방향은 볼륨이 밀어낼 방향을 가리키고 있습니다. 볼륨을 탈것에 타고있지 않은 플레이어들을 봉쇄하도록 설정하여 그들에게로 밀어넣어진 차량들로부터 탈출하지 못하도록 할 수도 있습니다.

Collision View Modes (충돌 보기 모드)

각 뷰포트의 드롭다운 메뉴에는 Collision View Mode가 있습니다. Non-Zero 범위는 플레이어의 충돌, Zero 범위는 무기의 충돌을 나타냅니다. 또 Rigidbody는 헝겊 인형과 차량의 충돌입니다. Non-Zero 범위 뷰 모드는 플레이어가 실제로 무엇과 충돌하는지 확인하는데 매우 유용하며, 플레이어가 포위되는 난처한 지점을 제거하는데 도움이 됩니다. 이 모드를 조명이 완전히 구축되고 유효화된 상태에서 보는 것이 가장 좋습니다.

Visuals

Scale (크기 조정)

저희는 자산의 스케일이 플레이어의 크기와 비례하도록 노력합니다. 지나친 스케일링은 소수의 자산을 사용하는 BSP를 덮어버리게 되지만, 결국 이는 또한 레벨의 전체 시각적 질을 낮춥니다. 대형, 중형 그리고 소형의 3가지 분명하게 다른 종류의 시각 디테일에 집중하십시요. 대형 객체들은 일반적으로 벽과 건축물들입니다. 중형 스케일을 나타내는 것은 문, 창문 등입니다. 소형 객체들은 쓰레기, 콘트롤 패널, 철사, 픽업 등의 물건들입니다. 이 3 가지 그룹 모두에 세심히 주의를 기울이면, 공상 과학, 반현실적 또는 쉐이드된 Cel이든 관계없이 플레이어들에게 보다 만족스럽고 믿을만한 레벨을 제공할 수 있게 됩니다.

Post Process Volumes (후처리 볼륨)

Post Process Volume (PPV)은 레벨이 한결같이 보이도록 하고 아티스트들/LD들에게 명암의 대비, 밝기, 색깔 그리고 색의 채도에 대한 콘트롤을 부여하는 상대적으로 빠른 방법입니다. 여러분의 레벨은 그래도 비교적 원하던 것에 가깝게 lit되어야 합니다. 그리고 그 이름이 말하는 그대로 - 이벤트 후에 적용된 교정 도구로서Post Process를 사용합니다. 조명에 대해 잘못 결정한 것을 교정하기 위해 이 도구를 사용한다면, 이는 플레이어/캐릭터/차량의 가시성을 형편없게 만들고, bloom 효과에 부정적인 영향을 줍니다.

PPV 내에는bloom 픽셀의 양, (레벨의 깊이 인식을 정의하는 것을 돕기 위해 추가한) 필드의 깊이, 전 화면motion blur, 그리고 객체motion blur에 대한 설정이 있습니다.

Lighting (조명)

항상 레벨을 메쉬화하기 전에 조명 계획을 생각해두는 것이 좋습니다. 이는 당연한 소리로 들리지만, 이대로 하지 않으면 조명을 여러번 다시 하는 시간 낭비를 하게 될 것입니다. 가능하다면 언제나 아티스트가 준수할 탄탄한 출발점을 제공하기 위해 컨셉 아트나 참조 사진을 사용합니다. 빈약한 조명은 가장 훌륭하게 메쉬된 레벨도 형편없이 보이게 하며, 훌륭한 조명은 빈약하게 메쉬된 레벨을 정상화할 수 있다는 점을 기억하십시요!

흔히, 낮시간 동안의 실외 레벨은 분명한 주요 광원(태양)이 있으므로 조명하기가 더 쉽습니다. 그리고 skylight 액터를 사용하면 하늘과 땅으로부터 반사되는 전체 빛을 얻을 수 있습니다 (두 값을 따로 설정하십시요) . 강한 빛을 받는 지점에는 점조명을 사용하여 반사광과 확산광의 느낌을 주십시요.

실내 레벨에는, 분명한 광원으로부터 시작하여 차츰 바깥쪽으로 나아가는 것이 이치에 맞습니다. 메쉬를 만드는 동안 조명 계획과 빛의 종류를 고려해두면 레벨을 보다 프로급으로 보이게 할 수 있습니다. 창문으로 흘러 들어오는 빛을 주요 광원으로 사용할 것인지? 복도에는 위를 향하는 조명을 사용할 것인지? 반짝이는 진흙 풀이 주요 광원이 될 것인지? 저희는 흔히 맵에서 층을 구별할 때 다른 색깔의 조명을 사용합니다. 이는 플레이어들이 자기들이 있는 레벨을 빨리 식별하는 방법을 제공하는 것입니다.

Fog Sheets

Fog sheet은 레벨에 분위기를 추가하는 멋진 방법입니다. 이는 안개, 연기, 무거운 저기압의 착각을 제공하며, 심지어 레벨의 부분을 구분하는데도 도움이 됩니다. Fog 메쉬는 이행을 강조해주고, 빛나는 네온 사인이라든지 하는 것보다 멋지기 때문에 다른 방으로 통하는 문간등의 경우에 흔히 사용됩니다. Fog 메쉬에 적용된 소재는 어떤 색으로도 설정할 수 있으며, 점점 다가감에 따라 불투명도가 줄어드는 소재를 사용할 수도 있습니다.

Height Fog

Height Fog 가 없는 레벨은 존재할 수 없습니다! 이는 항상 무거운 것이어야 할 필요는 없습니다. 그러나 안개는 깊이에 대한 인식을 돕고 거리에 대한 착각을 더하게 합니다. 레벨에 여러 개의 Height Fog액터를 배치해서 땅에 낮게 깔린 엷은 안개, 짙은 안개, 또는 좀더 보편적인 대기의 연무를 만들어낼 수 있습니다.

Importing custom meshes (맞춤 메쉬의 임포트)

임포트시에 기본 충돌, 두 번 째 UV를 설정하고 (에디터에서 자동으로 설정되거나 3D 패키지에서 수동으로 설정함), 최적의 배치를 위해 피봇 위치를 정정하고, 객체가 정확한 수의 소재를 가지고 있는지 점검해야 합니다. 메쉬에 Light Map이나 정점 조명을 가질 것인지를 선택하고 소재를 배정하십시요. 메쉬를 레벨에 배치하고 스케일과 충돌을 테스트하십시요 – 충돌의 장애보다 더 레벨 디자이너들을 낙담하게 하는 것은 없습니다!

AI

길의 색깔과 차량

레벨에 길이 만들어지면 직각의 뷰포트에서 ‘p’를 클릭하여 연결이 어떻게 되어 있는지 확인하십시요. 걸어다니는 봇: 하얀 길은 최선의 연결을 의미하며, 봇들은 흰 선으로 연결된 길 사이의 코너로 나아갑니다. 초록 줄은 중간 넓이의 연결이고, 파란 줄은 좁은 연결입니다. 파란 줄에서는 봇들은 그 선 위에서 일직선으로 달리며, 될수 있으면 그 선에서 벗어나지 않습니다. 차량에 타고 있는 봇들에게 줄은 더 많은 의미를 가집니다. Goliath과 Paladin 같은 대형 차량들은 흰 줄로 연결된 길 사이에서만 운행합니다. Hellbender 같은 중간 차량은 하얀길과 초록길 위를 달리며, 오직 Manta와 Scavenger 같은 소형 차량만이 파란 길을 지나갑니다. 봇들이 차량에 타고 레벨을 지나다니는데 문제가 있다면, 하얀 길과 초록 길이 충분하지 않은 것이 원인일 가능성이 큽니다.

차량의 bBlocked

봇들이 그들이 가려고 하지 말아야 할 곳(빌딩 안 또는 좁은 오솔길)으로 차량을 운전하려 하는 것이 발견되면 그와 어긋나는 길을 선택함으로써 이를 저지할 수 있습니다. 속성에서 ‘VehicleUsage’ 탭을 열어 bBlockedForVehicles를 체크하십시요. 반대로, 원하는 길로 그들이 차량을 몰고 가게 하려면 bPreferredVehiclePath를 설정해주면 됩니다.

Map errors list (맵 오류 목록)

재구축이 완전히 끝나면 이 목록이 나타납니다. 이 목록은 되도록이면 비어 있어야 합니다! 오류에는 모두 이유가 있는 것이고, 그 이유를 제거하면 레벨의 실행이 빨라지고 봇들이 레벨에서 더 잘 다니고 플레이할 수 있게 됩니다. 오류를 무시하지 마십시요!

최적화

Detail Settings (세부 설정)

레벨 디자인의 관점에서 볼 때 이것은 UT3가 유연한 확장성을 가질 수 있도록 하는 큰 부분입니다. 메쉬와 입자 에미터들은 Low, Medium, 또는 High로 세부 설정 (이는 속성에 들어 있으며, 메뉴를 오른 클릭해도 볼 수 있습니다)을 할 수 있습니다. 모든 액터들은 ‘Low’로 기본 설정되어 있습니다. 이는 이 액터들이 디테일의 모든 레벨에 나타난다는 것을 의미합니다. Medium과 High 설정을 사용하면 메쉬는Medium과 High의 세부 설정에만 나타납니다. High로 설정된 메쉬는 그래도 Low 세부 설정에 그대로 있으며 단지 렌더되지 않는다는 것을 알아두십시요. 따라서 충돌이 유효화되어 있는 것이 있으면, 이들은 보이지는 않더라도, 부딪칩니다. 에디터의 View\Detail Mode에서 각 세부 설정에 따라 게임이 어떻게 보이는지 나타내도록 뷰포트를 설정할 수 있습니다.

Stat LD

게임이 실행되는 동안 콘솔에서 ‘Stat LD’를 입력하면 레벨의 최적화에 도움이 되는 많은 유용한 통계를 볼 수 있습니다. 이는 그 순간에 화면에서 렌더되고 있는 것과 관련된 모든 주요 요소들을 상세하게 나타냅니다. 프레임의 속도와 관계있는 변수가 매우 많지만, 다음 두 가지를 좋은 지침으로서 소개합니다: ‘Static Mesh Tris’는 폴리곤의 수가 800,000 에 가까와지면 병목이 되기 시작하며, ‘Visible Static Mesh Elements’ (볼 수 있는 실제 정적 메쉬의 수)는 900 주위에서 병목이 되기 시작합니다. 레벨이 정말 삐걱거리는데 그 이유를 알 수 없다면 Stat LD를 여러분의 레벨과 가장 비슷한 쉬핑 레벨에서 시도해 번호를 체크, 여러분의 번호 중 이들과 전혀 맞지 않는 것이 있는지 확인해보십시요.

Cull Distance Volumes (Distance Volumes 선별)

UE3에서는 메쉬의 경계 박스가 Terrain, BSP, Mesh 또는 이 세가지의 어떠한 결합에 의해 완전히 가려지면 차단이 발생합니다. 이때문에 시선을 잘라내리는 것은 좋은 최적화 방법이 됩니다. 차단된 것은 전혀 렌더되지 않기 때문입니다. 그러나 플레이어들이 Raptors 에서 날아다니도록 허용하는 것이 시선을 잘라내는 것을 어렵게 하는 것은 차치하고라도, 어느 폴리곤을 차단할 것인지 결정하는 과정은 그 자체가 비싸게 먹힙니다. 이 경우Cull Distance volume은 매우 편리한 기능입니다. 쉬핑 레벨에서 여러분의 것과 비슷한 CullDistance? 볼륨을 찾아보면 어떤 값이 잘 작용할지에 대한 아이디어를 얻을 수 있습니다. CullDistance? 볼륨이 겹쳐지는 경우, 둘 중에서 더 공격적으로 설정된 것이 이기게 됩니다. 따라서 레벨 전체가 덜 공격적인 CullDistance? 볼륨에 싸여 있더라도, 더 공격적인 설정의 더 작은 CullDistance? 볼륨을 빠듯하게 차단된 공간에 넣을 수 있습니다. StaticMeshActor?\StaticMeshComponent 탭에서 bAllowCullDistanceVol 의 체크를 해제하면 CullDistance? 볼륨을 각 메쉬당으로 설정할 수 있다는 것을 명심하십시요. 이는 메쉬들이 선별되어 나갈 때 약간의 메쉬들이 “튀는” 것이 분명하게 보이지만 CullDistance? 볼륨의 설정 전체를 바꾸고 싶지 않은 경우에 편리합니다.

Dynamic/Toggleable Lights

결론