12.29
타이밍을 재기 위한 러프 애니메이션 작업. 좋은 조작감을 위해서는 프레임이 생각보다도 더 적어야 한다는 결론을 얻었다.
턴동작 튀는 것은 왜 그런지 모르겠는데… 이론상 안그래야 하는데…
- JumpReady는 2프레임
- Crouch/Stand도 2프레임
- Landing은 Crouch로 캔슬되어야 한다.
- 상대방 너머로 점프했을 때 Landing -> Idle -> Turn의 상태를 거친다. Idle은 스킵되어야 한다.
실제 리소스를 적용하고 나니 점프높이가 너무 높아보여서 수정했다. 앨리스는 갑옷을 입었으니 조금 무거운 느낌의 점프를 주고 싶었던 것도 있으나 기본 점프높이가 너무 높아서 점프 시 얼굴을 가리는 현상이 마음에 들지 않았던 것이다.

이제 최고 높이에서도 얼굴을 가리지는 않는다.하지만 실제 완성본이라면 HP바가 가릴 예정.
상대방 너머로 점프했을 때 Landing -> Idle -> Turn의 상태를 거치는 문제는 Play()의 호출시기 문제였다. 여러가지 이유로 지금까지는 Play()를 LateUpdate()에서 호출하고 있었는데, 이 때문에 애니메이션이 1프레임 느리게 나와서 정보가 제대로 되었음에도 불구하고 한 프레임이 튀는 현상이 발생했던 것이다.
Landing 후 Crouch스킵은 보호프레임이 설정되어 있었다. 보호프레임은 타격이 일어나기 전에 애니메이션의 재생시간을 보장하기 위해 넣은 시스템이다. 데미지등의 강력한 외부요인이 없는 한 보호되게끔 코딩해 놓았다. 착지모션에 이걸 왜 넣어놨지…?
12.30
발차기모션을 만들던 도중 마스터의 회전이 불완전하게 움직이는 현상이 있어 이를 쿼터니온으로 변경했다. 그랬더니 각종 모션이 깨지는 현상이 발생

게다가 손의 IK-FK스위칭에서도 문제가 일어난다. 이는 키를 주지 않은 기능에 대해서는 기본값을 유지하는 블렌더 시스템의 특징때문이다. 작업에 앞서 규칙을 확실히 정하는 편이 좋겠다.
12.31
블렌더는 기본적으로 애니메이션을 위한 툴이기 때문에 모든 액션은 NLA에디터에 자동으로 삽입된다. 여기서 새로운 액션을 만들 경우, 반드시 Push Down으로 NLA에 등록을 해주어야 한다. 그렇지 않을 경우, 블렌더는 이 클립을 미사용클립으로 인지하고 가비지 컬렉터에 의해 다음 로딩 시 제거당한다. 영원히 지워진다는 이야기이다. 이를 피하려면 액션에 Fake-user를 켜주어야 한다.

저 방패모양이 fake-user. 가비지 컬렉터로부터 지킨다는 의미다. 블렌더에서 user는 데이터를 사용하는 주체를 말한다. 예를 들어 머티리얼 데이터는 모델링에서 사용된다. 3D데이터는 유기적으로 연결되어 있기 때문에, 이런 데이터 블럭들은 여기저기 쓰인다. fake-user는 말그대로 ‘쓰고 있는 주체가 있는 것처럼 간주해라.’라는 뜻이다. 그럼 가비지 컬렉터로부터 보호된다. 초보 시절엔 이 시스템을 이해못해서 하루종일 잡은 키를 날린 적도 있다. 이런 걸 보면 블렌더는 최적화에 신경을 굉장히 많이 쓰는 것을 알 수 있는데, 애니메이션은 좀 수정됐으면 좋겠다. 데이터가 큰 것도 아니면서…

오늘의 깨달음. Mark as Asset으로 등록해두면 Idle모션을 어셋으로 등록해둘 수가 있다. 이렇게 해두면 새로운 동작을 만들 때 Idle의 첫프레임을 붙여놓고 시작할 수가 있다.

충돌을 설정하기 위해 컬리전을 설치. 작업초반인데도 익스포트가 잦다.

컬리전박스 호환이 안되어 뱅가드가 생각보다 일찍 퇴장했다. 앨리스가 대신 맞기로 하자.
컬리전 세팅만 했는데 타임오버! 2023년의 마지막 밤작업은 이렇게 막을 내린다. 애가 방학이라 작업시간이 매우 쪼그라든 상태다. 병설 유치원은 방학이 2달이다! 앞으로 계속 별다른 작업은 힘들 것 같다.흑흑
1.1
새해엔 게임하느라 작업을 쉬었다. 새해 복 많이 받으세요!
1.2
타격감을 보기 위해 데미지 모션을 먼저 처리해야 할 필요가 있다. 그리고 이를 위해선 데미지 모션 리스트를 먼저 확정해야 한다. 여러가지 생각을 해보았지만 서서맞는 경우, 데미지의 강약과 머리,복부를 맞는 경우를 가정하기로 했다. 그리고 이것들의 더미 모션들을 먼저 제작한다.
오늘의 깨달음.
모션을 새로 만들 때 그냥 Fake-User로 모션을 보호하는 편이 PushDown보다 편하다. 이처럼 비슷한 모션을 만들 경우엔 더더욱 그렇다.
본격적인 애니메이션 제작에 앞서 타격을 먼저 붙여보자. 타이밍을 재는 것이 주 목적이므로 애니메이션의 퀄리티는 중요하지 않다. 예상보다 버그도 많고, 문제도 많다. 으으흐흑
충돌체크가 원활하지 않아서 한참을 헤멨다. 원인은 바로 Bounds클래스 내의 Intersect()메서드였다. 이 메서드는 박스가 충돌할 경우 True를 리턴하는 함수인데, Collider2D를 사용하는 지금은 Z의 계산을 하지 않아도 별 상관이 없는데 엉뚱하게 z를 계산하고 있었다. 아오 빡쳐!!! bounds라면 어차피 x,y2개뿐인데 z를 왜 계산해, 이놈들아…!!
Intersect()함수에서 z부분을 빼서 컬라이더용 함수를 따로 만들어야 한다.
bool IsCollision(BoxCollider2D c1, BoxCollider2D c2){
Bounds b1 = c1.bounds;
Bounds b2 = c2.bounds;
return b1.min.x <= b2.max.x && b1.max.x >= b2.min.x && b1.min.y <= b2.max.y && b1.max.y >= b2.min.y;
}
이제 문제없다.
1.3
기본 공격모션들의 러프한 모션들을 붙여 느낌을 보자. 그렇게 생동감넘치는 동작들은 아니지만, 기본적인 타이밍을 보기엔 부족함이 없다. 가까이 있을 때와 멀리 있을 때의 모션이 다르고, 앞으로 점프할 때와 제자리 점프의 모션 또한 다르다. 기본 공격 모션은 생각보다 많다.

스테이트는 예상치의 절반정도를 추가했을 뿐인데도 이 정도. 물량이 많아지면 몇가지 문제가 발생한다. 일단 익스포트가 꽤 오래걸린다. 툴을 자유로이 오가야 하는 입장에선 이런 것들이 꽤나 성가신 문제로 발전할 수 있다. 파일을 나누어야 한다.

처음엔 블렌더 파일을 나눌 생각이었는데, 그럴 필요가 없다. ARP의 액션매니저가 이를 대신해준다! ARP는 정말 돈값 이상을 한다. 블렌더로 게임제작을 위해선 반드시 구비해야 할 애드온이다.

오늘의 깨달음. 실제 모션을 만들 땐 공격하는 부위가 살짝 앞으로 오게 만들면 좋다. 이처럼 겹치는 걸 방지하기 위함
어쩌다가 알고리즘을 타고 왔는데.. 대단하시네여
헛. 감사합니다. 알고리즘을 타고 오시는 분도 계시는군요.글들은 그저 개인적인 주저리지만 즐겁게 보셨으면 좋겠습니다
이즈님 말이 옳았어요… 벌써 갑진년이 오고야 말았습니당…
아라님도 이즈님도 모두모두 새해 복 많이 받으세요!!!
새해야말로 인간답게 살고야 말겠습니당
방학 힘들죠 ㅠㅠ 요즘은 아예 봄방학두 없더라구요!!! 저희집도 지금 비상이예요.. 이즈님도 아라님도 해피 육아… 화이팅입니당!!
그리고 왜인지…? 왠지 모르겠는데 메일주소로 댓글 달기가 안되네요…?_?
그리고 워드프레스 가입을 하려고 했더니 12년도에 가입한 계정이 발견되어… 한참 헤메다 왔습니다… 전 가입한 기억이 없는데… 신기한 일이죠 참
이세님도 새해복많이 받으세요. 올해는 좋은 일만 가득하기를… 이라는 상투적인 인사를 드립니다. 만 실로 그것보다 좋은 인사는 없기에.
어쨌거나 올해이름처럼 값진 새 해가 되기를 기원합니다!
이세님 아니고 접니다요!!
읏?! 실례했습니다. 학교 이야기에서 알아봤어야 하는 건데! 여튼 PEST님도 새해 복 많이 받으십시오!
학생이라는 죄로…학교라는 교도소에서…교실이라는 감옥에 갇혀…출석부라는 죄수명단에 올라…교복이란 죄수복을 입고 … 공부라는 벌을 받으며…. 졸업이라는 석방을 기다리시길…
크… 세기말 중이감성. 여기 사이월드 아닙니당
저 아닌데요?!
너무 고차원적인 내용들에 딱히 할말이 없어서 눈팅중입니다. 그나저나 다이소에서 제가 제안한 상품아이디어하나가 상품화 진행중에 있숩니다. 나름대로 개꿀잼인점이 있네요. 격주로 오전오후 스케줄이 바뀌는데 빨리 오전조로 배정되었으면 좋겠습니다. 입고 물류 옮기면서 가끔씩 제 가슴보다 크고 단단한 남자 가슴을 만질 수 있거든요. 본의 아니게 닿는 거지만 하루종일 컨디션이 좋습니다 젊고 건강한 남성의 가슴이 몸에 좋네요 맛도 좋을지 궁금합니다
오..? 그런 제안이 상품으로 진행되기도 하는군요! 서울 다이소에도 배달이 되겠죠? 기대하고 있겠습니다. 어쩐지 저에겐 필요없는 물건일 것 같긴 합니다만.
저도 가슴 뻠삥 좀 할려구요 나중에 성추행으로 신고당하면 내꺼도 만져서 퉁치자고 하게
그나저나 남자 가슴에 취해서 연말연시 인사가 늦었습니다. 새해 돈 많이 받으세요!
이세님도 새해 복 많이 받으세요!
안녕 이즈~
와…이 홈페이지가 아직도 유지가 되고 있었구나. 설치된 블로그는 완전 달라졌군. (내가 마지막에 온게 2011년정도 였던가…)
그런데 내용을 보니 이제 당신이 아트인지, 프로그래머인지 구분이 가지 않아.
올ㅋ 올만이구만. 잘 지내는가? 이터에게 잘 지낸다고는 들었다.
프로그램을 짜는 환쟁이를 우리는 TA라 부르기로 했어. 아. 그리고 지금은 백수로 전직했어. 육아가 내 일이지.
TA가 라이팅에 대한 이야기를 하는걸 봤지만, 충동영역에 Z값을 이야기 하지는 않아서 TA라고 부르긴 미묘하다고 생각했지.
백수라고해도 무늬만 백수일 것 같은데? ㅋㅋㅋㅋ
아. 그렇습니다. 과로사 직전이다. 무언가 바빠