본문 바로가기

분류 전체보기

(150)         글쓰기    
나이아가라 참조사이트 https://darkcatgame.tistory.com/68 [Niagara Tutorial] 0. Niagara 개요 및 설치 세팅 튜토리얼에 앞서 본 튜토리얼은 언리얼4.23.1에서 공부한 내용으로 작성합니다, 나이아가라는 현재 베타상태입니다, 공부하면서도 많은 에러와 고난을 겪었으며 제가 작성한 튜토리얼이 잘못됬 darkcatgame.tistory.com https://darkcatgame.tistory.com/70 [Niagara Tutorial] 기초 1. 나이아가라 메커니즘 //! 해당 튜토리얼은 UE4.23.1 버전에서 작성되며 나이아가라는 아직 베타 상태이므로 추후에 내용이 다르거나 변경될 수 있습니다. 나이아가라 기본 구조 나이아가라 파일 생성 목록에 위 리스트 darkcatgame.t..
Delegate https://darkcatgame.tistory.com/66 UE4 C++ Delegate 정리 & 샘플 프로젝트 개인적으로 UE4 C++에서 Delegate를 사용할 때 처음에 굉장히 에러를 많이 겪었습니다, 그래서 이번 포스팅은 UE4 C++에서 Delegate를 사용하는 방법에 대해 정리하고 샘플프로젝트도 만들었습니다. https darkcatgame.tistory.com 개인적으로 UE4 C++에서 Delegate를 사용할 때 처음에 굉장히 에러를 많이 겪었습니다, 그래서 이번 포스팅은 UE4 C++에서 Delegate를 사용하는 방법에 대해 정리하고 샘플프로젝트도 만들었습니다. CatDarksDelegateExamplePrj.zip 7.72MB https://docs.unrealengine.c..
Kill Zone제작하기 총알과 적은 무한대로 직진하기 때문에 인스턴스들이 많아져서 게임성능이 저하됩니다. 따라서 적당한 위치에 보이지 않는 장벽을 만들어 충돌시 없애도록하는 Kill Zone을 만들어 보겠습니다. 타이머를 달아 일정시간 경과후 없애주는 방법도 가능합니다. 프로젝트 세팅의 Collision탭에서 Preset항목에 New버튼을 눌러 다음과 같이 프리셋을 추가합니다. Bullet과 Enemy는 WorldStatic(KillZone)과는 Overlay로하고 Player는 Block으로 하겠습니다. KillZone은 별도의 채널을 만들지 않고 WorldStatic채널을 사용하겠습니다. 에너미 총알의 프리셋도 WorldStatic오브젝트에 대한 응답을 Overlap으로 변경합니다. 플레이어도 WorldStatic채널에 대..
Visual Studio integration tools 에러 마켓에서 Visual Studio Integration Tools를 깔아도 에러가 없어지지 않는다. Unreal Editor에서 Plugins 메뉴로 이동해 Visual Studio Integrations Tools를 체크하고 리스타트 해준다.
충돌시 파티클효과 발생 Bullet과 충돌시 파티클효과를 발생하기 위해 public으로 파티클 포인트를 선언해 줍니다. Bullet.h UPROPERTY(EditAnywhere) class UParticleSystem* explosionFX; 폭발 이펙트는 에너미와 충돌이 발생했을때 발생되어야 하므로 OnBulletOverlap()함수에서 에너미를 제거하는 다음 줄에 이펙트 생성코드를 추가합니다. 파티클 파일을 월드에 생성할 때는 UGameplayStatics 클래스의 SpawnEmitterAtLocation()함수를 사용합니다 접근하려면 Kismet/GamePlayStatics.h를 포함시켜줘야 합니다. Bullet.cpp #include "Bullet.h" #include "Components/BoxComponent.h" ..
UE5 충돌이벤트와 델리게이트 충돌 조건을 설정했으니 충돌이 일어나면 실행될 함수를 마련해야 합니다. 이벤트가 발생되었을때 미리 만들어 놓은 함수를 실행하면서 매개변수에 자동으로 값을 넘겨주는 기능을 델리게이트라고 합니다. 델리게이트로 연결된 함수의 매개변수에 값을 전달하기 위해서는 함수의 매개변수의 자료형과 개수가 델리게이트에서 설정한 것과 동일해야 합니다. 자세한건 이곳을 참조해주세요 2023.10.25 - [언리얼레퍼런스/언리얼 참조사이트] - Delegate 구현을 위해 Bullet.cpp의 BeginPlay()에 boxComp->OnComponentBeginOverlap을 추가하고 커서를 함수명에 올려놓고 F12를 눌러봅니다. void ABullet::BeginPlay() { Super::BeginPlay(); boxComp..
UE5 충돌처리하기 - 콜리전 채널, 프리셋 설정하기 Project Settings의 Collision탭의 Object Channes의 New Object Channel 버튼을 클릭해 Player, Enemy, Bullet을 Ignore로 만든다. 개별 Collision Response 설정하기 PlayerPawn블루프린트로 가서 디테일의 콜리전탭을 보면 Collision Presets가 OverlapAllDynamic으로 되어 있습니다. 이걸 Custom으로 변경하고 변경해도 되지만 이번에는 C++에서 변경해 보겠습니다. APlayerPawn() 생성자에 밑의 3줄을 추가합니다. ECC_GameTraceChannel1은 우리가 Collision에서 만든 첫번째 ObjectChannel입니다. 두번째는 끝에 2를 세번째는 끝에3을 붙이면 됩니다. APlay..
메타휴먼 만들기 https://metahuman.unrealengine.com/ MetaHuman Creator metahuman.unrealengine.com 에서 메타휴먼을 만든다. 가입을 해야한다. 자신에게 맞는 버전을 선택하고 로그인 한다. 맘에드는 캐릭터를 하나 선택하고 생성해준다. 마음 드는 모양으로 바꿔준다. 나의 메타휴먼탭을 눌러보면 자신이 만든 캐릭터가 보인다. 저장메뉴는 따로 없는 것같다. 언리얼에서 퀴셀브리지에 로그인하면 방금만든 메타휴먼이 보인다. 메타휴먼에 로그인해야할지도 모른다. 저장하고 + 해준다 엄청 오래 걸린다. 저장한 인물의 이름으로 폴더가 생긴다. BP_이름을 더블클릭해 놓는다 컴포넌트의 Body를 선택하고 메시의 폴더를 선택하면 컨텐트드로워에 해당 스켈리탈 메시가 보인다. 우클릭후 A..
Enemy Factory 에너미 생성 액터 제작 이제 적을 생성할 Factory가 필요합니다. C++클래스를 만들고 부모를 액터로 이름을 EnemyFactory로 합니다. VisualStudio로 이동해서 모두 다시로드를 클릭하고 편집을 시작합니다. EnemyFactory를 에너미만 Spawn하면 되므로 BoxCollider나 형태는 필요없습니다. EnemyFactory.h에 적을 만들 간격에 사용할 delayTime을 만들고 currentTime은 private로 합니다. 그리고 Spawn할때 사용할 적을 담을 enemy를 TSubclassof로 선언합니다. public: // Called every frame virtual void Tick(float DeltaTime) override; UPROPERTY(EditAnywhere) float del..
적 방향 결정 우선 EnemyActor.h에 추첨확율을 저장할 traceRate와 dir을 선언합니다. public: // Called every frame virtual void Tick(float DeltaTime) override; UPROPERTY(EditAnywhere) class UBoxComponent* boxComp; UPROPERTY(EditAnywhere) class UStaticMeshComponent* meshComp; UPROPERTY(EditAnywhere) int32 traceRate = 50; private: FVector dir; 방향추첨 기능은 블루프린트 생성시 결정해야 하므로 BeginPlay()함수에 구현해 줍니다. void AEnemyActor::BeginPlay() { Super..
적 제작하기 적 액터는 이전의 클래스와 제작방법이 비슷합니다. 에너미가 특정 타깃을 향하는 방향을 계산하는 부분이 추가됩니다. C++클래스를 추가합니다. 부모는 Actor이고 이름은 EnemyActor라고 합니다. 충돌을 위한 BoxComponent와 외형처리를 위한 StaticMeshComponent를 추가합니다. Visual Studio로 모두 다시로드를 누르고 편집을 시작합니다. EnemyActor.h public: // Called every frame virtual void Tick(float DeltaTime) override; UPROPERTY(EditAnywhere) class UBoxComponent* boxComp; UPROPERTY(EditAnywhere) class UStaticMeshCompo..
총알 발사 효과음 구현 총알발사음 넣기 언생언리얼교과서 공식 깃허브 자료실/2장으로가서 start-wars-blaster.WAV파일을 누르고 https://github.com/araxrlab/lifeunreal GitHub - araxrlab/lifeunreal: 인생 언리얼 교과서 공식 예제 인생 언리얼 교과서 공식 예제. Contribute to araxrlab/lifeunreal development by creating an account on GitHub. github.com 다운받아 Contets드로워에 Audio폴더를 만들고 끌어다 놓습니다. 파일을 열어 소리를 0.2로 줄입니다. 총알을 발사하는 Fire()는 playerPawn.cpp에 있으므로 playerPawn.h에 소리를 연결할 fireSound를 선언합니..