유데미 스타터스 유니티 개발자 취업 부트캠프 1기 - 10주차 학습 일지
이번주는 새로 오신 강사님이 실습중심의 수업을 진행해주셨다.
이번 실습은 RigidBody에 대한 AddForce를 통해 공을 움직이고 특히 움직이는 허들에 닿을경우 해당 허들의 움직임에 따라 붙어있을 수 있도록 구현하는것이 중점적인 실습수업이었다. 그리고 실습과제를 그동안 배운 지식을 토대로 개인적으로 구체화까지 시켜보는 과정이 진행되었던 한주였다.
또한 강사님이 유니티 프로빌더라는 기능을 알려주셔서 간단한 오브젝트들은 직접 만들어볼수있었던 시간이었다.
이번 학습 일지는 실습에 대한 구현 상황과, 유니티 프로빌더에 대해 간략한 설명으로 적어나갈 예정이다.
🐥 공을 활용한 게임만들기
처음에 구에 RigidBody를 활용하여 Addforce를 주면 구의 Transform과 Rotate가 변하며 확실하게 돌아 가는것을 확인할 수 있었으나 이렇게 구현하게 된다면 카메라가 해당객체를 따라가는 부분에 있어서 Rotate값 때문에 3인칭 시점을 구현하기가 불가능했다.
따라서 빈 게임 오브젝트에 SphereColider, RigidBody를 붙이고, RigidBody의 Constraints중 rotate항목을 잠금처리후 그아래 자식개체로 Sphere렌더링 처리를 해주어 돌아가는 것처럼 구현을 하여 공의 회전을 구현하였다.
폴가이즈의 움직이는 원판을 구현하는 과정에서 기존 RigidBody가 있을경우에 독립된 물리작용을 받아 부모객체의 Rotation값을 받지않음을 확인하고 원판영역에서는 RigidBody를 Sleep 처리한후 Transform으로 움직이게끔 구현하여 부모객체(원판)의 Rotation값을 적용받게 구현하였다.
폴가이즈와 같은 게임 분위기를 내기위하여 폴가이즈와 유사한 T-Pose의 obj모델 파일을 구하였고 이를 리깅하여 유니티에서 지원하는 휴머노이드 애니메이션을 적용하여 게임내 NPC의 움직임을 주었다. 각 개체의 로컬 포지션의 forward로 이동 하게 하였으며 방향전환이 필요할때는 객체의 rotation값을 회전시켜 해당 방향으로 나아갈 수 있도록 하였다.
각 개체에는 스크립트를 통해 움직임을 (이동속도, 점프빈도, 점프 강도, 점프횟수) 등을 구현하였으며 각 개체별 랜덤값을 통한 수치부여로 보다 다양한 움직임을 구현하였다. 특히, 플레이어의 경우 유동적인 레벨 조절을 위해 엔진내 조절이 쉽도록 헤더와 레인지 범위등을 부여하였다.
쉐이더를 통한 물의 흐름구현과 물에 들어갈경우 트리거, PostProcessing을 통한 ColorGrading효과로 푸른색계열의 화면, LensDistortion 을 통한 어안렌즈효과, vintage를 통한 파티클 효과를 주어 물에 들어간 느낌을 부여하였으며 isOnTrigger의 코루틴을 통해 일정시간(2초)가 지나면 플레이어의 리스폰 지점으로 리스폰시켜주었다.
회전원판 밑 구간도 리스폰을 위한 trigger체크를 통해 리스폰 시켜주었으며 위와 같은 PostProcessing을 통해 화면을 붉은색으로 전환시켰다.
각 레벨당 3개로 이루어진 상하반복 장애물은 각각의 개체에서 update문을 돌게될경우 시간이 경과하면서 한 방향으로 몰려 이동되는 문제점이 발견되어 하나의 스크립트에서 3개의 장애물 모두를 GameObject배열로 받아서 update문에서 foreach문으로 상승과 하강을 담당 하게 구현하였다.
현재 게임의 진행시간을 UI의 Text로 구현하기 위하여 Time.time을 활용하여 분과 초단위로 구분시켜 구현하였다.
🐥 유니티 프로빌더
유니티 프로빌더는 블랜더나 타 3d 모델링툴처럼 면, 점, 영역등을 기준으로 mesh를 쪼개거나 더할 수 있는 강력한 기능이다. 이를 활용하면 계단과 아치, 도넛형, 파이프형등 다양한 오브젝트들도 쉽게 제작이 가능하며 해당 모든영역에대한 개별 material도 부여할 수 있어 원하는 오브젝트들을 쉽게 만들 수 있다.
\
광개토 대왕릉비의 비문을 노멀맵으로 만들어 매트리얼에 붙여준 모습이다. 이를 통해 모든 면에 노멀맵이 적용된것이 아닌 원하는 영역(전면부)에만 노멀맵이 적용되어 랜더링 된것을 볼 수 있다.
🐥 총평
1. 기존 프로젝트를 제작하며 원하는 오브젝트를 구하지못해 안타까웠던 부분을 직접해결해 볼 수 있는 프로빌더라는 좋은 기술을 알게됬던 좋은시간이었다.
2. 강사님이 제시해준 기본로직에 더해 여태까지 배운개념을 바탕으로 직접 게임을 제작하며 다시한번 개념들에대해 찾아보고 복습할 수 있었던 좋은 시간이었다.
유데미코리아 바로가기 : https://bit.ly/3b8JGeD
Udemy Korea - 실용적인 온라인 강의, 글로벌 전문가에게 배워보세요. | Udemy Korea
유데미코리아 AI, 파이썬, 리엑트, 자바, 노션, 디자인, UI, UIX, 기획 등 전문가의 온라인 강의를 제공하고 있습니다.
www.udemykorea.com
본 포스팅은 유데미-웅진씽크빅 취업 부트캠프 유니티 1기 과정 후기로 작성되었습니다.