Giant vs Human 팀프로젝트 개발일지

[Giant vs Human 팀프로젝트/Unity] 방어막 만들기 및 방어막에 맞으면 반대 방향으로 튕겨나가게 하기, 공격 애니메이션 수정

다모아 2024. 1. 3. 22:25

Sphere를 투명하게 만들어줬다.

 

Material - Shader 중에 Transparent라고 검색하면 UI/Unit 이라는게 있는데

그걸 사용하면 Tint의 알파 값을 조절해서 투명하게 만들 수 있다.

 

그리고 이펙트 에셋을 이용해 방어막이 나오는듯한 느낌을 줬다.

 

 

일단 이 정도면 기본적인 방어막 생성 조건은 됐고,

 

다음은 방어막 애니메이션을 만들어보았다.

 

이 마법사 에셋에 있는 DefendStart 라는 애니메이션을 조금 수정해서

상/하체를 사용하기 위해 Attack Layer를 만들어서 Attack 기능과 Defend 기능을 하도록 레이어를 만들어줬다.

 

Attack Layer 이다.

 

마우스 가운데 키를 누르고 있을 때 하는 애니메이션이다.

마우스를 떼면 방어막 애니메이션을 멈춘다.

 

이렇게 Attack Layer를 구성하고있다.

처음에는 어떻게 해야할지 잘 몰라서 Idle 에다가 했었는데 Attack Layer의 Blending 모드를 Additive 상태로 해놔서

base Layer의 위에 덧입히는 형식이라서 애니메이션을 잡기가 굉장히 힘들었다.

 

 

Attack 레이어에서는 상체만 움직이게 하고 다른 공격이나 방어막 생성기능을 할 때 움직이면 다리가 움직이게 하기 위해서 Upper Body Mask라는 걸 만들었다.

 


스크립트

 

원래는 Input.GetMouseButtonDown에 애니메이션을 넣었었는데 Additive 블랜딩 모드에서 유지하는 애니메이션이 잘 안되가지고 바꾸게 되었다.

 

코루틴을 돌리기 위한 UseMp이다.

 

코루틴에서는 경과시간으로 체크하면서 2초마다 아이템을 사용하면서 방어막을 사용하고

마지막 1개에서 0개가 되는 시점에서는 2초 후에 다음 아이템이 없으니 방어막을 끄는 기능을 하고있다.

 


방어막

지금은 방어막에 Tag로 오브젝트를 만나면 반사해주고있다.


마우스 가운데 키를 누르고 있으면 방어막 생성

 


공격 애니메이션 수정

 

원래는 공격도 마우스를 누르고 있을 때 대기하는 모션을 추가하려고 했었는데 너무 부자연스러워서

빼버리고 마우스를 뗐을 때 애니메이션 속도를 빠르게 하고 공격 애니메이션 모션의 프레임도 어느정도 수정했다.

 

 

약간 이상하긴 하지만 어느 정도 공격 모션이 마우스 누를 때마다 바로바로 나오는 것 같아서 나름 만족한다.

 

애니메이션 모션은 Trigger로 그냥 Attack 함수 안에 넣어줬다.