#블로그를 체계적으로 운영해본 적이 없다보니 글을 작성면서 글 구성이 많이 바뀔 듯 하다. 어떤 게 더 효율적인지 시행착오가 필요할 듯
구현할 사항
1.캐릭터가 움직이다가 마우스 왼쪽 클릭을 하면 공격 애니메이션을 실행하고 다시 기본 상태로 돌아간다.
2.기본 상태 또는 이동 상태 >마우스 왼쪽 클릭 입력(Input)> 공격 애니메이션 실행(Output) > 기본 상태
구현 과정
1.Bool 이용하기(관련 기능 모름, 내 실력 부족으로 인한 실패)
1)공격을 입력X = false, 공격 입력O = true로 구분하여 bool 이용하기로 함
2)Attack 스크립트를 생성하여 공격 관련 기능을 구현하기로 함. 나중에 스킬들도 비슷하게 작동할 것 같아서,
Attack스크립트(나중에 이름을 변경할 듯)를 생성함
3)코드
private void Update()
{
bool attack = Input.GetMouseButtonDown(0); //마우스 왼쪽 버튼 입력은 애니메이터의 attack 파라미터로 설정
playerAnimator.SetBool("Attack", attack); //SetBool로 playerAnimator의 Attack 상태의 파라미터 attack을 true 설정
}
4)코드를 실행해보니 버튼 입력 시 해당 애니메이션이 실행되나 기본상태로 돌아가지 않는다. false > true만 설정되어 있음, 그래서 true > false로 하여 공격 애니메이션이 다 실행하고 기본 상태가 되게 해야 하는 데...
공격 애니메이션이 모두 작동됐는 지 체크하는 기능 모름
2.Trigger 이용하기
1)공격 애니메이션을 생각해보니 점프하는 거랑 비슷하다고 생각하니, 예전에 유니티 책에서 점프를 구현했던 것이
생각이 났다. 그 때 Trigger를 이용하면 입력을 받았을 때 true > false에서 false > true로 자동으로 변경됨을 기억했다.
2)유니티 책을 찾아보고 Trigger를 이용하여 공격 애니메이션을 구현했다.
3)코드
private void Update()
{
if (Input.GetMouseButtonDown(0)) //마우스 왼쪽 버튼 입력을 받으면
{
playerAnimator.SetTrigger("isAttack"); //playerAnimator의 isAttack 트리거를 작동한다.
}
}
4)생각한대로 공격 애니메이션이 작동됐다. 다만 이동하면서 공격 애니메이션이 실행된다...(일단 패스)
필요 개선 사항
1.공격 애니메이션을 활용하여 스킬 애니메이션을 구현할 생각인데, Trigger만 이용해서 구현하기 어렵다고 판단
2.스킬 애니메이션 적용 시 구현할 요소
1)버튼 입력 후 스킬 애니메이션 실행
2)애니메이션 실행 중 방향키를 입력하거나 스킬을 취소할 경우 현재 스킬 애니메이션 중지 후
a.이동하기 또는 b.기본 상태로 변경
4)공격 애니메이션 실행 중지가 가능한 시간 설정(프레임 단위?)
5)특정 스킬의 경우에는 공격 애니메이션이 실행 후 후딜레이 적용
- 강력한 마법을 사용하고 바로 이동하면 게임 난이도가 쉬워질 것 같아서
3.이러한 스킬 애니메이션 구현하고 공격 애니메이션에도 같이 적용하면 통일성, 효율성을 통해 효과적으로
애니니메이션 유지보수 가능
4.애니메이션 시스템?이라고 보면 될 듯????음... 조작 시스템에 넣어야하나? 스킬 시스템으로 구분해야하나?
스킬 애니메이션, 공격 애니메이션 구현을 추상화하면 애니메이션 시스템인데, 정확히는 공격 시스템에서 일반 공격,
스킬 공격으로 구분될 듯, 무엇을 기준으로 하느냐에 따라서 이름이 바뀔 것이고...
너무 작은 단위를 시스템이라고 부르기엔 아닌 것 같다. 정확히는 캐릭터 시스템에서 여러 기능 중 공격, 스킬로 구분
할 수 있을 것 같고, 해당 기능이 많고, 중요하고, 구성요소가 많다면 따로 시스템으로 구분할 수 있을 것 같다.
다음 단계 구현 사항
1.캐릭터가 지팡이를 오른손에 쥐기
2.공격 애니메이션이 실행되면 지팡이의 보석 부분에서 마법 투사체를 발사하기
'게임 개발 > 유니티 게임 개발 일지' 카테고리의 다른 글
#6 캐릭터 구현하기 - Field Of View 캐릭터 시야 구현하기 (0) | 2020.02.19 |
---|---|
#5 캐릭터 구현하기 - 캐릭터의 손으로 지팡이 잡기 (0) | 2020.02.19 |
#4 캐릭터 구현하기 - 기능 별로 스크립트 구조화하기 (0) | 2020.02.19 |
#2 캐릭터 구현하기 - 캐릭터 조작하기 Input(입력), Movement(액터) 스크립트 작성 (0) | 2020.02.19 |
#1 캐릭터 구현하기 - 캐릭터 모델링과 애니메이션 연결하기 (0) | 2020.02.19 |
댓글