728x90
FootPlacement 를 알기 전에 실린더컬리전을 쓰고 있다면 먼저 컬리전부터 확인해야된다
FootPlacement 가 진행되기 전에 우선적으로 컬리전을 먼저 체크를 하기 때문에.. 웬만해서는 발바닥이 땅에 닳지도
않는다
이렇게 컬리전을 위로 올려서 다리만 보이게 하고 다니면서 체크를 해도 되지만-
실린더 컬리전에 대해서 인지를 했다면 이제 언리얼 사이트에 나온 FootPlacement 에 대한 내용이 이해가 될 듯
보면 공식이 이해가 되겠지요- Location 보다 진짜 FootSocket 으로 체크도 가능하지만, 애니메이션에 따라 너무 요동칠 수도 있으니
초기화 부분에서 예제에 나온 simulated function EnableLeftFootPlacement() 이랑 Right 둘다 호출을 해줘야 정상 동작
을 합니다... 의외로 여기서 헤메는 분들이 있더군요 ㅠㅠ 예제에는 그런 언급이 없어서 그런 듯..
그리고 애초에 스켈레탈 메쉬의 센터가 모델의 중앙이냐 발 밑이냐에 따라서 offset 을 추가로 해줘야 하지요
(유도리 있게 하려면 언리얼 예제의 그 소스처럼 offset 변수는 필요하겠죠:) )
그리고 문제의 Tick 안의 계산 부분 -_- 제 스타일 대로 해볼까요..
simulated event Tick(float DeltaTime) { // 중략 else { if(vLFootHit.Z < vRFootHit.Z) // 왼발에 체중 DesiredMeshTranslation.Z -= Location.Z - vLFootHit.Z - CylinderComponent.CollisionHeight; // 왼발이 땅에 닿을 때까지 내려준다 else // 오른발에 체중 DesiredMeshTranslation.Z -= Location.Z - vRFootHit.Z - CylinderComponent.CollisionHeight; // 오른발 } // 중략 }
이전에 올린 글들을 참고해서 만들어보아요...
728x90
'프로그래밍 > Unreal Engine 3' 카테고리의 다른 글
레벨 스트리밍 (2) (0) | 2012.04.13 |
---|---|
Level Streaming (0) | 2012.04.02 |
UDK > Unreal Frontend > Launch 실패 (2) | 2012.03.15 |
UDK > DX11 모드? DX11을 완벽하게 사용하고 있는 중일까? (0) | 2012.03.07 |
간추린 Controller.uc 번역 (0) | 2012.03.07 |
댓글