전체 글 (842) 썸네일형 리스트형 Unreal Engine 4 C++ The Ultimate Shooter Course Section 3-2 The Animation Blueprint직전 강의를 통해 만들었던 애니메이션 클래스를 토대로 블루프린트를 생성해주자. 그리고 미리 BP ShooterCharater로 들어가서 Anim Class를 방금 만든 BP 클래스로 설정해주자. 이제 Event Graph로 들어가보면,우클릭을 통해 VScode에서 작성했던 Update Animation Properties 함수를 호출할 수 있다.이를 event Blueprint Update Animation의 아웃풋 값과 연결해주자. Unreal Engine 4 C++ The Ultimate Shooter Course Section 3-1 The Anim Instance캐릭터 움직임에 맞는 애니메이션을 할당해주자.이번엔 이를 위한 기반 작업을 하게 된다.이를 위해 C++ 클래스를 생성해주자. 그리고 애니메이션의 BeginPlay() 함수와 Tick() 함수에 해당하는 함수들을 선언해주자. 그리고 캐릭터의 스피드, 공중 여부, 움직임 여부에 대한 변수도 선언해주자. BeginPlay()에 해당하는 기본 초기화 함수를 먼저 구현해주었다. 이후 Tick()에 해당하는 함수에서도 똑같이 초기화를 해주고, null인지 아닌지 체크해주자.그리고 현재 캐릭터의 속도를 받아서 Z 값을 제외한 나머지를 Speed에 저장하였다. 공중 여부는 IsFalling() 함수를 통해 체크해주고,움직임 여부는 GetCurrentAcceleration() 함수의 사이즈.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-11 Adding a Mesh기본적인 기능들을 구현해줬으니, 이제 캐릭터의 메시를 할당해주도록 해보자.우선 언리얼 엔진 마켓 플레이스에서 사용할 에셋을 다운받아주자.여기서는 Paragon Belica 에셋을 다운받아 사용했다.다운 받은 후 현재 프로젝트에 추가해주도록 하자. 추가하면 콘텐츠 브라우저에 해당 폴더가 생긴 것을 볼 수 있다. 이제 메시를 할당해주자. 이후 메시의 방향과 캡슐에 맞게 위치를 조정해주자.우선 캡슐의 크기를 체크하고, 이에 이용하여 높이를 조정해주자. 이제 플레이 해보면 해당 메시를 가진 캐릭터가 움직이는 것을 볼 수 있다.다음 강의에 애니메이션에 대한 작업을 시작하게 된다. Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-10 Mouse Turning And Jumping상화좌우 화살표로 회전했던 것을 마우스로 바꾸고, 점프 기능 또한 추가해주자.좌우 회전에 대해서는 Mouse X 값을, 상하 회전에 대해서는 Mouse Y 값을 할당해주자. 이후 똑같이 바인딩 작업을 해주자.여기서는 곧바로 APawn에 있는 AddController(Yaw/Pitch)Input 함수를 바로 사용해주면 된다. 이후 점프를 할당해주는데, 점프의 경우 Action 매핑이다.키가 누르고 있는 동안 동작되는 Axis 매핑과 달리 키가 눌리자마자 단일 함수 호출만 필요한 경우이다. 마찬가지로 바인딩 작업을 해준다.여기서 점프 버튼을 눌렀을 때와 놓았을 때 2가지 케이스에 대해 작업을 해주었다. Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-9 Turn at Rate이번엔 회전에 대해서 구현해보자.구현하기에 앞서 직전 강의 내용인 델타 타임에 대해서 알 필요가 있다. 델타 타임은 간단하게 말하여 각 프레임 간의 시간 차이 값으로, 두 프레임 사이에 경과한 시간을 측정한 값이다.이는 게임의 프레임 률이 일정하지 않더라도 물리적이나 애니메이션 움직임 등의 일관성 유지를 위해 사용된다.이번 구현 대상인 회전의 경우 프레임 률에 따라서 회전 속도에 큰 차이를 가질 수 있으므로, 델타 타임을 이용하여 회전 속도를 조절하게 된다. 델타 타임을 사용하는 것 말고는 상하좌우 이동 때와 거의 동일하게 구현해주면 된다.대신 여기서는 추가적으로 기본 프레임 률을 얼마로 설정할 지에 대한 변수를 추가로 선언해주어야 한다. 기본 프레임 률을 우선 45로 정했으며, 생.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-8 Move Forward and Right직전 내용으로 컨트롤러 및 입력에 대한 내용이 있었는데, 강의로만 짧게 설명한 개요 같은 부분이라 생략한다.이에 따라 이번 강의 내용은 기본적인 플레이어 움직임에 대해 다루게 된다. 우선 프로젝트 세팅의 Input 항목으로 가서 Axis 매핑을 작성해주어야 한다.앞뒤에 대한 WS 키와, 좌우에 대한 AD 키를 할당해주자.Scale 키는 정방향 역방향에 맞게 1.0과 -1.0을 할당해주면 된다. 이제 이에 대한 함수를 만들어주어야 한다. 이제 본격적으로 구현하기에 앞서 현재 Controller가 유효한지 체크를 해주자.그리고 컨트롤러의 회전 값을 얻고, 거기서 x축에 해당하는 Yaw 값만 따로 저장해준다.이후 해당 Yaw 회전 값을 통해서 x축에 대한 방향 값을 얻어.. Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-7 Follow Camera이제 카메라 또한 SpringArmComponent와 같은 방법으로 생성해주자. 카메라의 경우 플레이어와 같이 회전하면 안되므로, bUsePawnControlRotation을 false로 할당해준다.그리고 카메라의 경우 카메라붐에 붙여줄 때 소켓네임 또한 같이 적어주었다.이러면 특정 소켓에 카메라를 위치시켜주는 것이 가능하다.해당 코드에서는 소켓이 1개인 상태이므로 소켓네임을 빈칸으로 해도 같은 결과가 나온다. 이제 컴파일을 해보면 카메라가 추가된 모습을 볼 수 있다. Unreal Engine 4 C++ The Ultimate Shooter Course Section 2-6 Camera Spring Arm이번엔 카메라의 위치와 각도 등을 조절하는 데 사용되는 SprintArmComponent를 생성해줄 것이다.이는 Camera Boom 이라고도 한다. private 섹션에서 작성해주고, 어디서나 볼 수 있고 블루프린트에서 읽을 수 있게 설정해주었다.private 섹션인데 블루프린트에서 읽을 수 있으려면 추가로 meta = (AllowPrivateAccess = "true")를 작성해주어야 한다. 그리고 public 섹션에서 해당 컴포넌트에 대한 getter 함수를 작성해주었다.이때 FORCEINLICE을 사용하여 인라인 함수로 작성하였는데, 이는 getter 함수 특성상 호출이 빈번하면서 내용은 간단한데 이러한 함수의 호출 오버헤드를 줄여 성능을 높이기 위해 사용된다. 이제.. 이전 1 ··· 12 13 14 15 16 17 18 ··· 106 다음