Araina’s Blog

FPS Microgame) FPS Mod: Build your Customizable Boss 본문

Unity Learn 번역/FPS Micro Game

FPS Microgame) FPS Mod: Build your Customizable Boss

Araina 2020. 3. 22. 22:31

출처

 

FPS Mod: Build your Customizable Boss - Unity Learn

In this mod, you’ll learn how to configure your own boss robot that can be configured in over 80 different ways. We’ll do a deep dive overview of the premium Customizable Boss that you purchased so you’ll know how to fully leverage its ability to amp up yo

learn.unity.com


1. 유니티에서 FPS Microgame 열기

아직 Microgame 프로젝트가 없으신가요?

그럼 Getting Started with Unity 튜토리얼을 먼저 진행해주세요.

시작하기에 앞서, 이번 튜토리얼(또는 다른 튜토리얼들)을 진행하는데 필요한 몇 가지 특별한 에셋들이 있답니다.

아래 리스트를 참고하셔서 모두 준비되었는지 점검해주세요!

  • 에셋 스토어에서 Customizable Boss를 구매, 설치해주세요.
  • 최신 버전 Microgame 프로젝트인지 확인해주세요: Project 창의 검색 바에서 "DetectionModule"를 검색해주세요.
    (참고: 입력 후에 "Search" 단어 옆의 필터 설정이 "All"로 설정되어 있는지 다시 한번 더 확인해주세요.)
  • "DetectionModule" 에셋이 검색된다면, 2단계로 넘어가시면 됩니다.
  • 만약 아무런 검색 결과가 나오지 않았다면, 이곳에서 "Get the latest Microgame" 단계를 먼저 진행해주셔야 합니다.
  • 기본 적 로봇의 '내비게이션 메쉬(Navigation Mesh)'를 어떻게 빌드하는지는 알고 계실 겁니다.
    (맞춤형 보스에는 기본 적 로봇과는 다른 NavMesh 레이어를 설정해주어야 하므로, 이번 튜토리얼을 진행하기 전에 먼저 기본 적들의 NavMesh 레이어를 어떻게 설정하는지를 이해하고 계셔야 합니다.)
  • 모두 준비되셨나요? 그럼 이제 시작해봅시다!

 

 


2. 맞춤형(Customizable) 보스에 대해 알아보기

"Enemy_Boss" 프리팹은 적 시스템이 어떻게 동작하는지를 보여주는 예시입니다.

모든 적 프리팹의 부모 게임오브젝트들은 아래와 같은 컴포넌트들이 필수적으로 있어야 합니다:

  • Enemy Controller: 무기를 다루는 것과 같이 적의 기본적인 기능들을 제어하는 핵심 컴포넌트
  • Health: 개채의 대미지/힐링을 제어하는 컴포넌트
  • Actor: 해당 개채의 소속을 말하기 위한 간단한 컴포넌트(동일한 소속의 Actor일 경우 서로를 아군으로 취급)와 적이 조준해야 하는 트랜스폼(transform)
  • Nav Mesh Agent: 이 컴포넌트는 게임 내에서 움직이는 캐릭터에 부착되어 Nav Mesh를 사용해 씬을 탐색할 수 있도록 해줍니다.

이제 이 컴포넌트들을 이용해 플레이어가 공격할 수 있는 적을 제작할 수 있으나, 적이 반격하지 않을 것입니다.

(HoverBot처럼) Enemy Mobile이나 (Turret처럼) Enemy Turret을 추가해주면 개채에 동작이 추가될 것입니다.

"Enemy_Boss"의 경우, Enemy Mobile을 추가해 플레이어를 따라다니며 공격할 수 있도록 만들어주겠습니다.

이 시스템에는 Detection Module이라는 다른 컴포넌트가 필요합니다: 이 컴포넌트는 어떻게 적이 플레이어를 감지하고 반응할지 제어하는 역할을 합니다.

또한 Navigation Module이라는 컴포넌트도 추가해주어야 합니다: 이 컴포넌트는 Nav Mesh Agent의 파라미터의 시작을 재정의하는 컴포넌트입니다.

각각의 컴포넌트들은 Hierarchy 창의 enemy 프리팹 내의 어디에나 사용할 수 있으며, 하나 이상의 Detection Module과 Weapon Module이 필요합니다. 그렇지 않으면 에러가 발생할 것입니다.

이제 "Enemy_Boss" 프리팹 폴더 안을 살펴보도록 하겠습니다.

Project 창에서, Assets > AddOnes > MgFPS_Enemy_Boss > Prefabs 로 이동해주세요.

  1. Detection modules
  2. "Enemy_Boss" 기본 프리팹
  3. "Enemy_Boss" 변형
  4. Navigation modules
  5. 무기 발사체
  6. VFX 프리팹
  7. Weapon modules

 

 


3. 맞춤형 보스 빌드하기

아래의 튜토리얼 영상을 따라 하시거나, 아래의 텍스트 문서를 따라 하실 수 있습니다.

https://youtu.be/eFYBYNMWibs

 

1) Project 창에서 Assets > AddOns > MgFPS_Enemy_Boss > Prefabs 아래의 프리팹 폴더를 찾아주세요.

 

 

2) "Enemy_Boss"를 우클릭하시고 > Create > Prefab Variant 로 이동해주세요.

 

 

3) 새로 제작한 변형 프리팹의 프리팹 모드로 가주세요.

a. Project 창에서 "Enemy_Boss Variant"을 선택해주세요.

b. Inspector 창에서 프리팹을 열어주세요.

c. 이제 Hierarchy 창을 봐주세요.

 

 

4) Hierarchy 창에서 아래 사진처럼 게임오브젝트를 확장시켜주세요.

 

 

5) 우리는 이미 무기("Weapon_Module_EyeLazers")와 Hierarchy에 발각 및 피격 시의 반응에 대한 VFX를 가지고 있습니다.

이를 작동하도록 만드는데 필요한 "Detection Module"이 없군요.

필수 사항이 아닙니다만, "Navigation Modyule"도 함께 추가하도록 하겠습니다.

Hierarchy 창의 프리팹 폴더 내의 "Detection_Module[...]"과 "Navigation_Module[...]"을 드래그&드롭해주세요.

두 프리팹 사이의 유일한 차이점은 시각적이며, 서로 다른 메쉬를 사용한다는 것입니다.

예를 들어, "Detection_Module_Laser01_L"과 "Navigation_Module_SingleJet"을 선택해보겠습니다.

또한, 이 컴포넌트들이 프리팹의 Hierarchy 내 어디에서나 사용될 수 있으나, 아래 영상처럼 미리 지정된 슬롯에 드롭하셔서 사용하실 수도 있습니다.

 

 

6) Hierarchy 창에서, 방금 Inspector 창에서 추가하셨던 "Navigation_Module"을 선택해주세요.

해당 값을 업데이트하면 Start 함수의 Navigation 모듈 컴포넌트가 호출될 때, Nav Mesh Agent의 파라미터가 동일한 이름으로 업데이트될 것입니다.

 

 

7) Hierarchy 창에서 방금 추가한 "Detection_Module"을 선택하시고 Inspector 창을 확인해주세요.

  • Detection Source Point: 감지 기능이 작동하는 데 사용될 레퍼런스 트랜스폼이 필요합니다. 예시로, Hierarchy 창에서 "Enemy_Boss Variant" > "Enemy_Boss" > "Root" 에 있는 트랜스폼을 사용하겠습니다.
  • Detection Range: Source Point 범위의 반지름을 의미하며, 이 범위 내에 있는 플레이어를 감지해냅니다.
  • Attack Range: Source Point 범위의 반지름을 의미하며, 이 범위 내에 있는 플레이어를 공격합니다.
  • Known Target Timeout: 만약 플레이어가 해당 값 이상으로 감지 범위를 벗어나게 된다면, 적이 플레이어 공격/추적을 종료합니다.
  • Animator: "Attack" 과 "OnDamaged" 이벤트 트리거를 수신할 모듈의 레퍼런스 애니메이터.

 

 

8) Hierarchy 창에서 "Enemy_Boss Variant" > "Enemy_Boss" > "Root" 의 트랜스폼을 Detection Source PointDetection Module로 드래그&드롭해주세요.

 

 

9) 이제 프리팹이 아래 사진과 같이 보이실 겁니다.

 

 

10) Project 창에서 "DemoFPSBoss" 씬을 검색하셔서 열어주세요.

 

 

11) Hierarchy 창에서 "Enemy_Boss Variant" 드래그&드롭해주세요.

 

 

12) 이제 "Enemy_Boss_AudioMixer"를 추가해주어야 합니다.

a. Project 창에서 AddOnes > MgFPS_Enemy_Boss > Audio 아래에 있는 "Enemy_Boss_AudioMixer"를 찾아주세요.

b. Hierarachy 창에서 "GameManger"를 선택해주세요.

c. "Enemy_Boss_AudioMixer"를 Audio Manager 컴포넌트의 Audio Mixers 필드로 드래그&드롭해주세요.

 

 

13) Play 버튼을 누르시면 여러분들이 제작한 "Enemy_Boss"를 상대로 플레이하실 수 있습니다.

 

 

14) 변경사항 저장하는 것 잊지 마세요 (Windows는 Ctrl + S, Mac은 Cmd + S)

 

 


4. 맞춤형 보스의 내비게이션 개선시키기

이제 새로운 에이전트(Agent)를 만들어서 Enemy_Boss처럼 일반 적들보다 더 큰 적들이 보다 정교하게 표현될 수 있도록 만들어봅시다.

1) 유니티 에디터 상에서 Navigation 창을 열어주세요.

상단 메뉴에서 Window > AI > Navigation 으로 가시면 됩니다.

 

 

2) Agents 탭에서 "+" 버튼을 클릭해 새로운 에이전트를 생성해주세요.

 

 

3) 새로운 에이전트의 이름을 "Enemy_Boss"로 바꿔주시고, 아래 사진과 같이 값을 조정해주세요.

 

 

4) Project 창에서 "DemoFPSBoss" 씬을 검색하셔서 열어주세요.

 

 

5) Hierarchy 창에서 "NavMeshSurface"를 선택해주세요.

 

 

6) Inspector 창에서 해당 게임오브젝트에 새로운 Nav Mesh Surface 컴포넌트를 추가해주세요.

 

 

7) "Enemy_Boss"의 에이전트 타입을 변경하시고 Bake를 클릭해주세요.

이제 2개의 내비게이션 메쉬 레이어가 씬에 보이실 겁니다. - 하나는 휴머노이드 에이전트, 다른 하나는 "Enemy_Boss" 에이전트입니다.

 

 

8) Hierarchy 창에서 "Enemy_Boss Variant"를 클릭하시고, Inspector 창에서 Nav Mesh Agent 컴포넌트를 선택하셔서 Agent Type을 "Enemy_Boss"로 바꿔주세요.

해당 변경 사항을 모든 변형 프리팹에 적용되도록 부모 프리팹에 변경 사항을 적용하실 수도 있습니다.

 

 

9) 변경사항 저장하는 것 잊지 마세요 (Windows는 Ctrl + S, Mac은 Cmd + S)

 

 


추가 기능

맞춤형 보스의 무기 설정하기.

 

 


유니티 커넥트에서 그룹 가입하기

유니티 커넥트(Unity Connect)에 있는 FPS Creators Group에 아직 가입하지 않으셨다면, 한 번 가입해보시는 걸 추천드립니다.

FPS Microgame 프로젝트와 관련된 튜토리얼들을 진행하시면서 막힌 부분에 대한 질문을 올리시거나, 다른 유니티 크리에이터 분들과 함께 직접 제작하신 결과물들을 공유하실 수도 있습니다.

이 뿐만 아니라 여러 유니티 전문가 분들이 각종 도움이나 아이디어를 제공해 드리고자 활동하고 계십니다.

한 번 확인해보세요!

 

 


 

 

수고하셨습니다!


Comments