본문 바로가기

전체 글

[Unity] Meta Quest :: Passthrough 설정법 시작 전 개발환경 세팅 https://cagongman.tistory.com/94 Passthrough 설정 OVRCameraRig 오브젝트에 OVR Passthrough Layer 컴포넌트를 추가한다. Prejection Surface 요소를 Reconstructed로 변경 Placement 요소를 underlay로 변경 OVRCameraRig 오브젝트의 Inspector 창에서 Passthrough support : Supported로 설정 Insight Passthrough Enable Passthrough 체크 스카이박스 제거 OVRCameraRig TrackingSpace CenterEyeAnchor CenterEyeAnchor 오브젝트의 Inspector 창에서 Clear Flags를 Soli.. 더보기
[Unity] Meta Quest :: Controllers 및 Hands 설정 [Unity] Meta Quest :: 개발 환경 설정 이 완료되어 있는 상태라 가정함. Controller 설정 Project 창에서 OVRControllerPrefab을 찾아 LeftControllerAnchor, RightControllerAnchor 오브젝트의 자식으로 각각 추가한다. 추가로 OVRControllerPrefab의 Inspector 창에서 Controller 프로퍼티를 각각 왼쪽은 L Touch, R Touch에 맞게 설정해줌 Hand Prefab 추가하는법 Project 창에서 OVRHandPrefab을 찾고 LeftHandAnchor, rightHandAnchor 오브젝트의 자식으로 각각 추가한다. (Controller 설정 때와는 다른 위치임) OVRHandPrefab insp.. 더보기
[Unity] Meta Quest :: 개발 환경 설정 우선 3D Core로 새로운 프로젝트를 하나 생성. Build Settings으로 이동하여 Android platform으로 변환한다. Player Settings에서 XR Plugin Management를 설치해준다. 설치 완료 후 아래와 같은 창이 뜰텐데 PC와 Android에 모두 오큘러스를 체크한다. Unity Package Manger에서 oculus Integration Asset을 임포트한다. 에셋을 import 할때 이런 창들이 뜰텐데 모두 파란색 권장 사항들을 클릭해 준다. (upgrade 및 재부팅 까지 모두 수행) 설치하고 나면 이제 프로젝트 상단에 Oculus 탭이 생성되어 있을 것이다. Oculus -> Tools -> Project Setup Tool 클릭 안드로이드와 PC의 모.. 더보기
[Vision Geometry] 카메라 모델 (Camera model) 이미지는 기본적으로 외부의 빛을 렌즈를 통해 모으고 이미지 센서에 모여든 빛을 디지털화하여 생성합니다. 다르게 말하면 어느 3차원 좌표에서 반사된 빛을 2D 이미지 평면에 사영시키는 것이라 볼 수 있습니다. 이번 포스팅에는 multi view geometry에 가장 기본이 되는 카메라 모델에 대해 정리해 보려 합니다. 카메라 모델이란 real world와 image사이의 관계를 수식으로 근사해 놓은 것입니다. 처음에 언급했듯이 image는 3D real world에서의 좌표를 2D camera 좌표로 변환하는 것인데요. 이러한 변환 관계를 몇 가지 물리적 파라미터를 통해 정의할 수 있습니다. 우선 크게 내부 파라미터와 외부 파라미터로 나눌 수 있는데요. 내부 파라미터 (Intrinsic parameter.. 더보기
[Vision Geometry] 5가지 2D Transformations 정리 2D에서의 변환 (Tranformation) 2D에서 두 이미지 사이의 매칭 관계를 모델링할 때 변환 행렬이 사용됩니다. 2D에서의 변환 모델은 Translation, Euclidean, Similarity, Affine, Projective 변환 이렇게 5가지가 있습니다. 주어진 과제에 따라 변환에 어떤 제약을 줄 수 있을지 고려하여 변환모델을 잘 선택해야 합니다. 이어서 5가지의 변환 모델에 대해서 알아보겠습니다. 본 글에서의 $\overline{\boldsymbol{x}}$는 Homogeneous Coordinate를 따릅니다. Homogeneous Coordinate에 대해서는 여기를 먼저 참고 하시고 글을 읽으시면 이해에 도움이 될 겁니다. Translation 변환 $$ \overline{\b.. 더보기
[ML-Agent] Error (protoc >= 3.19.0.) 해결법 윈도우에서 강화학습 환경을 세팅하기 위해 ML-Agent를 설치한 후 설치가 잘 되었는지 확인하는 과정에서 다음과 같은 에러가 발생했다. TypeError: Descriptors cannot not be created directly. If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. S.. 더보기
Unity :: 케릭터 이동 구현법 (키보드) 정말이지 정리를 해두지 않으면 너무 금방금방 잊어버리는 거 같다... 이번에도 새로 프로젝트를 생성하고 케릭터 이동부터 구현을 하려 하는데 어떻게 구현했었는지 기억이 안났다... 다른 사람 코드 새로 찾아보는 것도 귀찮고.. 여기에 공유도 하고 나도 필요할 때마다 와서 다시 복붙 해야겠다ㅎ 키보드 Input을 사용하여 Object 이동시키기 스크립트는 이동시키고자 하는 Object의 Component로 적용되었음을 가정함 public class Controller : MonoBehaviour { public float t_speed = 3f; public float r_speed = 20f; void Update() { if (Input.GetKey(KeyCode.W)) { transform.rotati.. 더보기
Unity :: Ragdoll 머리 흔들림 해결법 최근에 레그돌 효과를 사용해서 연구를 진행하고 있다. 머리의 position, rotation, velocity, angular velocity 데이터를 사용해야 하는데 레그돌이 쓰러진 후 머리가 계속 흔들리는 현상이 발생해서 난감한 상황이었다. 영상처럼 Agent가 쓰러진 후에도 계속 머리가 흔들리는 이유를 찾아보니까 머리 흔들림을 저지할 마찰이 없기 때문인걸 알 수 있었다. 첫 번째 해결방법 보면 머리 부분에 collider가 적용이 안되어 있거나 매우 작게 설정되어 있는 경우가 있다. 이렇게 되면 머리 부분과 지면이 닿았다 라는 것을 인지하지 못하게 되고 마찰 또한 생기지 않는다. 첫 번째 해결방법으로는 collider의 크기를 키우는 것이다. 두 번째 해결방법 머리 회전 각도의 제한 각도를 설정해.. 더보기

728x90