본문 바로가기

전체 글

(26)
유니티에서 미세먼지로 인해 황폐화된 SCENE 구현하기 (유니티, 오큘러스 RIFT 연동 포함) 현재 본 팀은 vr 기반 환경관련 정보전달성 게임을 개발 중이다. 게임의 엔딩씬에서 현실적인 오염된 지구환경을 제시함으로써 사용자들에게 환경오염 문제에 대한 경각심을 일깨우고 친환경적 삶의 필요성에 대해 강조하려 한다. 이번 글에서는 유니티와 오큘러스 리프트를 어떻게 연동하여 가상현실 개발 환경을 설정할 수 있는지, 유니티에서 미세먼지 효과를 어떻게 구현하는지, nav mesh 기능을 어떻게 활용할 수 있는지, collider로 충돌을 감지하여 scene전환 및 오디오 재생 방법에 대하여 알아볼 것이다. [유니티와 오큘러스 리프트 연결하기 (VR 개발환경 설정하기)] 가상현실 환경에서 개발을 하기 위해서는 우선 유니티와 사용할 HMD, 컨트롤러를 연결해줘야한다. 본 프로젝트에서는 하드웨어로 오큘러스 리프..
블록체인의 기본개념 응용계층: 사용자의 필요와 연관 구현계층: 요구사항 실현 기능적 측면 (동사) / 비기능적 측면 (부사) : 데이터 무결성, 작동 무결성, 보안 --> 모든 소프트웨어 시스템이 가지는 중요한 비기능적 측면 : 분산시스템, 중앙통제 시스템 (두개를 합친 혼합시스템도 존재) 혼합시스템에서 분산시스템인지 구분할 대는 전체시스템을 동시에 종료할 수 있는 단일 구성요소가 있는지 찾아본다. (있다면 분산시스템이 아니다.) p2p 시스템: 모두가 자원의 공급자인 동시에 소비자 (분산시스템의 한 종류) “사용자들의 컴퓨터를 분산 시스템을 구성하는 노드로 만든다.” 블록체인은 분산시스템이 무결성을 확보하게 해주는 도구이다. (블록체인의 목적은 분산시스템의 무결성을 구현하고 유지하는 것이다.) 무형의 상품이나 디지털화된 ..
유니티 기본강좌_15. 대화시스템 본격적으로 시작하기 전에 Asset 폴더 안에 이미지 폴더를 만들고, 사용할 이미지(png)를 먼저 가져다둬야한다. Image 폴더를 만든 뒤에, 사용할 이미지를 드래그 해서 넣어주면 저런식으로 이미지가 들어간다. 이미지를 클릭하게 되면, image inspector창이 뜨는데, 거기서 Texture type을 sprite로 바꿔준다 Sprite Mode의 single option은 이 이미지를 단일로 사용하겠다는 의미이다. 이 option을 Multiple로 바꿔준 뒤에 apply를 눌러준다. 이후, Sprite Editor를 눌러주면, package manager에서 설치하라는 메시지가 뜬다. 상단 바의 Window > Package Manager에 들어가서 2D Sprite를 찾아서 install ..
유니티 기본강좌_8. 애니메이션 큐브를 클릭하고 add component를 눌러서 animation component를 추가해준다. 아직은 animation이 없는 상태이기 때문에, animation을 먼저 만들어준다. Window> Animation> Animation을 클릭해서 아래와 같이 창을 만들어준다. 이 상태에서 큐브를 선택하고, 창을 옆으로 늘려주면 위와 같은 문구를 확인할 수 있는데, create button을 클릭해준다. 그러면 이런 창이 뜨는데, Assets 폴더 안에 Animation이라는 이름의 새 폴더를 형성해주고, Cube_1이라는 이름의 파일을 하나 생성해준다. 그러면 animation tap이 이렇게 바뀐다. 이것이 바로 우리가 만든 animation folder에 있는 animation을 편집할 수 있는 ..
유니티 기본강좌_7. 라이트 Type -Directional : 현실세계의 태양과 같은 것. 전 범위에 걸쳐서, 동일한 세기와 각도로 빛을 내리쬐는 것. -Spot : spotlight처럼 쭉 뻗어있다. -Point : 일반 전구라고 생각하면 됨. 동그랗게 빛이 퍼져나간다. -Area: bake 전용인데, tv라고 생각하면 됨. 직사각형 모양에서 빛이 새어나온다고 생각하면 됨. Color: 말그대로 조명의 색을 바꾸는 것. Mode -Realtime: 매 프레임마다 광원을 계산해서, 어느 위치에 그림자를 뿌리고, 밝기조정을 해주는 것. 매 프레임마다 계산하므로, 과부하가 걸리기 쉬움. 최적화를 시킬 때는 realtime을 되도록 사용하지 않아야 한다. -Mixed: Realtime과 Baked가 섞였다. -Baked: 최적화를 위해..
유니티 기본강좌 6._카메라 컴포넌트 카메라 프리뷰 = game 탭에서 보여지는 시야 Clear Flag: 여백을 어떻게 처리할지 결정 -Skybox: 여백을 하늘박스로 처리하겠다. (정육면체로 이뤄져있음) -Solid color: 여백을 하나의 색으로 처리 -Depth only: 여백을 투명처리 하는 것 -Don't clear: 여백을 투명처리 하는데, 이전에 있던 frame을 지우지 않겠다는 것(잔상이 남게됨) -자원이 절약되고 최적화가 더 잘된다. Culling Mask -Everything: 특정 layer만 보여주겠다. -Nothing: 모든 layer가 안그려지게 됨. -Water: layer가 water로 설정된 것만 보여짐 Projection : 원근감을 주기 위한 것 -perspective: 원근감이 있음 (3차원 공간에서 ..
유니티 기본강좌_5. 메쉬 렌더러 Mesh Renderer는 Mesh Filter에 있는 것을 뿌려주는 역할을 한다. 만약, Mesh Filter의 Mesh를 Cube가 아니라 Capsule로 바꿔주면, 이런식으로, 객체가 capsule모양으로 바뀐 것을 확인할 수 있다. Mesh란? 점과, 면으로 이뤄진 집합체와 같은 것 cube Mesh는 24개의 vertex(점)와 그 점을 각각 이어 만들어진 12개의 삼각형면으로 구성되어있다. 이런 점과 면의 집합(mesh)을 그려주는 것이 mesh renderer이다. Mesh renderer의 체크를 해제해주면, scene에서 object가 안보이게 되는데, 이것은 그래픽만 사라진 것이다. (object 자체의 체크를 해제해서, 아예 사라지도록 하는 것과는 다르다.) [Additional Se..
유니티 기본강좌_4.컬라이더 컬라이더란, 충돌과 관련된 component이다. (큐브끼리 충돌했을 때, 서로 통과하지 않고, 부딪히도록) Box collider : 수많은 collider 중 한 종류, 모양이 box형태 이렇게 collider를 형성해서(체크해서), 통과하지 않고, 부딪히도록 만들어준다. collider가 없으면, 부딪히지 않고 통과해버린다. edit collider를 클릭하면, 이런 식으로, 초록색의 크기를 조절할 수 있다. 저 초록색 부분은 충돌하면, 통과되지 않고 부딪히게 되는 파트다. (초록색이 실제 물리적 몸이라고 생각하면됨. 흰색 큐브는 그저 보여지는 용) edit collider를 이용하지 않고, size값을 직접 조절해줄 수도 있다. center는 collider의 중심위치를 바꿔주도록 한다. mate..