
VR 밀쳤을 때 반대방향으로 날라가는 시스템, 즉 작용 반작용 개념
힘껏 벽을 밀치면 뒤로 밀려나갑니다 코드는 수정해서 나중에 올릴 예정
- VR
- · 2022. 10. 27.
이번 시간엔 Leg Ik 설정하는 방법에 대해 알아보겠다 먼저 모델의 Animation Type을 Humanoid로 바꿔준다 그다음 믹사모같은데에서 Walk관련 애니메이션을 하나 다운받아준다 그 애니메이션 또한 휴머노이드로 바꿔주고 캐릭터애니메이션을 넣어준다 이렇게 그다음으로 새로운 아바타 마스크를 만들어주고 상체부분을 꺼준다 Base Layer에 방금 만든 아바타 마스크를 집어넣어준다 IKPass도 체크해준다 다음으로 VRLegIK 스크립트를 하나 생성해준다 using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class VRFootIK : MonoBehaviour { priva..
패키지 매니저에 들어가서 Animation Rigging 패키지를 다운받는다 준비해둔 휴머노이드 모델에다가 Rig Builder를 추가하고 Animation을 삭제해준다 Bone Renderer를 추가해주고 모델의 Root부분부터 맨 아래까지 다 Transforms안에다가 넣어주면 된다 IK를 만들기 위한 사전 작업으로 빈오브젝트 VR Contraints를 하나 생성해준다음 Rig컴포넌트를 부착해준다 그다음으로 아까 만들어둔 Rig Builder 컴포넌트에 방금 생성한 VR Contraints컴포넌트를 넣어준다 다음으로 VR Contraints자식으로 빈 오브젝트 Right Arm Ik를 하나 만들어주고 거기에 Two Bone IK Contraints 컴포넌트를 만들어준다 Root, Mid , Tip 각..
가장 큰 특징으로는 UV와 Tangents좌표계의 의존성을 없애기 Generic Surface 접근을 돕는다 평면 투사(Projection)를 사용한다 3가지의 mapping을 Blend한다 Texturing Without UV Coordinates Texture mapping을 수행하기 위해 일반적으로 사용되는 방법은 Mesh에 각 Vertex가 저장된 UV-좌표계를 사용하곤 한다 그러나, 이렇게 하는 것이 유일한 방법은 아니다 때때로, 사용가능한 UV 좌표계가 없을 수도 있기 때문이다 예를 들어, 임의의 Shpae의 절차적 Geometry 과정일 때 런타임에서 Terrain이나 Cave를 생성할 때, 적절한 텍스쳐 UnWrap를 위한 UV 좌표계를 생성할 수 없다 이러한 경우, 우리는 대안적인 방법으..
사진의 모든 출처는 Unity Korea이다 NO!!!! 유니티의 내부 엔진은!! C++로 되어 있다!!! 흔히 게임엔진을 자동차로 비유하는데 엔진 내부는 C++로 되어 있고 유저에게 노출되어 있는 유저 스크립트들은 C#으로 작성할 수 있다!! IL2CPP가 도입되고 나서부터 유저 코드 부분도 C++로 작성할 수 있게 되었다 IL2CPP를 알기 위해서는 C#과 C++의 차이점을 알아야 한다 C++은 객체지향 즉, Class가 생겼으며 메모리 할당과 삭제를 유저가 직접 해주어야 한다 C#은 MS에서 개발한 .Net Framework기반으로 돌아가는 언어임, C++보다 생산성이 높은데 그 이유는 메모리 관리를 자동적으로 해주기 때문임!(가비지 컬렉터!) Mono같은 경우 .Net Framework를 대응하기..
그냥 간단하게 만들어봄 제목 뒤틀린 차원의 열쇠 보는 방향에 따라 열쇠 Room이 보일 수도 안보일 수 있음 힌트로 바닥에 빨간 라이트를 비춤
오늘은 베지어 커브에 대해 공부해 보았다 이론은 이러하다 3개의 네모 박스가 존재하고 첫 번째 파란색 동그라미는 Point 1에서 Point 2로 향하고 두 번째 파란색 동그라미는 Point 2에서 Point 3으로 향한다 향할때는 Lerp(보간)식을 이용해서 간다 targets[0].position = Vector3.Lerp(points[0].position, points[1].position, t / s); targets[1].position = Vector3.Lerp(points[1].position, points[2].position, t / s); 이때 보라색 하트는 첫 번째 파란색 동그라미와 두 번째 파란색 동그라미의 위치를 Lerp의 매개변수로 받아서 사용한다 player.position =..
먼저 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..
힘껏 벽을 밀치면 뒤로 밀려나갑니다 코드는 수정해서 나중에 올릴 예정
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.