- Today
- 0
- Total
- 137,762
Pv_log
FPS Microgame) FPS Mod: Build your Customizable Boss 본문
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 로 이동해주세요.
- Detection modules
- "Enemy_Boss" 기본 프리팹
- "Enemy_Boss" 변형
- Navigation modules
- 무기 발사체
- VFX 프리팹
- 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 Point의 Detection 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 프로젝트와 관련된 튜토리얼들을 진행하시면서 막힌 부분에 대한 질문을 올리시거나, 다른 유니티 크리에이터 분들과 함께 직접 제작하신 결과물들을 공유하실 수도 있습니다.
이 뿐만 아니라 여러 유니티 전문가 분들이 각종 도움이나 아이디어를 제공해 드리고자 활동하고 계십니다.
한 번 확인해보세요!
수고하셨습니다!
'Unity Learn 번역 > FPS Micro Game' 카테고리의 다른 글
FPS Microgame) FPS Mod: Dinner Party Crashing Challenge (0) | 2020.03.27 |
---|---|
FPS Microgame) All microgames: Importing Microgame add-on assets (0) | 2020.03.22 |
FPS Microgame) 'Your First Game Jam' Recorded Livestream (0) | 2020.03.11 |
FPS Microgame) FPS Mod: Healing ally robots (0) | 2020.03.11 |
FPS Microgame) FPS Mod: Dual-weapon wielding (0) | 2020.03.11 |