비네트의 애니메이션 #2

5.9

이제 데미지 관련 모션들을 제작해 보자. 격투게임에서 잘 때리는 것만큼이나 중요한 것. 잘 맞는 것.

앉아서 방어

5.10

데미지 모션은 난이도가 쉬운 편이다. 컨셉이 정해져 있고, 모션이 짧다. 그저 차근차근 진행하면 된다.

스턴모션은 뭔가 할머니 같다…

상체를 조금 들어줬더니 좀 나은 것 같기도.

낫지 않아. 결국 수정

5.11

잡기모션 처리 중 생각지도 못했던 셰이더 이슈가 발생. 입에도 셰도우 패스를 곱해줘야 한다. 어라… 이거 전에 했던 것 같은데..

                // 메인 셰도우
                float3 frontL = normalize(L * float3(1, 0.5, 1));                                      
                float baseShading = dot(N, frontL) * light.shadowAttenuation;                                
                float toonShading = step(0.3, baseShading);    

역시 해주고 있잖아. light.shadowAttenuation은 셀프셰도우를 뜻한다.

추적 결과, 원인을 찾았다. 최근까지 입을 AlphaTest로 그리고 있었는데, 배틀퀸은 해상도를 꽤 높게 렌더링하고 있음에도 불구하고 실제 게임에서는 입이 생략되어 나오는 경우가 많았다. 알파값이 임계점을 못넘은 것인데, 이 때문에 닐리나 오로라처럼 대기자세에서 입이 크게 표현되는 경우가 아니라면 입 자체가 생략되어 버리는 경우가 많았던 것. 그러나 개발기간이 길어지며 이걸 까먹고 ‘이게 왜 반투명이 아니지?’싶어서 설정을 바꾸니 오류가 일어났던 것이다. 그럼 … 좀 이상한 방법이긴 한데, 큐를 3000번 이전에 그리면…?

되기..는 된다. 그런데 이것도 좀 이상하다. ZWrite를 켜놨는데… 그럼 Z엔 뭘 쓰게 되는거지…?

혼란스럽네?! 입은 얼굴로부터 일정 수준 떨어져 있다. 그러므로 Z엔 폴리곤 정보…아…

일반적인 경우라면 Z에는 Opaque나 Cutout처럼 확실하게 짤리는 마스킹만 쓰게 되어 있다. 하지만 반투명은 시스템 안티앨리어싱과는 다르다. 즉, 반투명도 Z에 써지기는 한다. 다만 이렇게 할 경우 다른 반투명과 뎁스 충돌을 일으키기 때문에 그리 하지 않을 뿐이다.

하지만 입의 경우 사용처가 매우 한정적이라 사용해도 될 것 같다. 원하는 결과다.

5.12

비네트의 잡기애니메이션은 이전에 비네트의 기본 이동 애니메이션을 업로드했을 때, 댓글로 달린 아잉-f2x님의 아이디어에서 착안했다. 우산 속에서 뭘하는 지는 나도 모르겠다.(…)

하지만 이를 위해 처리를 해야 할 거대한 작업이 하나 있는데, 그것은 얼굴 홍조의 처리.

사실 멜라의 잡기에 키스를 넣을 생각이었기 때문에 언젠가 필요한 작업이기는 했다. 당연한 이야기지만, 얼굴이란 생각보다 훨씬 더 다양한 감정을 표현한다. 이 게임을 처음 개발할 당시, 캐릭터를 이렇게까지 디테일하게 표현할 생각이 없었기 때문에 중요하지 않은 것들(+번거로운 것들)은 제외하고 작업을 했었는데, 결국 프로젝트를 매듭짓기 위해서는 모두 필요하다.

이 홍조를 표현해주기 위해서 각 캐릭터를 돌며 홍조메쉬를 추가하고, 컨트롤러를 설정하고, 드라이버를 설정하고, 모델을 다시 익스포트해준 후에, 유니티로 가서 셰이더를 추가하고, 셰이더 드라이버를 업데이트해주어야 비로소 게임에서 이것이 제대로 돌아가는걸 확인할 수 있다. 프로젝트는 첫단추를 잘 꿰야 한다. 흑흑.

컨트롤러 아이콘부터 제작

셰이더와 드라이버를 연결.

잠이 늘어 작업시간이 적다. 나머지는 내일 하자.

5.13

겨우겨우 유니티에 띄웠다.

새로 추가된 셰이프키가 키를 지정하지 않았을 경우, 기존의 값이 쓰레기값으로 남아 이후의 모션에 영향을 끼치지 않을까? 하는 것이었는데 다행히 다른 모션에서 별다른 키가 지정되지 않았을 땐 기본값인 0으로 돌아간다.

원래 이 공격의 컨셉은 정신공격이었다. 귓속말로 “너 살찐 것 같은데?”같은 대사를 하는 것인데… 얼굴이 빨개지는 이유는 나도 모르겠다.(…)

5.14

잡기2번. 동전줍기. 이걸 작업하며 확실해진 컨셉. 비네트는 덜렁대며 여기저기 머리를 부딪힌 탓에 머리가 매우 단단하다!

애니메이션은 완료가 됐는데, 적용을 하려면 시간이 좀 더 필요하다. 하지만 오늘은 타임오버. 내일 적용해 보자.

5.15

데미지 애니메이션까지 완료. 이 다음은 캐릭터 선택 애니메이션인데, 이게 일이 크다.

스킬 애니메이션을 먼저 만들어 보자.

비네트의 애니메이션 #1

5.2

본격적인 애니메이션을 작업하기 전에 충돌메쉬를 만들자. 충돌 메쉬는 치마처럼 이중 레이어의 구조를 가진 캐릭터들을 작업할 때, 본을 다리밖으로 빼내거나 붙이기 위해 지침이 되는 메쉬이다. 이는 게임엔진으로 익스포트되지는 않고, 작업할 때만 사용된다.

블렌더를 처음 배울 때 혼란스러운 것이 바로 아웃라이너 오른쪽의 아이콘들이다. 화살표는 선택가능 여부, 맨 끝의 카메라는 렌더링 여부이다. 그렇다면 도대체 눈과 모니터의 차이가 뭘까? 둘 다 오브젝트를 숨기거나 보여주는 기능이다. 하지만 모니터를 꺼둘 경우 alt+h(숨긴 메쉬 보이기)로 보여지지 않는다. 충돌메쉬처럼 영원히 안보이고 싶은 메쉬에 설정해주면 좋다.

대기자세에서 얼굴이 잘 보이도록 하고 싶었기 때문에 머리를 땋은 방향을 반대로 변경했다. 달래도 마찬가지 이유로 머리를 내린 방향이 원화와 반대로 되어 있다.

이를 위해선 본의 위치를 반전시켜야 한다. 그렇다면 필요한 본을 분리한 후 스케일을 -1시켜야 하는데 이 때 주의해야 할 것들이 불필요한 드라이버의 삭제이다.

이 드라이버들은 분리되어 나온 모체에서 사용하는 것들이다. 이 상태로 아마추어를 합칠 경우, 드라이버가 중복설정이 된다. 2배 중복 정도로는 성능에 크게 영향을 끼치지 않지만 이러한 작업이 잦아질 경우 작업을 할 수 없을 정도로 느려지기 때문에 분리한 아마추어에선 반드시 미사용 드라이버를 지워주는 편이 좋다.

아마추어는 사실 첫 설정에서 아무 것도 건드리지 않는 편이 이상적이다. 그러고 보니 이전 프로세스를 진행할 때에도 비네트 작업을 할 때만 말이 참 많았던 것 같기도 하다.

비네트의 대기 자세. 비네트는 사실 싸움을 못한다. 그러나 극단의 운빨로 상대를 무력화시키는 컨셉을 갖고 있다. 그녀의 의지와 상관없이 그녀의 움직임에 따라 상대는 데미지를 입는 식이다. 때문에 대기자세도 전투적이면 안된다.

5.3

비네트의 앞걷기는 경쾌하고 발랄한 느낌을 주기 위해 꼬마 아이들처럼 걷도록 만들었다. 그런데 이것이 난이도가 꽤 높아서 하루 종일 걸렸다. 보기엔 참 쉬워 보이는데 말이다. 더구나 동작이 살짝 느린 것 같아서 게임에 어울릴지 모르겠다… 잘 어울렸으면 좋겠다.

5.4

우산이 셰이프키 형태의 애니메이션으로 교체되며 생긴 영향. 메쉬가 엄청 많아졌다…

최적화에 좋지 않은 영향을 끼치긴 하지만, 메쉬가 많아지는 것이 싫어서 스킨메쉬를 하나로 통일한 것인데, 셰이프키가 붙어있을 땐 메쉬 수정에 제약이 꽤 많다. 이 때문에 우산을 별도의 메쉬로 분리하는 것은 맞다. 그러나 이로 인해 아웃라인과 그림자 메쉬도 별도로 써야 한다. 관리가 조금 귀찮아지고 Shadow메쉬에 들어가는 Decimate도 수동으로 해 주어야 한다. 할 일이 좀 있지만 1회성이라 다행이다.

이제 유니티로 넘기고…

머티리얼을 연결하고…

데이터를 등록하고…

오랫만에 캐릭터가 엔진에서 돌아가기 시작한다.

이번엔 다이나믹 본에 꽤 공을 들였다고 생각했는데, 치마가 생각보다 많이 깨진다. 이는 나중에 세컨더리 본을 처리할 때 한 번에 처리할 것이다. 게임 개발은 예전에 비해 많이 자동화가 됐지만, 작던 크던 마무리는 결국 사람 손을 거쳐야 한다. 이 사실만은 영원히 변하지 않을 것 같다.

근접 우산 공격. 본인만 신나서 민폐를 끼치는 타입.

5.7

앉아서 강펀치. 본래 비네트는 모든 공격을 우연에 의한 민폐 컨셉으로 계획을 했었다. 때문에 모든 공격은 비공격적으로 제작하고 싶었으나, 이것은 한계가 명확했다. 장우산은 실생활에선 다양하게 민폐를 주긴 하지만, 이를 20프레임 남짓되는 짧은 공격모션에 녹여내기가 쉽지 않다. 이틀간 쉬면서 이 모션에 대해 고민했으나 도무지 떠오르지 않아 이는 일반적인 공격모션으로 대체되었다. 기억에 남는 몇몇 장면만으로는 캐릭터가 만들어지지 않는다. 창작의 고통이란, 이렇게 비어있는 부분을 뭘로 채울지 고민하는 과정이리라.

하지만 여전히 수정하고 싶은 마음이 크다. 공격 작업이 끝날 때까지 꾸준히 고민을 해보자. 뮤즈의 선물은 불현듯 찾아오는 법이니까.

근접 킥은 발을 헛디뎌서 박치기라는 컨셉이었는데, 게임하기엔 좀 답답한 감이 있다.

뮤지컬 배우같은 컨셉으로 발박수를 넣었는데, 이건 생각보다 너무 안어울린다. 폐기.

오히려 이건 괜찮아 보인다. 역시 게임에 넣어보기 전까진 알 수가 없다.

공격 타이밍은 둘째 치고, 전반적으로 ‘독특한’모션이 게임과 지나치게 안어울리는 감이 있다. 몇몇개는 그냥 공격적인 모션으로 변경할 필요가 있어 보인다.

5.8

모든 공격 애니메이션을 일단락. 제작하는 나도 혼란스러운 캐릭터다.

멜라 & 아이시 리깅

5.1

멜라는 예상보다 일찍 끝났다. 애초에 별 게 없었지만, 작업을 하다보면 변수가 생기는 법이라 그 어떤 문제가 튀어나올 줄 알았는데 아무런 문제가 없었다. 야호.

그래서 아이시로 넘어가자.

5.2

긴머리 + 치마는 기본적으로 많은 본을 차지한다.

아이시는 자켓을 입고 있지만 타이트한 타입이라 추가적으로 본을 심을 필요는 없었다. 그냥 윗도리의 연장선이라 볼 수 있으므로 모든 웨이트는 상체본에 물린다.

이렇게 아이시도 완료. 휴일의 힘! 그 다음은 다시 처음으로 돌아가 비네트의 애니메이션이다.

리그레이 리깅

4.29

기본적으로 리깅은 수학적이다. 실시간 3D게임이 폴리곤을 별로 사용하지 않던 시절, 게임 릭 설정 시간의 대부분은 웨이팅에 할당되었다. 하지만 폴리곤이 많아지며 웨이팅은 별로 중요하지 않게 되었고, 본의 심도깊은 세팅과 스크립트가 더 중요한 시대가 됐다.

하지만 리깅이 어설퍼도 캐릭터는 움직인다. 애니메이션만 좋다면, 아무리 허접한 리깅이라도 그럭저럭 잘 움직인다. 이 때문에 리깅은 그 중요성에 있어 언제나 후순위로 밀려있다. 배우기도 어려운데 취업도 잘 안된다. 그 때문에 유튜브든 블로그든 자료가 많지 않다.이것이 내가 리깅에 애를 먹는 이유다. 아휴 힘들어.

어깨 숄의 리깅은 벨의 것을 그대로 따왔다. 여기에 여름이의 자켓에 활용한 헬퍼본 기반의 위치교정을 좀 섞었다. 여러 모로 고민한 결과 3D캐릭터에게 숄을 사용하려면 클로스말고는 완전한 해답이 없어보인다. 그렇다고 클로스를 쓰자니 일이 너무 복잡해지고, 동영상처럼 정해진 프레임을 재생하는 것이 아니기 때문에 튀는 부분이 분명 발생할 것이다. 튀는 부분은 프레임을 느리게 돌려 계산해야 하는데, 그렇게 계산해 베이킹한다쳐도 인게임에서 동작간 보간이 안된다. 이것이 게임에서 숄을 뭔가 단단한 물건처럼 느껴지게 만든다. 결국 여기까지 고민하고 나면 다시 본 링크 베이스의 작업으로 돌아오게 되고, 적당한 선에서 타협을 봐야 한다. 그런데 그것치곤 벨의 숄 본 설계가 꽤 잘된 것 같긴 하다. 잘했어. 과거의 나.

4.30

숄부분에 어깨를 뚫는 현상이 있지만, 그럭저럭 완료. 멜라로 넘어가자.

비네트 리깅

4.23

의외로 많이 고민했던 요소는 팔 옆에 달린 리본이다. 그렇게까지 티가 나지는 않지만, 또 안움직이자니 좀 섭섭한 정도의 크기. 다이나믹본은 무조건 본을 2링크 이상 심어야 하므로 한 쪽 리본에만 총 8개의 본이 필요하다. 그런데 저번 테스트에서 CPU가 할 일이 없어 놀던 기억이 났다. 그냥 진행하기로 하자.

우산 설계 중… 이거 맞나..? 본이 느무 많은데..?

4.24

우산을 세팅은 완료했지만, 셰이딩이 영…

이럴거면 모핑이 낫지 않을까…흑흑

오늘은 타임오버이니, 내일 다시 도전해보기로 하자.

4.25

셰이프키가 있는 상태에선 메쉬 변형이 불가능하다. 이 말은 셰이프키를 만들고 나서 미러 혹은 버텍스 합치기를 할 수 없다는 이야기이다. 그나마 다행스러운 점은 폴리곤 구조가 같은 2개의 모델에 각각 서브디비전을 적용해도 버텍스 인덱스가 유지되기 때문에 한 쪽 모델에서 다른 쪽 모델로 셰이프키를 땡겨올 수 있다는 점이다.

그러나 이 작업들은 최소한 모든 점이 합쳐진 완성된 로우폴리 모델에서 작업되어야 한다. 우산같은 경우 와이어로 구분되는 12개의 면이 같은 모양을 하고 있다. 때문에 모든 면을 모두 수동으로 만들지 않고 하나의 면만 작업해 복사하는데, 이게 안통한다. 옘병! 때문에 12개의 면을 수동으로 작업해 주어야 한다.

하지만 사실 이건 그리 큰 일은 아니다. 방향만 정해지면 이런 반복작업은 의외로 싱겁게 끝난다. 정말로 어려운 것은 이 결론에 도달하기까지의 과정이다. 이리했다가 저리했다가, 지웠다가 붙였다가. 이 숱한 시행착오 과정은 겪고 나면 남는 것 없이 시간만 아까운 것처럼 느껴지지만 모두 경험으로 남는다. 추후에 비슷한 문제가 발생했을 때 문제 해결 시간이 상당히 줄어들고, 이것이 작업 속도에 막대한 영향을 끼친다. 삽질은 생각보다 할만하다

사흘간의 삽질을 통해서, 우산이란 게 생각보다 훨씬 복잡한 물건이란 걸 알게 됐다. 3단우산으로 하지 않아 얼마나 다행인지.

셰이프키를 썼으니 메쉬를 따로 떼두는 편이 좋겠다. 하지만 오늘은 타임오버.

4.26

우산의 구동방식을 본에서 셰이프키로 바꾼 후 본을 지우는 과정에서 다리본을 지워버리는 거대한 삽질을 했다. 이 때문인지는 몰라도 다리부분의 웨이팅작업도 모두 어그러져서 다리부분은 결국 처음부터 다시 작업을 해야 했다. 리깅작업이 오랫만이라 그럴까. 유독 삽질이 많았던 비네트.

우산을 접었을 때는 끝자락이 팔락여야 한다. 그런데 이게 다이나믹본에서 잘 작동할지 모르겠다. 안되면 수동으로 해야 하는데… 테스트해보자.

잘안되는 듯..? 망했다. 수동당첨.

그럼 컨트롤러의 모양을 바꿔두자. 흑흑

어쨌거나 리깅 완료.

스샷을 찍고 나니 우산 와이어 캡들이 커보여서 수정했지만.. 색깔도 그렇고 여전히 다소 애들 우산같은 느낌이다. 하지만 이제 돌아갈 수 없다!

아이시 모델링

4.18

아이시는 히든 캐릭터다. 하지만 숨겨져있다고 안만들어도 되는 것은 아니다. 품은 똑같이 들기 때문에 역시 만들어주어야 한다. 게임에는 돈이 있고 이 돈을 사용해서 컨티뉴 혹은 버프를 구매할 수 있다. 아이시는 일정량의 돈이 되면 캠페인 모드 중 갑자기 등장해 내기를 건다. 이기면 돈을 건만큼 더 받을 수 있고, 지면 돈을 뺏긴다. 물론 이는 유저의 선택이다. 싸우지 않을 수도 있다.

그림을 아무 것도 모를 때 디자인한 캐릭터라 몇몇 부분을 다시 디자인했다. 이제 모델링해보자.

옆머리카락이 그림처럼 벌어질 시 아무래도 무척 촌스러워져서… 그냥 붙였다.

4.19

조금 더 전진.

애가 유튜브 보는 동안 좀 더. 요샌 와치카를 즐겨보는 것 같다.

4.20

아이시는 무난히 완성될 줄 알았다. 그랬어야 했다. 애초에 별 게 없는 디자인이었고, 딸린 장비도 많지 않았기 때문이다. 그런데 삽질을 너무 많이 했다. 쉽게 봤던 작업이 의외로 어려움을 보일 때 많이 헤매는 경향이 있다. 치마의 뚫는 부분들은 본을 세팅한 후에 밖으로 빼내 줄 것이다.

하지만 그럼에도 불구하고, 작업영상을 모아 16배속을 돌려보니 기존과 비슷한 42분이 나왔다. 신기한 일이다.

어쨌거나 완료! 이제 다시 비네트의 시간이다

멜라 모델링

4.13

멜라는 배틀퀸이었다. 이 세계를 지배하는 세 개의 가장 큰 권력 중 하나였다. 어린 나이부터 천재적인 재능을 보인 이 소녀는 최연소의 나이로 배틀스톤을 승계한다. 세상에 겁날 것이 없었고, 하늘을 찌를 듯 오만했다. 하지만 거기서 그쳤어야 했다. 개인적인 영위라면 부족할 것이 없었으나 멜라는 신에게 도전했다. 그리고 돌이킬 수 없는 결과를 얻었다.

신이 준 상처를 안고 멜라는 살아가야 했다. 그녀는 배틀스톤을 사용해 자신의 병을 치료할 수 있다는 걸 알았지만, 감히 신의 권능을 치료할 경우 저주를 받으리란 것 또한 알고 있었다. 멜라는 자신을 좋아하는 리그레이에게 부정승계를 통해 배틀스톤의 힘을 넘겼고, 그녀를 이용해 자신의 병을 치료한다. 리그레이는 저주를 받았다.

배틀퀸을 죽이는 자가 배틀퀸이 된다. 멜라는 리그레이를 없애고 다시 배틀퀸이 되려 한다. 하지만 그녀 혼자 리그레이를 상대하기엔 이미 현재의 배틀퀸에겐 너무나 커다란 힘이 깃들어 있었다. 그리고 모든 일을 꾸민다.

“배틀스톤은 당신의 소원을 들어줄 거예요!”

가 멜라의 러프한 스토리이다. 이렇게 쓰고 나니 굉장히 끝에 다다른 느낌이지만… 이제 절반 정도 했으려나..

모델링을 해보자.

오늘은 머리작업 중 타임오버

4.14

오늘은 어쩐지 작업이 손에 붙지 않는 날. 이런 날도 있지. 내일 다시 해 보자.

4.15

단순한데 어쩐지 굉장히 어려운 옷…아니, 단순해서 어려운 것일까.

어쨌든 휴가의 힘으로 완료. 삽질을 꽤 했다고 생각했는데, 리그레이보단 적게 걸렸다.

이제 마지막 캐릭터, 아이시로 넘어가자.

리그레이 모델링

4.7

리그레이의 본명은 리아. 닐리의 동생이다. 닐리리아 자매

멜라의 병을 고치기 위해 부정한 배틀스톤의 힘을 사용하고 저주를 받았다. 그리고 이 저주를 치료하기 위해 온갖 차원을 뒤진다. 이 과정에서 차원의 틈새가 벌어지고 차원의 관리자는 쌍욕을 하고, 한여름이 이세계로 떨어지고, 조사를 위해 오로라가 파견된다.

스토리의 중심에 있는 인물이다 보니 거의 모든 캐릭터의 엔딩에 등장할 예정. 생김새가 저래서 그렇지, 애는 착하다.

4.8

머리카락을 만들고 나니 타임오버

4.9

생각보다 은근한 비대칭이라 할 게 많다.

4.10

어깨의 숄이 벨의 것과 비슷하지만 좀 더 아래로 무게를 받는다. 게임 애니메이션을 할 때 숄은 언제나 처리하기 힘든 난제다. 본 구조를 고민하며… 숄만 한 시간 모델링째. 타임오버. 아차. 녹화를 까먹었다!

4.11

모델링 파일은 서브디비전을 합치기 전 단계와 그 이후로 나뉘고, 전자는 WIP접미를 붙여서 별도로 저장해둔다. 포토샵으로 따지면 레이어를 합치지 않은 원본이다. 이 원본은 간혹 쓸 때가 있기 때문에 반드시 저장해두어야 한다. (리그레이의 허리 프릴은 비네트에게서, 장갑의 주름은 프리오리에게서 따온 것이다.)

왕손의 삐죽이는 서브디비전 이후에 뽑아줘야 하기 때문에 자연스럽게 하이폴단계로 넘어갔다. 이제 컬러 팔레트를 만들고, 색칠을 하며 면을 정리해 보자.

4.12

색칠하는 중. 숄의 털표현과 저주영역 경계선의 디테일을 남겨두고 있는 상태.

는 완료.

제작 과정. 숄을 만들 때 녹화를 까먹어서 누락됐다. 16배속이니 42분이면…

총작업시간은 11시간 조금 넘게 나오는데, 숄제작이 1시간 정도 걸렸으니 총 12시간 정도 걸렸다. 생각보다 오래걸렸네..!

한여름 모델링

4.2

한여름. 차원의 틈새를 통해 이세계로 떨어진 대학생. 야구배트는 이세계로 떨어질 때 같이 딸려온 물건으로 무기로 쓰기 좋아 집어든 것 뿐이다.

닐리만큼은 아니지만 얘도 본 깨나 들어갈 것 같다.

4.3

머리카락을 모델링하고, 팔을 모델링하고… 타임오버

4.5

일단 1차모델링은 끝.

색칠해 보자.

4.6

완료. 비네트와 마찬가지로 리깅 후 해주어야 할 일:

  • 솔리디파이 적용 후 샤픈
  • 과잠 안감 검은 색으로 해주고, 팔 들어가는 부분의 폴리곤 막아주기

모델링 과정