본문 바로가기

Unity

Unity :: Ragdoll 머리 흔들림 해결법 최근에 레그돌 효과를 사용해서 연구를 진행하고 있다. 머리의 position, rotation, velocity, angular velocity 데이터를 사용해야 하는데 레그돌이 쓰러진 후 머리가 계속 흔들리는 현상이 발생해서 난감한 상황이었다. 영상처럼 Agent가 쓰러진 후에도 계속 머리가 흔들리는 이유를 찾아보니까 머리 흔들림을 저지할 마찰이 없기 때문인걸 알 수 있었다. 첫 번째 해결방법 보면 머리 부분에 collider가 적용이 안되어 있거나 매우 작게 설정되어 있는 경우가 있다. 이렇게 되면 머리 부분과 지면이 닿았다 라는 것을 인지하지 못하게 되고 마찰 또한 생기지 않는다. 첫 번째 해결방법으로는 collider의 크기를 키우는 것이다. 두 번째 해결방법 머리 회전 각도의 제한 각도를 설정해.. 더보기
Unity :: material tiling (머티리얼 타일 나누기) 유니티에는 매우 많은 컴포넌트들이 존재하고 그 속성값 또한 매우 다양하다... 이번에는 공사장 현장 상황의 시뮬레이션을 구현하기 위해 plane object에 material을 입혀 공사판 바닥 효과를 연출하려 했으나 plane에 바닥 material이 그대로 입혀져서 해상도도 떨어지고 비현실적이였다. 분명 욕실 타일 붙이듯이 plane에 나눠서 붙이는 방법이 있을텐데... 라고 생각하며 결국엔 구글링... 모래자갈들이 사람 머리보다 크고 비현실적이다. plane 오브젝트의 inspector창에 Material 컴포넌트를 보면 Tiling이라는 속성이 있다. 지금은 x: 1, y: 1로 설정되어 있는데 이는 plane을 타일 하나로 채우겠다는 의미이다. x: 4, y: 4로 변경하면 값을 높일수록 타일이.. 더보기
Unity :: 프리팹(prefab) 이란 Prefab이란 한 줄로 설명하자면 미리 만들어진 Object를 재활용 가능한 형태로 만들어 두는 것을 의미합니다. Person이라는 사람 형태의 Object를 하나 생성하였습니다. 자식 object로 Body, Head, LeftLeg, RightLeg, RigthArm, LeftArm을 가지고 있습니다. 물론 Hierarchy창에 있는 Person Object를 복사 붙여 넣기 하여 사용해도 재사용이 가능하지만 그렇게 되면 기존에 변경한 component 설정 값들도 똑같이 복사가 되어 생성되기 때문에 원본 Object값을 잃어버리게 됩니다. 또한 여러 Scene에서 같은 Object가 필요할 때 Prefab으로 만들어 두면 Object를 재사용하기 편리해집니다. Prefab으로 만드는 방법은 간단합.. 더보기

728x90