unity3D(10)
-
[Charon] #3. RigidBody를 사용한 3D 캐릭터의 경사로(Slope) 지형 이동 구현하기
오랜만에 다시 포스팅을 올리네요. 그동안 다른 교육 프로그램을 듣는다고 바빠서 카론 개발을 못 했습니다. FPS 게임 개발은 처음 진행해봤는데, 어릴 때 카운터스트라이크 온라인 좀비 시나리오 모드를 좋아했던 기억을 되살려 재미있게 만들었던 것 같습니다. 나중에 기획을 제대로 해서 사이드 프로젝트로 하나 진행해보고 싶네요. 멀티 플레이도 된다면 금상첨화겠지만 그거까지 하려면 갈 길이 굉장히 멀 것 같습니다.ㅎㅎㅎ... 잡담은 여기까지 하도록 하고, 저번 글에서는 이동 애니메이션 싱크 맞추는 것까지 했었죠? 평지에서는 아무런 문제가 없었지만 계단과 같은 경사 지형인 경우에는 수많은 문제가 발생했었습니다. 그래서 손을 봐야할 내용들이 좀 굉장히 많았어요. 그래도 하나하나 찾아보며 공부했기에 나름 의미있는 시간..
2022.08.30 -
[Charon] #2. 이동 애니메이션(Move Animation) 적용 및 싱크(Sync) 맞추기
1. 애니메이션 가져오기 캐릭터 모델이 휴머노이드가 아니라서 리타겟팅을 못 사용하는 경우 저는 에셋 스토어에서 캐릭터 모델을 샀고, Humonoid Animation Retargeting을 이용하여 Mixamo 사이트에 있는 애니메이션들을 재사용하려고 했습니다. 그런데, 구매한 에셋이 휴머노이드 모델이 아니더라구요. 그래서 Mixamo 사이트 애니메이션들을 적용하질 못 했습니다. 기존 휴머노이드 뼈대 구조와 구매한 에셋의 뼈대 구조가 달랐기에, 매칭이 안 되는 문제가 발생하더라구요. 그래서 그냥 3D 툴(Blender, Maya 같은)에 가져와서 뼈대를 모두 제거 후, Mixamo 사이트에 오토 리깅(Auto Rigging)이라는 기능을 이용하여 자동으로 휴머노이드 뼈대 구조를 등록해 주었습니다. 이전에..
2022.08.18 -
[Charon] #1. New Input System을 적용하여 플레이어 이동 구현하기
리팩토링(Refactoring) 결정 오랜만에 다시 Unity 프로젝트 글을 올리게 되었네요. 4학년 1학기가 끝나 방학이 왔고, 잠시 휴식 기간을 가졌었습니다. 잠깐 쉬고 난 뒤에는 C++ 문법 공부, Python으로 백준 풀기, Unreal Engine5 배우는 등으로 시간을 보냈습니다. 그러다가 미루고 미루던 기존 카론(Charon) Unity 프로젝트를 슬슬 손 봐야겠다는 생각이 들더라구요. 기존에 작성했던 소스코드 구조는 너무 맘에 안 들었고, 이대로 가다가는 스파게티 코드가 되는 건 시간 문제라는 게 보였습니다. 그래서 어떻게 하지 하다가 결국 리팩토링을 하기로 결정했어요. 제일 먼저 작업을 시작하기로 한 건 입력 시스템이었습니다. 이전에 컴포넌트별로 클래스를 나눈 것까지는 좋았으나, 갈수록 ..
2022.08.17 -
[Unity 3D] 애니메이션 Root Motion이 Transform값을 변경시키며 발생한 버그 해결하기
1. 루트 모션(Root Motion)이란? 루트 모션(Root Motion)은 오브젝트의 위치와 회전을 애니메이션이 제어할 수 있도록 허용하는 것을 말합니다. 루트 모션이 활성화된 애니메이션이라면, 해당 애니메이션이 적용된 오브젝트의 트랜스폼(Transform) 값은 영향을 받아 변하게 될 겁니다. 예를 들어, 루트 모션이 적용된 걷는 애니메이션(WALK)은 캐릭터가 걷는 것에 따라 위치 값도 변하게 됩니다. 루트 모션이 적용되지 않았다면 캐릭터는 제자리 걸음을 하겠지요. 2. 루트 모션이 일으킬 수 있는 문제점 물론 스크립트 코드를 작성하여 움직임을 구현하는 것보다 애니메이션을 통해 움직임을 구현하는 것이 훨씬 더 자연스럽습니다. 특히나 시네마틱 영상을 제작하는데엔, 루트 모션이 더욱 더 현실같은 자..
2022.05.24