창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳
OgreSDK 버전 1.4.7
OgreOde 버전 0.95(아마도)
사실 오우거 엔진 쓴지도 얼마 안 되고 물리엔진은 처음 만져봤습니다.
처음에 Ogre Wiki에 나온대로 따라서 만들었는데
crateCube.mesh와 plane.mesh 때문에 에러가 나서
바닥은 직접 만들고 crateCube 대신 오우거에서 기본으로 제공하는 Cube를 떨어뜨려봤습니다.
떨어지긴 잘 떨어졌는데 바닥에 닿자 45도 정도 돌아가서 뾰족한 부분이 바닥을 관통한 채로
부들부들 거리며 바닥에 스며 들더니 통과해 버렸습니다.
그리고 까마득한 아래로 영원히 낙하...
이리저리 보다가 mWorld::setContactCorrectionVelocity의
파라미터 값을 높여봤더니 안 뚫고 멈추더군요.
덧붙여 원래 crateCube는 둥글었던 모양입니다.
Cube의 경우 육면체라서 넘어지면서 뾰족한 면이 바닥을 뚫어버리니 이런 현상이 심했던 듯 합니다.
아마 구였다면 바닥을 뒹굴어 다녔겠죠.
그래서 확인을 위해 ninja를 떨어뜨려 봤더니 잘 착지하더군요.
(아, 거기다 ninja는 발밑이 원점이었지만 cube는 가장 중앙이 원점이었기 때문에 착지를 해도 땅에 파묻히더군요)
문제는 이 ninja가 바닥에 떨어져서 멈추지 않고 천천히 빙빙 도는 겁니다.
뭐 데모로 하늘에서 떨어진 운석이 바닥에서 계속 뒹구는 것을 보여주면 멋질지 몰라도
제가 만들 것은 게임이기 때문에 플레이어가 조작도 안 했는데 주인공이 바닥을 뒹굴면 곤란하죠.
결국 ERP와 CFM값을 낮췄더니 쓸데없는 몸부림 없이 땅에 딱 착지해서 멈추더군요.