주의 : 공부하면서 정리한 것이라 잘못된 내용이 있을 수 있습니다.
이 글은 [ UE4 캐릭터 이동 시스템 가이드 ]의 보충 문서입니다.
UCharacterMovementComponent 의 속성은 여러 개의 카테고리로 나뉘는데, 이 문서에서는 "MovementMode" 카테고리에 대해서 다룹니다. 말 그대로 걷거나 달리는 것과 관련한 행위를 제어합니다.
이것과 관련한 속성으로는 다음과 같은 것들이 있습니다( Desc 항목은 주석을 그대로 옮겨 놓은 것입니다 ).
Property |
Specifier |
Desc |
MovementMode |
BlueprintReadOnly |
액터의 현재 이동 모드( walking, falling 등 ). - walking: 표면 위를 걷는데, 마찰력 효과를 가지며, 방해물을 걸어 올라갈 수 있음. 수직 속력은 0 임. - falling: 중력 효과를 받아 떨어지는데, 점프하거나 표면의 가장자리에서 발이 떨어지는 상황임. - flying: 중력 효과를 무시하고 날아감. - swimming: 유체 덩어리를 통해서 수영하고 있는데, 중력 효과와 부심( bouyancy ) 효과의 영향을 받음. - custom: 사용자 정의 커스텀 이동 모드. 매우 많은 서브 모드를 포함할 수 있음. 이는 Character owner 를 통해 그리고 client-server 이동 함수들을 위해 자동으로 복제된다. |
CustomMovementMode |
BlueprintReadOnly |
MovementMode 가 Custom 일 때 현재의 커스텀 서브 모드를 지정함. 이는 Character owner 를 통해 그리고 client-server 이동 함수들을 위해 자동으로 복제된다. |
주석 자체가 매우 많은 설명을 담고 있기 때문에 뭐라 더 설명할 것이 없을 것 같습니다.
요는 정해진 4 개의 이동 모드가 있고, 사용자가 원한다면 자신만의 커스텀 모드를 설정할 수 있다는 것입니다. 예를 들어 벽을 기어 오르는 모드라든가 매달리는 모드같은 것을 생각해 볼 수 있습니다. 매달리는 상황에서는 매달리는 손들을 기준으로 진자운동을 하며 ( 허리 이하의 ) 일부 본들은 랙돌 상태의 영향을 받는 것이 좋겠죠. 중력을 계산할 필요는 없을 것이구요. 이는 분명히 기존의 4 개의 이동 모드의 동작과는 다릅니다.
각각의 모드는 제약( constraint )를 가집니다. 만약 여러분이 RootMotion 을 만들었는데, 그 중에 z 축 방향으로 점프하는 동작이 포함되었다고 합시다. 그리고 이를 그냥 재생해 봅니다. 그러면 이상하게도 위로는 올라가지 않고 제자리에서 깔짝대기만 합니다. 이는 walking 모드에서는 z 축 성분을 무시하기 때문입니다( 정확하게는 애니메이션의 z 축 성분을 무시하는 것이 아니라 컨트롤러의 z 축 성분을 무시하는 것입니다 ).
RootMotion 이 아닐 때는 위로 점프하는 것이 제대로 동작할 것입니다. 이는 RootMotion 이 아닌 경우에는 컨트롤러가 바닥에 붙어 있기 때문입니다. 위의 표에서 walking 의 설명을 보십시오. "수직 속력이 0" 이라고 되어 있고, "표면위를 걷는다"고 되어 있습니다. 이러한 이동 모드의 특징을 제대로 이해해야 원하는 동작을 제대로 구현할 수 있을 것입니다.
이동 모드를 변경하는 것은 간단합니다. UCharacterMovementComponent 에는 SetMovementMode() 라는 메서드가 있습니다. 캐릭터에서 Jump() 같은 메서드를 호출하는 것은 내부적으로 이동모드의 변경을 내포하고 있습니다.
MovementMode 속성과 CustomMovementMode 속성을 설정할 수 있는 메서드입니다.
'Engines > UE4' 카테고리의 다른 글
[ UT 분석 ] 3. ServerLaunch 프로그램 (0) | 2016.05.21 |
---|---|
[ UT 분석 ] 2. 타겟 및 모듈 (0) | 2016.05.21 |
[ UT 분석 ] 1. Unreal Tournament 설치 (1) | 2016.05.11 |
[ UT 분석 ] 0. Unreal Tournament 분석에 들어가며... (0) | 2016.05.10 |
UE4 빌드시에 ucrt 경로 충돌 문제 해결방법 (0) | 2015.12.29 |
UE4 MaxScript - Biped To RootMotion (22) | 2015.12.09 |
UE4 캐릭터 이동 시스템 가이드 (12) | 2015.12.08 |
언리얼 빌드 시스템 가이드 (14) | 2015.11.29 |
UTF-8 용 CSV 생성 매크로 제작 (1) | 2015.11.28 |
UE4 에서, 직접 생성한 컴포넌트의 Details 패널 정보가 이상하게 접혀 나오는 문제 (0) | 2015.11.28 |