승리와 패배 애니메이션 제작

7.22

일반적인 조이패드의 버튼은 4개다. 요새는 트리거와 아날로그등이 추가되어 그보단 훨씬 많아지긴 했지만, 어쌔신 크리드의 튜토리얼을 진행하다가 손이 꼬이는 벽을 넘지 못한 후로 콘솔 게임은 그만두었다. 내게 있어 트리거는 단지 X+Y등의 겹버튼 숏컷용이며, 아날로그는 그냥 방향키의 다른 버전일 뿐이다. 따라서 조작은 4개의 버튼을 넘지 않게 기획되었다. 그것이 약손, 강손, 킥, 도발 버튼이다.

첫 계획은 도발을 추가하는 것이었지만, 작업이 너무 길어지고 있다. 따라서 이번 빌드에서는 도발은 제외하기로 하자. 게다가 도발은 캐릭터성을 상당부분 반영하는 것이어서 캐릭터 설정이 완전해진 후에 제작하는 편이 좋을 것 같기도 하다. 설정을 따지자면 승리와 패배도 마찬가지인데, 어쨌거나 이긴 티는 나야 하지 않을까. 하나는 제작하는 편이 좋겠다.

패배는 정확히 말하면 타임오버 시의 패배모션이다. 일반적인 경우의 KO패배라면 그냥 쓰러지고 끝난다.

늘 그렇듯 앨리스부터 시작. 대사는 “자, 또 한 건 끝났고!” 정도로 계획 중이다. 즉홍적으로 지은 대사가 용병 같은 느낌인데, 괜찮을지도 모르겠다.

손바닥을 치는 게 예상외로 어려웠다. 저건 브레이브 카노를 제작할 때도 어려웠던 기억이다.

패배 모션. 앨리스의 패배모션은 구상이 확실했기 때문에 제작은 쉬운 편이었다.

닐리의 승리 모션도 완료

완성은 했지만, 승리도 패배도 딱히 떠오르는 것이 없어 어정쩡한 구상 상태에서 진행했던 지라 크게 마음에 들지는 않는다.

달래는 인사하기 재활용.

패배모션도 완료

7.23

오로라 승리. 최신 유행 고속버스 춤.

패배모션도 완료. 이제 코드를 짜보자.

7.24

죽음을 처리하기 위해 데미지 처리 코드를 리팩토링 중. 이제 없을 줄 알았는데!!

오늘의 깨달음. 함수에 구조체를 인자로 전달하면 Value로 넘어간다. 난 당연히 데이터의 집합체니까 배열과 비슷하고, 그렇다면 당연히 Reference일 줄 알았는데!! 이것 때문에 한참을 헤멨다.

데미지 리팩토링이 생각보다 오래 걸렸다. 기존에 짜놓았던 코드들이 워낙 중구남방이었던 탓도 있지만, 스탯의 비주얼표현을 위한 hp변수를 그냥 체력처럼 써놓아서 엉뚱한 곳을 뒤지느라 시간을 써버린 탓도 크다. 급조한 코드는 반드시 벌을 받게 되어 있다! 주석을 잘 달아놓도록 하자.

죽음을 처리하는 것도 생각보단 복잡한 과정이었다. 딸피일 경우에 칼처럼 데미지를 처리하면 좀 인정없어보여서, 조금이라도 여유가 있다면 있는 피를 모두 반납하고 한 방정도는 버티도록 설계했다. 이로서 데미지는 75%, 방어는 50%의 피가 남아있다면 막타는 죽지 않고 견딜 수 있다.

그리고 이제야 비로소… 승리포즈를 처리할 수 있다. 아휴. 길었다. 다시 하던 걸 해보자.

7.25

일단은 KO처리. 완전한 승리는 퍼펙트를 의미한다. 한글로 쓸까 영어로 쓸까 고민을 많이 했는데, 긴 문장은 한글이 낫겠다는 결론을 내렸다. 이제 다음라운드로 넘어가야 한다.

7.26

다음 라운드로 넘어가기 위해선 먼저 승리를 기록해야 한다. 이를 위해 승리 라운드 정보를 게임데이터에 저장해야 한다. 그리고 이걸 명시적으로 표시하기 위해선 이긴 라운드를 알 수 있는 UI가 필요하다.

이는 러프 초창기부터 구상했던 모양이 있었으므로 디자인해서 배치해 둔다. 모델링은 어렵지 않은데 별도의 셰이더가 필요하다. 이겼을 때 깜빡거리며 그 존재를 과시할 필요가 있고, 돌아가며 보석느낌을 내려면 쬐그만한 게 빛벡터가 최소 2개는 필요하다. 하지만 스펙에 비해 셰이더 자체는 그리 어렵지 않을 것이다. 단순한 dot연산과 _Time을 이용한 깜빡임 정도면 충분하다.

다이아는 범용적으로 사용될 셰이더는 아니므로, 이렇게 모든 걸 정한 후엔 프로퍼티 정보는 코드 안 쪽으로 넣은 후 삭제해 주는 편이 최적화면에서 좋다.

오늘의 깨달음. StopAllCoroutine()으로 소멸되는 코루틴은 해당 Behaviour가 호출한 코루틴에 한한다. 이는 타클래스에서 코루틴을 public으로 설정해 호출하면 다소 귀찮아질 수 있다는 이야기가 된다.

무승부 처리. 이것도 조금 난이도가 있었다.

아직 불완전한 모습이긴 하지만, 일단락됐다. 이후의 작업은 버그로 간주하고 작업하기로 하자.

승리와 패배 애니메이션 제작”의 17개의 생각

  1. 모션이 너무 자연스럽네요… 기대되네요 제품 출시는 언제쯤으로 잡고 만드시나요???

  2. 퍼펙트로 이겼을때 Perfect! 라고 단어 하나 띄워주는 것보다 “XX의 완전한 승리” 이렇게 문장으로 나오는게 뭔가 더 극적인 효과가 있는거같아요!

      1. 네… 그냥 두 방법 자체만 비교해봐도 그렇고 저렇게 문장으로 나오는 격투게임은 본적이 없어서 더 특별하다는 느낌도 있는거같네요 ㅎㅎ 결정은 전적으로 이즈님께 달린거지만 일단 저는 문장쪽에 한표 넣겠습니다! (1인 1표가 아니라면 100표정도? ㅋㅋ)

  3. KO 될때 항상 멀리 날아가지 않고 맞은 공격에 따라서 조금만 날아가거나 그자리에 그대로 쓰러지거나 하는 식으로 만들어도 좋을거 같습니다. 저는 프로그래밍은 모르는데 구현하기 어려울까요?

      1. 글쿤용… 저는 여캐가 잽같은 약한 공격 맞고 KO될때 다리에 힘풀리면서 제자리에서 스르륵 쓰러지는것도 애처로워보여서 좋더라고요 ^^;

      2. 아하. 가녀린 느낌이군요. 하지만 이미 그럴만한 피지컬을 가진 애들은 아니니까요..?!

이인호님에게 덧글 달기 응답 취소