inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

장판스킬을 만들때 콜리전설정

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

수업내용은 아니 장판 스킬을 만들고싶은데 구상한바로는 액터를 생성하고 capsuleComponent를 붙여서 Overlap이 발생할때 데미지를 주는 방식으로 만들려고하는데요 Collision부분에서 걸리는게 있습니다. 지금 이 장판액터는 몬스터나 플레이어들만 Overlap이 되고 나머지는 무시를 해야하는데요 이러면 장판액터가 바닥에고정되어있지않고 땅으로 꺼지는현상이 발생합니다. PhysicsSimulate를 꺼도 이런현상이 발생합니다 바닥이랑만 Block되게 만드는 방법도 있지만 혹시 다른방법이 있을까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
ereum999 댓글 2 좋아요 0 조회수 209

질문은 아니고 강의자 님이 해당 글을 꼭 보시길 바랍니다.

미해결

[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트

강의 너무 잘 듣고 있습니다. 강의 설명중 참고하셨으면 하는 내용이 있어서 글 올립니다. 1. ' ~ 이러한 내용이니 여러분들이 문제를 잠깐 멈추고 풀어보세요 ' 의 방식보다 아예 게임의 사용 예시를 들며 문제를 내는게 좋을것같습니다. 노드의 기능 역활만 알려주고 알아서 문제를 내라는 말이 좀 아쉬웠습니다. 강의를 빨리 끝내려는 강사의 느낌이랄까요. 2. 7:50 에서 ' 바꿔치기 해서 저장을 해야한다는건 어쨌든 set 을 등장시켜야 한다는 얘기가 되는거고..' 이부분도 설명이 좀더 있으면 좋겠습니다. 어떤걸 의도하시는지는 이해가 되었습니다만 마찬가지로 시간에 쫒기고 귀찮아서 빨리 수업을 끝내려는 강의 같다는 느낌이 듭니다..

  • unreal-engine
  • ue-blueprint
초이초이 댓글 1 좋아요 0 조회수 211

어빌리티의 쿨다운 GameEffect에 대하여

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

안녕하세요. GAS Ability 의 Cooldown GameplayEffect (이하 GE) 를 등록하는 부분에 대해 질문이 있습니다. 먼저 실습을 5.4 버전으로 진행하고 있음을 알립니다. 강의 내용에서는 Cooldown GE 적용 시 Cooldown GE BP 를 생성하여 HasDuration 옵션으로 GameplayTag 를 설정 Cooldown을 적용하려는 GA의 Ability Block Tag 에 Cooldown GE에 설정한 GameplayTag를 추가 위와 같이 진행을 해주셨는데, 5.4에서는 2번 과정이 불필요했습니다. 엔진 코드 내부에서는 CheckCooldown 함수 내부에서 Cooldown GE 의 GrantedTag로 직접 쿨다운 체크를 하는걸로 보입니다. 이 부분이 5.4가 되면서 개선된 부분일까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
Kyoungsoo Nam 댓글 2 좋아요 0 조회수 302

언리얼 프로젝트 용량과 Git의 관하여

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

안녕하세요 강의 잘 듣고 있습니다. Unreal 프로젝트를 Git에 업로드하면서, Unreal Asset의 용량이 커서 무료 Git 용량을 초과하는 경험을 몇 번 했습니다. 이런 문제의 해결법으로 gitignore에서 에셋 폴더를 제외해서 불필요한 에셋이 업로드되는 걸 막고, ArenaBattle 폴더에는 사용할 에셋 파일만 복사해놓고 git에 업로드하는 방식을 사용해도 좋을지 궁금합니다. 그리고 실제 협업을 할 때 에셋을 git에 업로드할 때 용량관리를 어떻게 하는지 궁금합니다!

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
염예찬 댓글 2 좋아요 0 조회수 312

C++ 클래스를 생성할 때, Class Type 지정에 대하여

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

강의 잘 보고 있습니다. C++ 클래스를 생성할 때 Class Type을 public이나 private를 눌러서 따로 지정하지 않는 이유가 궁금합니다.

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
염예찬 댓글 2 좋아요 0 조회수 113

bool

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

25:40초 쯤 HasNextComboCommand 변수를 bool로 선언하였는데요. 헤더파일의 bool은 비트필드를 사용하는것 아니었나요? bool자료형을 사용하신 이유가 궁금합니다

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
김민재 댓글 2 좋아요 0 조회수 92

블루프린트 클래스 없음

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

안녕하세요. 10:33초 쯤에 BP_AB_CharacterPlayer 로 작업하시는데 제 프로젝트에는 그런 클래스가 보이지 않네요 제가 뭘 놓치면서 진행하고있었나요? 뿐만아니라 BP_ABGameMode, ABPlayer_Controller이런것들이 안보입니다. 파일 탐색기에서 봤을땐 Controller, GameMode,Congratulation이런 파일들이 있는데 에디터에선 저렇게 3개 밖에 보이지않네요... 물론 BP_AB_CharacterPlayer는 파일에도 없습니ㅏㄷ.

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
댓글 2 좋아요 0 조회수 142

Defines.h의 DECLARE_SINGLE관련 질문입니다.

미해결

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

모든 싱글톤 객체들을 DECLARE_SINGLE와 같은 형태로 define하여 편하게 작업하고 있는데 이는 cpp파일에 전역에 TimeManager* TimeManager::s_instance = nullptr;와 같은 형태로 정의 해놓지 않으면 작동이 되지 않습니다. 하지만 영상속엔 이런 내용이 없는데 따로 설정 방법이 있는건가요 ?

  • c++
  • 네트워크
  • ue-blueprint
  • 게임수학
  • windows-api
서버공부중 댓글 1 좋아요 0 조회수 134

GAS 구조로 멀티 플레이 게임을 제작할려고 하는데요

해결됨

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

현재 파트1부터 4까지 강의를 다 마친 상태입니다. GAS 구조의 멀티 RPG게임을 제작할려는데 파트3 네트워크 내용들 만으로도 GAS 멀티 게임 구현이 가능할까요? 아니면 더 배워야 할 것들이 있을까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
임성우 댓글 2 좋아요 0 조회수 272

강의 외 질문입니다..!

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

지금 AI가 플레이어가 공격할 때 플레이어가 움직이거나 또는 AI 뒤쪽으로 이동하면 AI가 플레이어를 향해 회전을 해야 하는데 회전을 하지 않습니다.. 강의 코드와 한 줄 정도 다른데 왜 안되는 것인지 모르겠습니다.. EBTNodeResult::Type UBTTask_Turn::ExecuteTask(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) { Super::ExecuteTask(OwnerComp, NodeMemory); APawn* NPC = OwnerComp.GetAIOwner()->GetPawn(); // NPC 가져오기 if (NPC == nullptr) { return EBTNodeResult::Failed; } FName PlayerName = TEXT("Target"); APawn* Player = Cast<APawn>(OwnerComp.GetBlackboardComponent()->GetValueAsObject(PlayerName)); // Target 가져오기 if (Player == nullptr) { return EBTNodeResult::Failed; } float TurnSpeed = 1.0f; FVector LookTargetVector = Player->GetActorLocation() - NPC->GetActorLocation(); FRotator LookTarget = FRotator(0.0f, LookTargetVector.Rotation().Yaw, 0.0f); // 회전 값 NPC->SetActorRotation(FMath::RInterpTo(NPC->GetActorRotation(), LookTarget, GetWorld()->GetDeltaSeconds(), TurnSpeed)); return EBTNodeResult::Succeeded; } 그리고 갑자기 루트 노드에서 멈춥니다.. 하위 노드들을 실행을 해야 하는데 루트노드에만 노란색으로 고정되어있는데 뭐를 확인해야 하나요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
ajkdfj 댓글 2 좋아요 0 조회수 97

5.4버전 기준으로 Remove Gameplay Effect With Tags가 안 보입니다.

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

tag는 안되지만 GE를 중지시키는 건 옵션이 있네요 Tag로 중지하는 건 5.4에는 없는걸까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
임성우 댓글 3 좋아요 0 조회수 333

디버깅 할 때 Keyboard event 1

미해결

[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Keyboard event 1 로 계산식을 작성하고 과정을 보려고 레벨을 플레이 해서 봤더니 키보드로 1번 버튼을 누르기 전까지는 계산식이 실행되지 않아서 계산식 중간에 값이 어떻게 나오는지 확인이 되지 않습니다. 플레이를 시작하면 마우스가 플레이 화면 밖으로는 나가지 않아서 식을 확인할 수가 없습니다. 계산식 결과를 확인하려면 event beginplay 로 먼저 확인한 다음에 keyboard event 1 로 바꿔주어야 하나요?

  • unreal-engine
  • ue-blueprint
보노보노 댓글 1 좋아요 0 조회수 153

8강의 수업 내용들 중 이해가 잘 안가는 부분들이 있습니다.

미해결

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

1 . RegisterGameplayTagEvent 델리게이트 질문 ASC->RegisterGameplayTagEvent(ABTAG_CHARACTER_INVINSIBLE, EGameplayTagEventType::NewOrRemoved).AddUObject(this, &UABGASHpBarUserWidget::OnInvisibleTagChanged); 다음 코드를 다음과 같이 이해했는데 맞을까요? INVINSIBLE 태그가 GE에 부착(count+1)되거나 탈착(count-1)될때 알림을 주는 델리게이트. 기본 count=0 2.Pre/PostGameplayEffectExecute 함수 질문 저는 이 함수가 ApplyGameplayEffectSpecTo~함수로 GE를 실행시키기 직전이랑 직후에 호출되는 걸로 알고 있습니다. PreGameplayEffectExecute 함수는 게임 플레이 이팩트 적용 전에 호출된다고 들었는데요. 하지만 확인해본 결과 ,공격할 때 게임 플레이 이팩트가 실행되어 DamageAttritbute값이 Modifier연산을 통해 30으로 변경된 이후에PreGameplayEffectExecute 함수가 호출되었습니다. "게임 플레이 이팩트 적용 전" 이란 말이 GE를 실행하기 직전, 즉 Modifier연산이 아직 되기 전으로 이해하고 있었는데 이게 아닌가요? PreGameplayEffectExecute와 PostGameplayEffectExecute의 정확한 차이가 뭔지 햇갈립니다. 그리고 GE_AttackHitBuff 가 발동하면 Pre/PostGameplayEffectExecute 함수가 호출되는지 테스트를 해봤는데 제 생각과는 다르게 호출이 안됩니다. (Data.EvaluatedData.Attribute == GetAttackRadiusAttribute()) 이런식으로 조건문을 넣어서 디버깅을 했는데 전혀 들어오지를 않네요.GE_AttackHitBuff도 다른 GE와 마찬가지로 Pre/PostGameplayEffectExecute 함수에 들어와야 정상아닌가요? 3 . 중첩 버프 질문 instant는 Base값을 변경하지만, 기간형은 Current값을 변경한다고 들었는데요. AttackRaius의 Base값이 50이고 Current값은 0 으로 시작해서, 공격할수록 Current에 +15씩 증가해 Base값을 직접 수정하지 않고 Current 값만 증가시켜서 어떻게 범위를 키우는 거죠? Base값은 아예 안쓰고 하나요? 내부적으로 어떻게 돌아가는지 좀 햇갈립니다. 그리고 Duration과 Stack 에 대해 다음과 같이 이해했는데 이게 맞을까요? Duration을 2초로 했을 때, 2초가 지나기 전에 공격해서 다시 한번 GE를 동작시키면 2초로 다시 리셋되고 스택이 쌓이는데, 2초를 놓칠경우 Current값이 처음으로 돌아와서 범위가 기본으로 리셋된다.

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
임성우 댓글 2 좋아요 0 조회수 245

7강 GE로 NonPlayer의 어트리뷰트셋 값을 초기화시키는 것에 질문이 있습니다.

해결됨

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

GE만 단독으로 동작시킬 때는 컨텍스트 핸들을 따로 만들어주고서 , 스팩핸들을 제작해주는데, 그에 반해 GA에서 GE를 동작시킬때는 스팩핸들만 제작해주는데, 그 이유가 GA가 이미 컨텍스트 핸들을 만들어줬기 때문일까요?

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
임성우 댓글 2 좋아요 0 조회수 125

강의 외 질문입니다

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

InitCapsuleSize(0.5, 1.2) 정도의 크기에 Character 작업을 하면 언리얼에서는 부작합 할까요??

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
chikcod 댓글 2 좋아요 0 조회수 54

레벨 블루프린트 제작 후 실행 시 메시지 로그- 맵체크 창 뜨는 경우

미해결

[입문자를 위한 UE5] Part1. 언리얼 엔진 블루프린트

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요! 레벨 블루프린트 제작 후에 실행 을 눌렀는데 메시지 로그 -맵체크가 뜨고 창을 닫으니까 레벨에 화면이 검은색으로 보입니다. 블루프린트로 print text 작성한 부분은 화면에 잘 뜨는데 레벨이 아예 검은색으로 보이는데 혹시 레벨 제작 과정에서 문제가 있었던 걸까요?

  • unreal-engine
  • ue-blueprint
보노보노 댓글 1 좋아요 0 조회수 147

강의 외 질문입니다.

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

제가 현재 NPC가 플레이어가 공격 범위 내에 없으면 쫓아오게 하였습니다. 이때 NPC에서 공격범위의 값을 바꾸고 싶어서 UPROPERTY로 변수를 선언을 하였습니다. 커스텀 데코레이터에서 공격범위 값을 가져오기 위해 Interface를 만들어서 캐스팅을 해주었습니다. 하지만 플레이를 해보면 Interface가 없다고 나옵니다. 뭐가 잘못된 것일까요..? class LIFEOFLUCK_API IOLNPCInterface { GENERATED_BODY() // Add interface functions to this class. This is the class that will be inherited to implement this interface. public: virtual float AttackRange() = 0; }; #include "CoreMinimal.h" #include "Character/OLCharacterBase.h" #include "Interface/OLNPCInterface.h" #include "OLNPCBasic.generated.h" UCLASS() class LIFEOFLUCK_API AOLNPCBasic : public AOLCharacterBase, public IOLNPCInterface { ... protected: virtual float AttackRange() override; UPROPERTY(EditAnywhere, Category = "AttackRange") float AttackRangeValue = 160; // 공격 범위 값 }; float AOLNPCBasic::AttackRange() { return AttackRangeValue; } #include "AI/BTDecorator_AttackRange.h" #include "AIController.h" #include "BehaviorTree/BlackboardComponent.h" #include "Interface/OLNPCInterface.h" DEFINE_LOG_CATEGORY(Not); UBTDecorator_AttackRange::UBTDecorator_AttackRange() { } bool UBTDecorator_AttackRange::CalculateRawConditionValue(UBehaviorTreeComponent& OwnerComp, uint8* NodeMemory) const { Super::CalculateRawConditionValue(OwnerComp, NodeMemory); APawn* NPC = OwnerComp.GetAIOwner()->GetPawn(); if (NPC == nullptr) { UE_LOG(Not, Error, TEXT("No NPC")); return false; } FName PlayerName = TEXT("Target"); APawn* Player = Cast<APawn>(OwnerComp.GetBlackboardComponent()->GetValueAsObject(PlayerName)); // 타겟인 플레이어 가져오기(캐스팅하기) if (Player == nullptr) { UE_LOG(Not, Error, TEXT("No Target")); return false; } IOLNPCInterface* NPCInterface = Cast<IOLNPCInterface>(NPC); // NPC가 인터페이스를 생성한 경우 캐스팅이 됨 if (NPCInterface) { UE_LOG(Not, Error, TEXT("No NPCInterface")); return false; } float Distance = FVector::Dist(NPC->GetActorLocation(), Player->GetActorLocation()); // NPC와 플레이어 사이의 거리 구하기 float AttackRange = NPCInterface->AttackRange(); bool AttackRangeResult = Distance <= AttackRange; UE_LOG(LogTemp, Display, TEXT("Distance: %f"), Distance); UE_LOG(LogTemp, Display, TEXT("AttackRange: %s"), AttackRangeResult ? TEXT("True") : TEXT("False")); return AttackRangeResult; }

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
댓글 3 좋아요 0 조회수 151

프로젝트명 변경 또는 이주 시 발생하는 문제를 여쭤보고 싶습니다.

미해결

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

프로젝트명을 변경할 때 겪는 문제들로 인해 삭제하고 다시 생성하느라 시간을 많이 소비하고 있습니다. 제가 겪고 있는 문제점들을 짚어보겠습니다! 공식적으로 편리하게 이주 또는 프로젝트명 변경을 할 수 있는 방법을 알고싶습니다. 버전은 5.4.4 사용 중입니다. 기존 프로젝트명: ArenaBattle 변경한 프로젝트명: BEAD 프로젝트명 변경 이후 기본적으로 진행한 작업들 DefaultEngine.ini에 Redirect할 경로들 모두 적은 후 .uasset 데이터들 옮기기 소스코드 내 모든 모듈명 교체, .uproject 명세서 내 모듈명 교체, Build.cs 내 모듈명 교체 (버전 확인도 제대로 수행) Saved, Intermmidate, DerivedDataCache, Binaries, 솔루션 삭제 후 generate -> Rebuild 에디터 내 Content 폴더 우클릭 > Update Redirector References C++ 클래스 생성자 내 참조하는 경로 모두 변경한 프로젝트 경로로 설정 & 에디터의 모든 블루프린트 내 Parent 경로 Redirect한 것으로 적용된 것 확인 에픽게임즈 라운처 > 언리얼 엔진 > 검증 수행 질문 모음 1. Redirect를 시도했는데도 불구하고 "행동 트리"와 "데이터 애셋"의 경우, 참조하는 클래스가 새로운 프로젝트명의 클래스를 찾지 못하는 문제 시도한 내용: Redirect 사용 시 Widget Blueprint 등은 Parent 경로는 잘 찾았으나 Behavior Tree 내 클래스 경로 와 데이터 애셋의 경로 는 제대로 찾지 못해 삭제하고 다시 생성해야 하는 경우가 발생했습니다. (물론, Redirect 작성 이후 .uasset을 옮기고 캐시 삭제 및 generate 수행) // DefaultEngine.ini // [CoreRedirects] +ClassRedirects=(OldName="/Script/ArenaBattle.ABComboActionData", NewName="/Script/BEAD.ABComboActionData") // 애셋 데이터 +ClassRedirects=(OldName="/Script/ArenaBattle.BTService_Detect",NewName="/Script/BEAD.BTService_Detect") // 행동트리 ... 이하 생략 2. Animation Montage의 경우, 정보들은 그대로 잘 옮겨져 Notifies도 제대로 배치되어 있지만 삭제하고 다시 설치하지 않으면 C++ 클래스 내 Notify 함수가 호출되지 않는 현상 아래 AM_ComboAttack 몽타주는 Redirect를 사용하여 정상적으로 열리고, 모든 내용들이 잘 배치가 되어 있으나 아래 AttackHitCheck 노티파이를 삭제하고 다시 배치하지 않으면 C++ Notify 함수가 재생되지 않는 현상이 발생합니다. 3. 기존 모듈명은 이미 수정하여 어느 곳에도 존재하지 않는데 자꾸 VerifyImport: Failed to find script package for import object 'Package/Script/ArenaBattle' 경고가 뜨는 현상 모든 소스코드와 명세서, 그리고 블루프린트 내에도 이전 모듈명과 관련된 내용이 없는데도 엔진을 실행하면 아래 경고문이 나옵니다. (당연히 캐시 삭제와 generate, rebuild, update redirector references 수행했습니다.) 물론, BP_ABGameMode.uasset을 다시 지우고 생성하면 해결되겠지만 위의 질문들을 포함해서 Redirect를 사용하고 코드를 전부 수정해도 자꾸 적용이 안되는 게 생기고 아래 오류가 생기니 새로 삭제하고 다시 만들어야 하는 번거로움이 있습니다 ㅜ 해결방법을 알고싶습니다. LogLinker: Warning: [AssetLog] D:\4.Unreal\BEAD\Content\ArenaBattle\Blueprint\BP_ABGameMode.uasset: VerifyImport: Failed to find script package for import object 'Package / Script / ArenaBattle'

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
이다인 댓글 1 좋아요 0 조회수 462

7강 정리했는데 검토부탁드려요

해결됨

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

(사진)

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
임성우 댓글 1 좋아요 0 조회수 147

5강 정리해봤는데 검토부탁드립니다.

해결됨

이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템

간략하게 5강 실습내용들을 정리해봤는데 검토부탁드려요.

  • unreal-engine
  • ue-blueprint
  • unreal-engine5
  • 언리얼-c++
  • gas
임성우 댓글 2 좋아요 0 조회수 156

인기 태그

인프런 TOP Writers

주간 인기글