안녕하세요 유랑입니다. 오늘은 HTC Vive와 VRIK를 사용해서 캐릭터를 연결해 보도록 하겠습니다.VRIK는 FinalIK에서 제공하는 유료 에셋이기에 참고하시길 바랍니다. 1. 캐릭터생성(VRIK) 1-1) 캐릭터 생성 - ㉠에셋 다운 이번 시간에는 유니티짱 캐릭터와 VRIK를 연동해서 캐릭터를 생성해 보겠습니다.에셋을 각각 다운받아 주세요. 1-2) 캐릭터 생성 - ㉡VRIK VRIK는 VR에서 몰입감을 높여주는 고마운 에셋입니다.캐릭터의 뼈대를 컨트롤러에 연결해서 자연스러운 애니메이션 효과가 가능합니다.unitychan을 생성한 후 VRIK 스크립트를 추가해 주세요. References는 뼈대를 연결해 주는 공간입니다.자동으로 연결해 주니 부담감이 없어서 좋네요^^ 여기서 중요한점이 왼손, 오른..
안녕하세요 유랑입니다. 오늘부터는 HTC Vive와 캐릭터를 연동해서 VRChat을 만들어 보도록 하겠습니다.우선 네트워크는 포톤을 사용할 예정입니다. 1. 캐릭터 생성 1-1) 준비작업 - ㉠프로젝트 세팅 프로젝트 이름과 위치를 지정한 후 생성해 주겠습니다. HTCVive를 사용하기 위해서는 XR Settings에서Virtual Reality Supported를 체크 후 OpenVR로 설정해 주세요!!! 1-2) 준비작업 - ㉡SteamVR HTC Vive를 사용하기 전 에셋 스토어에서 SteamVR Plugin을 다운 받겠습니다.해당 에셋은 VR개발에 편리한 프리팹과 씬을 제공합니다. 1-3) 준비작업 - ㉢Photon Pun2 포톤은 접근하기 쉬운 네트워크 엔진입니다.에셋 스토에에서 PUN2를 다운..
안녕하세요 유랑입니다. 오늘은 HTC Vive의 컨트롤러를 이용해서 텔레포트하는 방법에 대해서 알아보겠습니다.지난 시간의 내용을 참고하셔서 따라와 주세요^^ 1. 텔레포트 1-1) 레이저 포인터 만들기 - ㉠레이저 프리팹 레이저 포인트는 VR 세계에서 매우 편리합니다.큐브를 이용해서 만들어 볼테니 잘 따라와주세요^^Cube 오브젝트를 생성 후 Box Collider를 제거하고 트랜스폼 값을 다음과 같이 변경해 주겠습니다.이름은 Laser로 변경해 주겠습니다. 머티리얼을 만들어 준다음 Shader는 Unlit/Color로, 색깔은 붉은색으로 변경 후 Laser 오브젝트에 적용해 주세요.적용하는 방법은 드래그앤 드랍을 통해서 쉽게 가능합니다. Laser 오브젝트 설정이 끝났으면 프리팹으로 만들어주고, 하이라..
안녕하세요 유랑입니다. 오늘은 HTC Vive의 컨트롤러를 이용해서 물체를 잡고 던지는 방법에 대해서 알아보겠습니다. 1. 물체 잡기 HTC Vive 컨트롤러는 Trigger, Grip, Touchpad 등 다양한 버튼과속도와 각속도를 측정하여 제공해 줍니다.트리거 버튼을 이용해서 잡기와 터치패드 버튼을 이용해서 텔레포트를 구현해 보도록 하겠습니다. 1-1) Vive 설정 - ㉠프로젝트 세팅 프로젝트 이름과 위치를 지정한 후 생성해 주겠습니다. HTCVive를 사용하기 위해서는 XR Settings에서 Virtual Reality Supported를 체크 후 OpenVR로 설정해 주세요!!! 1-2) Vive 설정 - ㉡SteamVR HTC Vive를 사용하기 전 에셋 스토어에서 SteamVR Plugi..
안녕하세요 유랑입니다. 이번 시간에는 대리자와 이벤트에 대해서 알아보겠습니다.대리자는 콜백을 구현하기 위해서 사용되는데요.대리자 선언 예로 한 번 알아볼까요? 1. 대리자 대신 어떤 일을 해줄 코드를 두고, 이 코드가 실행할 세부 코드는 컴파일 시점이 아닌 실행 시점에 부여하는 방식이 대리자입니다.이름그대로 비서처럼 대신 어떤 일을 해주는 방식이죠. 1-1) 대리자란 대리자는 delegate 키워드를 이용해서 선언합니다.대리자를 이용하여 콜백을 구현하는 과정은 다음과 같습니다.나머지는 코드를 통해서 알아보겠습니다. - 대리자를 선언- 대리자의 인스턴스를 생성- 대리자를 호출 1-2) Callback 프로그래밍을 하다 보면 '값'이 아닌 '코드'를 이용해 매개 변수로 넘기고 싶을 때가 많습니다.이런 때 대..
안녕하세요 유랑입니다. 이번 시간에는 예외를 처리하는 방법에 대해서 알아보겠습니다.프로그래머가 생각하는 틀에서 벗어나는 사건,생각만해도 끔직한데요. 과연 이 예외처리를 어떻게 해야 될까요? 1. 예외 처리 예외가 프로그램의 오류나 다운으로 이어지지 않도록 처리하는 것을 예외 처리라고 합니다.이런 예외 처리하는 기법에 대해서 알아보겠습니다. 1-1) 예외에 대해서 예외를 처리하기 전에 예외가 발생하는 결과를 확인하겠습니다.코드를 통해서 알아보겠습니다. 1-2) 예외 받기 - try ~ catch 예외가 발생하면 안전하게 받아 처리하는 프로그램을 만들어 보겠습니다.try 절 안에 예외가 일어나지 않을 경우에 실행되는 코드들이 들어가고,catch 절에는 예외가 발생했을 때의 처리 코드가 들어갑니다.코드를 통해..
안녕하세요 유랑입니다. 오늘부터 쉐이더에 대해 알아보겠습니다.게임제작에 꼭 필요하기에 번외편으로 준비해 보았습니다. 1. 쉐이더 쉐이더는 무엇일까요? '화면에 출력하는 픽셀의 색을 정해주는 함수' 라는 뜻을 가지고 있습니다.하지만 이렇게 생각하기에는 딱딱한 느낌이 드네요.감성적인 부분까지 표현하면 더 많이 달라질거에요.게임 엔진이 영화에 필적할만한 표현이 가능해졌기에 쉐이더라는 부분이 점점 더 부각되는것 같습니다. 2. 쉐이더 기본 지식 쉐이더를 시작하기 전 쉐이더에 필요한 기본적인 지식에 대해서 알아보겠습니다.바로 렌더링 파이프라인과 빛의 원리인데요.과연 어떤걸까요? 2-1) 렌더링 파이프라인 - ㉠오브젝트 데이터 받아오기 렌더링 파이프라인은 총 4단계의 과정을 거치게 됩니다.오브젝트 데이터 받아오기는..
안녕하세요 유랑입니다. 오늘은 HTC Vive의 컨트롤러 다뤄보는 시간을 가지겠습니다. 1. HTC VIVE HTC Vive는 대만의 HTC와 Valve가 합작해서 만든 VR 기기입니다.오큘러스와는 다르게 룸 스케일 방식을 도입해서 공간을 인지해 공간 감각을 극대화시켰습니다. 1-1) Vive 설정 - ㉠설치하기 Vive 장비를 준비하셨으면 필요한 소프트웨어를 설치해 보겠습니다.설정(다운로드) => 준비하신 기기를 선택해 주세요.https://www.vive.com/kr/ 설치는 총 베이스 스테이션, 링크박스, 헤드셋, 컨트롤러까지 페어링시키면 됩니다. 1-2) Vive 설정 - ㉡프로젝트 세팅 프로젝트 이름과 위치를 지정한 후 생성해 주겠습니다. HTCVive를 사용하기 위해서는 XR Settings에..
안녕하세요 유랑입니다. 이번 시간에는 일반화 프로그래밍에 대해서 알아보겠습니다.여러 가지 데이터 형식에 맞춰 동작할 수 있도록 하는 일반화 프로그래밍은 어떤 것일까요?한 번 알아보겠습니다. 1. 일반화 프로그래밍 포유류, 동물, 식물 등 공통된 개념을 찾아 묶는 것을 "일반화"라고 합니다.이런 일반화를 하는 기법에 대해서 알아보겠습니다. 1-1) 일반화 메소드 일반화 메소드는 데이터 형식을 일반화한 메소드입니다.구체적인 형식의 이름 대신 형식 매개 변수가 들어간다는 사실이 다른데요.코드를 통해서 알아보겠습니다. 1-2) 일반화 클래스 일반화 클래스는 데이터 형식을 일반화한 클래스입니다.문법은 같지만 일반화 메소드처럼 형식 매개 변수가 있는 것이 다릅니다. 1-3) 형식 매개 변수 제약시키기 형식 매개 변..
안녕하세요 유랑입니다. 오늘은 공감버튼을 요청하는 방법에 대해서 알아보겠습니다.특별한 기능은 아니지만 소소한 팁이기에 이렇게 글을 남겨봅니다. 1. 공감버튼 티스토리에서 글을 쓰면 카테고리에 다라 주제가 분류되며 자동적으로 티스토리 주제별 게시판으로 송고됩니다.공감이 많은 콘텐츠가 더욱더 노출이 잘 되겠죠? 1-1) 공감 요구해 보기 방문한 다른 사람들이 내 글에 공감을 해준다면블로거로써 성취감을 크게 느낄 수 있습니다.물론 저도 그렇고요ㅎㅎ조금이나마 사람들에게 공감 버튼 유도를 어떻게 해야 할지 알아보겠습니다. 방문한 다른 사람들이 내 글에 공감을 해준다면블로거로써 성취감을 크게 느낄 수 있습니다.물론 저도 그렇구요ㅎㅎ조금이나마 사람들에게 공감버튼 유도를 어떻게 해야 할지 알아보겠습니다. 1-2) HT..
안녕하세요 유랑입니다. 이번 시간에는 컬렉션에 대해서 알아보겠습니다.같은 성격을 띄는 데이터는 어떤 자료 구조 형식을 가지고 있을까요?컬렉션을 통해서 알아보겠습니다. 1. 컬렉션 1-1) ArrayList ArrayList는 가장 배열과 닮은 컬렉션입니다.컬렉션의 요소에 접근할 때는 [ ] 연산자를 이용하고, 데이터를 임의로 할당가능합니다.예제를 통해서 알아보겠습니다. 1-2) Queue Queue는 대기열이라는 뜻을 가지고있습니다.말그대로 데이터나 작업을 차례대로 입력해뒀다가입력된 순서대로 하나씩 꺼내 처리하기 위해 사용됩니다.배열이나 리스트에서는 원하는 위치에 자유로운 접근이 가능하지만,Queue는 입력은 뒤에서 출력은 앞에서만 가능하답니다. 1-3) Stack Stack은 Queue와는 반대로 먼저..
안녕하세요 유랑입니다. 이번 시간에는 배열에 대해서 알아보겠습니다.C언어에서부터 알고 있는 배열은 C#에서 어떻게 표현될까요?한 번 알아보겠습니다. 1. 배열 1-1) 배열이란 구조체, 클래스와 마찬가지로 다수의 데이터를 저장할 때 쓰는 방법이 배열입니다.배열을 어떤 형식과 이름으로 생성할 수 있을지 예제를 통해서 알아보겠습니다. 1-2) 배열을 초기화하는 방법 배열을 초기화하는 방법은 여러가지 있습니다.배열의 용량을 명시하거나 생략하거나 형식 또한 생략이 가능합니다.그렇다고 기능이 바뀌지는 않지만 가독성과 편리성이 달라질 수 있겠네요. 1-3) System.Array 배열도 일종의 객체입니다. C#에서는 모든 것이 객체이기 때문이죠.배열은 System.Array 클래스에 대응되는데요.클래스의 기능에 해..