반응형

1. 준비물

  • 엔진 : 언리얼 4 / 5
    • 주의 사항 : 언리얼5는 5.0에서만 설치됨
  • 라이브러리 : Advanced Locomotion System V4

링크 https://www.unrealengine.com/marketplace/ko/product/advanced-locomotion-system-v1

 

2. 폴더와 시스템 구성 분석.

라이브러리를 받고 나면 아래와 같이 폴더가 구성되어 있습니다.

  1. Audio : 각각의 사운드 파일 모음
  2. Blueprints : 각종 캐릭터 BP / 카메라 BP / 게임모드 BP등 실질적인 시스템 코어 폴더라 할 수 있는 곳. 이곳에서 모든 로직이 이루어 진다.
  3. Character Assets : 메인 캐릭터 스켈레탈 메시와 애니메이션 BP가 있는 곳. 캐릭터의 움직임을 위한 소스들이 모여 있다.
  4. Data : 캐릭터 BP와 애니메이션 BP에서 캐릭터의 무브먼트와 카메라 무브먼트등을 처리할 때 스무드한 블렌딩 처리를 위해 많은 커브 데이터가 활용되었다. 또한 각각의 시퀀스가 작동될 때 시퀀스에 필요한 많은 정보를 Struture단위로 처리하게 되는데 거기에 필요한 데이터들이 모여 있다.
  5. Environment : 레벨에 구성되는 배경 에셋들과 static mesh들이 모여있다.
  6. Levels : 배경 레벨들이 있음
  7. Props : 각종 무기 메시들이 모여 있음.

 

3. 캐릭터 블루프린트 구조 파악하기.

모든 로직은 결국 캐릭터 블루프린트와 연결되어 이루어지기 때문에 캐릭터 블루프린트를 완벽히 파악하는 것이 가장 중요하다고 할 수 있습니다.

위치 :

Blueprint'/Game/AdvancedLocomotionV4/Blueprints/CharacterLogic/ALS_Base_CharacterBP.ALS_Base_CharacterBP'

 

기본적으로 ALS_Base_CharacterBP 가 메인 두뇌 역할을 하게 되고, ALS_AnimMan_CharacterBP에서  ALS_Base_CharacterBP의 계산값을 불러와서 필요한 에셋들을 붙히는 역할과 Anim BP와 연결해 주는 역할을 하게 됩니다. 레퍼런스 뷰어로 연결관계를 보면 아래와 같습니다.

 

4. World Setting에서 메인 캐릭터를 Base 캐릭터로 바꿔서 확인해 보기.

현재 테스트중인 에셋은 언리얼 라이브러리에서 언제든지 원래 상태로 롤백할 수 있으니, 다양하게 편집하면서 기능을 파악해 보는 것이 숙지하는데에 많은 도움을 줍니다. 

현재 열려있는 데모레벨에 올라가 있는 캐릭터를 전부 지우고 실행하면 기본적으로 ALS_AnimMan_CharacterBP가 기본적인 Pawn으로 나오게 되는데, World Setting에서 메인 Pawn을 ALS_Base_CharacterBP로 바꿔서 플레이를 실행해보면 어떤 로직으로 구성되는지 파악하는데 도움을 줍니다.

 

아래 영상과 같이 플레이를 해보면 캐릭터의 무브먼트의 특성을 파악할 수 있고, 다양한 토글 키를 통해 디버그 뷰도 확인이 가능한 상태임을 확인할 수 있습니다.

 

 

다음 포스팅에서는 ALS_Base_CharacterBP 의 구조를 심도있게 파악해 보도록 하겠습니다.

반응형
반응형

언리얼 4시절에 어드벤스드 로코모션(Advanced Locomotion)이 나오면서 트리플 A게임의 로코모션을 위한 많은 것이 정리되었습니다. 언리얼의 로코모션은 이때부터 비약적으로 발전되기 시작했다고 해도 과언이 아닙니다. 현 트리플 A 로코모션 제작을 위한 초석이 되어준 UE4 시절의 Advanced Locomotion을 가이드를 시작으로 현재 가장 많이 사용되는 Advanced Locomotion Component까지 가이드를 이어가고자 합니다.

로코모션이란?

  • 사전적 의미 - '이동, 보행, 운동’
    • 캐릭터의 조작감에 운동성과 아트적 완성도를 부여하여 시각적인 만족도와 언캐니밸리적 요소를 없애기 위한 시스템
  • 인디게임에서의 로코모션에 필요한 요소
    • 캐릭터, 애니메이션, 카메라
    • 대부분의 국산 양산형 rpg 게임들에 해당됨.
  • 트리플 A급게임의 로코모션에 필요한 요소
    • 캐릭터 – 캐릭터의 키, 얼굴, 목소리, 몸무게, 성향 및 관련된 모든 정보
    • 애니메이션 – 보폭, 걷는 방식, 뛰는 방식, 스프린트 방식,손은?, 몸을 흔드는 스타일, 몸을 회전하는 스타일.. 등등
      • 무브번트 시스템 - 움직일때의 Velocity 값, 정지 타이밍, 회전타이밍, 점프 가속도, 회전 방식, 뷰 방식..
    • 카메라 – 앵글, 퍼스펙티브, 움직임, 스프링 암, 카메라스타일, 카메라상에서의 캐릭터 위치, 카메라 감독..
    • 사운드 – 성우가 주인공과 얼마나 닮았나부터 시작.
    • 호라이즌, 갓오브워, 라스트오브어스, 레뎀션 등등이 해당됨.

 

최근 가장 활발히 사용되는 로코모션용 언리얼 라이브러리는 무엇일까?

1. Advanced Locomotion(어드벤스드 로코모션) - UE4

  • 장점 - 로코모션에 필요한 대부분의 기능을 구현함 / 3인칭 모드도 있어 다양한 시점의 게임에 참고하기 좋음
  • 단점 - 시스템에 의지 하다 보니 모션 퀄리티가 너무 떨어지고, 모든 모션 블렌드 및 IK와 FOOT PLANT등이 커브로 제어되는 식이다 보니 디버그가 매우 어려움.

https://youtu.be/ru1--3wP-F8?si=brBKnkrmyZAjReL1

 

2. Lyra Starter Game(라이라 스타터 게임) - UE5

 

3. Advanced Locomotion Component(어드벤스드 로코모션 컴포넌트) - UE5

  • 장점 : 가장 최근에 개인이 개발한 어셋으로서 어드벤스드 로코모션과 라이라의 장점을 적절히 잘 섞어 놓았음. 3인칭 뷰모드도 있고, 루트모션과 커브 모션등을 적절하게 잘 사용함
  • 단점 :  굉장히 좋은 플러그인이긴 하지만, 아직은 불안하다고 할 수 있는 Distance Matching을 전폭적으로 활용하다 보니 잔 버그가 매우 많음.

https://youtu.be/5xl8cWsClKs?si=KwNU0bXYQMyoB-QS

 

이어서..

Advanced Locomotion 가이드 - 1

 

 

반응형

'Engine > Unreal - Locomotion' 카테고리의 다른 글

Advanced Locomotion(UE4) 가이드 - 1 (구조 파악)  (0) 2024.05.16
반응형

언리얼에서는 오랜 세월 풋 IK를 최대한 직관적으로 만들어내고자 많은 노력을 해왔습니다. 언리얼 5에 도입된 IK Rig를 통해 Foot IK를 셋업 하게 돼 기존에는 제어하기 힘들었던 많은 부분들을 직관적으로 제어할 수 있게 되었습니다.

 

IK Rig를 활용해서 Foot IK를 설정하면 좋은 점.

  1. 별도의 IK Joint가 필요 없음. 
    1. 마야에서 Export할 때 꼭 Ik Jpint를 만들어 Export 했어야 하는데, 이제 필요 없게 됨. 이제 옆의 Joint가 필요 없음.
  2. Visiulizing 된 프리뷰 창에서 Foot IK의 설정값을 실시간으로 지정하여 IK가 발동될 때의 값을 지정할 수 있다.

 

 

Ik Rig를 활용한 Foot IK 가이드

  • 스켈레탈 메시의 오른 쪽 버튼을 누르고 Create 탭으로 가면 IK Rig를 만들 수 있습니다.

 


IK Rig 기본 셋팅 가이드 - 아래를 펼쳐 주세요.

더보기
먼저 Pelvis에 Solver를 만들어 줍니다.
  • 몸의 중심으로 부터 계산이 이루어지기 때문에 Pelvis에 Solver가 있어야 Foot IK를 계산할 수 있게 됩니다. 
    • 이어서 Foot L/R에 IK를 설정하기 위해서는 Calf부터 계산이 이루어지기 때문에 calf에 셋팅값을 추가해 줍니다.
    • 마지막으로 Foot LR에 New IK Goal을 눌러주면 기본 적인 설정은 완료 됩니다.

 

  • 기본 셋팅만 해서는 Foot IK 가 발동 될 때의 움직임이 아래처럼 어색하게 설정이 됩니다.

  • 위와 같은 결과가 나오지 않게 하기 위해서는 기존에 설정했던 Pelvis의 IK bone setting에서 Rotation Stiffness와 Position Stifiness를 조절하여 Foot Ik에 대한 상대적 움직임을 적절하게 설정해 줍니다.
    • Calf값도 조절해 주면 무릎이 벌어지는 각도등을 더 상세하게 설정할 수 있게 됩니다.

 

IK계산용 Anim Blueprint 제작하기 - 아래를 펼쳐 주세요.

  • 더보기
    IK Rig에서 사용한 동일한 스켈레톤의 Anim Blueprint 파일을 만들어 줍니다.
    • Anim Graph 창에서 IK Rig 를 설정할 수 있는 명령어를 불러옵니다.
       
    • IK Rig의 Rig definition Asset에 기존에 만든 IK Rig 세팅 파일을 넣어 줍니다.
    • 위 상태로 Input Pose와 Out Pose로 연결해 주면 다른 캐릭터의 또 다른 애님 블루프린트에서 언제든지 가져다 사용할 수 있게 됩니다.
       

     

     

     

    • 그럼 이제 각각의 Foot 위치와 Pelvis 위치를 계산하여 배경 오브젝트에 의해 IK가 작동되도록 계산식을 만들어 주는데 먼저 Foot Trace라는 함수를 만들어 바닥에 레이를 쏴서 바닥 지면과 발바닥의 상대적 위치값을 실시간으로 구해오는 함수를 만들어 줍니다. 세세한 계산에 대한 멘트는 하지 않을 테니 왜 이렇게 코드가 짜여 있는지 직접 고민해 봅시다.

      • Foot의 Offset과 Rotation // Pelvis의 Offset 값을 알아야 하므로 먼저 변수를 만들어 줍니다.
    • FootTrace 함수를 이용하여 발바닥 와 Pevis의 위치를 어떻게 교정해야 하는지 알았으니 Tick Graph에서 실시간으로 발과 Pelvis의 움직임을 교정해 준 뒤 그 위치 값을 변수로 만들어 저장해 주자. 이때 Jump시나 Falling시에는 IK가 작동하면 안 되므로 예외처리를 해줍니다.
    • 먼저 위 상황을 제외한 경우에 대해 Foot IK가 처리되는 순간의 위치값과 로테이션을 만들어 내서 Foot L(R) Offset / Foot L(R) Rotation 변숫값을 아래처럼 Set 시켜 줍니다.
    • 이어서 Foot위치에 따라 Pelvis의 위치값도 교정해 주어야 하므로 아래 계산값을 이용해 Pelvis의 Offset값도 Set 시켜 줍니다.
    • 각각의 변수값을 알아냈으니 이 값들을 아까 전에 만든 IK Rig 설정창에 각각의 값들을 적절하게 연결시켜 줍니다.
    • 메인으로 사용되는 애님 블루프린트에서 Linked Anim Blueprint 함수를 이용하여 위에서 제작한 Foot IK용 AnimBP를 아래처럼 연결해 주면 애님 블루프린트 간 통신이 이루어집니다.

Foot IK 결과 최종 확인

애님 그래프 작업까지 완료 후 최종 출력이 되도록 설정이 완료되면 아래 영상처럼 자연스럽게 Foot IK가 작동하는 것을 확인할 수 있습니다.

 

반응형

'Engine > UNREAL' 카테고리의 다른 글

AAA Locomotion  (0) 2020.12.12
콜라보 애니메이션  (0) 2019.07.19
Physics를 활용한 Tail 애니메이션  (0) 2019.07.19
Dynamic Parameter  (0) 2019.05.28
Item BP 구조  (0) 2019.05.28

+ Recent posts