FlipKick은 3지선다의 애니메이션이므로 체인으로 연결되는 3개의 애니메이션이 필요하다. 플립킥 자체는 점프공격이므로 서서 막아야 하고, 나머지는 모두 상단,하단이라 그냥 앉아서 막으면 안전하다.
사실 이 기술은 프리오리를 만들 때부터 고민해왔던 기술이다. 이 기술이 어울릴만하려면 양손에 비교적 가벼운 무기를 들고 있어야 하는데, 원래 그레텔에게 주려고 했으나 다리가 짧아서(!) 그렇게 효율적이지 않았다. 프리오리와 도레미는 무기때문에 탈락, 벨과 비네트는 어쩐지 컨셉과 어울리지 않는 것 같고… 여름이를 제작할 때쯤엔 그냥 존재 자체를 잊고 있었다. 지금이라도 생각나서 다행이랄까.
A로 연결되는 꿀밤때리기.
이제 절반 완료.
제노사이드 캇타!
8.12
스킬을 처음 구현하면 엉망진창이다. 절대로 한 번에 제대로 나오는 적이 없다. 캐릭터는 제 멋대로 움직이고, 이펙트는 엉뚱한 곳에서 터지며, 콘솔창은 툭하면 에러를 뱉는다. 이를 원하는 모양새가 되도록 다듬고 다듬으면 마침내 제대로 된 결과물이 나오는데, 이게 참 재미있다.
공중잡기. 나뭇잎 마을의 연화. 원래 기획은 이게 아니었지만, 빵을 사러 가는 길에 문득 생각났다. 순전히 우연으로부터 괜찮은 결과를 얻는 걸 세렌디피티 효과라고 한다. 난 이 말을 참 좋아하는 편이다.
이제 초필 제작. 앨리스는 이제 촉수에게 잡혀야 한다. 이거 오로라에게 적용하면 키가 맞으려나…
8.14
초필에서 사용할 차원의 원은 단순히 셰이더의 파라메터를 0에서 1로 바꾸는 것만으로는 충분하지 않다. 생성과 소멸이 모두 필요하고, 심지어 애니메이션까지 제어된다. 기존의 스크립트를 개조하는 것이 좋겠다.
아휴.. 무슨 발사체가 FSM이 이래 복잡해.
그리고 새로운 애니메이션들을 익스포트해주고, 이펙트를 등록해주고, 애니메이션 이벤트를 심고, 스크립트에 초필을 등록하고…
페어 애니메이션도 어려운데, 이건 무려 3개의 리그가 합을 맞춰 재생해야 한다. 난이도가 꽤 높았던 작업. 하지만 결국 완성!
내지르기(FistCannon) : → A or B, 주먹을 내질러 공격. 내지르는 동안 슈퍼아머, 앉으면 피할 수 있지만 맞으면 A or B로 잡기형 추가타. 원래 잡기1이었던 녀석으로 모션은 어느정도 되어 있으니 다듬기만 하면 된다.
차원의 원(DimensionHole) : ←(모아서) A or B, 지면으로 차원의 원을 보낸다. 원이 지상의 적에게 맞으면 촉수가 튀어나와 상대방의 움직임을 1.5초정도 묶는다. 잡기 기술이므로 가드불가.
플립킥(FlipKick) : ↑ K, 점프 후 한바퀴돌아 발뒤꿈치로 적을 친다. 공중 판정이므로 서서막아야 한다. A,B,K로 연계할 수 있다.
A : 주먹을 뻗어 직접 공격
B : 주먹을 뻗은 지 1초 후 딜레이 공격
K : 하단 발로 휩쓸기
어류겐(UpperKick) : ↓(모아서) K, 대공기
공중잡기(AirGrab) : 공중에서 → A or B, 말그대로 공중잡기
정권찌르기(GrabFist) : ↓→ B, 바로 앞에 커다란 차원의 원을 만들어 촉수를 소환, 잡히면 불주먹으로 공격.
사실 기획이 생각보다 오래걸려서 세컨더리를 먼저 작업하던 중이었다. 일단 하던 것까진 작업하고… 하나하나 작업해 보자.
8.3
내지르기는 약손과 강손의 흐름이 다르다. 처음 기획과는 다소 차이가 있어서 생각을 다시 하느라 시간이 꽤 걸렸다. 약손은 슈퍼아머가 없고 딜레이가 짧다.
강손은 슈퍼아머가 있고 딜레이가 길다. 그리고 가드불가 공격이다. 여러가지 요소가 섞여있는 공격이다 보니 코드도 꽤 손을 봐야 했다. 배틀퀸은 사람의 동체시력이 일반적으로 반응할 수 있는 시간을 0.8초로 잡고 개발하고 있는데, 리그레이의 이 공격이 딱 0.83초 째에 공격이 나간다. 실제로 해봐야 알겠지만, 지금은 좀 짧은 것 같기도 하다.
그리고 어떤 공격이든 히트하면 잡을 수 있다.
8.5
차원의 원 기술은 촉수가 튀어나와야 한다. 총 5군데를 묶어야 하므로 5개를 준비한다. 팔2개 다리2개 목1개.
수정에 수정을 거듭한 시행착오. 본이 적더라도 세그먼트가 많으면 부드럽게 나올 줄 알았는데 그건 구부러져 있을 경우의 이야기고, 아예 팽팽한 촉수를 표현하려면 오히려 세그먼트가 없어야 한다. 즉 딱 본을 쓴만큼 부드럽다. 최근에 하이폴리곤 캐릭터를 제작하다 보면, 확실히 로우폴리곤 리소스를 제작하는 것과는 차이가 있다는 것을 느낀다. 영상용이라면 이 위에 서브디비전등의 스무싱과정을 거치기 때문에 또 제작방식이 다를 것이다.
이제 덫에 걸리는 애니메이션을 만들고 이와 싱크를 맞춘 애니메이션을 제작해야 한다. 이 부분이 좀 까다로운데, 먼저 Empty를 만들어 해당 부위를 따라가게 한 후에, 애니메이션을 베이킹 해준다. 그리고 이것들을 다시 촉수파일로 가져가서 IK가 이를 쫓게 할 것이다.
IK는 위치만을 맞춰주기 때문에 회전애니메이션은 별개의 문제가 된다. 이제 이 애니메이션을 베이킹해서 촉수 모델 파일로 가져온다.
그리고 촉수의 애니메이션.
와.. 그냥 애니메이션 자체가 빡시다.
8.7
촉수는 별개의 .Blend파일로 제작되었고, 이에 따라 프레임 레이트가 기본값인 24fps로 설정되어 있었다. 뜻밖에도 이 프레임레이트는 익스포트 결과에 영향을 끼친다. 캐릭터가 30fps이고, 촉수가 24fps이므로 이것은 실제보다 느리게 재생된다. 따라서 이런 문제가 발생할 땐 30fps로 동일하게 맞춰주어야 한다.
중간 결과물. 아휴.. 아직 갈 길이 멀다.
일단 차원의 원셰이더를 제작. 이전에 도서관 레벨을 제작할 때 만들어둔 셰이더를 개량한다.
하지만 정작 게임을 해보니 지나치게 성능이 좋다. 방어가 소용없는 잡기라서 첫타를 막는다고 해도 콤보는 무조건 맞을 수밖에 없다. 때문에 딜레이를 주는 방식으로 변경하기로 하자.
8.9
촉수 기술에 관한 모든 게 어렵다. 촉수 리깅은 시간이 된다면 좀 더 심도깊게 파고들어야 할 주제같다. 흐물흐물 움직이기만 하면 상황이 좀 나을텐데, 캐릭터를 묶어야 한다는 부분에서 난이도가 매우 어려워진다. 이러면 IK를 사용해야 하고, Ik는 회전 애니메이션 처리가 영 깔끔하지 못하므로 FK와 IK를 나눠서 세팅을 해야 할까? 코드면에서 봐도 ‘장풍형 잡기’는 처음있는 유형이라 모두 예외처리를 하고 있다. 여러모로 까탈스러운 녀석이다.
잡기 딜레이와 원의 셰이더 처리도 끝내고
촉수의 셰이더를 개발하는데 Light가 제대로 들어오지 않는 현상이 있었다. 알고 보니 메뉴바에 Unlit, Shadow Draw Mode가 새로 추가된 것 같다. 원래 있었나…? 이게…
어쨌거나 셰이더도 완성. 차원과 그라데이션으로 연결이 되어야 하는 탓에 생각보다 꽤 복잡한 구조를 띈다.
이번엔 스테이지에 맞게 촉수의 명암색도 변해야 한다. 또한 촉수가 아래에 있다보니 메쉬가 컬링되는 현상이 있어 이도 보정해줘야 한다. 아휴… 뭐 이리 할 게 많아.
Skinned Mesh는 Update When Offscreen만 체크하면 컬링되지 않는다. 일반적인 스태틱 메쉬와 비교하면 쉬운 편.
이런 기술을 Argentine Backbreaker라고 한다.고 한다. 난 그냥 클라크 커맨드 잡기로 기억하고 있다. 아휴. 무릎나가겠다.
7.29
잡기 1완성. 생각보다 작업이 잘 풀리지 않아서 빡센 작업이었다. 확실히 한 번에 잘하는 것보다 기존의 작업을 수정하는 게 3배는 더 오래걸린다. 잘못된 데이터는 계속 그 자리에 남아 마치 조금만 더 하면 작업이 완성될 수 있을 것 같은 착각을 주지만 실제로는 기존의 오류를 수정하고 거기에 제대로 된 값을 넣는 이중작업이 된다.
잡기2의 구상은 원래 이거였다. 이 다음 쿄의 기술처럼 폭발이 일어날 예정이었는데, 특수효과가 들어가는 것이 너무 강하게 느껴졌기 때문에 이를 커맨드 잡기로 빼기로 했다.
까먹은 작업. 여름의 초필1타를 콤보형으로 변경. 여름이의 초필은 얼핏 보기엔 앨리스나 도레미같은 1타같지만 사실 2타로 구성된다. 띄우고-날리고. 때문에 1타가 막히면 더 이상 연결되지 않는다. 앨리스의 초필은 막아도 데미지가 큰 반면, 여름이의 초필은 막혀도 데미지가 별로 없다. 결과적으로 앨리스보다 안좋은 편.
캐릭터를 처음 등록하려면 할 일이 많다. 각종 컴포넌트를 설치하고, 머티리얼을 만들고, 다이나믹 본을 설정하고, 스크립트에 등록하고… 캐릭터가 좀 더 많았다면 자동화했을테지만, 그리 많지 않아 굳이 그럴 필요는 없었다. 대부분의 시간은 다이나믹 본 세팅에 소요된다.
대기자세에서 얼굴의 절반을 가리는 연출은 의도적인 것이었으나, 이것이 입부분만 회색으로 나타나는 그림이 돼서, 결과적으로 수염자국처럼 보이길래 그냥 괴물손을 치워서 얼굴 전체가 드러나도록 변경했다.
그나저나 얘는 노출때문에 노딱이 붙을 줄 알았는데… 의외로 그냥 통과됐군?!
7.24
하지만 다음날 다시 보니 눈을 가리는 이 대기자세가 역시 더 마음에 들어서 다시 롤백
강펀치는 가일에게서 배움.
발톱형 트레일은 사용된 적이 없기 때문에 새로 만들어야 한다. 리그레이의 손가락은 5개이고, 엄지를 뺀다면 할퀴기엔 4갈래 트레일이 사용되어야 이치가 맞지만, 어쩐지 3갈래가 예뻐보이니 그냥 3갈래로 하자.
기본 공격모션까지 적용 완료. 애니메이션은 구상이 반이다. 구체적인 계획만 있다면 키를 잡는 시간은 크게 단축될 수 있다.
7.27
현재까지의 진행상황. 스테이트 대부분은 데미지 애니메이션이다. Dodge스테이트를 기준으로 왼쪽이 데미지, 오른쪽이 공격 애니메이션이다. 격투게임인만큼 잘 맞는 것이 중요하기 때문. 예상했던 모양새이긴 하지만, 생각보다 훨씬 더 많아졌다.
어쨌거나 리그레이의 데미지 모션과 공격 애니메이션까지 완료. 이제 잡기 애니메이션으로 들어가자.
여름의 스킬은 배트를 강하게 휘두르는 것 외엔 정해놓은 것이 없었다. 심적으로나 물적으로나 여유가 없었고, 그 때문에 벌써 스킬 구현을 해야 할 때가 됐다는 걸 모르고 있었다. 일단 여름이를 처음만들 때부터 생각해 놓은 휘두르기부터 구현하고, 그 이후의 스킬은 출퇴근 시간에 구상해보도록 하자.
휘두르기(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
회사일이 바빠지다 보니 작업할 시간이 좀처럼 나질 않는다. 끊기지 않는 것에 의의를 두고 작업하고 있지만, 사실 어제는 쉬었다(도저히 못일어나겠더라!)