배운 것들

이번 주는 런 게임을 클론코딩 하는 시간을 가졌다.

ContextMenu로 함수를 호출해 디버그를 할 수 있다는 것을 배웠고

Image의 비율이 이상하게 나올 때에는 Image 프리펩에 Sprite를 넣어놓고

Preserve Aspect를 켜준 뒤 다시 이미지를 빼주면 된다는 것을 배웠다.

Enum.GetValues(typeof(Enum))을 사용하여 Enum타입의 요소들을 배열로 가져올 수 있다는 것을 배웠고

List의 AddRange로 리스트에 배열 요소들을 추가할 수 있는 것도 배웠다.

 

프로토타입 플레이

- 캐릭터 이미지를 클릭해 캐릭터를 추가하거나 뺄 수 있다.

- 버튼을 눌러 캐릭터가 달린다.

- 시네머신으로 일정 시간마다 카메라가 전환된다.

- 이벤트 버튼을 누르면 속도 이벤트가 트리거된다.

 

 

한 주 후기

 이번 주는 런게임을 클론코딩 하면서 어떤 식으로 구현하면 되는지에 대해서 배웠다. 유투브에 우마무스메를 패러디한 게임인 고메무스메라는 팬 게임과 비슷한 방식으로 구현한 프로젝트를 클론 코딩한 것이다. 수업 중에 캐릭터의 속도에 영향을 주는 이벤트를 전체 캐릭터의 반절에게만 적용하는 코드를 각자 구현해보는 시간이 있었는데 스스로 구현해보는 시간이 있어서 좋았다. 그리고 사람마다 다른 구현 방식이 있어서 다른 방식을 보는 것도 재미 있었던 것 같다. 처음엔 어떻게 구현하면 될까 먼저 구상해보다가 캐릭터를 배열로 담는 것을 시도했는데 배열에서 중복을 제거하는 부분이 어려워서 리스트로 담게 되었다. 리스트의 Contains()를 활용하여 캐릭터가 이미 담겨 졌는지를 확인하고 적용하니까 중복 체크가 잘 되었다. 이렇게 쉽게 구현할 수 있었던 것은 자료구조를 코딩테스트를 통해 틈틈히 공부한 보람이 있었던 것 같다.

 벌써 이렇게 베이직 코스도 절반이 지난 것을 보니 나 잘하고 있는 건가하고 시간에 쫓기는 느낌도 들게 되었다. 그래도 하던 것처럼 꾸준히 노력하면 잘 되지 않을까 생각한다. 다음 주도 파이팅!

 

 

유데미코리아 바로가기

본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.

배운 것들

쉐이더 그래프

쉐이더 그래프를 만들기 위해 URP프로젝트를 생성한다.

Create - Shader Graph - URP로 들어가 쉐이더 그래프를 생성이 가능하다.

쉐이더 그래프를 생성하여 Material을 생성하여 Shader의 Shader Graphs에서 생성한 쉐이더 그래프를 선택할 수 있다.

일반 쉐이더처럼 Vertex와 Fragment가 있다.

Main Preview에서 변화의 적용을 확인할 수 있고 모양을 바꿀 수도 있다.

Graph Inspector에 Exposed가 체크되면 좌측의 블랙보드에 초록색이 뜬다. ⇒ Inspector에서 수정 가능

쉐이더에선 Vector4를 RGBA로 사용하는 경우가 많음

해당 사이트에서 쉐이더 텍스처들을 사용할 수 있다.

https://ambientcg.com/list

 

ambientCG - Public Domain Resources for Physically Based Rendering

Free materials never looked this good! Get 1000+ PBR materials and textures for free under the Public Domain license.

ambientCG.com

쉐이더 그래프를 사용하여 나타나고 사라지는 효과를 줄 수도 있다.

 

시네머신

PakageManager - Unity Registry - Cinemachine으로 시네머신 기능을 사용가능하다.

패지키 내부에 각각 시네머신 기능을 사용한 씬들이 배치되어 있다.

Follow에 따라갈 transform을 드래그 앤 드롭으로 참조하여 따라가게 할 수 있고 그 세부사항들은 Body에서 조정 가능하다.

LookAt은 카메라가 바라보게 하는 기능이고(회전) Aim에서 세부사항들을 조정 가능하다.

Cinemachine Confiner로 카메라가 찍을 수 있는 영역을 정해줄 수 있다.(바깥으로 나가지 않도록 해줌)

Bounding Volume에 미리 만들어 놓은 Collider를 집어넣으면 된다.

Target Group을 사용하여 다중 객체를 보여주게 할 수 있다.

다중 객체 추적시 서로 가까워지면 카메라도 가까워지는데 이는 Group ~ Min을 늘려서 조정 가능하다.

StateDrivenCamera는 타겟의 애니메이션에 따라 상태가 바뀌는 카메라이다.

자식에 특정 시점의 카메라들을 넣고 Virtual Camera Children을 추가한 뒤

State(애니메이션 상태)와 Camera(동작할 가상 카메라)를 선택한 뒤 Wait나 Blend의 s를 조정하여 카메라 변경의 이동을 조절한다.

Timeline과 Cinemachine

  • Timeline의 Activation Track은 그 때 오브젝트 활성화를 시켜준다.
  • 타임라인에서 애니메이터는 오브젝트의 애니메이터의 아바타가 있는 애니메이터를 넣어줘서 동작하는데 이는 위치를 기본 값으로 하기 때문에 부모로 empty obejct를 생성하여 부모를 옮겨주면 된다.
  • 애니메이션은 알아서 진행(위치가 이동 등)된다.

시네머신 과제

Dolly Camera와 Timeline 그리고 여러 Virtual Camera를 이용하여 보스전 진입을 만들었다.

 

 

 

한 주 후기

 이번 주는 쉐이더 그래프와 시네머신에 대해 배웠다. 쉐이더 그래프는 전에 쉐이더 스크립트에 대해 약간 배워볼 때 어렵기만 했던 cg언어를 그래프 형식으로 나타내어 조금 더 쉽게 접근할 수 있어서 좋았다. 시네머신은 새로 배운 Dolly Cam으로 시네머신의 트랙을 만들 수 있다는 것에서 적용할 부분이 꽤 많겠구나 하는 생각도 들었다.

 쉐이더 그래프 중에 나는 쉐이더 그래프를 배우면서 물체가 나타날 때의 형광색 띠를 만드는 것이 조금 힘들었다. 검은색 부분 RGB(0,0,0)과 흰색 부분(1,1,1)의 계산으로 흰색 띠를 만들어야 하는데 시간이 좀 걸렸지만 결국 양이 다른 두가지 반원을 만들어서 그 차이로 구했더니 잘 되었다. 유니티 공식 유투브에 Shader에 대한 내용도 있던데 나중에 그것도 배워보고 적용해 볼 생각이다.

  다음 주에는 뭘 배울지 궁금하다. 이렇게 계속 재미있는 내용을 배웠으면 좋겠다. 다음 주도 파이팅!

 

 

유데미코리아 바로가기

본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.

배운 것들

비주얼 스크립팅

Pakage Manager - Unity Registry - Visual Scripting를 설치해 비주얼 스크립팅 플러그인을 다운받을 수 있다.

게임 오브젝트에 script Machine 컴포넌트를 추가해 비주얼 스크립트를 사용할 수 있다.

이후 그래프를 추가하여 일반 스크립트의 흐름도 같이 사용할 수 있다.

우클릭으로 흐름도의 노드를 추가하여 문장을 만들 수 있다.

에러가 나면 콘솔에 오류가 뜨고 그래프 내에도 빨간색으로 표시된다.

변수의 영역은 Graph, Object, Scene, App, Saved로 나뉘어진다.

좌측의 Variables를 추가해 드래그 앤 드롭으로 끌어와서 Get Variable을 할 수 있다.

Set Variable은 우클릭 후 검색해서 사용 가능하다.

Script Machine의 Source를 Graph로 하면 Graph에 종속되고 Embed로 하면 해당 컴포넌트에 종속된다.

그래프를 만들고 다른 그래프에 서브 그래프로 넣어서 함수 같이 사용할 수 있다.

Event와 Trigger를 설정해 코루틴도 사용이 가능하다.

 

상태 머신

Script Graph는 상태 머신으로 Animator의 Transition과 같이 조건에 의한 상태의 변화의 흐름도를 작성할 수 있는 그래프이다.

조건에서 여러 개의 동작을 같이 수행할 때 좋다.

일정 거리 이내일 때 쫓아오는 모습

 

플레이 영상

고전게임 '플래피 버드' 모작

- 타이틀 씬과 게임씬 구현

- Input 이벤트와 파티클 구현

- 씬마다 사운드 구현

- 버튼 구현

 

한 주 후기

 이번 주는 비주얼 스크립팅인 State Machine과 Script Machine에 대해 배웠다. 비주얼 스크립팅은 빠르게 프로토타입을 만들거나 프로그래머가 비개발자에게 간단하게 흐름을 보여주기 위해 사용한다고 한다. 나도 지금 사용 방법을 배워놨으니 나중에 쓸 일이 있지 않을까 하고 열심히 배웠다.

 배우는 동안 새로운 작업 방식에서 힘든 일이 꽤 있었는데 먼저 Variables의 종류(Graph, Object, Scene, App, Saved)에 따라 변수가 사용될 수 있고 없다는 것을 이해하는 게 어려웠다. 예를 들어 Graph는 스크립트 같이 해당 graph를 가지고 있는 오브젝트는 하나의 graph를 수정하면 같이 영향을 받는다는 것이고 Object는 그 한 오브젝트 안에서만 종속되는 것에 대해 사용해보면서 익히는 것이 어려웠던 것 같다. 처음엔 여기 저기 사용도 해보고 한 씬에서 전역변수처럼 사용하려고 Scene변수에 다 넣어도 보고 이러다가 다음 씬으로 넘어갈 때 다시 짜기도 해보고 그러면서 익혔다. 그래서 생각보다 더 많은 기능을 추가할 시간이 부족했던 것 같다. 익히는 시간은 좀 더뎠지만 이제 확실히 이해했으니 다음엔 더 많은 기능을 추가해보도록 노력해야겠다.

 다음 주엔 어떤 내용을 배울지 기대가 된다. 다음 주도 집중을 잃지 않고 열심히 배우도록 노력해야겠다. 다음 주도 파이팅!

 

 

유데미코리아 바로가기

본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.

총알 UI 만들기

우선 Canvas를 하나 만들어 아래에 TextMeshPro를 추가한 후 현재 Ammo와 연결시켰다.

Weapon스크립트가 SerializedField로 AmmoSlot과 Ammo을 선언했기 떄문에 각각의 Weapon 타입과 ammo의 양을 불러올 수 있으므로 여기서 텍스트 동기화까지 해주었다.

 

피격 효과

DisplayDamage에서는 Start에서 피격 Canvas를 꺼주고 코루틴으로 넘어가는 함수로 ShowDamageImapct라는 함수가 있고 호출되는ShowSplatter가 있는데 ShowSplatter에서 정해진 시간동안 피격 Canvas를 켰다가 끈다.

PlayerHealth의 hitPoints가 감소할 때 DisplayDamage스크립트의 ShowDamageImapct를 호출하게 했다.

죽었을 때 버튼이 가려지는 걸 방지하기 위해 Sort Order는 Game Over Canvas보다 낮은 8로 정했다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

플래시라이트와 배터리  (0) 2022.09.22
조명 추가하기  (0) 2022.09.22
ProBuilder 마무리  (2) 2022.09.22
Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22

플래시라이트와 배터리 만들기

카메라 아래에 Spot Light를 달아 정면을 비추게 조정하고

Light컴포넌트를 가져와서 빛이 최소 각도까지 점점 줄어들고 밝기도 점점 줄어드는 코드를 넣었다.

배터리 만들기

플래시라이트 오브젝트의 FlashLightSystem에 빛 각도와 세기를 충전해주는 함수를 작성하고

프로 빌더로 배터리를 만들고

배터리에서 FlashLightSystem의 함수들을 호출하고 자신을 파괴하는 식으로 만들었다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

총알 UI 만들기와 피격 효과  (0) 2022.09.22
조명 추가하기  (0) 2022.09.22
ProBuilder 마무리  (2) 2022.09.22
Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22

조명 추가하기

Material의 Emission을 키면 자체발광이 된다.

색을 정해줘야 빛난다.

Intensity로 강도를 조절할 수 있다.

이후 Point Light도 추가해 Wall Light를 비추게 만들었다.

SkyBox 조명 Intensity까지 끄면 많이 어두워진다.

높이면 독특해진다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

총알 UI 만들기와 피격 효과  (0) 2022.09.22
플래시라이트와 배터리  (0) 2022.09.22
ProBuilder 마무리  (2) 2022.09.22
Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22

ProBuilder 마무리

Face 모드에서 Flip Normal을 사용하면 바깥쪽에서 안쪽의 모양을 볼 수 있다. 반대로는 불가

Edge 모드에서 Vertex 두 개를 클릭하고 Connect Verticles를 하면 Vertex끼리 이어진다.

문마다 설정해서 한 방씩 선택할 수 있다.

벽에 텍스처 칠하기

Material Editor로 Material을 등록한 뒤 Alt + ~로 사용할 수 있다.

텍스처를 변경하는 방법 중 Tile Offset을 변경하는 방법은 여러 개가 있는데

하나는 Material에 접근하여 Tiling을 조절하는 방법이고

다른 하나는 ProBuilder에서 적용할 면들을 선택해서 Tiling부분을 바꾸면 된다.

그리고 저 좌표축을 움직이면 패턴도 바뀐다.

Swap UV로 가로 세로 패턴 축을 바꿀 수 있다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

플래시라이트와 배터리  (0) 2022.09.22
조명 추가하기  (0) 2022.09.22
Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22
게임 디자인  (0) 2022.09.22

Progrids

com.unity.progrids로 다운받으면 

이처럼 Progrids를 사용할 수 있다.

위에서부터

- 그리드 간격

- 그리드가 보일 지 말지

- 스냅 기능 사용할 지 말지

- 모든 오브젝트를 스냅 할 지 말지

- 그리드의 중앙에 고정 시킬지 말지

- x축 그리드

- y축 그리드

- z축 그리드

- 3D 그리드

벙커 만들기

Progrids를 켠 상태로 ProBuilder의 New Poly Shape를 통해 자신만의 폴리곤을 만들 수 있다.

면을 선택하고 backSpace를 누르면 삭제된다.

Shift를 누르고 이동시키면 밀어낸다.

Vertex 모드에서 두 개 이상의 Vertex를 선택하고 Collapse를 누르면 합쳐진다.

이후 모든 Vertex를 선택하여 Weld Verticles를 하면 비슷한 부분에 있는 버텍스들끼리 합쳐진다. (빈공간 없어짐)

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

조명 추가하기  (0) 2022.09.22
ProBuilder 마무리  (2) 2022.09.22
ProBuilder  (0) 2022.09.22
게임 디자인  (0) 2022.09.22
좀비 추가하기  (0) 2022.09.21

ProBuilder

패키지 매니저에서 ProBuilder를 설치할 수 있다.

Tools - ProBuilder Window를 키면 프로빌더를 사용할 수 있다.

Shift 좌클릭을 하면 사이즈만큼의 견본이 나온다.

Center Pivot으로 피봇 위치를 중앙으로 만들 수 있다.

Edge 모드에서 Insert Edge Loop를 선택하면 선택한 edge가 가로면 세로 세로면 가로 edge가 생성된다.

한 모서리를 선택하고 Select Edge Loop를 누르면 연결된 Edge들이 모두 선택된다.

위 기능은 Face 모드에서도 Select Face Loop라고 있다.

Extrude Faces를 누르면 면을 튀어나오게 한다.

선택할 때 Select Hidden : On을 하면 안 보이는 곳까지 선택된다.

Vertex Colors로 색을 선택하고 Apply하면 색이 입혀진다.

다른 총알도 만들었다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

ProBuilder 마무리  (2) 2022.09.22
Progrids  (0) 2022.09.22
게임 디자인  (0) 2022.09.22
좀비 추가하기  (0) 2022.09.21
탄약 픽업  (0) 2022.09.20

게임 디자인

테마

정신 병원이나 정부가 사람들에 대해 실험을 한 연구 시설과 같은 버려진 지하 수용소

레벨 흐름

- 숲에서 시작하여 돌아다니면서 약간의 물건을 얻을 수 있고 입구를 찾는다.

- 시설의 계단을 타고 내려간다.

- 던전(다음 레벨)으로 들어가는 함정 문을 찾는다.

레벨 요구사항

- 적어도 1개 이상의 갈라지는 경로

- 적어도 2개 이상의 싸움 이벤트

-  적어도 1개 이상의 많은 적들이 있는 큰 싸움 지역

디자인 스케치 가져오기

디자인 스케치를 한 것을 jpg 파일로 가져와서 3D Object - Quad를 생성하고 바닥에 늘려서 이미지를 Material에 첨부했다.

그리고 사진 사이즈를 대강 맞춰주었다.

Terrain

그리고 Terrain을 추가했다.

'유데미 강의 > C#과 Unity로 3D 게임 개발하기 : 좀비 러너 게임' 카테고리의 다른 글

Progrids  (0) 2022.09.22
ProBuilder  (0) 2022.09.22
좀비 추가하기  (0) 2022.09.21
탄약 픽업  (0) 2022.09.20
무기에 따른 탄약  (0) 2022.09.20

+ Recent posts