본문 바로가기

gas10

Project_P 몬스터 AI 개선(행동트리 테스크를 활용하여 몬스터 회전) 문제점 기존에는 몬스터의 이동방향으로 회전을 Pawn의 옵션인 Orient Rotation to Movement를 활성화 하여 회전을 시켰다.그러다 보니 다음과 같은 문제점이 생겼다.AIPerception 컴포넌트가 AIController에 달려있다행동트리에서 언리얼에서 제공해주는 MoveTo 테스크를 Vector로 이동시 AIContorller의 로테이션값이 바뀌지 않는다 MoveTo 테스크를 Actor로 이동하면 AIController의 로테이션값이 바뀐다위의 문제들로 인하여 AIPerception의 시야감각의 포지션이 처음 몬스터가 바라본 곳으로 고정된다 이로 인해 행동트리에서 MoveTo로 이동하기 전 이동 백터로 회전시키는 테스크를 추가했다. Monster 설정 AIController가 몬스.. 2025. 6. 4.
Project_P 캐릭터에 구현된 Move함수 실행시 GameplayTag 부여 Move 함수캐릭터를 움직이는 Move 기능을 GA가 아닌 캐릭터에 함수로 구현 하였음그래서 Move가 실행 중일때 Tag를 붙이고 싶으면 따로 코드로 구현해야 함 Move 함수를 GA로 구현하지 않은 이유는 GA 실행시 변수를 전달할 방법을 찾지 못함 MoveInputReleasedMove 입력이 끝나면 호출되는 함수Move함수에서 부착한 Tag와 발동중인 Sprint GA가 있으면 취소시키는 함수 코드로 Tag 부착void APPGASCharacterPlayer::Move(const FInputActionValue& Value){ //ASC에 태그 달기 //#include "GameplayTagContainer.h" 추가 FGameplayTagContainer WalkingTagContainer; W.. 2024. 10. 4.
Project_P GA Jump GA 생성 Jump GA 생성 GameplayAbility 클래스를 상속받아 PPGA_Jump 클래스를 생성 PPGA_Jump 헤더파일#include "CoreMinimal.h"#include "Abilities/GameplayAbility.h"#include "PPGA_Jump.generated.h"/** * */UCLASS()class PROJECT_P_API UPPGA_Jump : public UGameplayAbility{ GENERATED_BODY() public: UPPGA_Jump(); virtual bool CanActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo, cons.. 2024. 8. 29.
Project_P 캐릭터에 GA 부여 및 GA 실행 캐릭터 ASC에 GA 부여APPGASCharacterPlayer 헤더파일// GAS Sectionprotected: virtual void SetupGASPlayerInputComponent(); void GASInputPressed(int32 InputID); void GASInputReleased(int32 InputID); UPROPERTY(EditAnywhere, Category = "GAS") TArray> StartAbilites; UPROPERTY(EditAnywhere, Category = "GAS") TMap> StartInputAbilites; virtual void SetupGASPlayerInputComponent();GA를 활성화 시키는 인풋액션을 Bind하는 함수SetupPlay.. 2024. 8. 27.
Project_P 캐릭터 달리기 구현 Sprint GA 생성 Sprint GA 생성 GameplayAbility 클래스를 상속받아 PPGA_Sprint 생성 PPGA _Sprint 헤더파일#include "CoreMinimal.h"#include "Abilities/GameplayAbility.h"#include "PPGA_Sprint.generated.h"/** * */UCLASS()class PROJECT_P_API UPPGA_Sprint : public UGameplayAbility{ GENERATED_BODY() public: UPPGA_Sprint(); virtual void ActivateAbility(const FGameplayAbilitySpecHandle Handle, const FGameplayAbilityActorInfo* ActorInfo,.. 2024. 8. 23.
Unreal Engine 캐릭터 어트리뷰트 설정(2) 어트리뷰트 세트(Attribute Set) 보호되어 있는 글 입니다. 2024. 4. 2.
Unreal Engine 공격 판정 시스템 구현(6) 흐름 보호되어 있는 글 입니다. 2024. 4. 2.
Unreal Engine 기능 구현 방법 언리얼엔진에서 기능을 구현할 수 있는 방법은 크게 3가지가 있다액터에 기능을 직접 구현게임 어빌리티 시스템을 이용한 구현게임 어빌리티 시스템 + 게임태그를 활용한 구현타이머를 이용해 주기적으로 회전을 하는 액터를 구현방법이다void AABGASFountain::BeginPlay(){ Super::BeginPlay(); //SetTimer(타이머 핸들러, 적용할 클래스, 호출 함수 주소, 반복 시간, 루프 할건지 안할건지 기본 false, 호출 딜레이) GetWorld()->GetTimerManager().SetTimer(ActionTimer, this, &AABGASFountain::TimerAction, ActionPeriod, true, 0.0f);}액터에 기능을 직접 구현void AABGASFoun.. 2024. 3. 7.
Unreal Engine 분수대 실습(3) ASC 생성 보호되어 있는 글 입니다. 2024. 3. 6.