Pv_log

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

Unity Learn 번역/FPS Micro Game

FPS Microgame) FPS Mod: Build your Customizable Boss

Priv 2020. 3. 22. 22:31

출처


1. 유니티에서 FPS Microgame 열기

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

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

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

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

  • 에셋 스토어에서 Customizable Boss를 , 해주세요.
  • 최신 버전 Microgame 프로젝트인지 확인해주세요: Project 창의 검색 바에서 "DetectionModule"를 검색해주세요.
    (참고: 입력 후에 "Search" 단어 옆의 필터 설정이 "All"로 설정되어 있는지 다시 한번 더 확인해주세요.)
  • "DetectionModule" 에셋이 검색된다면, 2단계로 넘어가시면 됩니다.
  • 만약 아무런 검색 결과가 나오지 않았다면, 먼저 진행해주셔야 합니다.
  • 기본 적 로봇의 ''를 어떻게 빌드하는지는 알고 계실 겁니다.
    (맞춤형 보스에는 기본 적 로봇과는 다른 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. 맞춤형 보스 빌드하기

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

 

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

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

한 번 확인해보세요!

 

 


 

 

수고하셨습니다!


0 Comments