본문 바로가기

게임프로그래밍/실습1

(79)
[언리얼 실습] 9. 무기 클래스 추가하기 - Quixel Bridge 이용 이번에는 캐릭터에 장착시킬 무기를 만들고 캐릭터에 장착시켜보려고 한다.목차Quixel Bridge에서 무기 에셋 가져오기무기 클래스 만들기무기 블루프린트 클래스 만들기1. Quixel Bridge 무기 에셋 가져오기 퀵셀 브릿지에서 무기에셋을 가져와보려고 한다. 퀵셀 브릿지는 기본적으로 언리얼엔진 라이브러리에 존재하고 이를 엔진에 설치하기만 하면 된다.  이렇게 라이브러리로 들어가면 퀵셀브릿지가 존재한다. 이제 에디터로 돌아가자.  에디터 상단의 Quickly add to the project 버튼을 누르면 퀵셀 브릿지를 열 수 있다.  퀵셀 브릿지를 이용하려면 회원가입을 해야한다. 회원가입은 무료이니 우 상단의 사람 아이콘을 누르고 회원가입을 진행하자  내 기억상으로는 회원가입을 하고 무슨 월정액 결제..
[언리얼 실습] 8. End Overlap 이벤트 생성 이제 이전에 만든 구체에서 나가면 이벤트가 발생하게 해볼 예정이다.목차C++에서 EndOverlap이벤트 생성1. C++에서 EndOverlap 이벤트 생성 비주얼 스튜디오로 돌아가 엔드 오버랩 이벤트를 만들어보자. 헤더파일에 바인딩할 함수를 만든다.void OnSphereEndOverlap(); 여기에 들어갈 매개변수는 무엇일까? 다시한번 Primitive Component.h 파일로 돌아가 찾아보자  파람이 4개가 필요하다는 것을 알 수 있다. 뒤에서 부터 4개를 복사해 가져오면 된다. UFUNCTION()void OnSphereEndOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* Oth..
[언리얼 실습] 7. Overlab Event 생성 목차서론아이템 클래스 만들기C++ 클래스를 기반으로 블루프린트 클래스 만들기1. 서론 이제 캐릭터의 이동에 관한 부분은 끝났으니 공격과 관련된 부분을 해야할 차례이다. 하지만 그전에 무기(아이템) 클래스를 만들어 캐릭터에 장착하는 부분을 해보려고 한다. 캐릭터가 아이템 근처에 가면 무기를 집을 수 있게 할 것인데 그러기 위해서 우선 캐릭터가 아이템에 오면 반응을 할 수 있게 오버랩 이벤트를 만들어 보려고 한다.2. 아이템 클래스 만들기 아이템 클래스를 만들어 여기에 오버랩 이벤트를 주자. 아이템을 조종하거나 할 일은 없기 때문에 그냥 액터 클래스를 기반으로 만들면 된다. 이제 C++에서 이 액터에 오버랩 이벤트를 주자. 오버랩 이벤트를 주기 위해서 오버랩 할 영역을 만들어야 하는데 SphereCompon..
[언리얼 실습] 6. Blend Space 1D를 이용한 걷기와 달리기 애니메이션 구분 목차서론블랜더 만들기만든 블랜더 캐릭터에 적용하기1. 서론 언리얼에서 자체적으로 제공해주는 Third Game 프로젝트를 보면 속도에 따라 걷기와 달리기의 애니메이션이 서로 다르다. 우리도 이것을 구현해서 더욱 자연스러운 움직임을 만들어보려고 한다. 2. 블랜더 만들기  사실 우리가 Third person에서 애니메이션을 임포트해 올때 블랜더도 같이 따라왔다. 이걸 써도 되지만 지금은 실습을 하고 있으니 이것을 만들어보자.  콘텐츠 브라우저에 들어가서 Blend Space 1D 를 만들어 준다. 우리는 속도에 따라 걷기와 달리기의 애니메이션을 적용할 예정이라 한 개의 값만들 가지고 만드는 1D Space가 필요하다  스켈레톤을 선택하라고 하면 우리가 지금 쓰고 있는 캐릭터의 스켈레톤을 골라주면 된다.  ..
[언리얼 실습] 5. 점프 애니메이션 적용하기 점프 애니메이션을 적용해보려고 한다.목차c++에서 캐릭터가 점프 중인지 확인하기캐릭터에 점프 애니메이션 적용하기1. C++에서 캐릭터가 점프 중인지 확인하기 캐릭터 무브먼트 컴포넌트는 점프(체공)중인지 알 수 있는 함수가 존재한다. 이를 통해 간편하게 캐릭터의 점프 유무를 알 수 있다. 함수는 문자 그대로인 IsFalling() 함수이다. // Header UPROPERTY(BlueprintReadOnly, Category = "Movement")bool IsFalling; // cpp void UKnightAnimInstance::NativeUpdateAnimation(float DeltaTime){ Super::NativeUpdateAnimation(DeltaTime); if..
[언리얼 실습] 4. 점프 애니메이션 가져오기 점프 애니메이션을 적용하기에 앞서 애니메이션을 먼저 가져와 보려고 한다.목차서론점프 애니메이션 가져오기1. 서론 점프 애니메이션의 경우 믹사모에서 구하는 것은 매우 힘들다. 믹사모 애니메이션의 경우 점프 시작 부터 활공, 착지까지 하나로 이루어져 있는데 우리가 만든 캐릭터 클래스에 애니메이션을 적용하려면 이 세 부분이 다 나누어져 있어야 한다. 물론 믹사모 애니메이션을 편집하여 세 부분으로 나눌 수도 있겠지만 이 부분은 실습 과정 외의 부분이라 생각하여 하지 않고 대신 언리얼 엔진에서 쓸 수 있는 점프애니메이션을 가져오기로 했다. 2. 점프 애니메이션 가져오기 현재 캐릭터 에셋을 게임 샘플 프로젝트에서 가져왔는데 이것보다 더 좋은 것이 언리얼 에디터 자체적으로 있다는 것을 어제 알게 되었다. 이를 이용해..
[언리얼 실습] 3. 캐릭터 애니메이션 적용하기 이제 믹사모에서 가져온 애니메이션을 상황에 맞게 적용하려고 한다. 이제부터 강의 내용이 잘 기억 나지 않아 강의를 다시 보면서 실습을 진행해보고자 한다. 목차애니메이션 블루프린트 만들기C++ AnimInstance상태에 따른 애니메이션 적용1. 애니메이션 블루프린트 만들기  콘텐츠 브라우저에서 우클릭 →  애니메이션 → 애니메이션 블루프린트를 누른다.  다음과 같이 뜨면 우리가 사용했던 스켈레톤을 골라 생성을 하면 된다. 이때 내가 만든 캐릭터의 스켈레톤을 모르겠다면 캐릭터 블루프린트로 들어가 스켈레톤이 어떤 건지 확인하면 된다. 이제 애니메이션 블루프린트로 들어가보자  그럼 이러한 화면이 뜨며 이곳에서 애니메이션 설정을 할 수 있다. 이제 이동할때와 가만히 있을때의 애니메이션을 적용해야하는데 이때 기본..
[언리얼 실습] 2. Mixamo에서 다운로드 받은 애니메이션 임포트 하기 이제 만든 캐릭터가 이동하거나 점프를 할때 애니메이션 효과를 주려고 한다.목차Mixamo에서 애니메이션 다운로드 받기애니메이션 임포트 하기애니메이션을 캐릭터에 맞게 리타켓팅 하기1. Mixamo에서 애니메이션 다운로드 받기 가장 먼저 애니메이션을 다운로드 받아보자.애니메이션 에셋은 여러 곳에서 다운로드 받을 수 있는데 그중 완전히 무료로 애니메이션을 제공해주는 Mixamo를 이용하기로 하였다. Mixamo  바로가기: https://www.mixamo.com/#/ Mixamo www.mixamo.com  믹사모 홈페이지에 들어가면 로그인을 하거나 회원가입을 하라고 한다. 믹사모는 어도비에서 운영하는 사이트로 어도비 아이디가 있으면 바로 이용이 가능하다.  로그인을 하면 이렇게 다양한 애니메이션을 볼 수 ..
[언리얼 실습] 1. 캐릭터 클래스 생성과 매시 추가하기 목차프로젝트 생성캐릭터 클래스 생성캐릭터 매시 추가그동안 인터넷 강의를 보았던 것을 정리하기로 하였다. 먼저 기본적인 캐릭터 생성 및 이동 기능을 구현하려고 한다. 1. 프로젝트 생성 가장 먼저 프로젝트를 만들기를 하자. 빈 프로젝트로 만들 것이며 StartContent를 포함하여 프로젝트를 만드려고 한다.프로젝트 디폴트 설정은 블루프린트 프로젝트로 만들어도 C++ 클래스를 생성하면 C++ 기반의 프로젝트가 된다고 하여 그냥 기본적으로 설정되어있는 블루프린트로 설정하였다. 레이트레이싱의 경우 사양을 많이 잡아먹고 굳이 지금 단계의 프로젝트에서는 필요없을 거 같아 체크하지 않았다.  프로젝트를 열면 언리얼에서 기본적으로 제공하는 오픈월드 맵이 나오는데 오픈월드 맵은 너무 넓고 현재로써는 굳이 이렇게 큰 월..