[UE4] PlayerController Possess/Unpossess시 카메라 컨트롤이 잘 안될 때

쿼터뷰 형식으로 카메라를 위치 시키고, 다수의 플레이어가 등장하며, 컨트롤(Possess)하는 플레이어는 그때그때 변경 가능한 상황이다. 이렇게 하면 camActor_1으로 view target을 지정하여 볼 수 있다. A 캐릭터로 컨트롤(Possess)하던 중, B 캐릭터로 컨트롤을 바꿔본다고 하자. A 캐릭터의 플레이어 컨트롤러 상태는 Possess-> Unpossess로 바뀌고, B 캐릭터는 Unpossess -> Possess상태로 변경된다. 이때 카메라가 잠시 의도하지 않는 곳을 바라보게 된다. 플레이어 … Read more[UE4] PlayerController Possess/Unpossess시 카메라 컨트롤이 잘 안될 때

[UE4] Debugging in Visual Studio – 디버깅 환경 세팅

언리얼 엔진 에디터를 종료한다. 빌드 환경 설정을 DebugGame Editor로 바꾼다. (개발은 Development Editor로 되어 있다는 가정. Development로 개발을 해야 코드의 반영 사항을 에디터에서 바로 확인할 수 있다 – Manual) 솔루션 탐색기에서 게임 프로젝트를 마우스 우클릭하여 Debug > Start New Instance를 실행한다. 그럼 비주얼 스튜디오가 언리얼 에디터 실행하여 띄운다. 알면 간단하다. 이제 breakpoint를 걸어서 코드를 step … Read more[UE4] Debugging in Visual Studio – 디버깅 환경 세팅

[UE4] 블랜더에 UE to Rigify Toolkit 적용 (3. Import/Export 마네킨)

블랜더에 UE to Rigify Toolkit 적용 기본 세팅 Export Cube Import/Export 마네킨 < 이번에는 언리얼에서 제공하는 마네킨으로 작업을 해보았다. 작업 순서는 다음과 같다. 언리얼 에디터에서 마네킨를 찾아 fbx로 추출(Export) 블랜더에서 추출한 fbx를 임포트(Import) UE to Rigify를 통한 리깅(Rigging) 블렌더에서 Send to UE를 통해 언리얼 에디터로 익스포트(Export) 우선 마네킨의 Skeletal Mesh를 찾고, 마우스 우클릭하여 컨텍스트 메뉴를 … Read more[UE4] 블랜더에 UE to Rigify Toolkit 적용 (3. Import/Export 마네킨)

[UE4] 블랜더에 UE to Rigify Toolkit 적용 (2. Export Cube)

블랜더에 UE to Rigify Toolkit 적용 기본 세팅 Export Cube < Import/Export 마네킨 기본 세팅이 끝났다면, 블랜더와 언리얼 에디터를 각각 실행하여 블랜더에는 익스포트하고자 하는 모델을 놓고, 언리얼 에디터에는 임포트할 프로젝트를 열어두자.블랜더에 Add-On 설치가 되어 있기 때문에, 메뉴상에 Pipeline > Export > Send to Unreal 이라는 기능을 찾을 수 있다.  블랜더에 디폴트로 놓여져 있는 큐브를 선택하여 Send … Read more[UE4] 블랜더에 UE to Rigify Toolkit 적용 (2. Export Cube)

[UE4] 블랜더에 UE to Rigify Toolkit 적용 (1. 기본 세팅)

블랜더에 UE to Rigify Toolkit 적용 기본 세팅 < Export Cube Import/Export 마네킨 예전에 언리얼 마네킨을 블랜더로 임포트 했을 때, 본이 틀어지는 이슈에 대해서 글을 쓴 적이 있다 (블랜더에서 언리얼 마네킨을 리깅한다면).  그때 언리얼에서 개발 중인 툴킷(Toolkit)을 소개한 적이 있었는데, 현재 릴리즈(2020년 하반기)되어 사용할 수 있다.  이 툴킷은 블랜더에 두개의 Add-on을 설치하고, 언리얼 엔진에서 몇가지 … Read more[UE4] 블랜더에 UE to Rigify Toolkit 적용 (1. 기본 세팅)

[UE4] UEnum에 정의된 값 루프로 돌리기(Iteration on UEnum in C++)

UEnum을 정의하고, 그 값들을 iteration하여 로그로 찍어보았다. 아래와 같이 EFruit을 정의한다. FindObject를 이용하여, 엔진 내부에 생성된 오브젝트에 접근한다.  그 후 NumEnums() 함수로 enum 개수를 가져오고, GetValueByIndex()를 통해 enum 값을 가져온다.  GetNameByIndex()로 enum의 스트링 값도 가져올 수 있다. const UEnum* enumPtr = FindObject(ANY_PACKAGE, TEXT(“EFruit”), true); if (enumPtr != nullptr) { for (int i = 0; i … Read more[UE4] UEnum에 정의된 값 루프로 돌리기(Iteration on UEnum in C++)

[UE4] 절차적 애니메이션으로 – 잽(Jab) 날리기

이 전의 글인 ‘절차적 애니메이션의 정체‘의 후속 글로서, 이해를 돕기 위해 꼭 이 전 글을 읽기 바란다. 권투의 잽(Jab)같은 펀치 애니메이션을 만들어 보았다.  기본 자세가 하나 필요할 것 같아서, 20 프레임 길이로 된 기본 자세 idle 애니메이션을 블렌더로 먼저 제작하였다.  펀치나 다른 종류의 키프레임 애니메이션은 제작하지 않았고, 오직 idle애니메이션 만을 사용하였다. 자, 이제 잽을 날리기 … Read more[UE4] 절차적 애니메이션으로 – 잽(Jab) 날리기

[UE4] 절차적 애니메이션의 정체

절차적 애니메이션(Procedural Animation)의 정의를 보면, 미리 정해져 있는 애니메이션을 플레이하는 것이 아니라 다양한 상황에 맞게 실시간으로 애니메이션을 생성하는 데 사용하는 기법이라고 보통은 기술되어 있다.  미리 정해져 있지 않다는 의미는 분명 키 프레임으로 만들어지지 않았다는 의미일 것이다.  그렇다면 실시간으로 애니메이션을 생성한다는 것은 도대체 무슨 소리인가.   절차적이란 용어는 지형 생성시에도 많이 쓴다.  오픈 월드 같은 커다란 지형을 … Read more[UE4] 절차적 애니메이션의 정체

[UE4] 블랜더에서 언리얼 마네킨을 리깅한다면

언리얼 샘플에 있는 마네킨을 fbx로 익스포트하고, 블랜더에서 그 fbx를 임포트 해보면 이렇게 나온다. 블랜더 초보라서 열심히 구글링을 해봤더니, 대략 알아낸 것은 이렇다.  이건 Maya에서 만들어진 것이라서 블랜더에서는 이렇게 나온다는 것 (왜 3D툴들은 제각각인지…), 저 본들의 위치와 로테이션을 임의로 돌려서 스킨에 맞춘다 하더라도 언리얼엔진에서 제대로된 애니매이션이 나오지 않을 수 있다는 것, 이것 관련해서 많은 커뮤니티 글들이 … Read more[UE4] 블랜더에서 언리얼 마네킨을 리깅한다면

[UE4] 발사체를 날린 후, 방향과 도착지점을 예측해 보았다

물리가 적용된 물체에 AddImpulse로 힘을 가하여 물체를 날려보낼 경우, 그 방향과 도착지점을 계산하여 예측해 보았다.  이전에 글에서 발사체를 궤적에 따라 날려보내는 방식을 소개한 적이 있는데, 이 글에서는 매 Tick에서 얻을 수 있는 물체의 속도로 부터 최종 위치를 예측해 보는 방식으로 테스트하였다. 제한 사항으로는 물체가 날아가는 동안 Linear Damping을 0으로 하였고, 중력가속도는 [latexpage] $ 9800 cm/s^2 $ … Read more[UE4] 발사체를 날린 후, 방향과 도착지점을 예측해 보았다