본문 바로가기

언리얼엔진/FirstProject

(9)         글쓰기    
LineTrace 참조 https://leekangw.github.io/posts/79/ [UE5 TPS 제작기] 12. Line Trace를 이용한 총 쏘기 구현 2023-09-17. 코드 수정 leekangw.github.io
시선방향으로 발사하기 참조 https://blog.naver.com/hyeseonlikespizza/222385937658 [UE4] C++튜토리얼 - 일인칭 슈팅 (3) 발사체 구현 게임에 발사체 추가하기 1. 프로젝타일 클래스 추가 파일 > 새 c++ 클래스 추가 > 액터 선택 후 FP... blog.naver.com
적캐릭터 충돌시 회전하기 C++ 블루프린트로 구현한 추적하기를 C++로 만들어 본다. 충돌감지를 위한 캡슐 컴포넌트 추가 public: UPROPERTY(VisibleAnywhere, Category = "Fire") class UCapsuleComponent* capsuleComp; 충돌체 델리게이트 선언 UFUNCTION() //충돌체 델리게이트선언 void OnEnemyCollisionCompOverlap(UPrimitiveComponent* OverlappedComponent, AActor* OtherActor, UPrimitiveComponent* OtherComp, int32 OtherBodyIndex, bool bFromSweep, const FHitResult& SweepResult); montage animation레퍼..
인공지능 적 만들기 진행시 막히면 90도 회전하기 timeWatch라는 매크로 isMove라는 매크로 변수 이벤트그래프1 이벤트그래프2 움직임을체크해 방향을 바꿔준다. 방향을 바꿔주는 로직을 OnHit 이벤트로 옮겨봤지만 너무 민감하게 반응해서 오히려 더 않좋음 쿨타임을 줘야할듯
무기 장착하기 무기는 마켓에서 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..
Player Attack - Animation Montage만들기 유한머신에서 Attack를 만들려면 안되는거 아닌데 공격키를 입력 받아야 한다. 실험해보니 방법은 있을텐데 Animation에서 Fire이벤트를 받는게 쉽지 않았다. 결국 뒤지다 보니 AnimationMontage()라는 애니메이션 시퀀스를 만들어 좋고 BP_Player 에서 PlayMontage()를 해준다 AnimGraph에는 DefaultSlot을 사이에 추가해 주면 된다. Animation Montage를 만든다. 이름을 BP_PlayerAttackMontage로 한다. 에디터가 열리면 에셋에서 애니메이션들을 끌어다 타임라인에 놓으면 기본적으로 자동플레이된다. BP_Player 이벤트그래프에 Fire()단추가 눌리면 PlayAnimMontage를 연결해준다. 마지막으로 AnimGraph에 Defa..
적에너미 만들기 BP_Enemy 블루프린트를 Actor로 만듬. Capsule과 SekeletalMesh를 추가해주고 메시 교체 애니메이션 블루프린트를 생성하고 BP_WarrioAnimRun로 이름 바꿈 State Machine을 추가하고 이름을 LocoMotion을 하고 Attack와 Run을 순환하는 유한머신을 만듬 이동 조건은 이전 스테이트가 끝나는 걸 체크 Animation Montage로 이렇게 하는것 같은데 그냥 아는 방법으로 구현. BP_Enemy에 방금만든 Anim Class를 지정
ThirdPerson Blueprint Child만들기 ThirdPerson Blueprints폴더의 BP_ThirdPersonCharacter를 선택후 우클릭후 Create Child Blueprint Class 이미 다 구현되어 있음. Skeletal Mesh Asset을 다운 받은 Mesh로 교환, ReTargeting보다 훨 쉬움. Animation Blueprint를 생성 State Machine 노드 를 LocoMotion으로 이름 바꾸고 LocoMotion을 더블 클릭해 State를 Idle과 Run을 2개 추가해 Idle을 정의 Run을 정의 My Blueprint에서 변수 moveSpeed생성 블루프린트에서 moveSpeed를 얻어옴 Character의 Get Velocity를 이용해서 Scala값으로 변환후 설정 Idle->Run으로 이동 ..