ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 스파르타 최종 프로젝트 28일차
    스파르타 게임 개발 2024. 7. 24. 23:58

    1. 애니메이션 작업하기.

    내일이면 벌써 중간발표다. 

    중간 발표에 앞서서 폴리싱 작업부터 하기로 했다. 

     

    먼저 지금 유닛들에게 공격 애니메이션이 없다. 

    (유닛들은 팔을 휘두르긴 하는데 곡괭이는 가만히 있다) 

    동영상이 길어서 공격 하는 부분만 보면 될 것 같다.

     

    일단 곡괭이 공격 애니메이션부터 만들어 줘야 할 것 같다. 

    저번에 시작화면 만들 때 했던 방식처럼 만들면 될 것 같다. 

    이런 느낌으로

     

    저번에 이거 작업 할 때는 곡괭이를 4개 만들어서 각각에 미리 위치 만들어둔 곡괭이들이 타이밍에 맞춰서 SetActive가 꺼지고 켜지게 해놓았다. 

     

    한개로 하면 막 둥실둥실 거려서, 그런데 그 땐 그렇게 했지만 지금은 또 좋은 방법을 알았기 때문에 그 방법으로 하면 될 것이다. 

     

    일단 그전에 먼저 곡괭이도 같이 Flip을 반전 주는 효과를 적용 시켜주고 싶었다. 

    지금 유닛이 반전 되면 유닛만 반전효과가 생기고 곡괭이는 반전이 안 되는 문제가 있었다.

    이렇게 유닛만 회전을 함

     

    그래서 이걸 어떻게 해야 하나, 스프라이트렌더러를 2개 갖고 있어야 하나 했는데, 담당튜터님이 사기방법을 알려주셨다. 

    Scale값을 -1 을 하게 되면 좌우 반전효과를 줄 수 있었다. 생각도 못 했다. 

     

    Scale로 반대로 바꿔버리니 곡괭이도 잘 회전을 하게 되었다. 

    곡괭이도 같이 회전 하는 모습

     

    그래서 코드도 Flip을 바꾸는 것이 아니라 Scale을 -1 하게 하는 것으로 수정을 하였다. 

     

    그 다음에 유닛이 곡괭이를 휘두르는 작업을 해줬다. 

     

    도트 느낌으로 애니메이션을 적용 하려면 움직이게 하는 것이 아니라 그림이 바뀌는 것처럼 작업을 해줘야 한다. 

    그래서 시간에 맞춰서 곡괭이들의 위치와 방향만 수정을 해준다. 

     

    그런데 이렇게만 끝내면 문제가 있다. 

     

    이렇게 곡괭이가 둥실둥실 하게 되어 버린다. 

     

    그래서 난 처음에 멘붕이 왔었다가 어떻게 할까 하다가 처음에는 애니메이션을 껏다가 위치 바꿔지면 켜지게 하는 방식으로 했던 것이다. 

     

    그런데 이렇게 말고 이번에는 커브를 조절 하는 방법으로 해봤다. 

    커브는 애니메이션의 부드러움을 조절 하게 하는 것인데 이걸 0으로 만들어버려서 바로 이동이 되게 하는 것이다. 

    요걸 이렇게 잘 세워주면 된다.

     

    그런데 이게 원리를 잘 모르니까 정말 잘 세워야 한다. 

    어떤 건 밑으로 세워야 하고 어떤 건 위로 세워야 한다. 안 그러면 애니메이션이 동작 안 하는 게 생긴다. 

     

    그래서 조금 오래 걸린 것 같다. 

     

    아무튼 이렇게 해서 공격애니메이션을 한 번 만들어 보았다. 

     

    그런데 보니까 공격이 끝나고 나서 곡괭이가 고개륵 스-윽 하고 올린다.

    너무 부자연스럽다.

    이거 왜 이런거지 하고 커브가 문제인건가 열심히 커브를 만지작 거려봤는데 그게 아니었다. 

     

    그래서 튜터님께 여쭤봤는데 이유는 그것이었다. 

     

    내가 공격 애니메이션에 Exit Time이 있었는데 0.75초 정도로 되어 있었다. 그래서 그 때동안 애니메이션이 안 넘어 간 것이고, 그리고 듀레이션도 있기 때문에 애니메이션이 같이? 실행이 되었다고 했다. 

     

    그래서 둘 다 0값으로 변경을 해줬다. Exit Time은 있어야 한다고 했다. 

    완성한 애니메이션.

     

    그리고 가만히 있을 때 움직이는 것도 곡괭이가 같이 움직이게 해야 했다. 

    곡괭이는 가만히 있으면 굉장히 부자연 스러웠다. 

     

    그래서 가만히 있을 때 곡괭이도 같이 움직이게 열심히 애니메이션 잡아줬다. 

    그래서 좀 자연스러워 보이게 된 것 같아서 만족 한다.

     

    그런데.

     

    난 이렇게 하고 끝인 줄 알았다. 하지만, 

     

    이렇게 자세히 보면 유닛들마다 곡괭이의 위치가 수정이 필요해져서 곡괭이들의 위치를 새로 잡아줘야 했다. 

    그래서 캐릭터들마다 일일히 다 곡괭이 애니메이션을 다시 작업 해줬다.. 

     

    그 다음에

     

    이렇게 곡괭이도 같이 미세하게 움직이는 것을 해줬는데 사소한 차이로 부자연스러워 보여서 조금 노가다 작업을 많이 했다. 지금 이 영상도 부족한 부분이 많이 보인다. 

     

    이렇게 해서 애니메이션을 만들어 줬는데, 이 유닛들이 곡괭이를 들고 있는 게 조금 어색해 보였다. 

     

    뭔가 이상하다. 마음에 들지 않는다. 이유가 뭘까 생각 하다가 나는 처음에 곡괭이가 캐릭터를 가려서 안 가리게끔 유닛 기준 왼 손에 들게 해놓았다. 

     

    그래서 뭔가 어색해 보인다. 뭔가 자연스럽지가 않은 느낌이다. 

    들고 있는 듯한 느낌이 아닌 기분이 든다 그래서 위치를 이렇게 수정 해봤다. 

     

    이렇게 곡괭이를 들게 하니까 훨씬 더 자연스러워 보였다. 

    진짜 들고 있는 듯한 기분. 

     

    그래서 나는 애니메이션 작업을 싹 다 새로 해줘야 했다. 

     

    -------

    왼 쪽은 애니메이션이 없는 것, 오른 쪽이 있는 거. 제발 차이가 있어 보이길 ㅋㅋ

     

    일단 그렇게 해서 애니메이션을 다시 작업 해줬고 이렇게 끝내 보았다. 

    티가 안 날수 있겠지만, 이런 디테일 놓칠 수 없지. 

    그래도 훨씬 더 자연스러워 보이긴 한다. 

     

    아무튼 유닛 애니메이션은 끝이 낫으니 플레이어가 소환 하는 마법의 곡괭이도 애니메이션을 넣어주자. 지금은 아무런 애니메이션 없이 그냥 흔들흔들 거리기만 한다. 

     

    공격 애니메이션을 추가 해주면 될 것 같다. 

     

    이거는 간단하게 회전값만 주면 될 것 같았다. 

    회전에 -90도 해버려서 자기 스스로 흔들어서 공격 하게끔.

    그런데 바로 -90도 해버리면 인사하는 기분이 들었다. 

     

    그래서 처음엔 뒤로 확 꺽어서 앞으로 치는 듯한 느낌을 주었다. 

     

    계획은 완벽 했지만 그 때 문제가 발생 했다. 

    그것은 바로 Pivot 사태다. 

     

    뭔가 부자연스러워 보여서 확인을 해봤더니 pivot이 센터로 되어 있었다. 

    그래서 피벗을 아래로 수정을 해줬다. 

     

    피벗을 아래로 수정 해주니까 훨씬 더 자연스럽게 곡괭이 질을 하듯이 연출이 되었다 그런데

     

    피벗을 수정을 해서 유닛이 들고 있는 곡괭이들의 위치도 바뀌었다. 

    그렇다 나는 모든 유닛들의 애니메이션을 다시 또 한 번 작업을 해줘야 했다. 

     

    아무튼 이렇게 해서 애니메이션 작업을 마칠 수가 있었다. 

    완성 된 애니메이션. 공격 할 때 땅에 닿으면 약간 튕기는 듯한 모습도 주려고 해봤다.

     

     

     

     

     

    2. 데미지 자막 표현하기

    저번에 데미지자막을 표현 할 때는 직접 만들어서 했는데 두트윈 이라는 에셋을 사용하면 편하다고 들어서 그것을 활용 해보기로 했다. 

     

    지금까지 편법 같아서 쓰지 않으려 했는데 내부적으로 최적화 기법을 사용해 코루틴보다 성능이 좋은 애니메이션 효과라고 한다. 이 악물고 이것만 써야겠다. 

     

    프로를 구매 할 경우에는 인스펙터에서 확인까지 할 수 있다는데 고민 된다 질러버릴까.

     

    일단은 일반버젼으로 해보기로 하자. 

     

    두트윈을 통해서 표현을 하려다가 재밌어 보이는 것이 있었다. 

    여러 기능들을 보던 중에 Shake 기능이란 게 있었다. 

     

    막 흔들어재끼는 함수였는데 그걸 보고 블록에 사용하면 좋겠다 느꼈다. 

    처음엔 블록이 히트 될 때 색상만 반짝 거리게 할 생각이였는데 이 쉐이크 함수를 사용하면 자연스러운 연출을 줄 수 있을 것 같았다. 

     

    그래서 바로 블록에 적용 시켜봤다. 

     

    얼마나 커질지, 얼마나 작아질지 시간등을 설정을 해서 내가 원하는 맛에 맞게 블록 히트 애니메이션을 만들어 봤다. 

     

    마음에 드는 것 같다. 

     

    그리고 블록이 사라질 때에도 애니메이션을 추가를 했다. 

    원래는 저거를 만들 생각은 없었는데 데미지 자막이 나오는 게 끝나기 전에 블록이 파괴 되면 오류가 자꾸 나와서 자막 연출이 끝나기 전까지 뭐라도 만들어야 겠다 생각 하고 작아지게 했다가 사라지게 해야겠다라고 생각을 했는데 꽤 마음에 든다. 

     

    그런데,

     

    처음에 저걸 만들 었을 때, 영상과 같이 아래로 모이던 게 아니였다. 가운데로 모였다. 

    그것은 바로 또 pivot에 문제였다. 

     

    여기서 난 고민에 빠졌다. 그냥 가운데로 모이게 하게 할까. 아니면 밑으로 내려가게 할까였다. 

    가운데로 모이게 할 경우면 2% 정도 부족 하지만, pivot으로 인한 재설정을 하지 않아도 된다. 

     

    하지만 고민 끝에 pivot을 바꾸고 다시 설정 하기로 하였다. 

    스트레스를 많이 받는 하루지만 깨달음을 크게 얻은 날인 것 같다. 

     

    그래도 나름 블록들의 이미지만 바뀐 것이라 최대한 생각 하면서 일을 덜 했다. 그나마.. 

    이건 정리가 되어 있는 건데 요것들이 그냥 다 싹 다 제멋대로였다.

     

    오늘 피벗으로 인해 생고생을 좀 해서 앞으로 피벗 어떻게 할지부터 정할 것 같다. 진짜 매우매우 중요하다..

    애니메이션 작업이라던지, 이런 거 연출 할 때도 피벗에 영향이 간다. 

     

    그래서 항상 하기 전에 고민을 많이 해야 할 것 같다. 앞으로 어떻게 움직이게 될 것인가에 대해, 

     

    아무튼 이렇게 해서 데미지 자막에 더불어서 골드까지 드랍 되는 것을 추가 하고 블록들의 피격애니메이션까지 만들어서 게임이 좀 더 풍족 해진 것 같다. 

     

    그리고 기능을 만들다 보면서 이 쉐이크 함수를 사용하면 움직이다가 진짜 블록의 위치가 바뀌어서 조금 보완을 해줘야 했었다.

     

    그런데 그러다 보니까 블록들이 재생성이 될 때 위치들이 알아서 막 바뀌는 것을 보고 아 랜덤값 살짝 주면 더 낫겠다 하고 나올 때마다 블록들의 위치가 조금씩 달라지게 했다. 

     

    그리고 동전 뿐 아니라 광석을 얻을 경우에 광석 모양도 나오게 해서 위로 올라가게 하는 것을 추가 했다. 

    그리고 여러 개의 디버그를 마치고 나서 하루를 마무리 했다. 내일은 중간 발표의 날이다. 

     

Designed by Tistory.