전체 글 27

12. 빛의 지배자, 셰이더

12. 빛의 지배자, 셰이더 드디어 이 날이 오고야 말았다. 셰이더(Shader)...게임 엔진을 다루는 이에게 있어 셰이더는 게임 제작계의 엔드 컨텐츠라고 할 수 있는 것중에 하나이다. 다만 오늘 다룰 것은 테크니컬 디자이너들이 대상이 아니기 때문에 VRChat에서 자주 다루는 설정만 살짝 다루도록 하겠다. -빛 색상의 기본 이론 혹시 독자 분들은 이라는 것을 본 적이 있는가? 빛의 삼원색은 색의 삼원색과 달리 색을 합치면 합칠 수록 밝아지는 것이 특징이다. 컴퓨터의 모니터나 HMD에서 나오는 색들은 모두 빛의 삼원색에 근거한 색들이다. 빛의 삼원색은 3가지 색을 근원으로 하는데 한 번쯤은 들어본 적이 있을 것이다. 붉은색(R), 초록색(G), 파란색(B)를 말하는 것으로 합쳐서 RGB라 부른다. 그림..

11. 만져라! 잡아라! 메이드 인 피직스 본

11. 만져라! 잡아라! 메이드 인 피직스 본 -Physics Bone(피직스 본) Unity 에셋 스토어에서 파는 상품중에 다이나믹 본이라는 상품이 있다. 이 상품은 모델링을 통해 설정한 본이 물리영향을 받도록 설정할 수 있는 기능을 가진 편리한 에셋이었다. 물리영향을 받는 본을 만들 수 있기 때문에 VRChat에서도 흔들리는 동물의 꼬리나 귀 등을 손쉽게 만들 수 있었다. 그러나 위에서 보이는 것처럼 이 상품을 이용하기 위해서는 다이나믹 본 에셋을 구매할 필요가 있었고 때문에 접근성이 높지 않았었다. 이를 눈치챈 것인지 VRChat에서는 무료로 다이나믹 본을 사용할 수 있도록 SDK에 새로운 기능을 추가했는데 그것이 바로 피직스 본(Physics Bone) 컴포넌트이다! 심지어 피직스 본에는 물리영향..

10. Unity의 맥가이버! 컴포넌트

10.Unity의 맥가이버! 컴포넌트 컴포넌트에 대해서는 몇 번 언급한 적이 있을 것이다. 애초에 아바타를 업로드 할 때에도 Animator와 VRC Avatar Descriptor라는 컴포넌트를 사용하니 말이다. 그러나 Unity의 컴포넌트는 그것뿐이 아니며 유용한 기믹을 잔뜩 가지고 있으니 천천히 살펴보도록 하자! 아무리 그래도 컴포넌트를 전부 소개하기에는 무리가 있으므로 몇가지 자주 사용하는 컴포넌트만을 소개한다. -Transform 가장 많이 사용하는 컴포넌트인 Transform은 오브젝트의 좌표, 회전, 스케일을 관리한다. Transform은 많이 사용하는 컴포넌트이니 별다른 설명이 필요 없을 것이라 믿는다. -Mesh Renderer 메시(Mesh) 데이터를 형체로 구현시키는 컴포넌트라고 할 ..

9. 애니메이션 고급편

9. 애니메이션 고급편 애니메이션 기능은 VRChat 아바타의 알파이자 오메가인 기능이다. 따라서 애니메이션을 얼마나 잘 활용할 수 있는 가가 아바타의 성능을 결정하기도 하며 복잡한 애니메이션을 사용하는 경우 최적화의 여부에 따라 아바타 자체의 용량이 갈리기도 한다. 아마도 이번 편이 가장 길 것이므로 힘내서 가보도록 하자. +animation탭 Preview의 함정. Preview 상태를 종료하고 아바타를 업로드 할 것 설명을 시작하기 전에 이전에 설명하지 않은 것을 설명하려 한다. Preview 기능은 7장에서 한 번 설명했을 것이다. 7장에서는 설명하지 않았지만 본격적으로 아바타를 수정하는 이번 장부터는 Preview 기능의 함정을 소개해야만 한다. 애니메이션의 미리보기 기능을 사용하면 이런식으로 ..

8. VRChat 아바타 업로드의 기초

8. VRChat 아바타 업로드의 기초 이번 강좌에서는 드디어 이론적인 공부에서 벗어나 아바타를 제대로 업로드 해 보겠다.....물론 이론 공부를 먼저 선행하고 나서다. -VRC Avatar Descriptor 컴포넌트 세부사항 우선 VRC Avatar Descriptor 컴포넌트를 좀 더 자세하게 알아보자. View : 화면으로 보이는 시선의 위치를 설정한다. View Position : Edit 버튼을 누르면 Scene탭에 작은 구체와 함께 이동도구가 나타난다. 저 구의 위치가 시선의 위치다. Z축의 + 방향이 아바타의 앞 방향이므로 잘 고려해서 시선을 설정하면 된다. 사람형 아바타의 경우 왼쪽 눈과 오른쪽 눈 사이의 미간에 둔다. LipSync : 플레이어가 말할 때 입을 어떻게 움직일까에 대한 설..

7. 오브젝트에 생명을! 애니메이션

7.오브젝트에 생명을! 애니메이션 오늘 다룰 것은 아바타 제작의 꽃이라고 할 수 있는 애니메이션이다. 애니메이션, 우리가 다룰 Unity의 애니메이션이란 쉽게 말해서 오브젝트의 각 요소가 어떻게 변화하는지이다. 예를 들어 한 오브젝트를 (0,0,0)에서 (0,0,10)으로 이동시키거나 3초 뒤에 비활성화해서 안 보이게 한다거나. 즉, 오브젝트의 모든 변화는 애니메이션이라고 할 수 있다. 오브젝트의 요소를 변화시키는 일은 C# 스크립트를 통해서도 제어할 수 있다. 다만 이전에도 언급했듯이 VRChat에선 C# 스크립트를 거부하고 있기 때문에 애니메이션을 통해 오브젝트를 제어하는 것이 일반적이다. 애니메이션이 오브젝트를 제어할 수 있는 유일한 수단이기 때문에 만약 자신이 아바타에 기믹을 넣기 위해 알고리즘이..

6. 질감의 조정자, 메트리얼

6. 질감의 조정자, 메트리얼 Unity의 메트리얼 파일을 좀 더 자세하게 뜯어 보겠다. 결론적으로 메트리얼 파일은 셰이더와 텍스쳐 등등 3D 모델이 어떻게 보여야 할 지를 종합하는 파일이라고 할 수 있다. 모델에 따라선 1개의 메트리얼을 쓸 수도, 복수의 메트리얼을 쓸 수도 있다. 메트리얼 파일을 선택했을 때, Inspector 창에 표시되는 정보는 메트리얼 파일에 적용된 셰이더 파일에 기반하고 있다. 셰이더에서 빛 계산에 필요한 데이터를 입력하라는 것이다. 요약하면 메트리얼은 셰이더와 메시의 중계자 역할을 하며 이 파일이 빠지면 오브젝트는 게임에서 정상적으로 표시될 수 없다! Inspector 창에 표시되는 정보는 셰이더에 관한 내용이기 때문에 이 내용은 후에 12장에서 다루겠다. 메트리얼을 적용한 ..

5. 3D모델 기초

5. 3D모델의 기초 가장 먼저 알아볼 것은 3D 모델, 즉, FBX 파일에 대해서이다. 3D 모델 파일인 FBX 파일은 생각보다 많은 정보를 가지고 있다. 본 강좌에선 무료 3D 모델링 프로그램인 Blender를 사용하는데 독자 여러분들이 설치할 필요는 없다. 3D 모델의 메시(Mesh), 즉, 모양은 총 4가지 요소로 구성되어 있다. 점(Vertex), 변(Line), 면(Face), 그리고 전체다. 변은 2개의 점으로만 이루어지고 면은 최소 3개 이상의 점, 3개 이상의 변으로 이루어진다. -3D 모델의 기준점(Center, Pivot) 3장에서 설명한 '기준점'에 대해서 설명하도록 하겠다. 이 기준점은 Blender와 같은 3D 모델링 프로그램에서 임의로 설정하는 것이 가능하기 때문에 모든 3D ..

4. 많이 사용하는 파일

4. 많이 사용하는 파일 BOOTH에서 받은 파일을 봐도 알겠지만 Unity에서 사용되는 파일의 가지 수는 상당하다. 그래도 이 파일들의 특성을 파악하고 구사할 수 있다면 아바타를 만드는데 큰 도움이 될 수 있다. * 붉은색으로 써져 있는 이름들은 [확장자 명]으로 파일을 부르는 이름이 확장자 명과 같을 수도 있고 다를 수도 있다. 1. unitypackage Unity 전용의 압축 파일로 필요한 에셋 파일들을 묶어두고 있는 파일이다. BOOTH에서 받는 파일들은 모두 unitypackage 파일로 묶여있을 것이다. 2. fbx 3D 모델의 정보를 가지고 있다. 보통 가지고 있는 정보는 메시(Mesh), 메트리얼(Meterial)을 가지고 있으며 때때로 본(Bone)이나 애니메이션(Animation) 정..

3. Unity의 기능

3.Unity의 기능 Unity를 모르는 상태로 아바타를 만든다는 것은 그야말로 눈뜬 장님이나 다름없다. 따라서 가장 처음 해야하는 것은 Unity의 조작법과 명칭을 익히는 것이다. -Unity 조작법 [Scene탭 조작법] 이동 : 우클릭 + W, A, S, D 빠른이동 : 우클릭 + Shift + W, A, S, D 이동 속도 조절 : Scene탭의 오른쪽 위의 카메라 아이콘을 눌러 Camera Speed를 조절하면 이동 속도를 조절한다. [단축키] 되돌리기 : Ctrl + Z 복제(즉시 대상을 복사해서 하나 더 만든다) : Ctrl + D 복사(붙여넣기를 하기 전까지는 새로 생기지는 않는다) : Ctrl + C 붙여넣기(복사한 데이터를 새로 만든다) : Ctrl + V -Unity의 각 탭의 기능 ..