여름의 스킬은 배트를 강하게 휘두르는 것 외엔 정해놓은 것이 없었다. 심적으로나 물적으로나 여유가 없었고, 그 때문에 벌써 스킬 구현을 해야 할 때가 됐다는 걸 모르고 있었다. 일단 여름이를 처음만들 때부터 생각해 놓은 휘두르기부터 구현하고, 그 이후의 스킬은 출퇴근 시간에 구상해보도록 하자.
휘두르기(Swing) : →A or B. 발동도 빠르고 장풍도 반사할 수 있지만, 짧다.
7.5
건강 이슈로 작업을 쉬었다. 몸이 예전 같지 않다는 생각이야 늘 느끼고 살지만 최근 부쩍 안좋아진 느낌이다. 잠이 보약이다. 잘 자자.
딱!
비네트의 물건도 받아칠 수 있다.
하지만 쉰 덕분에 며칠간 스킬에 대해 좀 더 고민할 수 있었다. 그리고 기획을 확정.
휘두르기(Swing) : →A or B. 발동도 빠르고 장풍도 반사할 수 있지만, 짧다.
돌격(Charge) : ← A or B, 팔로 얼굴을 가리고 돌격한다. 도착해서 적에게 닿으면 1타를 추가. 돌격 시 슈퍼아머
점프내려치기(JumpingSmash) : ↑ K, 테리의 파워덩크. 상승 시 데미지 판정
밟고 차기(StepKick) : → K, 하단. K로 연계 시 추가타.
홈런(HomeRun) : ↓→ B, 초필. 1타로 상대를 위로 띄우고 2타째 강한 휘두르기
홈런은 화면에서 이리저리 튕기는 연출을 하고 싶다. 때문에 다소 난이도가 있어보이고, 나머지는 기존 스킬 코드의 응용이라 쉽게 구현할 수 있어 보인다. 작업을 해보자.
돌격기도 완료.
7.9
밟고 발리킥. 첫타는 하단이다.
점핑 스매시. 두번째 타격은 점프공격이기 때문에 앉아서 막지 못한다. 밟기공격과 함께 이지선다를 노려 상대를 혼란스럽게 하는 용도.
주말동안은 완전히 늦잠을 잤다. 적어도 10시간은 넘게 잤는데 이마저도 모자랐는지 낮잠까지 잤다. 최근엔 시간이 날 때 작업을 해야 한다는 강박관념이 생겨서 의도적으로 쉬었다. 그래봐야 개인적인 취미생활인데, 팬도 생기고 유명세를 조금 타니 조급증이 도지나 보다. 고약한 병이다. 아직 갈 길이 멀다. 쉬어야 한다.
캐릭터의 이름에 맞게 때마침 여름이다. 이젠 과잠이 더워보이는 계절이 됐다.
6.16
다이나믹본은 예상보다 더 많이 뚫린다. 디자인상 겹쳐 있는 파츠가 많다 보니 별 수가 없다. 세컨더리 애니메이션에서 최대한 맞춰보는 수밖엔.
6.19
회사일이 바빠지다 보니 작업할 시간이 좀처럼 나질 않는다. 끊기지 않는 것에 의의를 두고 작업하고 있지만, 사실 어제는 쉬었다(도저히 못일어나겠더라!)
비네트의 선택을 처리하기 위해서는 먼저 캐릭터 선택화면의 개량이 필요하다. 기존의 8캐릭터만 선택가능한 화면은 페이즈1화면으로, 스토리 모드를 한 번이라도 클리어하기 이전의 화면이다. 스토리 모드를 한 번이라도 클리어하게 되면 페이즈 2화면이 되는데, 이 때부터 12캐릭터 + 히든 아이시의 선택이 가능해진다.
선택화면 레이아웃은 페이즈1을 디자인할 때부터 구상해 두었던 것이다. 히든인 아이시는 멜라에 커서를 둔 상태에서 아래로 3번 내리면 선택되게 할 예정이다.
이제 이미지를 줄일 시간인데, 프리뷰와 품질차이가 있다…오른쪽 경계선 옆쪽이 깔끔하게 떨어지지 않고 1픽셀의 이격이 발생한다. 이유가 뭘까 고민해봤는데 원본의 가로길이가 홀수라 그런 게 아닐까 싶다. 포토샵은 0.5픽셀을 표현하지 못하니까, 양 옆 픽셀을 섞어서 중간색을 취할 것이다…1픽셀을 지우던가 늘리던가 해보자.
좀 낫다.
하지만 완벽하진 않다. 어쩔 수 없지.
페이즈 완료. 휴일의 힘을 빌려 일찍 끝냈다. 영상을 올리고 나니 보이는 버그. 수정하자.
이제 7개정도 처리한 것 같다. 생각보다 더 오래 걸리고 있지만, 허투루 하면 나중에 어차피 다시해야 하기에 확실히 해두는 편이 좋다.
5.24
역대급으로 처리가 어려웠던 비네트의 조심해요! 스킬.완료!
5.25
이제 그네타기를 제작할 차례인데…이건 애매한 부분이 있다. 현재의 캐릭터는 전체적으로 평면적 공간에서 약간 회전된 상태로 제작된다. 이는 순수하게 심미적으로 예쁘게 보이기 위한 처리이다.
그래서 이것을 앞에서 볼 경우
이렇게 손이 어긋나는 문제가 발생한다.
가장 심플한 해결방법. 보조본을 사용해 수동으로 위치보정을 해준다…가 생각보다 잘 작동한다…? 그냥 이렇게 쓰면 될 것 같다.
이제 그네를 모델링하기 전에… 길이를 맞춰야 한다. 배틀퀸은 공중에 있을 경우 타격판정에서 다리를 제외한다. 공중공격을 좀 더 유리하게 만들기 위한 조치다. 때문에 다리를 주욱 뻗고 공격하는 이 자세는 판정면에서 꽤 유리할 것이다. 하지만 줄이 길면 궤적이 길어져 공격이 느릴 것이고, 줄이 짧다면 화면중간에 줄이 끊기니 그 자체로 문제가 있다. 적당한 길이를 맞춰야 한다. 유니티로 가서 길이를 재어보자.
더미로 대충 만들었던 그네인데, 한 번에 적절한 값을 찾았다. 행운이 뒤따르니 오늘 완성할 수 있을 지도!?
블렌더로 가져오니 폴리곤이 5만개 가까이 된다. 그냥 써도 사실 문제는 없겠지만, 마음이 불편하다. 정리를 하자.
5.30
폴리곤 정리를 하고, 게임용 셰이더로 맞추자. 예상은 했지만 소품이 참 많이 필요한 아가씨다.
5.31
이제 자전거 리깅을 하고
코드에 적용. 야, 자전거 타고 가야지!!
6.1
Cursor가 좋다길래 함 써봤는데, 프로젝트 전체를 훑으며 코드를 보는 능력은 탁월한 것 같다. 다만 이거에 의존하게 되니 순식간에 뇌가 안돌아가는 느낌을 받게 된다. 코드란 건 사실 머릿속으로 생각한 걸 그대로 짜는 게 더 빠르지 않은가… 의도를 말로 설명하는 게 더 힘들다. 제대로 전달되지도 않는 것 같고. 버그가 잘 안잡힐 때만 간간히 사용해야 할 것 같다.
원래대로라면 캐릭터의 선택/등장 애니메이션을 작업해야 할 시점이지만, 이를 처리하기 위해선 캐릭터 선택화면의 페이즈2를 만들어야 한다. 기존까지의 작업은 플레이를 처음 시작하면 나오는 페이즈1화면이고, 시나리오 모드를 한 번 이상 클리어하면 열리는 페이즈 2화면은 12캐릭터(+히든)를 모두 선택할 수 있다. 하지만 이것이 당장은 일이 크니까, 일단 스킬 애니메이션부터 제작을 해보자.
일의 시작은 구상으로부터
우산돌리기(Rolling) : A or B 연타 – 본래 근접 강펀치였던 공격
조심해요!(FallObject) : ← A or B – 화분, 공, 벽돌등이 화면 위에서 떨어진다.
그네 타기(Swing) : ↑ K, 발을 주욱 뻗고 그네를 탄다.
따르릉따르릉 비켜나세요(Bycycle), →K – 자전거를 타고 적이 있는 곳까지 돌격. 맞든 막든 부딪히면 비네트가 튕겨나가며 역가드 판정을 일으킨다.
둥실둥실(Gliding) : ↑누르고 있기 – 우산을 펼쳐서 저속낙하.
사뿐즈려밟고(StepAir) : 공중에서 ↓K – 적을 밟고 한 번 더 뛰어오른다.
우박이 내릴 예정입니다.(Hail) : ↓→B – 우박이 내린다. 닐리의 메테오와 비슷하지만 그 수가 훨씬 더 많다.
우산돌리기
..는 전에 만들어둔 모션도 있어서 어렵지 않다. 쉽게 구현.
5.16
조심해요!
최근에 애니메이션의 작업방식이 조금 바뀌었는데, 이는 블렌더의 Relax Pose기능을 활용한 것이다. 기존에는 만들어질 애니메이션을 예측해 각 관절을 차례차례 잡는 방식이었는데, 최근의 작업방식은 좀 더 전통적인 애니메이션 방식(원화간 프레임을 동화로 보간)에 가깝다. 기존의 방식보다 결과물 예측도 쉽고 빠르다. 자신의 실력이 또 한단계 향상되었다는 것을 느끼는 것만큼 기쁜 일이 또 있을까!
이제 떨어질 물건들을 구할 차례. 하늘에서 물건이 떨어지는 것은 차원의 틈새로 이세계의 물건들이 떨어지는 것이다. 따라서 무엇이든 떨어질 수 있다.
오브젝트가 캐릭터에게 맞았다면 그 물건이 부셔져야 한다. 이 때 부셔지는 요소를 단순 파티클로 처리할 것인가? 컴포넌트가 붙은 오브젝트로 처리할 것인가?
만약 오브젝트로 처리할 경우, 쓰레기통처럼 2개로 분리되는 오브젝트에 대해선 어떻게 처리를 할까?
파티클로는 원하는 움직임을 구현하지 못하는 것이 확실한데, 스킨드메쉬까지 사용해 가며 고비용으로 처리할 것인가?
땅에 떨어졌을 때의 파편은 캐릭터에게 맞았을 때와 같은 이펙트를 사용할까? 공중에서 무언가에 맞았을 때와 땅에 떨어졌을 때의 파티클은 튕기는 정도나 궤적이 다를텐데 무엇이 더 나은 선택일까?
고장난 요소를 어디까지 모델링해줄 것인가?
발사체로 처리한다면 추후 추가될 한여름의 장풍반사에 반응할 것인가? 궤적이 좀 이상해지지만 게임적 요소로는 더 재미있긴 할터인데.
오브젝트가 사라질 땐 어찌할 것인가? 디졸브? 스케일다운?
파티클은 열외로 치더라도 본체를 위한 셰이더를 별도로 쓸 것인가? 비네트에 포함시킬 것인가?
낙하궤적은 사인곡선을 사용해 가속을 줄 것인가? 등속으로 해줄 것인가?
낙하 예고는 어찌해줄 것인가?
기타등등
이것들을 쉽게 할 수도 있지만, 후회가 남을 것 같았다. 그래서 이 구현의 난이도를 상급으로 올리고 진지하게 임해보도록 하자.
일단 모델링 리토폴로지.
텍스처링
5.19
애니메이션
비네트 본체에 애니메이션을 끼워넣고
코드를 짜고
좀 작네..? 뭐 그건 중요한 게 아니고…
5.20
제작방침을 스킨드메시가 아니라 정적 메시로 변경했다. 기존 계획이 워낙 일이 크기도 하고, 예외처리가 많아서이다. 그보단 기존의 발사체에 대응하는 것이 제작이 편하다. 스킬을 제작할 땐 원래 코드작업이 좀 있는 편이었지만, 이번엔 꽤 크게 걸렸다. 덕분에 진전이 없다. 오늘은 끝장을 볼 수 있을 줄 알았는데, 코드 작업조차 끝내지 못했다.