유니티 3D로 만들고 있는데
소형몹이나 인간형은 걍 캡슐 콜라이더 하나 박아놓으면 괜찮은데
다리 4개 달린 커다란 용가리 같은거 다리 별로 콜라이더 달아놓고
플레이어가 통과하면 안되니까 isTrigger는 꺼뒀음.
근데 여기서 문제가 몹이 회전하거나
다리로 공격 같은거 하면 존나 위화감 있게 밀리거나 올라타거나
상단에서 하단을 향하는 모션은 심지어 땅뚫도 함.
상용겜들 했을때는 그렇게 부자연스럽게 밀리는 느낌을 받은 적이 없음
대체 어떤 방식으로 처리하고 있는거임?
특정 행위 할때만 isTrigger로 바꾸는 방식도 해봤는데
어쩃든 다시 켜질때 그 지점에 있으면 밀리거나 올라타거나 그러더라
Animator Physics랑 리지드바디 Continous Dynamic 설정은 해봄.
하.. 도와줘
다 트리거 콜라이더 해놓고 레이쏴서 체크해서 못가게 해야되나?
캡슐 여러개 박으면됨
다크소울인가 엘든링은 종아리 허벅지 몸통 팔위 팔아래 캡슐박았던거로 기억함
나도 다 캡슐로 박았는데 막 올라타던데
https://docs.unrealengine.com/4.26/Images/InteractiveExperiences/Physics/PhysicsAssetEditor/HumanoidPA.webp
언리얼은
피직스에셋이라고 지원해주는데 유니티는 ㅁ?ㄹ
원리는 본에 콜라이더 다는거같긴한데
부위 하나하나를 개별적인 물리 오브젝트로 취급하면 됨
개별로 다 리지드 바디 달아버리라는 것?
뭐 리지드바디쓸거면 리지드바디 쓰고 키네마틱 쓰면 키네마틱 쓰는거고 그건 알아서 하면 되는데, 이런 경우 중요한건 애니메이팅 할 때 각 부위의 위치 및 각도를 직접 애니메이션에 키로 입력하면 물리 시스템이랑 동기화가 안되니 동기화가 되도록 적당히 구현해야 한다는 거임
예를 들어서 애니메이션 시스템으로는 각 부위의 위치각도를 직접 조작하는게 아니라, 뼈대역할을 하는 별도의 오브젝트를 조작하고, 각 부위는 그 뼈대 오브젝트의 위치와 각도를 물리 시스템을 이용해서 따라가게 하는 식으로
형 솔직히 무슨 말인지 잘 모르겠어.
애니메이션 업데이트랑 물리 업데이트가 동기화가 안되니까 FixedUpdate 같은 곳에서 각각의 오브젝트의 위치를 업데이트 해주라는 소린가?
https://grovecodeblog.wordpress.com/2013/10/30/combining-physics-and-animation-in-unity/
일단
이 내용이 형이 말한거랑 비슷한 것 같아서 보고 하긴 했어.
형 말대로 각 오브젝트 키네마틱 달아주니까 땅뚫거나 비정상적으로 밀리는건 사라지긴 한것 같아.
고마워.
본인쟝이 말한거랑 다르긴한대 해결 됫다면 상관업따
지형 충돌 박스랑 플레이어 충돌/피격 박스랑 따로 구성을 하는게 정석아니냐? 너는 하나로 다하려니까 그렇지
아니 박스는 구분 되어있어. 문제는 공격을 할때 플레이어 충돌 박스 달린 부위가 같이 움직이면서 밀어버림 용가리 앞발 공격 같은거 한다치면 앞발은 플레이어 충돌박스랑 공격박스 같이 달려있으니까 ㅠㅠ
공격판정있는 프레임에서 앞발 충돌박스는 꺼주고 공격박스만 냅두면 될듯?
그 다크소울도 몹위에 올라타고 그지랄 가끔남