목록Categories (1099)
KoreanFoodie's Study
미국 주식시장이 상당히 불안한 행보를 보이고 있습니다. 러시아-우크라이나 전쟁으로 인한 타격도 있겠지만, 소비자 물가지수 상승으로 인한 부담이 주식시장에도 그대로 드러나는 징조일지도 모르겠습니다. 금리 인상으로 인한 압박이 주가에 이미 반영되었다고 생각하지만, 인상으로 인한 타격이 이제서야 직접적으로 드러나고 있다고 말하는 사람도 있습니다. 여러모로, 요즘 시황은 재미가 없습니다. 재미가 없는 것을 넘어서서, 피눈물을 흘리는 사람도 많겠네요. 누군가는 땀을, 누군가는 눈물을, 혹은 모든 것을 걸었을지도 모릅니다. 어쩌면, 그렇기에 불안한 것이 당연한 것일지도 모릅니다. 하지만 제가 말씀드리는 2가지를 기억하신다면, 지루하고 불안한 횡보장을 반드시 벗어날 수 있으리라 다짐합니다. 첫째, 오직 神만이 '최저..
Pure Virtual Function 이 왜 거기서 나와? 언리얼을 공부하던 중, 플레이 중에 ESC 버튼을 누르면 라는 에러가 나오면서 종료가 되는 현상이 발생했다. 그것도 지속적으로! pure virtual 함수가 호출되었다니?? 나는 만든적도 없는데.. 하며 에러로그를 보니 내 실수가 아닌, 엔진 쪽 버그로 보였다. 자세히 읽어보면 이 부분이 문제라는 건데... Fatal error: [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/Core/Private/Windows/WindowsPlatformMisc.cpp] [Line: 475] Pure virtual function being called 일단 구글링을 조금 해보다가, 임시 방편으로 해당 소스코드를 약간..
이득우님의 "이득우의 언리얼 C++ 게임 개발의 정석" 책을 따라가며 실습한 내용을 정리한 포스팅입니다. 실습에 필요한 자료들은 이 링크에서, 제가 작업한 예제 소스 완성본은 여기에서 찾아보실 수 있습니다. (저는 언리얼 4.27.2 버전 기준으로 작업하였습니다) 캐릭터 소켓 설정 무기는 메시에 착용해야 캐릭터 애니메이션에 따라 무기가 움직인다. 언리얼은 소켓이라는 시스템을 제공하는데, 우리가 사용하는 워리어 캐릭터의 스켈레탈 메시에는 이미 hand_rSocket 이라는 이름의 소켓이 생성돼 있다. 프리뷰 에셋을 추가해서, 소켓의 위치를 조정해보자. 무기 애셋은 InfinityBlade : Weapons 여기서는 소켓의 위치 값은 (-9.4, 3.0, 5.3), 회전 값은 (18.4, 23.2, 83.0..
이득우님의 "이득우의 언리얼 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학년 시절, 내 담임은 국어 선생님이셨다. 그래서인지 몰라도, 선생님께서는 여행을 가서 글을 쓴 기억을 종종 이야기해 주셨다. 하루는 허드슨 강이었다. 담임 선생님은 이렇게 말씀하셨다. 허드슨 강에서 찍은 사진은 흐릿한 기억을 완전히 되살려주지 못했지만, 강가 벤치에 앉아 썼던 글을 읽으니 그 당시 본인이 어떤 감정이었고 어떤 상황에 놓였었는지 생생히 기억난다고. 모든 사람들이 입을 모아 말한다. 남는 건 사진뿐이라고. 사진이 남는 거라면, 글은 어떠할까. 현재의 감정을 글로 남긴다면 그건 ..