목록Categories (1096)
KoreanFoodie's Study
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 콜리전 설정 콜리전은 물리적 충돌 영역을 의미하는데, 언리얼에서 콜리전은 크게 세 가지 방법으로 제작할 수 있다. 스태틱메시 에셋 : 스태틱메시 에셋에 콜리전 영역을 심는 방법이다. 스태틱메시 컴포넌트에서 비주얼과 충돌이라는 두 가지 기능을 설정할 수 있어 관리가 편리하다. 기본 도형(Primitive) 컴포넌트 : 구체, 박스, 캡슐 등의 기본 도형을 사용해 스태틱메시와 별도로 충돌 영역을 지정한다. 스켈레탈 메시를 움직일 때 주로 사용한다...
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 몽타주(Montage) 애님 그래프에 스테이트 머신을 삽입해 모든 캐릭터의 애니메이션을 처리할 수도 있지만, 경우의 수가 많아지면 스테이트 머신으로 이를 관리하는 것은 매우 어렵다. 따라서 언리얼은 특정 상황에서 원하는 애니메이션을 발동시키는 애니메이션 몽타주라는 기능을 제공한다. 먼저, 애니메이션 블루프린트에서 몽타주를 생성한다. 몽타주는 섹션(Section) 단위로 애니메이션을 관리한다. 위에서 본 것처럼, Attack1, Attack2, ..
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 애니메이션 블루프린트 : 애니메이션 블루프린트를 이용해 애니메이션 시스템을 제작하기 전에, 먼저 두 가지 구성 요소를 알아보자. 애님 인스턴스 : 스켈레탈 메시를 소유하는 폰의 정보를 받아 애님 그래프가 참조할 데이터를 제공한다. 블루프린트와 C++ 로 제작할 수 있다. 애님 그래프 : 애님 인스턴스의 변수 값에 따라 변화하는 애니메이션 시스템을 설계하는 공간이다. 블루프린트로만 제작할 수 있다. 엔진에서 "새로운 C++ 클래스 (모든 클래스 ..
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 캐릭터 모델 Pawn 대신 Character 액터를 만들어 조작해보자. Character 액터는 Pawn 액터를 상속받는데, Pawn 과 다른 점은 CharacterMovement 컴포넌트를 사용해 움직임을 관리한다는 것이다(Actor>>Pawn>>Character). 이 컴포넌트가 FloatingMovement 에 비해 가지는 장점은 다음과 같다. 점프와 같은 중력을 반영한 움직임을 제공 다양한 움직임 설정 가능(기어가기, 날아가기, 수영하기..
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 폰의 구성 요소 폰은 플레이어가 조작할 수 있는 액터이다. 인간형 폰을 제작할 때는 다음과 같은 요소를 고려해야 한다. 시각적 요소 : 인간형 폰이 되려면 애니메이션 기능이 필요하다. 애니메이션을 재생하도록 리깅(Rigging) 데이터를 추가한 메시를 스켈레탈 메시라고 한다(스켈레탈 메시 컴포넌트가 관리). 충돌 요소 : 인간형의 경우 캡슐 컴포넌트를 사용한다. 움직임 요소 : 폰 무브먼트 컴포넌트(FloatingPawnMovement 또는 C..
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 게임플레이 프레임워크 게임의 규칙을 관리하는 게임 모드와 플레이어가 조종하는 액터인 폰에 대해 알아보자. 프로젝트 세팅의 Selected GameMode 를 보면, Default Pawn Class 항목에서 게임에 입장한 플레이어에게 주어질 조종할 수 있는 액터, 폰의 타입을 지정할 수 있다. 언리얼 에디터에서 각각 GameMode, Pawn 을 상속받은 ABGameMode, ABPawn 을 생성하자. 그 후, 월드 세팅에서 GameMode O..
평소에는 사진을 거의 찍지 않는 사람들도, 여행을 가면 언제 그랬냐는듯 찰칵찰칵 사진을 잘도 찍어댄다. 남는 건 사진뿐이라는 건, 널리 알려진 명언임에 틀림없다. 그렇다면 사진보다 더 나은 건 없을까. 중학교 2, 3학년 시절, 내 담임은 국어 선생님이셨다. 그래서인지 몰라도, 선생님께서는 여행을 가서 글을 쓴 기억을 종종 이야기해 주셨다. 하루는 허드슨 강이었다. 담임 선생님은 이렇게 말씀하셨다. 허드슨 강에서 찍은 사진은 흐릿한 기억을 완전히 되살려주지 못했지만, 강가 벤치에 앉아 썼던 글을 읽으니 그 당시 본인이 어떤 감정이었고 어떤 상황에 놓였었는지 생생히 기억난다고. 모든 사람들이 입을 모아 말한다. 남는 건 사진뿐이라고. 사진이 남는 거라면, 글은 어떠할까. 현재의 감정을 글로 남긴다면 그건 ..
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 로깅 환경 설정 언리얼은 로깅 환경을 위해 UE_LOG 라는 매크로를 제공한다. UE_LOG(카테고리, 로깅 수준, 형식 문자열, 인자.. ) 로깅 수준은 크게 메시지(Log), 경고(Warning), 에러(Error) 이렇게 세 가지로 나뉜다. 언리얼 형식 문자열은 FString 을 이용해서 처리하는데, 다음과 같은 형식을 띤다. FString::Printf(TEXT("Actor Name : %s, ID : %d, Location X : %...
뚜벅뚜벅. 나는 걷는 것을 좋아한다. 하지만 먼 거리를 가야 할때면 어쩔 수 없이 무언가에 내 몸을 맡겨, 내 튼튼한 두 다리에게 짧은 휴가를 허락해야 한다. 스무 살의 나는 차에 관심이 많던 다른 아이들과 다르게, 삐까번쩍한 외제차에 눈을 돌리지 않았다. 만약에 그때의 내가 포르쉐나 람보르기니를 갖고 싶다는 꿈을 품었다면, 돈을 악착같이 벌기 위해 더 노력했을지도? 하지만 그때의 나는 허무주의를 숭상하며 공수래 공수거를 실천하는 나그네 같은 삶을 동경했었다. 나그네, 듣기에는 참 좋은데 나그네는 배고프고 누덕누덕한 옷을 입고 다닌다는 사실을 객관적으로 인지하지 못했었다(홍콩 야시장에서 떨이로 산 진짜 헝겊조각을 학교에 입고 다니기도 했다. 돌이켜보면 참 부끄러운 추억인데, 옆에서 말려줄 사람이 없었다)..
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 월드의 개념 월드는 다음과 같은 기초 요소를 제공한다. 공간(Space) : 가상세계를 구성하는 3차원의 영역 (Transform) 이라는 구조체 제공. 단위는 cm 시간(Time) : 가상 공간에서 흐르는 시간 물리(Physics) : 월드 공간에 배치된 물체에 작용하는 물리적인 환경(중력 등). 물체가 월드로부터 물리적인 영향을 받으려면 콜리전(Collision) 정보가 있어야 한다. 렌더링(Rendering) : 엔진이 제공하는 시각적인 ..