버그, 문제, 그리고 과정

문제 해결 방식은 프로그래머마다 다들 자기만의 방식이 있다.  그러나 그 방식들이 때론 try-and-error, 즉 시행착오법일 때가 많고 문제를 겉도는 경우도 많다.  그래서 어떤 기이한 버그(원인이 밝혀지지 않은 아주 가끔씩 발생하는 버그)는 프로그램팀내에서도 논리적으로 문제를 접근해 나아갈 수 있는 팀원에게 업무가 주어지곤 한다.  만약 자신에게 그러한 일이 잘 주어지지 않는다면, 스스로 문제 해결 능력이 부족한지 한번 … Read more버그, 문제, 그리고 과정

[UE4] Physics Sub-stepping(피직스 서브스테핑)에 대한 정리 (2 / 2)

#언리얼4 공부중 / UE4 버젼: 4.22.3 / 피드백 환영 Physics Sub-stepping(피직스 서브스테핑)에 대한 정리 (1 / 2) 에서는 피직스 서브스테핑에 관련한 용어를 정리해 보았다.  이제 substep의 tick을 받을 수 있는 샘플 코드를 작성해보자. Header에서는 FCalculateCustomPhysics 타입의 delegate를 선언하고, bind할 함수를 하나 정의하자. // Header UCLASS() class BALLMOVEMENTPROJ_API AStaticMeshActor : public AActor { GENERATED_BODY() public: AStaticMeshActor(); protected: void … Read more[UE4] Physics Sub-stepping(피직스 서브스테핑)에 대한 정리 (2 / 2)

[UE4] Physics Sub-stepping(피직스 서브스테핑)에 대한 정리 (1 / 2)

#언리얼4 공부중 / UE4 버젼: 4.22.3 / 피드백 환영 Physics Sub-stepping은 문자 그대로 보면, 물리 엔진의 작업 스텝을 서브 스텝으로 나눠서 작업이 행해진 다는 의미를 담고 있는 듯 하다.  무슨 소린지 어렵다.  일단 물리로 오브젝트를 다루려면 물리 프레임을 기반으로 게임상의 오브젝트들도 동작하여야 한다.  유니티에서는 FixedUpdate가 그 역할을 담당하는데, 언리얼에서는 fixed frame에 대한 개념이 유니티보다 더 … Read more[UE4] Physics Sub-stepping(피직스 서브스테핑)에 대한 정리 (1 / 2)

언리얼 서밋 2019 프리미엄 참관 후기

언리얼 서밋 2019 프리미엄에 어렵사리(?) 다녀왔다.  언리얼을 공부하는 입장에 여러모로 도움이 될까싶어 이번엔 꼭 가보자고 했는데, 운좋게 가볼 수 있었다.  내가 이러한 컨퍼런스에서 얻고자하는 것은 기능에 대한 디테일한 설명보다는 기술 키워드나 추후에 필요에 따라 찾아 볼 수 있는 레퍼런스를 모아두기 위함이 크다.  그래서 이번 세션들을 들어보면서 몇 가지 나만의 키워드를 정리해 보고자 한다. 내가 꼽은 … Read more언리얼 서밋 2019 프리미엄 참관 후기

[UE4] 커브볼이나 감아차기처럼 발사체(Projectile)에 회전을 넣어봤다

#언리얼4 공부중 / UE4 버젼: 4.22.3 / 피드백 환영 이전에 글에서 발사체를 궤적에 따라 날려봤으니 이제 그 발사체에 스핀을 걸어보고 싶었다.  그럼 야구에서 커브볼같은 효과나 축구에서 감아차기같은 효과를 낼 수 있을 것이다.  그런 효과를 마그너스 효과(Magnus Effect)라고 부르더라.  간단히 설명하자면 회전하는 공으로 인해 공기의 흐름이 한쪽으로 몰려 그 지점에 힘이 가해져서 공의 방향이 휘어지는 효과이다.  … Read more[UE4] 커브볼이나 감아차기처럼 발사체(Projectile)에 회전을 넣어봤다

[UE4] 발사체를 궤적에 따라 날려보자 (Simulating a Projectile and Trajectory)

#언리얼4 공부중 / UE4 버젼: 4.22.3 / 피드백 환영 발사체(Projectile)을 쏘는 방식에 대해 알아보았다.   메뉴얼을 뒤적거려보니 어떤 물체를 이동시키기 위해서 사용되는 컴포넌트들이 3가지로 정리되어 있었다. (메뉴얼 링크) 캐릭터 무브먼트 컴포넌트 (CharacterMovementComponent) 프로젝타일 무브먼트 컴포넌트 (ProjectileMovementComponent) 로테이팅 무브먼트 컴포넌트 (RotatingMovementComponent) 관련 있는 컴포넌트는 ProjectileMovementComponent로 보였다.  이 컴포넌트를 보면 기능이 많이 붙어 있다.  발사체를 다양한 요구사항으로 날려보내려니 이렇게 … Read more[UE4] 발사체를 궤적에 따라 날려보자 (Simulating a Projectile and Trajectory)

[iOS] iOS13에서 iOS12 메모리 카운팅 방식 강행

iOS11-style 메모리를 iOS12에서 사용하는 방식에 대해 언급한 적이 있었는 데, 최근 iOS13이 나오면서 메모리 카운트 방식의 변화가 있는지에 대해 간단히 알아보았다.  배경을 잠깐 설명하자면, iOS12가 나왔을 때, iOS11에서 하던 메모리 카운트 방식이 변경되면서 메모리가 대략 100Mb이상 크게 카운트되어 저사양 디바이스에서는 앱이 플레이 중에 종료되는 현상이 일어났다. iOS11-style 메모리 카운트 방식은 별도의 소명 요청을 통하여 받은 … Read more[iOS] iOS13에서 iOS12 메모리 카운팅 방식 강행

[UE4] PhysicsHandleComponent로 임의의 오브젝트 잡기

#언리얼4 공부중 / UE4 버젼: 4.22.3  캐릭터가 임의의 오브젝트를 잡을 때 혹은 소유하고자 할때 어떻게 해야 할까. 유니티에서는 보통 두가지 방식을 사용 했었는데, 하나는 캐릭터에 빈 게임오브젝트를 원하는 지점에 만들어 그 아래에 child로 붙이는 방식과, 다른 하나는 매 프레임마다 잡고자 하는 오브젝트의 월드 좌표를 업데이트하여 원하는 지점으로 옮기는 방식을 쓰곤 했다. 언리얼에서는 유니티에서 처럼 child로 … Read more[UE4] PhysicsHandleComponent로 임의의 오브젝트 잡기

[UE4] 두개의 벡터 사이에 로테이션

#언리얼4 공부중 / UE4 버젼: 4.22.3 좌표 시스템이 아래와 같고,더미 캐릭터를 XY plane 위에서 Z축을 중심으로 로테이션을 시켜보려고 한다.  모델의 forward vector로 부터 A 벡터까지 로테이션을 해보면,  Dot product를 구하여 두 벡터 사이의 각도를 구해보았다.  Dot Product는 wiki에서 잘 설명되어 있는데, 대략 공식은 다음과 같다.   위의 공식을 이용하여, 각도를 구하려면, (두개의 벡터는 Unit Vector(단위벡터)로 길이는 1로 … Read more[UE4] 두개의 벡터 사이에 로테이션

[UE4] 길이 단위/Distance Unit

#언리얼4 공부중 / UE4 버젼: 4.22.3 길이에 대한 기본 단위 설정은 Project Settings > Appearence > Distance/Length에서 설정 가능하다.  그럼 오브젝트들의 사이즈는 어떻게 확인 할 수 있을까.   Scene에 디폴트로 위치해 있는 Floor 오브젝트의 Static Mesh를 더블클릭하여 오브젝트 에디터를 연다.   대략의 사이즈가 1000 cm x 1000 cm x 50 cm 로 나타나 있다. Project Settings의 unit을 … Read more[UE4] 길이 단위/Distance Unit