V4 11

Advanced Locomotion V4(UE4) 가이드 - 11 (카메라 시스템 파악, Camera System)

어드벤스드 로코모션의 가장 큰 특징 중 하나가 언리얼에서 제공하는 기본 카메라가 아닌 유저가 하나부터 열까지 모두 컨트롤 가능한 커스텀 카메라 기능을 사용하고 있다는 것이다.어드벤스드로코모션 카메라 시스템의 의 장단점장점모든 상황에 카메라의 Offset과 Fov등을 원하는데로 변경할 수 있다.엔진 작업이 서툰 아트작업자들이 게임 카메라 작업을 하는 데 용이하다.트리플 A의 꽃인 카메라의 아웃풋을 제어할 수 있다.단점모두 제어를 해야 하다보니 손이 많이 간다.아트 작업자들이 최종 카메라를 제어하다보니 디버깅이 힘들 수 있다.인디게임을 개발한다면 제어해야 하는 코스트가 너무 크다. 어드벤스드 로코모션의 카메라 시스템 작동 원리 파악.게임모드의 컨트롤러에 사용되는 ALS_Player_Controller에서 A..

Advanced Locomotion V4(UE4) 가이드 - 10 (Anim BP - Anim Graph 가이드)

이제 캐릭터의 움직임을 최종적으로 갈무리할 Anim Graph 단계입니다. 결국 이곳에 가장 적절한 모션들을 가장 적절한 타이밍에 뿌리기 위해 지금까지 많은 로직을 거쳐왔다.Advanced Locomotion V4가 시대가 많이 지났음에도 많이 사용되고 있는 것은 그만큼 범용성이 크게 구조가 잡혀 있어 스켈레탈 메시만 바꿔서 사용하기에 아주 유용하게 제작이 되어있다.기본적인 애니메이션 레이어를 폭넓게 사용하고 있으며, 완성된 레이어 아웃풋 포즈를 기본포즈로 캐싱하여 그 이후에 레이어닝 되도록 설계되어 있다. Layer Blending 살펴보기Base Layer - 기본적인 이동, 점프, 공격, 앉기 등 모든 기본적인 무브먼트가 처리됩니다.Overlay Layer - Base Layer에 더해질 Addit..

Advanced Locomotion V4(UE4) 가이드 - 9 (Anim BP - UpdateGraph 가이드)

캐릭터 블루프린트의 Tick 그래프와 같은 기능을 하는 곳으로서 매 틱마다 업데이트되는 기능을 설정합니다. Do Every Frame - 아래를 펼쳐서 확인 더보기Update Chracter Info - 캐릭터의 인터페이스 이벤트의 Essectial Values값과 Get Current States 에서 설정된 값을 애니메이션 BP에서 사용하기 위해 변수값들로 설정합니다. 여기서 설정된 변수들은 모든 움직임들마다 참고되고 있다. Update Aiming Values- 다양한 시점에서의 캐릭터의 Look을 처리하는 부분.  Update Character Info에서의 Aiming Rotation과  Aim Yaw Rate 값을 참고하여 캐릭터의 Look을 처리함. 이때 ALS_N_Look_F_Sweep 모..

Advanced Locomotion V4(UE4) 가이드 - 8 (Anim BP - 이벤트그래프 가이드)

캐릭터BP의 가이드가 완료되었습니다. 이제 마지막으로 애니메이션 블루프린트에서 무브먼트에 맞는 모션 처리가 어떻게 되어 있는지 가이드를 진행하겠습니다. 언리얼4용 Advanced Locomotion 에서는 특히나 애니메이션 블루프린트 부분에서 처리되는 내용들이 많아 다룰 내용이 상당히 많고 복잡합니다. Blueprint Initialize Animation 이벤트 - 메인 Pawn을 얻어오는 부분입니다. PlayTransition 커스텀 이벤트 - Advanced Locomotion 에서 많이 쓰는 커스텀 이벤트로서 이 이벤트를 이용해 모션간 트랜지션의 보정을 사용합니다. 특히 Stop에서 잔 스텝처리용으로 많이 사용하고, 몽타주 전후 처리도 사용하는등 굉장히 폭넓게 사용하는 커스텀 이벤트 입니다. Pl..

Advanced Locomotion V4(UE4) 가이드 - 7 (캐릭터 Child BP - 상세 가이드)

지금까지 코어한 캐릭터 무브먼트에 대한 부분을 처리했다면 이제부터는 캐릭터 무브먼트에 어울리는 모션들과 애니메이션 블루프린트에 대한 연계작업을 이어서 진행하게 됩니다. 이 작업을 override라고 이야기 합니다.해당 작업을 통해 Advanced Locomotion V4의 모든 동작이 정상적으로 작동하려면 AnimMan과 연결되어있는 모든 애니메이션 소스들과 AnimBP를 가져와야 정상적으로 작동하게 되므로 원본 프로젝트에서 ALS_AnimMan_CharacterBP 를 이주하여 모든 소스를 한꺼번에 이주시키도록 합니다.이 때 기존 작업된 데이터에 덮어 씌우겠냐고 물음이 오면 전체 덮어 씌우도록 하여 기존 작업에서 이어나가면 됩니다.파일을 덮어씌우면서 이주할 때는 이주하려는 언리얼 에디터를 닫고 하시는걸..

Advanced Locomotion V4(UE4) 가이드 - 6 (캐릭터 Child BP-Skeletal Mesh 연결 및 기본 작동 테스트)

지금까지 캐릭터의 무브먼트와 입력에 대한 코어처리 부분에 대해서 가이드를 진행했습니다.이렇게 Pawn의 움직임에 대한 처리를 적용하기 위해 Skeletal Mesh를 Pawn으로 만들어주는 Child Character BP를 만들어 코어처리된 엔진내역을 상속받아 Animation BP와 연결해주는 블루프린트를 만들어 줍니다.원본 프로젝트에서 해당 블루프린트에 해당되는 파일은 아래와 같으며, 아래 파일을 이주하게 되면 애니메이션 블루프린트와 에셋등이 모두 가져오게 되면서 실질적으로 모든 데이터를 이주하게 됩니다. 다만, 기존에도 설명드렸듯이 이렇게 한꺼번에 모두 이주해 버리게 되면 세부적인 구조 파악이 힘들기 때문에 되도록이면 새롭게 Child BP를 만들어서 비교하면서 직접 함수를 만들어보는것을 추천하는..

Advanced Locomotion V4(UE4) 가이드 - 5 (캐릭터 BP-TickGraph 해체 분석)

캐릭터의 최종 움직임을 결정하게 될 Tick 그래프 부분입니다. 해당 이벤트의 정보가 Anim Instance쪽과 끊임없이 통신하면서 가장 적절한 모션을 뿌려주고, 캐릭터의 무브먼트를 설정하게 되는 가장 중요한 로직이 이루어지는 곳이다. Set Essential Values : 아래 펼쳐서 확인캐릭터의 tick 단위 이동처리에 있어 필수적으로 필요한 values들을 처리하는 함수.더보기Set the amount of Acceleration : 현재 속도와 이전 속도를 비교하여 가속도를 계산. 이동 구성 요소에서 반환된 현재 가속도는 입력 가속도와 동일하며 캐릭터의 실제 물리적 가속도를 나태내진 않는다.Last Velocity Rotation : 속도를 측정하여 캐릭터가 움직이는지 확인함. 속도는 수평(X..

Advanced Locomotion V4(UE4) 가이드 - 4 (캐릭터 BP-PlayerInputGraph 해체 분석)

외부 입력에 따른 각각의 이벤트 처리를 알아봅시다.Movement Input - 아래 펼쳐 보기입력에 따른 캐릭터 방향처리와 카메라 이동 처리 부분더보기 각각의 입력과 회전에 따른 움직임을 함수로 처리하여 폰을 움직이도록 처리하였다. 키보드는 입력값이 일정해서 큰 오류가 없지만, 패드의 입력값은 float단위로 매우 민감하게 떨리게 처리되는 경우가 많아 range clamp 값으로 입력값을 안정되게 들어오도록 처리한 방식이다.   Camera Input - 해당 부분은 일반적인 카메라 움직임이 적용되었다. Jump Action Input - 점프 입력이 들어왔을 때의 처리Ragdoll과 Mantle등의 예외처리가 필요하다 보니 다른 부분보다 로직이 복잡하다.지금 상태에서도 키보드 X버튼을 누르면 Ragd..

Advanced Locomotion V4(UE4) 가이드 - 3 (캐릭터 BP-EventGraph 해체 분석)

캐릭터 블루프린트에서는 통상적으로 세 가지 이벤트를 분류하여 처리하게 되는데, Event Graph / Tick Graph / Input Graph가 그것입니다.Event Graph - Begin 이벤트를 필두로, 사전에 얻어와야할 정보를 미리 등록하는 곳이라 생각하면 좀더 이해가 편할것이다. 캐릭터의 정보를 저장하기 위해 만든 Enum 값이나 Structure등 미리 데이터를 읽어와야 하는 것들을 변수로 지정하거나 하는등의 작업을 통해 사전 빌드업을 처리하는 이벤트 공간이다.Tick Graph - 말 그대로 Tick 단위로 실행되는 이벤트로서 게임플레이중 실시간으로 실행되는 영역이다. 이 부분에서는 너무 과도한 계산식이 무리하게 들어가다보면 랙이 발생할 수 있으므로 항상 과부하되는 지점이 없는지 항상 ..

Advanced Locomotion V4(UE4) 가이드 - 2 (캐릭터 BP 이주하여 분석)

개인적으로 Advanced Locomotion 라이브러리를 완전히 이해하고 싶다면 프로젝트에 있는 내용을 내 개인적인 프로젝트에 하나씩 옮기면서 실행해 보는 것을 추천합니다. 너무 덩치가 큰 프로젝트이다 보니 세세한 분석이 힘들어 하나씩 뼈대부터 옮겨가며 이해하다보면 해당 라이브러리를 로직 순서에 따라 좀 더 깊이 있게 이해할 수 있게 됩니다. 1. ALS_Base_CharacterBP 를 새 프로젝트에 옮기며 하나씩 기능을 익혀가 보자.먼저 'AL_Study' 라는 이름의 비어있는 새 프로젝트를 만들어 보자.정상적인 플레이를 위해 반드시 언리얼4 또는 5.0이하에서 만들도록 한다.이어서 원래 프로젝트의 ALS_Base_CharacterBP 에셋을 새로 만든 프로젝트로 이주 하려고 하면, 관련된 에셋들이..