![VR 밀쳤을 때 반대방향으로 날라가는 시스템, 즉 작용 반작용 개념](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/2AFCn/btrPyKtDUkD/eZI4sqydt7Ufv6aKuN0Vz1/img.gif)
VR 밀쳤을 때 반대방향으로 날라가는 시스템, 즉 작용 반작용 개념
힘껏 벽을 밀치면 뒤로 밀려나갑니다 코드는 수정해서 나중에 올릴 예정
- Unity/VR
- · 2022. 10. 27.
![유니티 VR 수영](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/52qmq/btrPtfN6aSs/knWOHvLPTKBdbY6uB5DJtK/img.gif)
유니티 VR 수영
- Unity/VR
- · 2022. 10. 25.
![오큘러스 터치 컨트롤러 버튼 명칭](http://i1.daumcdn.net/thumb/C120x120/?fname=https://blog.kakaocdn.net/dn/bvymGD/btrPjGScdIR/cMyO3JipIomp2WLLfPKy3k/img.png)
오큘러스 터치 컨트롤러 버튼 명칭
- Unity/VR
- · 2022. 10. 23.
먼저 4개의 Quad로 둘러싸인 방을 하나 만들어준다 이때 카메라가 바라보는 정면에는 Quad를 설치하지 않는다 따로 Stencil Mask를 설치할 예정이기 때문이다 이제 Quad를 설치하는 Rotation의 값도 중요하다 3축의 바라보는 방향이 중요하다 Z축같은경우 Quad가 바깥쪽을 바라보게 해야한다 나머지 X, Y축은 상관없지만 Z축은 항상 바깥쪽을 바라봐야 한다 Stencil1 포함 자식 객체들의 Layer을 전부 Stencil1로 바꾸어준다 Quad하나를 생성한 후 Z축이 방안을 바라보도록 만든다 이때 Stencil Mask의 Layer는 default로 내비두면 된다 Stencil Mask의 Materials을 만들어줘야한다 Shader "Examples/Stencil" { Propertie..
큐브는 빈 오브젝트의 자식으로 되어 있다 즉 상위 부모 오브젝트의 WorldPosition은 (0 , 0, 0) , (2, 0 , 0) 이지만 하위 오브젝트들의 Local Position은 (0, 0, 0), (0, 0, 0)이다 그 이유는 Local Position같은 경우 부모를 기준으로 포지션값을 잡기 때문이다 부모 오브젝트를 기준으로 하기 때문에 World Position이 어떻든간에 부모를 기준으로 삼아 -2만큼 떨어져있기 때문에 (-2, 0, 0)이 된다 디버깅한 결과물이다 여기서 TransformDirection은 Local Position을 World Position으로 바꿔주는 녀석이다
학창 시절 분필가지고 놀고 싶지만 분필가루가 날라다니는걸 극도로 싫어해서 갖고 놀지 못했다...(Because 결벽증~) 아쉬운 마음으로나마 VR에서 분필을 가지고 놀아보자! Plane하나를 생성해서 작은 사이즈로 조정해준다음 자식으로 Camera하나를 생성해준다 카메라에 Audio Source는 필요없으므로 삭제해주고 Projection을 Orthographic으로 바꿔주고 Size 0.5 Near -0.2, Far 0.01로 바꿔준다(이건 사용자 설정에 맞게 컨트롤 해줘야 한다) 하나를 생성해주고 Camera에 Output Texture에 붙여준다 마커를 갖다대면 이렇게 빨간 점이 생기는데 이 점을 마커에 위치의 맞게 설정해주어야 한다(카메라의 각도를 돌려가며 맞추면 됨) 다음으로 카메라의 Backg..
RagDoll 란? 봉제인형이란 뜻이 있다 유니티에서는 애니메이션을 적용해 Hp가 0이 되면 죽는 애니메이션이 실행되는 경우가 많다 하지만, 죽는 애니메이션은 정해져 있으며 적을 제압했을 때 적이 쓰러지는 모션이 항상 역동적이였으면 좋겠다 싶을 때 RagDoll 시스템을 이용하면 된다 Ragdoll 시스템을 이용하기 위해서는 휴머노이드 타입이 필요하다 [3D Object] -> [Ragdoll...]를 클릭하자 Create Ragdoll 창이 뜨는 것을 볼 수 있다 휴머노이드 타입의 객체에서 Ragdoll에 맞는 부위를 끌어다가 놓으면 된다 나는 이렇게 했다(유튜브 참고함 ㅎ...세팅하는방법 모르겠다 ...) Total Mass같은 경우 몸무게라고 생각하면 된다 1 = 1kg , 48 = 48kg이다 매..
터레인 생성하기 하이러키창에 우클릭 후 [3D Object] -> [Terrain]을 클릭하여 터레인을 하나 생성해줍니다. 생성한 오브젝트를 클릭해보면 Terrain 컴포넌트가 붙여져 있는 것을 확인할 수 있습니다. 터레인의 크기 같은 경우에는 [Mesh Resolution] 탭에서 설정할 수 있습니다. Detail 같은경우에는 최적화와 관련되어 있는 값입니다. [Basic Terrain] 부분입니다. Term Description Draw 지형을 그릴지 여부를 결정합니다. Pixel Error 픽셀 에러는 픽셀이 얼마나 정밀하게 그려질지를 나타냅니다. 값이 높을수록 픽셀의 정밀도가 높아지지만 그만큼 리소스를 많이 잡아 먹기에 적절히 설정해야 합니다. Base Map Dist 모든 맵의 텍스처를 그릴 것..
Occlusion Culling 찍먹하기 큐브를 몇가지 생성해준 다음 [Occluder Static]으로 설정했습니다. 오클루전 컬링기능 사용하기 위해 [Window] -> [Occlusion Culling]을 눌러줍니다. Smallest Occluder Smallest Occluder값을 설정하게 되면 파란색 테두리 영역의 크기가 달라집니다. 파란색 영역은 오브젝트를 Occluder로 인식할 최소 크기입니다. 이 값보다 작은 크기를 갖는 오브젝트는 다른 오브젝트를 가리지 않는다고 판단합니다. 사진 속 파란색 큐브의 높이가 3m이고 Smallest Occluder가 10으로 설정되어 있을 때는 뒤의 빨간색 오브젝트를 가리지 못하게 됩니다. ( 3m < smallest occluder) Smallest O..
설명에 앞서 셰이더 개념에 대해 굉장히 설명을 잘해준(? 솔직히 그냥 내가 올리고 싶었기 때문) 사진이 있어서 가져와봤다 오브젝트의 트랜스폼이 움직인다는 것은 Mesh가 움직이는게 아닌 곧 Vertices들의 이동이라는 점! 셰이더를 하게되면 MVP개념에 대해 알아야 하는데 이 사진이 도움이 된다 점들의 조합으로 메쉬가 되고 모델들만 있는 공간을 Model(Local/Object) Space라고 부른다 화면에 보이는 모든 오브젝트는 카메라를 통해 비춰지게 된다 그 공간을 View(Camera) Space라고 부른다! 꼭 기억해두길 바란다!!!!! 그렇게 카메라에 비치는 것들은 이제 모니터상에 보여지게 되는데 Projection이라는 과정을 거치게 된다!!! 3D공간을 2D화면으로 보여주게 하는! Clip..
힘껏 벽을 밀치면 뒤로 밀려나갑니다 코드는 수정해서 나중에 올릴 예정
[Window] -> [Rendering] -> [Ligthing]을 선택해주자 Ligthing에서 [Enviroment]를 클릭해주면 Other Settings을 펼쳐주고 Fog를 활성화 해주면 된다 가까운곳은 잘보이지만 장소가 먼 곳은 Fog로 인해 잘 보이지 않게 된다 Fog를 사용해서 카메라에 닿지 않는 장소나 보이지 않게 하고 싶은 장소를 가리고 오브젝트등을 비활성화 하는 등 다양한 방식을 통해 최적화에 도움이 될 수 있다(고 한다 맞나?)
OVRInput.GetLocalController OVRInput.GetLocalControllerPosition(OVRInput.Controller.RTouch); OVRInput.GetLocalControllerRotation(OVRInput.Controller.RTouch); OVRInput.GetLocalControllerVelocity(OVRInput.Controller.RTouch); OVRInput.GetLocalControllerAngularVelocity(OVRInput.Controller.RTouch); OVRInput에는 Position, Rotation, Velocity 등 다양한 값을 받아올 수 방법이 있습니다.
유니티 Lerp란? Unity의 Lerp("선형 보간"의 줄임말)는 개발 및 컴퓨터 그래픽에서 일반적으로 사용되는 수학 함수입니다. 이 함수를 사용하면 지정된 기간 동안 두 값 사이를 부드럽게 보간하여 부드러운 전환이나 애니메이션을 만들 수 있습니다. Lerp 함수에는 시작 값(start), 끝 값(end), 그리고 보간을 어느 정도까지 해야 하는지를 나타내는 t값(0과 1 사이의 값)의 세 가지 파라미터를 제공합니다. Lerp는 t값을 기준으로 시작 값과 끝 값 사이에 있는 새 값을 계산합니다. t값이 0에 가까울수록 결과가 시작 값에 가까워지고, 1에 가까울수록 결과가 끝 값에 가까워집니다. Unity에서는 다양한 데이터 유형에 따라 Mathf.Lerp를 사용하여 실수 값 사이를 보간하거나 Vecto..
유니티로 모델을 임포트해오면 Animation Type이 Generic으로 되어있다(Default) 이것을 모델 타입에 맞게! 지금 위 모델들은 휴머노이드 타입이므로 Humanoid를 선택해주면 된다! 그다음 믹사모 등에서 받아온 애니메이션들도 Animation Type을 Humanoid로 바꿔주면된다! 그다음 애니메이터 컨트롤러가 없으면 하나 새로 만들어주고 있다면 그 컨트롤러에 애니메이션을 드래그해서 끌어다 놓으면 된다! 휴머노이드같은 경우 리깅이 팔 다리 머리 이렇게 나눠져 있는게 일방적이다!
툰 셰이더 임포트 하기 유니티 툰 셰이더는 애니메이션, 영화, 게임 등 많은 곳에서 사용되는 기술입니다. UNITY-CHAN! OFFICIAL WEBSITE ユニティちゃん公式ウェブサイトです。ユニティちゃんの各種データダウンロードやイベント、最新情報などをお届けします。 unity-chan.com 유니티 Chan 공식홈페이지에 들어가서 위 사진에 보이는 친구를 찾아서 다운받으면 됩니다. 툰 셰이더 적용해보기 오른쪽이 Toon Shader가 적용된 예입니다. 아직 이상하므로 파라미터를 조정해주어야 합니다. 메테리얼을 눌러서 [Toon]- [UnityChanToonShader]항목에 있는 여러가지 툰 셰이더 중 하나를 선택해준다. 가끔 메테리얼이 보라색으로 뜨면 아래와 같은 방식으로 해결하시면 됩니다. 상단 [Wind..