진행한 것들

이번 주는 파이널 데모데이를 대비해 마지막 컨텐츠들을 추가하는 시간을 가졌다.

나는 주로 Level1 튜토리얼 부분을 맡아 맵을 만들고 인디케이터를 만드는 작업을 수행하였다.

또한 스크립터블 오브젝트를 이용하여 맵 마다 배경을 다르게 세팅해주고 Texture offset을 타일링 하는 작업도 하였습니다.

 

 

한 주 후기

 이번 주는 버그가 굉장히 많은 주였다. 다른 사람들과의 작업물이 겹치는 경우가 많다보니 원인이 어디서 발생했는지부터 따져야 하고 원인지를 발견했을 때부터 다시 버그가 왜 일어났는지를 따져야 하기 때문에 시간이 더 걸렸던 것 같다. 사실 나는 버그를 잡는 작업을 좋아하는 편이다. 스트레스는 많이 받지만 버그를 잡고나서 프로그램이 정상적으로 돌아갈 때의 성취감은 나의 동기를 자극할만한 만큼 좋다. 특히나 이번에는 버그 중에 스크립터블 오브젝트 때문에 고생했는데 에디터에서 잘만 됐던 스크립트가 빌드만 되면 자꾸 Null값이 되어 제대로 불러오지 못하는 버그가 있었다. 레퍼런스를 찾으면서 여러 시도를 해보다가 당장의 해결책을 발견했는데 스크립터블 오브젝트를 참조한 컴포넌트를 제거하고 다시 붙이는 방법이었다. 원인은 불분명한데 이미 참조가 된 상태에서 스크립터블 오브젝트의 이름을 변경했어서 참조를 못 찾는 오류라고 짐작된다.

 다음 주에는 파이널 데모데이를 준비하기 위해 마지막 컨텐츠 제작과 다듬기 작업들, 그리고 발표 준비를 할 예정이다. 할 일이 많아 부담감이 좀 있지만 내가 열심히 한 만큼 나올 것이니까 열심히 해볼 생각이다. 다음 주도 파이팅!

 

 

유데미 큐레이션 바로가기

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

진행한 것들

이번 주는 스프린트2를 진행하고 마지막 데모데이에 뭘 목표로 할 지 정하는 시간을 가졌다.

스프린트2에는 콤보 시스템의 효과를 추가하게 되었다.

콤보 별로 색을 다르게 하고 반짝이게 만들었다.

 

 

한 주 후기

 이번 주에는 스프린트2를 마무리하는 발표가 있었다. 개발팀에서 참관한다는 소식을 듣고 좀 부담을 가지게 되었다. 하지만 프로젝트를 생각했던대로만 끝까지 진행하고 발표도 잘 준비한다면 나쁘지 않은 결과가 있을 것이라 생각해 당장에 집중하기로 했다. 비록 발표는 발표자분들이 했지만 나도 질문에 답변하기도 했다. 개발팀분들의 질문이 좀 들어왔는데 내가 생각하지 못했던 부분들이 많았던 것 같다. 사용자의 입장에서 불편함을 겪을만한 것들을 먼저 생각한다는 점에서 '와, 역시 현업의 사람들은 다르구나' 하는 생각이 들었다. 우리 팀의 발표가 끝나고 진이 다 빠지게 되었다. 마지막 데모데이 때 뭘 할지 확실히 정해진 시간이 되기도 했던 것 같다.

 다음 주에는 출시를 목표로 데모데이까지 개발을 진행할 것이다. 다음 주도 파이팅!

 

 

유데미 큐레이션 바로가기

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

진행한 것들

저번 주에 기획한 내용을 바탕으로 프로젝트를 다시 개발하게 되었다.

나는 포스트 프로세싱을 적용하는 부분과 콤보 시스템을 맡게 되었다.

구간에 따라 다르게 포스트 프로세싱을 적용했다.

연속적으로 성공했을 때 증가하는 콤보를 계산하고 UI상에 보여준다.

콤보 시스템

 

 

한 주 후기

 이번 주에 포스트 프로세싱과 콤보 시스템을 만들면서 URP에 대해 많이 배운 것 같다. 특히나 포스트 프로세싱의 URP를 따로 적용하는 부분에서 어려움이 좀 있었는데 먼저 URP를 세팅하는 것부터 새로 배우게 되었다. URP는 일반 프로젝트와는 다르게 URP 에셋에 원하는 Render 데이터를 넣고 적용한 다음 Material을 다 바꿔줘야 적용이 된다. 포스트 프로세싱 방법은 하루동안 헤매다가 멘토님께 질문드리게 되었는데 카메라의 Render되는 방법이 달라서 카메라 stack에서 순서에 따라 Base, Overlay로 나누고 Culling Mask를 해당 레이어만 적용하여 보여줘야 포스트 프로세싱도 따로 적용할 수 있었다. URP를 처음 사용해보아서 삐걱댔지만 해결하고나니 방법을 몰라서 못했던 것이지 하면 쉽다는 것을 알게 되었다.

 다음 주에는 추가된 기획 내용에 따라 팀원들과 나눠서 개발할 생각이다. 어렵지 않게 잘 해낼 수 있다고 생각한다. 다음 주도 파이팅!

 

 

유데미 큐레이션 바로가기

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

진행한 것들

멘토님과의 미팅 이후 기획을 수정하게 되었다.

통일성이 부족하다고 하여 보스 씬과 복셀 등을 깔끔하게 날려내고 메인 씬에 집중하기로 했다.

 

 

한 주 후기

 이번 주에는 멘토링 중 피드백을 반영하여 기획을 다시 해보는 시간을 가졌다. 멘토님의 촌철살인과도 같은 피드백을 들으면서 우울하기도 했지만 정말 우리에게 필요한 내용들이라는 것을 안 뒤 바로 프로젝트에 적용하기로 했다. 그런데 적용하면서 보니 내가 만든 부분들이 많았고 그에 대한 허무감이 좀 들었다. 나는 이전에 여러 작업들을 도와주다가 보스씬을 메인으로 같이 작업하고 있었는데 보스씬 자체를 날리기로 결정했으니 '지금까지 뭐 했지?' 라는 생각이 든 것이다. 그렇게 멘탈적인 문제로 하루동안 떠돌며 작업 효율이 안 나오다가 당일 저녁에 팀원들과의 밥 약속에서 솔직하게 털어놓으니 팀원들이 오히려 격려해주며 같이 잘 해내보자고 했다. 팀원들과의 소통이 없었다면 더 안 좋은 상황이 길어졌을 것 같다. 꾸준하게 팀원들과 소통하는 것이 답인 것 같았다.

 다음 주에는 확실히 정해진 기획으로 배경 이동과 리소스 교체 부분을 맡기로 하였다. 다시 열심히 해보도록 하자. 파이팅!

 

 

유데미 큐레이션 바로가기

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

진행한 것들

이번 주에는 기획 명세서와 클래스 다이어그램을 바탕으로 작업하는 것을 했다.

나는 보스 게임 씬을 담당하게 되었는데 그 중에서 노트UI를 생성하고 노트를 이동시키는 부분을 담당했다.

아래는 노트를 이동시키는 코드이다.

// 목표한 지점까지 현재 노트 시간에서 시작 노트 시간을 빼고 
// 비트의 sample rate로 나누어 단위를 1로 만들어 준 뒤 UI의 width만큼 더해서 구현하였다.
protected virtual void MovePosition()
{
	
    samplePerUnit = noteCreator.SampleRate;
    // 목표 위치
    Vector3 pos = noteCreator.transform.localPosition;
    pos.x += noteCreatorTransform.rect.width / 2f;
    Debug.Log(pos);
    pos.x -= (noteCreator.CurrentSampleTime - myEvent.StartSample) / samplePerUnit * Screen.width;
    transform.localPosition = pos;
}

아래는 씬을 합친 사진이다.

 

 

한 주 후기

 이번 주는 정해진 기획 안에서 작업하는 것이라 굉장히 시간이 빨리 갔던 것 같다. 작업하면서 RectTransform에 대해서도 다시 찾아보게 되었고 노트 생성에서 오브젝트 풀링을 이용하기도 하였다. 제일 어려웠던 일이 다른 사람들의 작업과 내 작업을 합치는 것이었는데 합치면 오류나고 오류 고치면 다음 오류나고 이런 것이 반복되었다. 또한 연결하면서 생기는 새로운 작업들이 추가적으로 발생하여 일이 더 많아졌다. 계속 대면으로 소통하면서 진행하고 모르는 것은 물어보고 하니까 이후엔 꽤나 수월하게 진행한 것 같았다.

 다음 주에는 추가적인 컨텐츠를 생각해보기로 했다. 정말 어려운 일이지만 팀원들과 의견을 조율하여 좋은 컨텐츠를 만들어봤으면 좋겠다. 다음 주도 파이팅!

 

 

유데미 큐레이션 바로가기

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

진행한 것들

 이번 주에는 기능 명세서와 클래스 다이어그램 작성하는 작업을 했다.

 작업 관리로는 지라라는 툴을 사용하였다.

 그리고 각 분야별로 나누어 필요한 리소스나 기능을 리서치하였다.

기능 명세서를 작성하기 전에 어떤 것부터 작성해야할지 생각이 안 나서 먼저 큰 기능별로 나누어 어떤 요소들이 있나 조원과 이야기 하면서 정리하는 시간을 가졌다. 

그 후에 그 작업물을 바탕으로 기능명세서를 작성하였다.

함수명, 기능 설명, 우선순위 등등 먼저 예상되는 기능들에 대한 정보를 작성해보았다.

이후에 기능 명세서를 바탕으로 관련된 것끼리 묶어 클래스 다이어그램을 작성했다.

팀 프로젝트 작업을 관리하기 위해 지라라는 툴도 사용하였다.

이를 통해 팀원이 무엇을 작업하고 있는지 전체적인 작업 진행도가 어떻게 되는지 알 수 있었다.

프로젝트원이 만들어 본 타이틀 페이지이다.

보스 리소스와 애니메이션을 만들어봤다. (테스트 중)

 

 

한 주 후기

 이번 주에는 본격적으로 스프린트에 들어가기 전 리소스와 기능과 관련된 기술적인 코드들을 찾아보는 시간을 가졌다. 리듬게임에 필수적인 노트찍는 작업을 어떻게 할 지 고민이 많았다. 여러 에셋을 찾아가며 다른 사람은 어떻게 했는지도 찾아보고 시간과 공을 많이 들였다. 처음엔 유튜브(케이디)에 나와있는 대로 BPM을 자동 계산해주는 사이트로 곡의 BPM을 가져온 다음 정해진 공식을 사용하여 진행하려 했으나 우리가 찾던 기능인 유니티 에디터와 바로 연결할 수 있는 것이 아니어서 다른 것을 찾아보게 되었다. 그 다음으로는 깃허브에 참고될만한 작업물이 있어서 그 사람 것을 연구해보았다. 어떻게 사용하는지 까지는 알게 되었으나 이것도 우리가 사용하기엔 편하지 않아서 보류하게 되었다. 마지막으로 찾아본 것이 Koreographer라는 에셋인데 곡을 분석하여 노트를 찍어주고 변수와도 연동할 수 있다는 점이 좋아서 이걸로 채택하게 되었다. 아직 진행중이라 끝까지 이것으로 할지는 모르겠지만 매우 좋은 툴임에는 분명한 것 같다.

 다음 주부터 진짜 본격적인 프로젝트의 시작이다. 분명 어려운 작업들이 많을 것이고 조원과도 의견 조율을 해야할 때가 올 것이다. 그래도 같은 목표를 가지고 있으니 열심히 소통하면 잘 되지 않을까 싶다. 다음 주도 파이팅!

 

 

유데미 큐레이션 바로가기

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

진행한 것들

이번 주에는 프로젝트 첫 주차로 팀빌딩 후 프로젝트를 기획하는 작업을 했다.

우리 조는 플래포머 리듬게임으로 리듬에 맞춰서 키 입력을 하여 장애물을 피하는 게임을 만들기로 했다.

여러 툴들을 사용하여 기획 단계를 구체화했다.

피그마

플로우 차트

컨셉 기획서

 

 

한 주 후기

 팀 빌딩과 기획을 하면서 팀원들과 소통 부분에서 어려운 점이 하나씩 생겼던 것 같다. 먼저 내가 생각하고 있는 것을 말로 표현하는 게 어려웠던 것 같다. 처음엔 어색하고 너무 많이 말하는 거 아닌가 했지만 그림을 그리거나 질의응답을 통하는 방법으로 내 의견을 전할 수 있게 되었다. 다음으로는 기획을 진행하면서 세세한 규칙이나 산출물의 이미지를 일치시키는 것이 어려웠던 것 같다. 사람마다 생각하고 이해하는 게 달라서 나중에 또 다시 질문하는 경우가 자주 있었다. 이건 어쩔 수 없이 계속 질문하고 답변해서 최대한 같은 그림을 그려가도록 하는 게 최선의 방법이었던 것 같다. 여기서 중요한 점은 이 일치된 내용을 기록하는 것이라고 생각한다. 문제도 좀 있었지만 팀원들이 서로 소통하려고 노력하고 즐거운 분위기에서 대화를 나눌 수 있어서 기획 시간이 하나도 지루하지 않고 재밌었던 것 같다.

 다음 주에는 프로토타입을 만들어보면서 방법을 알아보기로 했다. 지금 BPM 관련해서 기술적으로 우리가 할 수 있는 방법을 찾고 있는데 빨리 찾아서 프로젝트를 진행하고싶다. 다음주도 파이팅!

 

유데미 큐레이션 바로가기

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

 

고박사의 유니티 기초 Part 01

강좌 내용

이 강좌에서는

유니티 엔진이 제공하는 것들

- 그래픽스, 렌더링, 물리, 다중 플랫폼, 오디오, 인공지능, 협업시스템, 광고 등

 

엔진 내 각 인터페이스나  게임오브젝트, 좌표체계

- 인터페이스, 프로젝트, 씬, 게임오브젝트, 프로젝트 등 유니티 용어와 좌표체계

- 3D 게임 오브젝트 - Cube, Sphere, Capsule, Cylinder, Plane, Quad

- 2D 게임 오브젝트 - Sprite, Sprite Mask, Sprite Shape, Sprite Shape Spline

- 왼손 좌표계(x, y, z)

 

오브젝트

Effect - Particle System, Trail, Line

Audio - AudioSource

Video - Video Player

UI - TextMeshPro

 

Camera Light

Camera와 Light의 속성들

 

C# 스크립트

변수, 조건문, 연산자 등

유니티 LifeCycle(Start, Update, Ondestroy 등)

 

으로 구성되어있다.

 

배운 내용

이 강좌에서 나는 Sprite Shape로 각도에 따라 Sprite의 모양을 다르게 지정할 수 있고 Trail 컴포넌트를 이용하여 총알이나 무기의 잔상을 남길 수 있다는 것을 배웠고 Camera의 Clear Flags에서 Depth only나 Don't Clear 모드일 때 오브젝트 이동 시 잔상이 남는다는 것을 배웠다.

 

이 강좌 추천 대상

이 강좌는 쉽게 유니티의 전반적인 개념과 기초적인 C# 스크립팅 개념들, 간단한 스프라이트 렌더링 예제를 포함하여 유니티를 처음 접하는 사람도 쉽게 배울 수 있을 것 같아 입문자에게 추천하고싶다.

 

2D 스프라이트 렌더링

 

3D 스프라이트 렌더링

 

후기

 이 강의에서는 유니티의 전반적인 개념들을 다루고 있다보니 예제가 좀 부족하다고 생각이 들었다. 나는 예제를 풀어가면서 이해하고 학습하는 것을 좋아하는 편인데 개념만 들으려다보니 조금 지루하기도 했다. 강의 후반부의 C# 스크립팅이나 LifeCycle같은 부분은 스타터스 강의를 들을 때 이미 배웠던 부분이라 복습한다는 생각으로 들었던 것 같다. 하지만 입문자의 입장에서 이 강의는 매우 친절하고 개념적으로 잘 알려주는 것 같아서 좋을 거라고 생각한다. 특히 무료강의라 듣기에 부담도 덜한 것 같다.

 이 다음 강의로 유니티 2D 기초 강의와 유니티 3D 기초 강의가 있던데 그 강의에서 여기서 배운 개념들을 활용하는 식으로 되지 않을까 싶어 다음 강의들이 기대가 된다.

 

유데미코리아 바로가기

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

+ Recent posts