본문 바로가기

전체 글137

Unreal Socket Unreal을 통해서 게임을 만들 때 캐릭터에게 무기를 주어지게 할 때가 있다. 이때 Socket을 활용하면 편하다. 캐릭터의 Skeleton에 들어가서 Skeleton Tree에서 hand를 검색했을 때의 결과이다. 이때 hand_r을 선택했고 Rotate를 돌려보면 오른쪽 손이 돌아가는 것을 확인할 수 있다. hand_r에서 우클릭 후 Add Socket을 선택하면 Socket이 추가가 된다. 추가된 Socket은 hand_r 하위에 존재하기 때문에 hand_r이 움직이거나 회전하게되면 함께 움직이고 회전한다. 위 사진처럼 오른쪽 손에 넣어줄 장비를 미리 선택해서 확인해볼 수 있다. 위에서는 sword를 선택해서 Socket에 넣어보면 이상하게 나타난다. 우리가 생각한것은 무기를 잡고있는 캐릭터인데 .. 2023. 3. 8.
Unreal Control Rig Animation을 공부하는 중 자연스러운 움직임 구현을 위해서 Control Rig를 공부하게 되었다. 다음과 같이 Control Rig를 만들 수 있다. 만든 것을 눌러서 켜보면 Event Graph와 비슷하게 생긴 창이 하나 나타나게 된다. 이 창에서 Inverse Kinematics에 사용되는 계산들을 계산하게 된다. 일단 Skeleton을 지정하기 위해서 캐릭터의 Skeleton을 살펴보자 현재 캐릭터의 Skeleton 창이고 Bone 하이러키에 ik가 붙은 것들이 있는 것을 확인할 수 있다. 이 ik가 붙은 bone들은 Mesh를 가지고 있지 않기 때문에 움직이거나 돌려도 캐릭터의 생김새에는 영향을 주지 않는다. 하지만 ik들은 IK를 사용할 때 사용된다. 왜 그냥 Bone이 아니라 IK Bo.. 2023. 2. 21.
Unreal Inverse Kinematics(역 운동학) Unreal Animation을 공부하다가 Inverse Kinematics와 관련해서 공부를 하게 되서 블로그로 남기게 되었다. 현재 캐릭터가 서있는 모습을 보면 다리가 어색한 것을 확인할 수 있다. 이 자세에서 다리를 땅에 따라 자연스럽게 하기 위해서 Inverse Kinematics를 사용한다. Inverse Kinematics Inverse Kinematics는 Skeleton에서 특정한 bone을 움직일 때 사용하는 방법이다. 예를 들어 위 사진과 같이 나와 있는 다리의 bone을 조정해서 자연스럽게 만들어주는 것이다. 위 사진을 자연스럽게 만들기 위해서는 (편의상 계속 사진상으로 방향을 설명한다) 오른쪽 다리가 굽어져야한다. 굽이는 동작에서 bone을 위로 접어야 굽어지게 된다. 이 bone을.. 2023. 2. 13.
Unreal Module 추가 방법 이번에 Enhanced Input System을 공부하면서 C++에서 #include "EnhancedInputSubsystems.h" 라는 헤더 파일을 추가하는 일이 생겼다. 이때 이 헤더파일을 추가하니까 에러가 생겼고 그 이유는 Module을 추가해주지 않았기 때문이었다. 이렇게 References에 Module이 있는데 우리가 프로젝트에 추가를 해줘야한다. Default로는 이렇게 되어 있고 Core, CoreUObject 등 String 값이 들어가 있는 곳에 다음과 같이 EnhancedInput이라는 Module을 추가해준다. 이래도 에러가 사라지지 않는다. 그 이유는 우리가 컴파일 할 때 자동적으로 일시적인 파일을 만들기 때문이다. 이 파일을 우리가 지우고 새로 만들어야한다. 해당 프로젝트가 .. 2023. 1. 26.