본문 바로가기

언리얼엔진

(71)
16. 매크로 라이브러리 / 구조체 / DataAsset 오늘꺼 너무 어렵따....ㅠ 입력된 방향에 맞춰 Roll 애니메이션 구현하기 현재 Roll의 방향은 캐릭터의 전방으로 나간다. 따라서 입력된 방향키에 맞춰서 캐릭터의 전방을 회전시켜주면 된다. BP_Character에서 Character Movement를 받아올 때 캐릭터의 전방을 입력된 키에 맞춰 회전시킨다. Make Rot from X 노드를 통해서 Character Movement에 마지막으로 입력된 Vector값을 X축으로 삼는 Rotator를 만든다. 그리고 만들어진 Rotator를 현재 캐릭터(Actor)의 Rotation에 적용시켜주면 해결이 된다. 이렇게 입력된 방향에 맞게 Roll 애니메이션이 바로바로 적용되도록 수정해봤다. 소켓에 생성한 무기 붙이기 BP_Weapon에서 변수 2개를 만..
15. 애니메이션 몽타주 / 회피(Dodge) 기능 추가하기 / 열거형 Tip! Ctrl + P로 특정 대상 선택 후, Shift 더블클릭을 하면 애니메이션 창을 여러개 열 수 있음 두 애니메이션을 자연스럽게 이어주는 법 저번에 Draw_Composite에서 Draw_1과 Draw_2 애니메이션을 이어붙여서 자연스럽게 나오도록 해줬다. Draw_1 애니메이션의 마지막 프레임에서 bone 중에 upperarm_r / lowerarm_r / hand_r의 로컬 위치, 회전 값을 복사하여 Draw_2 애니메이션의 시작 프레임의 upperarm_r / lowerarm_r / hand_r의 로컬 위치, 회전에 붙여넣어주면 두 애니메이션의 시작과 끝이 bone 로컬 위치가 동일한 위치에서 자연스럽게 이어지는 것을 볼 수 있다. 이와 같은 방법으로 이어줄 수 있다. 회피(Dodge) 기..
14. Draw 애니메이션 / AttachActorToComponent / 인터페이스 등에 있는 칼을 뽑는 애니메이션 Draw 애니메이션을 추가해줄 것이다. - Draw1 : 등에 있는 칼 잡는 애니메이션 - Draw2 : 잡은 칼을 꺼내는 애니메이션 Draw 애니메이션 만들기 우선 캐릭터 등에 칼이 있을 적절한 위치를 잡아줄 것이다. 먼저 Draw1 애니메이션 화면에서 등에 있는 칼을 잡았을 때의 프레임을 보고 칼의 위치를 예상해보자. ※ 애니메이션 키 추가하여 자세 수정하기 만약 애니메이션의 자세를 수정해주고 싶다면 키 추가를 통해서 자세를 잡아줄 수 있다. 먼저 Draw 1 애니메이션을 보면 오른쪽 팔이 움직이는 애니메이션이므로 upperarm_r / lowerarm_r / hand_r들의 bone을 건들여주면될 것이다. 그러면 뷰포트 화면 밑에 추가해준 키가 애디티브 레이어 트랙에..
13. 프리뷰 애셋 / 소켓 / 캐릭터에 무기 생성 / For Each Loop Tip! - Ctrl + P : 원하는 애셋 검색해서 열 수 있음 - 트랜스폼 Scale 옆 자물쇠는 전체 스케일을 모두 같은 비율에 맞춰 조정됨 언리얼에서는 자동으로 가비지 컬렉션을 해준다. 따라서 특정 주소를 참조하고 있는 포인터가 없다면 자동으로 가비지 컬렉션(GC)이 된다. 프리뷰 애셋 주의 사항 SkeletalMesh에서 hand_r_weapon 소켓을 추가해 주었다. 이 소켓에서 프리뷰 애셋 추가를 통해서 Sword를 바로 볼 수 있었는데, 이 프리뷰 메시를 사용할 때에 주의사항이 있다. - 개체 자체의 스케일의 변화는 반영되지 않는다. SkeletalMesh에서 프리뷰 애셋으로 SK_Sword를 추가해주었다. 그러고 나서 SK_Sword 블루프린트에서 트랜스폼 스케일의 값을 바꿔줬다면, 그 ..
12. 속력에 따른 Walk to Run / Weapon 만들기 속력에 따른 이동 애니메이션 출력하기 속력에 따라서 Idle - Walk - Run의 애니메이션이 나오도록 할 것이다. 콘텐츠 브라우저에서 콘텐츠/Mannequin/Animations 폴더 안에 새 애니메이션를 추가해줄 것이다. 우클릭을 통해서 애니메이션 - 블렌드 스페이스1D를 추가해준다. 스켈레톤은 항상 사용하던 Mannequin_Skeleton을 선택해준다. 이름을 BS_Unarmed로 설정해주고, BS_Unarmed의 블루프린트로 들어가준다. 여기서 사용할 것은 좌측의 에셋 디테일 탭의 Axis Settings 이다. Axis Settings의 가로 축이 캐릭터가 보이는 뷰 포트탭 밑에 보이는 탭을 말하고 있다. 좌측 끝은 0.0 / 우측 끝은 100.0을 나타내고 있으며, Shift를 누르고 마..
11. Jump애니메이션/블렌드 세팅 Jump애니메이션 ABP_Character / Locomotion에서 만들던 Jump를 완성해보자. Conduit(컨듀잇) : 여러 트랜지션 룰에서 공통적인 조건을 검사해줄 수 있다. Idle → 컨듀잇 / Run → 컨듀잇으로 연결된 트랜지션 룰은 모두 true로 설정해서 컨듀잇까지는 바로 넘어간다. 이제 컨듀잇에서는 캐릭터가 떨어지고 있는 중인지 IsFalling 조건을 확인해주는 역할을 해준다. 만약 컨듀잇에서 IsFalling이 true라고 판별하게되면 JumpStart로 바로 넘어갈 수 있는 것이다. 컨듀잇이 애니메이션에 연결이 되어있다 하더라고 조건검사만 하는 역할일 뿐, 흐름이 그곳에 묶이는 건 아니다. 앞으로는 좀 더 알아보기 쉽게 컨듀잇의 이름을 IsFalling으로 바꿔준다. JumpS..
10. PlayerController / Game Mode Base Tip! Win + 1 2 3 숫자키 : 하단 작업표시줄에 켜놓은 프로그램 순서대로 나옴 Rotator란? 회전을 표현하는 개체이다. 사원수 회전의 내용을 랩핑한 내용으로, 결과값을 Dgree로 반환해준다. ※ 사원수 회전을 자세히 알아보면 너무 복잡해지므로 대충 그런게 있다는 것만 알아두자. ViewTarget - Controller로 Pawn을 조종하지만, 카메라의 시점은 따로 지정한 곳에서 cctv처럼 볼 수 있게 만들 수 있음. PlayerController 설정하기 저번에는 BP_Player에서 캐릭터를 조종하는 로직을 만들었다. 하지만 PlayerController를 통해서 여러개의 캐릭터를 바꿔가며 조작할 수 있게 만들껀데, 그래서 Controller 자체에서 캐릭터를 조종할 수 있는 로직을..
9. 캐릭터 좌우 이동 수정하기 이동 방향에 맞춰서 캐릭터 회전시키기 캐릭터를 이동하는 방향에 맞춰서 회전시키는 방법으로 해결해줄 것이다. BP_Player의 Character Movement 컴포넌트를 선택 후, Character Movement(Rotation Settings)에서 Orient Rotation to Movement를 체크해준다. 이어서 클래스 디폴트에서 Use Controller Rotation Yaw의 체크를 해제해준다. 이제 실행해보면 캐릭터가 회전은 하지만, 이상하게 회전하는 것을 볼 수 있다. 이는 캐릭터 기준으로 계속 앞뒤좌우가 바뀌고 있기 때문인데, 그래서 카메라를 기준으로 이동하도록 바꿔볼 것이다. 카메라 기준으로 Vector값 받아오기 BP_Player 이벤트그래프에서 Get Camera 노드를 추가하..