한참 유니티, 언리얼 게임 이펙트를 만지다가 저도 게임을 직접 만들어 보고 싶어서 골드메탈님 영상으로 처음 입문했습니다!
골드메탈님 영상들 정주행 하면서 기본적인 코딩 연습도 하고 예제들 따라하면서 몇 개월 연습하고
이제 내가 직접 게임 만들어봐야지 해서 제가 평소에 좋아했던 액션게임인 퍼니싱 그레이 레이븐을 만들어 보기로 했는데
정말 너무너무 어렵더라구요 ㅋㅋㅋㅋ
골드메탈님 영상에서는 코딩이 되게 쉬워보였는데 제가 혼자 할려니 너무 어려워서 게임 만드는 속도가
지렁이 기어가는 속도보다 더 느린것 같습니다 ㅠㅠ
어쨌든 구글에서 정보좀 찾다가 우연히 이런 곳을 알게되었는데 다른분들이 개발일지 올리는걸 보고 저도 올리고 싶어서 이참에 가입했습니다.
그리고 아래는 제 첫 개발일지가 될 것 같습니다.
----------------------------------------------------------------------------------------------------------------------------------------------
<개발일지 1>
퍼니싱 그레이 레이븐 처럼 정말 빠른속도의 액션과 화려한 이펙트 연출을 하는 게임을 좋아해서 따라만들다가
애니메이션과 코딩의 벽에 부딪혀서 오늘 엄청 헤맸습니다.
물론 안 헤맸던 날이 없었습니다. ㅋㅋㅋ 콤보 만드는 것도 if문을 하도 많이 쓰다보니 뭐가 뭔지 모르겠고
버그가 많이 나서 그거 고치는데도 엄청 힘들었습니다 ㅠㅠ
결과는 아주 만족할 정도는 아니긴 한데 조금씩 수정해야 할것같고
또 애니메이션이 꼭 코딩만의 문제가 아니라 애니메이션 자체의 문제도 많이 있는것 같더라구요.
우선 퍼니싱 그레이 레이븐의 움짤입니다.
위의 짤처럼 캐릭터가 빠른속도로 공격하면서 애니메이션과의 상호작용도 즉각즉각 이루어지게 해야했습니다.
그 중에서 캐릭터가 공격할때 캐릭터가 보는 방향을 기준으로 공격하면서 이동하게 해야했는데 위의 짤은 굉장히 자연스러운 반면
제가 만든건 형편없더라구요 ㅠ
먼저 그냥 단순히 생각했을때 그냥 캐릭터가 보고 있는 방향의 벡터를 가져와서 거기다가 속도를 곱해준다음
위치에 더해주면 되지 않을까 해서
만든 첫번째 결과입니다.
이렇게 했더니 무슨 캐릭터가 빙판길에서 공격하는것처럼 슬라이딩하면서 공격하더라구요 ㅋㅋㅋ
정말 너무 부자연스럽고 이상했습니다.
그래서 두번째 방법은 이펙트를 만들고 캐릭터에 적용해서 이펙트를 보기위해 항상 쓰던 루트모션 애니메이션 이었습니다.
루트모션을 쓰면 애니메이션이 자연스럽게 이동하면서 공격할테니 이걸 쓰면 되겠다 싶어서 적용해봤습니다.
분명 전보다 애니메이션이 자연스러워지긴 했는데 이상하지 않습니까?
우선 캐릭터가 흔들흔들 거리면서 이리저리 왔다갔다 하면서 공격하고 있고 무엇보다 같은 콤보 공격을 했는데
끝나는 위치가 다 다릅니다. (실제로도 x값과 z값이 항상 달랐습니다.)
그리고 또 자세히 보면 여전히 약간씩 미끄러지면서 공격하고 있는것 같습니다.
거기다 루트모션은 애니메이터가 만든거라서 제가 수정도 못하고 할줄도 모르고 그래서 결국 계속 인터넷을 뒤지며 찾아본 결과
루트모션을 제어하는 유니티 기능이 있는데 문제는 그걸로 코딩을 해봐도 결국 캐릭터가 미끄러지면서 공격하는 건 여전하더라구요.
정말 많은 시도와 생각을 해봤지만 도저히 어떻게 해야할지 모르겠어서 여기에 글을 올리고 댓글을 보고 힌트를 얻었습니다!!!
그 세번째 방법은 애니메이션이 재생되는것을 한 프레임 한 프레임 보면서 캐릭터의 애니메이션이 이동할때 캐릭터도 위치를 이동시키는
방법이었습니다. 그리고 그 결과입니다.
그래도 전보다는 훨씬 나아진 것 같습니다. 물론 수정해야 될 것들이 보이긴 합니다.
좀 더 프레임 단위로 자세히 분석해서 한번 더 이동을 다듬어야 할 것도 같고 공격 콤보가 약간 자연스럽게 이어지지 않는것 같습니다.
근데 이건 어쩔 수 없는게 팀으로 게임을 개발하고 전문 에니메이터가 있었다면 아마 캐릭터의 전체 공격 콤보 컨셉을 잡고
매끄럽게 잘 이어지게 전체 콤보를 이어붙여서 만들었겠죠
하지만 전 그냥 에셋을 써서 그냥 대충 아무 콤보끼리 조합한거니 어색한건 어쩔 수 없네요 ㅠ
그리고 각각의 애니메이션 속도 조절도 좀 필요해보이기도 하구요.
어쨌든 이렇게 해서 다행히 어느 정도 진전이 있었네요
그럼 여기까지 개발일지를 쓰고 마치겠습니다.
긴 글 읽어주셔서 감사합니다. 그리고 제 질문에 답글 달아주신분들 감사합니다.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.