한여름 마무리 작업

7.17

천둥번개가 치는 새벽. 뒤늦은 장마비가 시원하게 쏟아져 내린다. 해가 뜨려면 아직 멀었지만 한 번 달아난 잠이 다시 돌아올 기미를 보이지 않아 컴퓨터를 켰다. 조금이라도 작업을 이어가는 것이 중요하다.

메인 애니메이션은 끝났지만, 아직 할 작업이 많다.

  • 세컨더리 애니메이션
  • 다이나믹 본 세부설정
  • 이펙트 붙이기
  • 2P컬러지정
  • 실루엣 제작
  • 가시 버텍스 컬러 지정

이 중 가장 지루한 작업은 세컨더리 애니메이션이다. 얘는 특히나 본도 많은데, 자켓과 치마가 꽤 겹치기 때문에 할 일이 많다.

AI는 뭐하니. 이런 것 좀 해주지… 하나하나 해보자.

7.19

세컨더리 애니메이션은 자켓-스커트-머리카락-표정 순으로 진행된다. 수십개에 달하는 본을 모든 애니메이션에 맞게 예쁘게 표현하는 것은 사실상 불가능하기고 노력에 비해 효과또한 적기 때문에 중요한 프레임에만 모양을 잡아준다.

모션이 매우 많기 때문에 이런 세컨더리 본을 제어하기 위해선 에셋 브라우저에 등록해 놓으면 좋다. 이 등록 과정이 다소 귀찮기 때문에 그냥 포즈 카피를 쓰는 경우도 많긴 하다.

7.20

데미지 시의 가시 이펙트를 작업하지 않은 게 꽤 된 것 같아서 비네트를 살펴봤더니, 안되어 있었다.

주거니 받거니

전부터 2P컬러의 규칙을 일관적으로 유지시키는 방안을 고민하고는 있었다. 색이 너무 달라지면 캐릭터가 변한다. 신체의 특징(머리카락)등은 유지하는 것이 어떨까.

적용해 보니 괜찮아 보인다. 모두 적용하기로 하자. 여름이의 2P컬러는 한화에디션(유튜브 댓글 중 어떤 한화팬의 요청이었다.)

이로서 여름이 완성! 긴 작업이었다.

한여름의 애니메이션 #3

7.3

여름의 스킬은 배트를 강하게 휘두르는 것 외엔 정해놓은 것이 없었다. 심적으로나 물적으로나 여유가 없었고, 그 때문에 벌써 스킬 구현을 해야 할 때가 됐다는 걸 모르고 있었다. 일단 여름이를 처음만들 때부터 생각해 놓은 휘두르기부터 구현하고, 그 이후의 스킬은 출퇴근 시간에 구상해보도록 하자.

휘두르기(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

밟고 발리킥. 첫타는 하단이다.

점핑 스매시. 두번째 타격은 점프공격이기 때문에 앉아서 막지 못한다. 밟기공격과 함께 이지선다를 노려 상대를 혼란스럽게 하는 용도.

7.12

한여름의 모든 스킬 완료. 이제 세컨더리 애니메이션의 시작

한여름의 애니메이션 #2

6.25

잡히기 애니메이션이 점점 늘어나서 이것만으로도 하루일과가 날아가는 지경에 이르렀다. 그래도 한 번만 하면 되는 일이니까… 꼼꼼히 해두자.

6.26

잡기1.

6.28

잡기2. 앨리스를 그렇게 차다간 사실 네 무릎이 더 아플 것 같지만…

6.29

모션 자체도 꽤 어려웠지만, 끝의 날아가는 모션을 위해 데미지 모션이 하나 더 추가됐다. 더 이상의 추가는 없을 줄 알았는데…!

6.30

순전히 승리포즈를 위해 넣어두었던 소품들.

7.2

피로가 누적되어 하루 쉬었다. 최근은 회사에서 야근 중이라 좀처럼 시간이 안난다. 하이고, 되다.

이로서 여름의 기본 애니메이션도 완료. 스킬로 넘어가자.


to AnAccount :
I try to blow a bubble when she walk. You can find the early part of the clip.

한여름 애니메이션 #1

6.15

주말동안은 완전히 늦잠을 잤다. 적어도 10시간은 넘게 잤는데 이마저도 모자랐는지 낮잠까지 잤다. 최근엔 시간이 날 때 작업을 해야 한다는 강박관념이 생겨서 의도적으로 쉬었다. 그래봐야 개인적인 취미생활인데, 팬도 생기고 유명세를 조금 타니 조급증이 도지나 보다. 고약한 병이다. 아직 갈 길이 멀다. 쉬어야 한다.

캐릭터의 이름에 맞게 때마침 여름이다. 이젠 과잠이 더워보이는 계절이 됐다.

6.16

다이나믹본은 예상보다 더 많이 뚫린다. 디자인상 겹쳐 있는 파츠가 많다 보니 별 수가 없다. 세컨더리 애니메이션에서 최대한 맞춰보는 수밖엔.

6.19

회사일이 바빠지다 보니 작업할 시간이 좀처럼 나질 않는다. 끊기지 않는 것에 의의를 두고 작업하고 있지만, 사실 어제는 쉬었다(도저히 못일어나겠더라!)

자켓과 치마의 대환장 콜라보레이션. 닐리 시즌2.

6.20

약손 모션이 좀 수정됐으면 좋겠다는 의견이 많아서 주먹으로 수정했다.그리고 근접 킥

6.21

앉아서 킥은 장풍을 피할 수 있다. 달심형 공격

6.23

데미지 모션 제작 기간.

6.24

타격데미지까지 완료. 이제 잡기 데미지 작업에 들어가자.

배틀퀸 팬 서버 디스코드(Discord)

해외의 어느 팬 분이 만들어준 팬 서버입니다.

https://discord.gg/guqDRtQ4MJ

이럴 수가..! 초대만료가 되지 않는 주소를 설정할 수 있었다니… 지금까지 뭔 삽질을 한거야!

P.S. 미안해요. 아주 잠깐 초대주소가 잘못돼 있었습니다! 지금은 정상입니다.

Oops, sorry! If you were trying to join the Battle Queen channel, it looks like the link was wrong. Here’s the correct one

비네트의 세컨더리 애니메이션

6.8

장치마는 다리가 많이 뚫린다. 손이 참 많이간다…미니스커트도 어렵지만 얘도 어렵다. 귀찮기로 따지면 둘이 비슷할 것 같다.

어쩌겠는가. 게임제작이 그런 반복의 집합인 것을. 그저 꾸준히 하는 수밖엔…

6.10

잠이 부족해서 하루를 건너뛰었다. 모자란 잠은 반드시 수일내로 청구서를 보내기 마련이다. 건강이 우선.

해서 여전히 세컨더리 작업 중. 지루한 작업이다.

6.11

협업을 위한 Git설정으로 하루가 갔다. 언젠가 이 괴상한 시스템을 만날 거라는 각오는 하고 있었다…

6.12

원래는 작업을 하루 쉬려고 했었는데, 뜻하지 않게 시간이 나서 비네트 마무리.

그런데 .. 우산…! 그림자 색이 다르다. 게다가 늘 펴져있는 상태이다.

이것은 작업할 때 그림자는 방해가 되므로 숨겨놓은 채 작업을 하는데, 익스포트할 때는 다시 켜주어야 정보가 들어간다. 그런데 이를 까먹은 것이다. 다시 익스포트를 해 주어야 한다.

아. 2P컬러도 까먹었구낭…아직 끝나지 않았다…

6.13

2P컬러지정. 다른 캐릭터였다면 별 거 아니었을 이 작업이, 우산하나 때문에 일이 많았다. 비네트는 앨리스 다음으로 애를 먹었던 캐릭터 같다.

캐릭터 선택 화면 페이즈2

6.7

비네트의 선택을 처리하기 위해서는 먼저 캐릭터 선택화면의 개량이 필요하다. 기존의 8캐릭터만 선택가능한 화면은 페이즈1화면으로, 스토리 모드를 한 번이라도 클리어하기 이전의 화면이다. 스토리 모드를 한 번이라도 클리어하게 되면 페이즈 2화면이 되는데, 이 때부터 12캐릭터 + 히든 아이시의 선택이 가능해진다.

선택화면 레이아웃은 페이즈1을 디자인할 때부터 구상해 두었던 것이다. 히든인 아이시는 멜라에 커서를 둔 상태에서 아래로 3번 내리면 선택되게 할 예정이다.

이제 이미지를 줄일 시간인데, 프리뷰와 품질차이가 있다…오른쪽 경계선 옆쪽이 깔끔하게 떨어지지 않고 1픽셀의 이격이 발생한다. 이유가 뭘까 고민해봤는데 원본의 가로길이가 홀수라 그런 게 아닐까 싶다. 포토샵은 0.5픽셀을 표현하지 못하니까, 양 옆 픽셀을 섞어서 중간색을 취할 것이다…1픽셀을 지우던가 늘리던가 해보자.

좀 낫다.

하지만 완벽하진 않다. 어쩔 수 없지.

페이즈 완료. 휴일의 힘을 빌려 일찍 끝냈다. 영상을 올리고 나니 보이는 버그. 수정하자.

비네트의 애니메이션 #5

6.4

러프한 구현. 아직은 버그가 많다. 앨리스만큼은 아니지만 상당히 오래걸리고 있는 비네트.

1차 구현 끝. 아휴… 많이 닳는다.

우산아래는 상대적으로 안전하다. 그리고 비네트도 무방비상태. 하지만 그렇다고 비네트를 때리면 그 때부터 우박을 처맞는 구조.

6.5

이펙트까지 구현완료. 우박을 얼음 재질로 했더니 너무 유리같아서 하얗게 했더니 그냥 눈같기도 하다. 이제 내일 애니메이션만 손보고 마무리하면 될 듯.

6.6

스턴 모션이 마음에 안들어서 다시 제작

승리/패배 모션도 만들어 붙이고

6.7

캐릭터 선택 모션을 붙이기 위해선 추가 작업이 필요하다. 바로 선택 화면의 페이즈2가 필요하다.

비네트의 애니메이션 #4

5.23

이제 7개정도 처리한 것 같다. 생각보다 더 오래 걸리고 있지만, 허투루 하면 나중에 어차피 다시해야 하기에 확실히 해두는 편이 좋다.

5.24

역대급으로 처리가 어려웠던 비네트의 조심해요! 스킬.완료!

5.25

이제 그네타기를 제작할 차례인데…이건 애매한 부분이 있다. 현재의 캐릭터는 전체적으로 평면적 공간에서 약간 회전된 상태로 제작된다. 이는 순수하게 심미적으로 예쁘게 보이기 위한 처리이다.

그래서 이것을 앞에서 볼 경우

이렇게 손이 어긋나는 문제가 발생한다.

가장 심플한 해결방법. 보조본을 사용해 수동으로 위치보정을 해준다…가 생각보다 잘 작동한다…? 그냥 이렇게 쓰면 될 것 같다.

이제 그네를 모델링하기 전에… 길이를 맞춰야 한다. 배틀퀸은 공중에 있을 경우 타격판정에서 다리를 제외한다. 공중공격을 좀 더 유리하게 만들기 위한 조치다. 때문에 다리를 주욱 뻗고 공격하는 이 자세는 판정면에서 꽤 유리할 것이다. 하지만 줄이 길면 궤적이 길어져 공격이 느릴 것이고, 줄이 짧다면 화면중간에 줄이 끊기니 그 자체로 문제가 있다. 적당한 길이를 맞춰야 한다. 유니티로 가서 길이를 재어보자.

더미로 대충 만들었던 그네인데, 한 번에 적절한 값을 찾았다. 행운이 뒤따르니 오늘 완성할 수 있을 지도!?

5.26

코드를 처음 적용한 그네. 난리부르스. 원래 무엇이든 처음엔 다 이 모양이다.

5.27

그네와 싱크가 맞지 않는 문제가 있다.

5.28

그네도 구현 완료. 이로서 난항이 예상됐던 2개의 스킬이 끝났다!

이제 자전거 타기를 구현해야 할 차례. 일단 자전거 모델이 필요하니 사자.

https://www.acon3d.com/ko/product/1000033948

5.29

블렌더로 가져오니 폴리곤이 5만개 가까이 된다. 그냥 써도 사실 문제는 없겠지만, 마음이 불편하다. 정리를 하자.

5.30

폴리곤 정리를 하고, 게임용 셰이더로 맞추자. 예상은 했지만 소품이 참 많이 필요한 아가씨다.

5.31

이제 자전거 리깅을 하고

코드에 적용. 야, 자전거 타고 가야지!!

6.1

Cursor가 좋다길래 함 써봤는데, 프로젝트 전체를 훑으며 코드를 보는 능력은 탁월한 것 같다. 다만 이거에 의존하게 되니 순식간에 뇌가 안돌아가는 느낌을 받게 된다. 코드란 건 사실 머릿속으로 생각한 걸 그대로 짜는 게 더 빠르지 않은가… 의도를 말로 설명하는 게 더 힘들다. 제대로 전달되지도 않는 것 같고. 버그가 잘 안잡힐 때만 간간히 사용해야 할 것 같다.

코드 구현은 거의 완료.

다운데미지가 있었더라면 재밌었겠다는 생각이 든다.

6.2

자전거 타기도 완료. 앞선 2개만큼은 아니지만 꽤 힘들었던 작업.

6.3

이건 생각보다 우산이 잘 보이지 않는 문제가 있고, 크게 재미있지도 않은 것 같아서 삭제

일단 일반스킬은 모두 제작했다. 초필을 만들어 보자.

비네트의 애니메이션 #3

5.15

원래대로라면 캐릭터의 선택/등장 애니메이션을 작업해야 할 시점이지만, 이를 처리하기 위해선 캐릭터 선택화면의 페이즈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기능을 활용한 것이다. 기존에는 만들어질 애니메이션을 예측해 각 관절을 차례차례 잡는 방식이었는데, 최근의 작업방식은 좀 더 전통적인 애니메이션 방식(원화간 프레임을 동화로 보간)에 가깝다. 기존의 방식보다 결과물 예측도 쉽고 빠르다. 자신의 실력이 또 한단계 향상되었다는 것을 느끼는 것만큼 기쁜 일이 또 있을까!

이제 떨어질 물건들을 구할 차례. 하늘에서 물건이 떨어지는 것은 차원의 틈새로 이세계의 물건들이 떨어지는 것이다. 따라서 무엇이든 떨어질 수 있다.

그럼 사야지. 일단 그 후보.

https://superhivemarket.com/products/620-urban-trash-assets-complete-pack?search_id=39923671

5.17

물건이 떨어진 후엔 그 물체가 부셔져야 한다. 그리고 그 물체에서 부셔진 파편들이 땅에 떨어져야 한다. 파편은 곧 파티클인데, 파티클의 충돌이 되던가? 리소스를 만들기 전에, 이에 대한 조사가 선행되어야 한다.

유니티의 파티클은 구형 충돌만 지원한다. 게다가 구르지도 않는다. 완전한 물리 시뮬레이션이라기 보단 트랜스폼 기반의 단순조건식이다. 그 이상을 원한다면 파티클로 처리하면 안된다.

스펙은 알았으니 제작해보자.

아그엉릉ㄴㅁㄹ엄ㄴ 만들기 싫어…

마켓을 뒤지자.블렌더 마켓은 최근에 슈퍼하이브라는 이름으로 개편되었나 보다.

마침 식물이 할인 중이다!?

https://superhivemarket.com/products/the-plant-library

와. 정말 좋은 어셋이다! 자주 쓰게 될 것 같다.

하늘에서 떨어지는 오브젝트들은 조명의 영향을 받아야 하기 때문에 실시간 처리되어야 한다.

때문에 리스트를 뽑은 후, 리토폴로지 과정이 필요하다. 아휴 귀찮아..

5.18

생각보다 일이 간단하지 않다. 물건이 떨어지는 로직은 상당히 복잡하다.

  • 오브젝트가 캐릭터에게 맞았다면 그 물건이 부셔져야 한다. 이 때 부셔지는 요소를 단순 파티클로 처리할 것인가? 컴포넌트가 붙은 오브젝트로 처리할 것인가?
    • 만약 오브젝트로 처리할 경우, 쓰레기통처럼 2개로 분리되는 오브젝트에 대해선 어떻게 처리를 할까?
    • 파티클로는 원하는 움직임을 구현하지 못하는 것이 확실한데, 스킨드메쉬까지 사용해 가며 고비용으로 처리할 것인가?
  • 땅에 떨어졌을 때의 파편은 캐릭터에게 맞았을 때와 같은 이펙트를 사용할까? 공중에서 무언가에 맞았을 때와 땅에 떨어졌을 때의 파티클은 튕기는 정도나 궤적이 다를텐데 무엇이 더 나은 선택일까?
  • 고장난 요소를 어디까지 모델링해줄 것인가?
  • 발사체로 처리한다면 추후 추가될 한여름의 장풍반사에 반응할 것인가? 궤적이 좀 이상해지지만 게임적 요소로는 더 재미있긴 할터인데.
  • 오브젝트가 사라질 땐 어찌할 것인가? 디졸브? 스케일다운?
  • 파티클은 열외로 치더라도 본체를 위한 셰이더를 별도로 쓸 것인가? 비네트에 포함시킬 것인가?
  • 낙하궤적은 사인곡선을 사용해 가속을 줄 것인가? 등속으로 해줄 것인가?
  • 낙하 예고는 어찌해줄 것인가?
  • 기타등등

이것들을 쉽게 할 수도 있지만, 후회가 남을 것 같았다. 그래서 이 구현의 난이도를 상급으로 올리고 진지하게 임해보도록 하자.

일단 모델링 리토폴로지.

텍스처링

5.19

애니메이션

비네트 본체에 애니메이션을 끼워넣고

코드를 짜고

좀 작네..? 뭐 그건 중요한 게 아니고…

5.20

제작방침을 스킨드메시가 아니라 정적 메시로 변경했다. 기존 계획이 워낙 일이 크기도 하고, 예외처리가 많아서이다. 그보단 기존의 발사체에 대응하는 것이 제작이 편하다. 스킬을 제작할 땐 원래 코드작업이 좀 있는 편이었지만, 이번엔 꽤 크게 걸렸다. 덕분에 진전이 없다. 오늘은 끝장을 볼 수 있을 줄 알았는데, 코드 작업조차 끝내지 못했다.

낙하지점을 예측할 수 있는 그림자처리가 오늘의 유일한 성과

5.21

마참내! 기초 작업을 끝냈다.

기술명 : “조심해요!”, 사실 비네트가 그 대사를 외치지 않으면 일어나지 않을 일.

5.22

오늘은 기타를 부수는데 시간을 다 쓴 듯.