inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

Skill (9) - Animation 설정 및 예제 Skill 제작

스킬 구현 질문

248

jkp8277

작성한 질문수 3

0

잘 듣고 있습니다 강사님.

 

롤로 치면 그레이브즈 Q 를 구현하고 싶은데 Action을 Spawn Skill Object Action으로 하고 비슷한 파티클을 써서 해보니

제 위치에서 나가는게 아니라 클릭한 기준으로 직선으로 나가더라구요

여러가지 방법을 시도 해보고 있는데 어떻게 해야할지 조언 부탁 드립니다!

unity modules

답변 2

1

Developer G

수강해주셔서 감사합니다.

만들고자하는 스킬의 Reference가 있을 땐 그 Reference를 Frame 단위로 면밀히 관찰하시는게 좋구요, 그레이브즈 Q의 경우 Skill 사용 모습을 보면

1. 탄환이 날아감(=Projectile)

스크린샷 2024-09-04 004451.png


2. 탄환이 사라짐

스크린샷 2024-09-04 004539.png


3. 탄환이 사라졌던 위치에서 범위 공격을 가하는 탄환이 새로 나타남(=SkillObject)

스크린샷 2024-09-04 004625.png


4. SkillObject가 사라지면서 반대 방향으로 날아가는 Projectile을 쏴 닿는 모든 적에게 Damage를 줌

스크린샷 2024-09-04 005446.png


Frame 단위로 봤을 때 처음 발사하는 총알은 닿는 적에게 Damage를 주는 Projectile이고, Projectile이 끝 사거리에 도달하거나 벽에 부딪히면 주변에 Damage를 주는 SkillObject를 Spawn하고, SkillObject가 사라질 때 반대 방향으로 날아가는 Projectile을 쏜다는걸 유추할 수 있습니다. 그레이브즈의 Q Skill은 3개의 Action이 결합된 형태인거죠. Skill Particle도 언뜻보면 하나인 것처럼 보이지만 면밀히보면 동작에 따른 여러가지 Particle들이 마치 하나인 것처럼 자연스럽게 이어진 형태입니다.

이를 구현하기 위해서는 SpawnProjectileAction과 SpawnSkillObjectAction의 내용을 결합할 필요가 있구요(=SpawnProejctileAction에 SpawnSkillObjectAction을 변수로 추가하거나 아예 새로운 Action을 만드는 등), Projectile의 동작을 모듈화해서 사거리 끝에 닿거나 방해 물체에 닿았을 때 SkillObject를 Spawn하게 만들어주면 됩니다. SkillObject에도 Projectile 변수를 추가해서 SkillObject의 동작이 종료되는 시점에 Projectile을 Spawn하게 만들어주면되구요, Projectile의 이동 동작으로 Spawner 반대 방향으로 날아가도록 지정해주면 될겁니다.(=이동 Logic에 대한 모듈화)

강의에서 만든 칼날비 Skill이 칼날이 닿을 때마다가 아닌, 주기적으로 Damage를 주는 눈속임 Skill이였듯 면밀히 보지 않으면 알 수 없는 부분도 있고, 이런 부분 때문에 쉬운 것도 어렵게 만드는 상황이 생길 수 있으니 뭔가를 모방하고자 할 때는 항상 면밀히 관찰하시는걸 잊으시면 안됩니다.

감사합니다.

0

jkp8277

구체적인 답변 정말 감사합니다.

실례를 무릅쓰고 하나 더 궁금한 것이 있어서 여쭙니다.

image.png

저 파란 부분은 SkillObject라 이해했는데 저 부분은 원형보단 사각형에 가까워 보입니다.

SearchArea.cs에선 Physics.OverlapSphere를 사용하여 인식하기 때문에 좀 더 정확도가 떨어진다 생각했습니다.

따라서 사각형에 맞게 Physics.OverlapBox를 사용한 모듈을 만들려 합니다.

강사님이 만들어주신 스크립트로도 구동이 가능한가 해서 질문을 드렸습니다. 된다면 어떻게 해야 할지 조언 부탁 드립니다!

1

Developer G

해당 부분은 말씀하신대로 OverlapBox를 사용한 Module을 만들어야합니다.
내용 자체는 SearchArea에서 OverlapShere가 OverlapBox로 바뀌고(Box Angle은 Requester Angle 사용), 마지막에 Angle 검사를 안한다는 것 정도 빼곤 동일할거 같구요, SearchAreaBySphere, SearchAreaByBox식으로 Script를 만들어주시면 될 것 같습니다.

Indicator와 SelectionAction 및 SearchAction 간의 관계에 대해 질문있습니다.

0

70

2

ChargingState에서 질문이 있습니다.

0

49

1

Effect.GetData 함수 질문있습니다.

0

45

2

CanTransitionToSelf 질문 있습니다.

0

53

2

Stat의 MaxValue에 관하여 질문이 있습니다.

0

42

1

Stat vs StatScaleFloat

0

75

4

애니매이션 버그가 있는것 같습니다.

0

65

2

StatsOverride질문이 있습니다.

0

50

2

SetBonusValue함수 질문있습니다.

0

46

2

오늘 수강시작한 취준생입니다.

0

49

1

사소하지만 에디터 관련 질문있습니다

0

69

1

스킬시스템을 데이터 테이블화 하는 법에 대해 감이안잡혀서 질문드립니다.

0

146

2

TargetSearcher에 대해서 질문이 있습니다

0

52

1

돌진해서 몸박을하면 피격자를 날리면서 데미지를 입히는 스킬은 이 시스템에서 어떻게 만들 수 있을까요??

0

116

2

스킬 관련 질문입니다

0

110

2

통일된 Stat을 사용하지 않고 모듈화 방식으로 Stats를 만드신 이유가 궁금합니다.

0

152

1

Effect에 기능 확장에 대해서 질문이 있습니다.

0

149

2

SkillData 구조체 질문

0

122

1

스킬트리 저장 질문입니다

0

135

2

BT와 FSM을 활용해 몬스터 AI 구현

0

350

2

MonoStateMachine을 만든 이유가 잘 이해가 가지 않습니다.

0

128

1

근접 콤보 공격을 만들고 싶습니다.

0

153

1

하나의 스킬 내에서 타겟, 이펙트가 여러번 바뀌게 하는 방법이 궁금합니다.

0

190

1

올해에 예정된 새로운 강의가 있으신지요?

0

115

2