그림처럼 2차원상에서 두 물체가(둘 다 강체고 고정되어있지 않음) 경첩을 축으로 연결되어있고
서로 회전이 가능한데 회전각에 제한이 있을때,
그림의 아래처럼 가동범위를 벗어나려는 순간
각 물체의 어느 위치에 얼마만큼의 힘을 가해야 가동범위안에서만 운동하게 할 수 있을까요
답이 아니더라도 구글에 검색할만한 키워드만이라도 알려주시면 감사박갯습니다...
2d hinge joint, 2d rigidbody hinge dynamics, hinge dynamics 등등으로 열심히 찾아봤는데
잘 안나오고 나오더라도 문처럼 한쪽 물체가 고정되어있는 경우밖애 못찾앗서요....
정리하면 알고싶은것은
1.물체 A에 가해져야할 힘의 위치
2.물체 A에 가해져야할 힘의 크기을 계산하는법
3.물체 B에 가해져야할 힘의 위치
4.물체 B에 가해져야할 힘의 크기을 계산하는법
이렇개 임니다...
제 미천한 머가리로 고민해봤을때
두 물체사이의 상대적인 각속도,
경첩으로부터의 각 물체의 무게중심까지의 거리,
각 물체의 질량 등을 이용해서
어찌어찌 힘의 크기를 구해서
물체A에는 물체B의 무게중심의 위치에서,
물체B에는 물체A의 무게중심의 위치에서
힘을 가하면 어떻게 될거같은데
물리쪽 지식이 고등학생수준에 멈춰서인지 아니면 그냥 댕청한건지
그 힘의 크기를 구하는 과정도 몰르갯고
애초에 이 방법이 맞는지도 몰르갯슴니다...
이걸 왜물어보냐면 제가 사용하려는 게임엔진에서는 경첩이 구현되어있긴한데
각도제한은 구현이 안되어있어요....
근데 저는 그게 필요하니까 직접 구현할 수 밖에 업는 상황인거에오....
어쨋든 여기까지 읽어주셔서 감사함니다...
님이 사용하는 물리엔진? 아니면 님이 물리엔진역할을 구현함?
경첩자체는 게임엔진에서 제공하는걸 쓸건데 거기에 스크립트를 달아서 각도제한을 구현해야해오
그건 결국 님이 원하는 기능의 물리계산법 알고 물리엔진을 조작해야 된다는 뜻인데 사실상 님실력으로 불가능하지 않음?
그러면 그냥 저 나사부분에서 물체를 추가해서 님이 원하는 기능을 구현해보셈
일단 계산법만 알면 적용할수는 잇슴니다...계산법만 알면....
물체를 추가해서 구현할생각도 했는데 일단 이걸 구현하려는 이유가 2D래그돌을 만들려고 하는겁니다 근데
님 물리엔진 만들어본적 있음?
물체를 추가해서 구현해버리면 캐릭터가 각도제한을 넘어선 상태에서 래그돌이 되어버리면 버그날게 뻔하다는게 첫번째 이유고 두번째 이유는 그 물체가 다른 캐릭터들의 래그돌과는 충돌하지 않아야하는데 이러려면 자기자신의 래그돌만 제외하고 나머지 모든 캐릭터들의 래그돌의 충돌체들과 전부 예외설정을 시켜야하는데 이걸 캐릭터를 생성시킬때마다 실행하는건 에바인거같아서 이 방법은 보류햇슴니다
물리엔진은 만들어본적 없는데 물리엔진에 간섭할 수 있는 방법은 있고 예전에 다른거 만들때 필요한 계산법을 적용시켜서 구현한적은 잇슴
ㅇㅎ
그럼 계산법 한번 생각해봄... 근데 어려워서 생각못할거같기도
생각해주시는것만으로도 감사함니다...일주일동안 님이 사는곳을 향해서 하루 세번 절하겟슴니다.....
일단 각도제한이 구현되있는 다른 물리엔진 사용하는법을 먼저 고려하는것도...
밑에 분 덕분애 해결할 수 잇슬거가틈 님도 같이 생각해주셔서 감사햇슴 ㄳ
ㅇㅇ
조현병환자의 말은 무시하시고, 충돌이랑 비슷한 상황이라 각운동량이 보존될거임. 충돌 전후 상대 각속도 크기의 비를 반발계수(상수)로 놓고 운동량 보존을 쓰면 충돌 후 두 물체의 각속도를 알 수 잇음
각운동량보존을 쓰면
아 충돌에서 속도만 각속도로 바꾸면 되는건가요?
그렇지
1차원~2차원 충돌은 구현해본적 있으니 그냥 그거 응용하면 되겠네요 진짜 감사합니다 선생님 한달동안 선생님이 사는곳을 향해서 하루 세번 절하겠슴니다
회전질량도 구해야 되지 않냐?