UE4에서
ACharacter를 상속해서 AMyCharacter라는 class를 만들고,
skeletal mesh 연결한 다음에, game 시작할 때, 아래와 같이 spawn했음.
GWorld->SpawnActor
그런데, 물리 효과가 적용 안되고, 공중에 고정됨.
물리가 적용되고, 지상에서 걷게 하려면, 어떻게 해야 하는가?
-------------------------------------------------------------
Answer>
일단 3가지 정도로 원인을 생각해 볼 수 있습니다.
(다소, 주관적인 견해임을 밝힙니다.^^;;;;;)
1>character movement의 설정.
일단, character 움직임을 어떤 방식으로 할 것인 지를 명시적으로 설정할 필요가 있습니다.
따라서, JumpZVelocity에 초기값을 넣어 주시고, MOVE_Walking을 적용해 보시기 바랍니다.
예>
CharacterMovement->JumpZVelocity = 600.0f;
CharacterMovement->SetMovementMode( MOVE_Walking );
위의 예를 참고해서 설정해 보시기 바랍니다.
2>capsule component의 설정.
capsule component가 있어야 '충돌'이 인지되고,
충돌이 인지되어야, 물리 설정이 유효합니다.
따라서, 추정하건데, capsule component에 대한 설정이 없었다고 추정됩니다.
예>
CapsuleComponent->InitCapsuleSize( 45.0f, 100.0f );
위의 예를 참고해서 설정해 보시기 바랍니다.
3>physics asset의 설정.
아래 link를 보시면서 physics asset을 만드시고 저장해 주세요.
https://docs.unrealengine.com/latest/KOR/Engine/Physics/PhAT/UserGuide/index.html
그리고, 만드신 physics asset을 아래와 같이 설정해 주세요.
예>
Mesh->SetPhysicsAsset( [님이 만든 physics asset], TRUE );
위의 예를 참고해서 설정해 보시기 바랍니다.
3가지 모두 살펴 보시고, 모두 적용해 보세요~ ^^
(unreal engine 4의 특성 때문에
'1>', '2>'만 만족해도 해결될 걸로 추정됩니다.^^;;;;;;)
Tag:
안기훈, Kee Hoon Ahn, Unreal, UDK, iPhone, iPad, app, 앱, iOS