본문 바로가기

전체 글

(156)         글쓰기    
RPG 게임처럼 캐릭터 움직임 구현 https://leekangw.github.io/posts/20/ [UE4] RPG 게임처럼 캐릭터 움직임 구현 3인칭 RPG 게임에 자주 사용하는 카메라 회전을 만들어보자 leekangw.github.io [UE4] RPG 게임처럼 캐릭터 움직임 구현 3인칭 RPG 게임에 자주 사용하는 카메라 회전을 만들어보자 참고 자료 언리얼 엔진 문서 - 캐릭터 동작 함수 구현 1. Input 세팅 Project Setting 내 Engine - Input 에서 확인이 가능하다. Scale 값을 조절해서 정방향과 역방향에 대한 키 Value를 세팅한다. 2. C++ 코드로 세팅 연결하기 캐릭터의 움직임을 만들기 때문에 부모 클래스를 Character로 하여 C++ 클래스로 생성 미리 구현되어 있는 SetupPlay..
캐릭터애니메이션 언리얼 사이트 문서 https://docs.unrealengine.com/5.0/ko/setting-up-character-movement/ 캐릭터 무브먼트 설정 이 튜토리얼에서는 다양한 형태의 캐릭터 무브먼트(Character Movement)를 보여주는 플레이 가능 캐릭터를 생성하는 방법을 알아봅니다. docs.unrealengine.com
마우스클릭으로 이동하기 https://wergia.tistory.com/317 안녕하세요! 여러분들과 함께 게임 개발을 공부하는 베르입니다! 이번에는 전에 C++로 구현해보았던 마우스 클릭 이동 기능을 블루프린트로 만들어봅시다! 사용 엔진 버전 : 4.27 타임라인 0:00 인트로 0:11 프로젝트 생성과 리소스 임포트 0:47 맵 세팅 2:27 Player Controller로 마우스 입력 받기 4:50 클릭한 위치로 이동시키기 6:35 캐릭터 구현 9:41 게임 모드 설정과 테스트 10:43 아웃트로 스크립트 인트로 안녕하세요. 여러분들과 함께 게임 개발을 공부하는 베르입니다. 지난 강좌에서 C++로 구현했던 마우스 클릭을 이용한 캐릭터 이동 기능을 이번에는 블루프린트로 만들어 보겠습니다. 프로젝트 생성과 리소스 임포트 먼..
청년취업사관학교 소개 https://sesac.seoul.kr/common/greeting.do 꿈꾸는 개발자 데뷔코스, 청년취업사관학교 SeSAC 새싹(Seoul Software Academy, SeSAC)은 새로운 싹을 틔우기 위해 더 높은 곳을 향해 도전하고 한 단계 성장하여 새로운 삶을 개척하는 인재들의 공간입니다. 서울시에서 서울시 청년들을 위한 무료 교육공간입니다. 제가 수강하고 있는데 현업자분들이 알차게 가르켜줍니다. 강추입니다 점심값도 나오고요 꿈꾸는 개발자 데뷔코스, 새싹 ‘새싹’은 싹을 틔우기 위해 더 높은 곳을 향해 도전하고 한 단계 성장하여 기업과의 연결, 새로움을 추구하는 인재들의 공간입니다. sesac.seoul.kr https://sesac.seoul.kr/course/active/detail.do..
인공지능 적 만들기 진행시 막히면 90도 회전하기 timeWatch라는 매크로 isMove라는 매크로 변수 이벤트그래프1 이벤트그래프2 움직임을체크해 방향을 바꿔준다. 방향을 바꿔주는 로직을 OnHit 이벤트로 옮겨봤지만 너무 민감하게 반응해서 오히려 더 않좋음 쿨타임을 줘야할듯
적이 플레이어 따라가기 적도 플레이어도 캐릭터를 부모로 만들었다. 최소한 Pawn은 되야한다. CharacterMovementComponent를 사용할 예정이다. 적캐릭터 컴포넌트에 적 캐릭터에 CalcdirectionToPlayer라는 펑션을 만든다. 이벤트그래프에 다음과 같이 노드를 만든다. Detail에서 다음과 같이 하면 자동으로 방향을 캐릭터쪽으로 회전시켜준다 Max Walk Speed를 600에서 450으로 줄여준다 그래야 플레이어가 도망갈수 있다.
언리얼 SkeletalMesh 리플리케이트 불가능 개요 MovementComponent에서 WalkSpeed는 리플리케이션 대상이 아니다 그렇습니다. 혹시 달리기 등을 통해 MovementComponent의 WalkSpeed를 변경하는 분들은 다른 방식을 사용해야 합니다. GameMode는 서버에만 있다 그렇습니다. 아무리 클라이언트가 발광을 해도 얻을 수 없는 그것, 서버의 게임모드. 이 상태에서 만일 게임 모드에서 ServerRPC를 부르는 건 쓸모없는 행위가 되겠죠. USkeletalMeshComponent에서 SkeletalMesh는 리플리케이트 되지 않는다 // SkeletalMeshComponent.h private: /** The skeletal mesh used by this component. */ UE_DEPRECATED(5.1, "T..
무기 장착하기 무기는 마켓에서 Infinity 시리즈의 Weapon을 프로젝트에 추가했다 기존의 weapon을 위한 메시컴포넌트가 있으나 추가한 무기는 skeletonMesh라 SkeletonMesh를 이름을 바꿔 추가한다. TPSPlayer.h UPROPERTY(VisibleAnywhere, Category = "Fire") class USkeletalMeshComponent* weaponSkeletonComp; TPSPlayer.cpp 생성자에 추가한다. weaponMeshComp = CreateDefaultSubobject(TEXT("WeaponMesh")); weaponMeshComp->SetupAttachment(GetMesh()); // , FName("hand_rSocket")); //기존 메시 밑에 추가..
마우스휠로 줌하기 인풋액션 IA_Zoom을만든다 Axis1D로 한다. IMC_Main을 열어 추가하고 Mouse Wheel Axis를 추가해준다. TPSPlayer.h에 변수를 추가해주고 UPROPERTY(EditAnywhere, Category = "Input") UInputAction* WheelIA; TPSPlayer.cpp에 바인딩해주고 정의해준다. void ATPSPlayer::SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); //입력 바인딩 if (UEnhancedInputComponent* EnhancedInputComponent = Cast..
언리얼 Animation Montage ABP_Move안의 AnimGraph에 다음과 같이 Layerd blend per bone을 추가한다. cache로 검색해서 SavePose와 Use cached pose도 추가한다. Use Pose는 2개를 추가해 Slot Defalt Slot을 추가한다. 이건 C++에서 이용할 Montage의 변수같은거다. TPSPlayer.cpp C++에 코드를 추가한다. 공격하는 순간이므로 InputFire에 일단 추가한다. void ATPSPlayer::InputFire(const FInputActionValue& Value) { if (fireReady) { GEngine->AddOnScreenDebugMessage(-1, 5.0f, FColor::Magenta, TEXT("Fire")); UAnimInsta..
캐릭터 메시 지정하기 마켓플레이스에서 플레이어캐릭터는 Infinity Blade 배경으로는 City of Brass를 프로젝트에 추가해준다. 이건 버전이 안맞는 다고 나오는데 모든 프로젝트를 체크후 내 프로젝트를 고르고 V5.0으로추가하면 된다. Animation은 이득우의 언리얼 에서 챕터5의 리소스를 다운 받으면 된다. Animation폴더를 만들고 우클릭후 Import animation후 파일을 선택하고 Skeleton Mesh를 SK_Maniquin_Skeleton으로 지정한다. TPSPlayer를 부모로 BP_TPSPlayer 블루프린트를 만든다. 입력을 지정해주고 Mesh를 선택해 메시를 지정해준다. Infinity Blade Warrier리타게팅을 하는 방법도 있지만. 패키지 애니메이션을 활용할 예정으로 애니메이..
PBullet 발사체 만들기 발사체를 만들어보자. 충돌체와 메시 그리고 움직임을 담당할 ProjectileMovementComponent를 컴포넌트로 추가하는 코드다 PBullet.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "GameFramework/Actor.h" #include "PBullet.generated.h" UCLASS() class P231113_API APBullet : public AActor { GENERATED_BODY() public: // Sets default values for this actor's properties ..