묻고 답해요
130만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
[40:20] retry count가 2번 올라갔습니다.
retry 버튼을 눌렀을 때 1 -> 2가 되었는데그 이후로 [40:24] 쯤에 2->3으로 또 올라갔는데 BeginPlay외에는 카운트가 올라가는 코드가 없는 거 같은데 왜 2번 올라갔는지 알 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
액터 스폰과 생성자에 대한 질문이 있습니다.
아이템박스에 상호작용 하면 아이템이 스폰되도록 시스템을 수정하고있습니다. 현재 아이템 액터를 다양하게 만들고 싶어액터 생성자에서 메시의 패스를 받아서 초기화하는 방법을 생각했습니다.현재 이 코드를 빌드하면 오류가 생기는데요 UObject() constructor called but it's not the object that's currently being constructed with NewObject. Maybe you are trying to construct it on the stack, which is not supported. 언리얼에서는 생성자를 여러개를 못만드는건가요? 또 생성자를 여러개를 만들수 있으면 SpawnActorDeferred에 어떻게 전달할 수 있는지 궁금합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
강의 22:21에 SweepSingleByChannel 함수 부분 질문 있습니다
안녕하세요 강의 항상 잘 듣고 있습니다!강의에서는 Attack Range = 40.0f로 설정하고 Sweep하는 구체의 반지름을 50.0f로 설정하셨던데 콜리전이 감지되는 부분은 40까지인데 보다 높은 값으로 구체의 반지름을 설정한 이유가 따로 있는지 궁금합니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
Player 생성자/Player Init(BeginPlay)
안녕하세요 루키스님,강의를 듣다가 궁금한 것이 생겨서 질문드립니다.강의에서는 이렇게 생성자에서 flipbook이랑 camera를 추가하는데 Init(BeginPlay)에 옮겨서 실행하면 안될지 여쭤봅니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
22분 52초까지 진행하던 중 Faild to Find 오류가 나왔습니다
분명 파일에 있는 경로를 참조하여 붙여넣기 했는데 왜 이러는걸까요? #include "Character/ABCharacter.h" #include "Components/CapsuleComponent.h" #include "GameFramework/CharacterMovementComponent.h" // Sets default values AABCharacter::AABCharacter() { // Pawn bUseControllerRotationPitch = false; bUseControllerRotationYaw = false; bUseControllerRotationRoll = false; // Capsule GetCapsuleComponent()->InitCapsuleSize(42.f, 96.0f); GetCapsuleComponent()->SetCollisionProfileName(TEXT("Pawn")); // Movement GetCharacterMovement()->bOrientRotationToMovement = true; GetCharacterMovement()->RotationRate = FRotator(0.0f, 500.0f, 0.0f); GetCharacterMovement()->JumpZVelocity = 700.f; GetCharacterMovement()->AirControl = 0.35f; GetCharacterMovement()->MaxWalkSpeed = 500.f; GetCharacterMovement()->MinAnalogWalkSpeed = 20.f; GetCharacterMovement()->BrakingDecelerationWalking = 2000.f; // Mesh GetMesh()->SetRelativeLocationAndRotation(FVector(0.0f, 0.0f, -100.0f), FRotator(0.0f, -90.0f, 0.0f)); GetMesh()->SetAnimationMode(EAnimationMode::AnimationBlueprint); GetMesh()->SetCollisionProfileName(TEXT("CharacterMesh")); static ConstructorHelpers::FObjectFinder<USkeletalMesh> CharacterMeshRef(TEXT("/Script/Engine.SkeletalMesh'/Game/Characters/Mannequins/Meshes/SKM_Quinn_Simple.SKM_Quinn_Simple'")); if (CharacterMeshRef.Object) { GetMesh()->SetSkeletalMesh(CharacterMeshRef.Object); } static ConstructorHelpers::FClassFinder<UAnimInstance> AnimInstanceClassRef(TEXT("/Game/Characters/Mannequins/Animations/ABP_Quinn.ABP_Quinn")); if (AnimInstanceClassRef.Class) { GetMesh()->SetAnimInstanceClass(AnimInstanceClassRef.Class); } }
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
언리얼 기본 제공 태스크 UAbilityTask_WaitTargetData
언리얼이 기본제공하는 태스크들이 정말 많아서 좀 둘러보다가 저희가 만든 AT_Trace랑 비슷한 "UAbilityTask_WaitTargetData"라는 게 있어서 좀 살펴봤는데요. Activate()에 있는 구현 내용이 중복되는 BeginSpawningActor()와 FinishSpawningActor() 함수가 있는데 임의로 블루프린트에서 이 태스크를 실행해보니 Activate()가 실행이 안되고 이 두 함수가 실행되는 걸 봤습니다.이런 식으로 그냥 실행해봤는데요.사실 코드에선 어빌리티에서 CreateTarget()을 하고 ReadyForActivation()까지 호출해야 AT의 Activate()가 실행되는데 블루프린트에서는 이 노드 호출만으로 어떻게 AT가 실행까지 되는지도 잘 모르겠습니다. 거기에 UAbilityTask_WaitTargetData 처럼 Activate() 대신에 BeginSpawningActor()/FinishSpawningActor() 가 실행되는 이유도 알고 싶습니다....이 두 함수 존재의 설명은 엔진 주석에 나와있어서 어느정도 파악이 됐는데 문제는 코드에서든 블루프린트에서든 호출되는 조건을 잘 모르겠습니다...
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
윈도우 API 프레임워크제작) LINK1168 오류 관련 문의 드립니다. (xxx.exe을(를) 쓰기용으로 열 수 없습니다.)
윈도우API 강의 따라해 보고 있는데 어느 순간부터 빌드할 때마다 LINK1168 오류가 납니다. 이에 여기 저기 찾아봤는데 VS에서 이전 실행 창을 제대로 종료하게 되지 않으면 exe 파일이 남아 있게 되어 다시 빌드 시 아래와 같은 오류가 나온다고 하더라구요. 그래서 cmd에서 taskkill 을 통해 남아 있던 exe 파일을 종료하고 다시 빌드 실행하면 잘 되는데, 이때 다시 주석만 달고 빌드를 하게 되면 다시 또 LINK1168 오류가 나네요.. 이거 왜 이런지 계속해서 찾아보고 강의 다시 보면서 코드 다시 쳐보면서 알게 되었는데 아래와 같이 while(true){pfPeakmessage~)이 부분이 기존에 있던 코드에서 수정 및 추가되면서부터 빌드 이후에 종료하여도 exe 파일이 잔재하여 위와 같은 오류가 발생하는 것으로 확인이 됩니다. 위 부분은 게임 관련 작업 시에 어떤 메시지 인풋이 없어도 계속해서 화면 렌더링 하는 부분이라 필수적인 것 같은데,, 위 부분을 냅두자니 계속해서 오류가 발생하고 어떻게 하면 좋을지 모르겠네요ㅠ관련하여 도움 주시면 감사 드리겠습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
어빌리티 태스크의 블루프린트 핀에 Async Task는 용도가 뭔가요?
찾아보려 했는데 정보가 잘 안 나오네요... +아, 그리고 블루프린트에서는 태스크 생성과 동시에 자동으로 ReadyForActivation 까지 호출되는 건가요??? 그러고보니 이 함수가 없네요
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
[5:03] operator+ 연산자 질문입니다.
덧셈 연산을 고칠 필요가 없다는 부분을 저는 속성이 늘어나도 속성이 늘어남에 따라 더해주는 코드를 추가할 필요 없이 속성들을 float으로 통일을 해서 (구조체 크기 / float 크기)를 통해 계산하기 때문에 고칠 필요가 없다고 이해를 했습니다.근데 다시 보니 새로운 연산자를 추가해도 고칠 필요가 없다고 말씀하셨는데 제가 이 부분이 잘 이해가 되지 않습니다. 다른 operator를 추가하는 것과 operator+를 고치는 것과의 상관관계를 잘 모르겠습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
여러 대상에게 Effect를 전달하는 방법
AttackHit어빌리티의 스킬 공격 판정 결과 함수에서스킬 타겟 액터는 HitResult 대신 Actors 에 충돌된 액터들을 넣어서 보내주기 때문에 TargetDataHandle에 대상 액터들이 들어있을 텐데요. 이를 엔진 내부에서 사용하여한번의 ApplyGameplayEffectSpecToTarget() 호출로 각 대상 액터들에게 모두 Effect를 적용하는 걸로 예상하고 있습니다. 그런데 ASC에서 직접 BP_ApplyGameplayEffectSpecToTarget()을 할 때는 대상 액터가 여러개라면 For문으로 직접 여러번 호출할 수 밖에 없어 보이는데, 혹시 ASC도 Effect를 한번 호출로 여러 타겟에 적용하는 함수가 있나요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
컴포넌트 활성화/비활성화 관련 질문
안녕하세요! SetHiddenInGame()는 비활성화가 아닌 렌더링만 막는 함수인건가요?그렇다면 유니티처럼 각각의 컴포넌트를 비활성화하는 경우는 없는지, 그리고 액터를 비활성화시킬 때 Visibility와 Collision 외에 따로 고려할 사항이 있는지 궁금합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
SendGameplayEventToActor() 발동 시 ASC 동작
나름대로 제가 알아볼 수 있을 정도만 정리 중인데요. SendGameplayEventToActor()가 어빌리티랑 이벤트 델리게이트를 활성화 할 수 있던데, 만약 이 두 개가 우연히 같은 Tag를 가지고있다면 Send 함수 호출 한번으로 둘이 동시에 실행되는 건가요???
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
위치 지정에 대한 질문입니다.
안녕하세요. 강사님!궁금한점이 있어, 이렇게 질문 남깁니다.오른쪽 핸드 소켓을 설정할 때 상대 위치와 회전을 지정하셨는데, 보통 기획적으로 이미 설정된 값으로 설정되는 것인지 아님 아트쪽에서 설정하는지 아님 이 강의처럼 프로그래머가 직접 무기를 들었을 때 어색하지 않는 위치를 찾아서 설정하는지 궁금합니다.또한, 보통 무기가 한 개가 아닌 여러 개의 종류가 있다면, 위치의 변동이 생기지 않을까?..라는 생각이 드는데 이때는 위치와 회전값을 동적으로 할당하나요? 아님 중간 타협점을 찾아 배치하나요???답변 주신다면 더 열심히 공부하겠습니다! 정말 감사합니다!
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
빌드 오류 질문
안녕하세요 루키스님 소켓프로그래밍 입분 20분 초반대에 빌드하셔서 실행하시면 서버와 클라이언트가 잘 실행되서 연결되지만 제 환경에서는 Debug\ServerCore.lib 파일을 열수 없다 오류가 나옵니다.ServerCore를 먼저 빌드 후 해봐도 그렇고 루키스님께서 올려주신 파일을 다운받아 순차적으로 빌드해도 동일한 증상이 나타나는데 무슨 문제인지 알 수 있을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
AttributeSet 함수 정리
AttributeSet의 각 함수에 대해 의미와 동작 방식, 사용처가 조금 헷갈려서 제가 실험을 좀 해본 후에 정리한 것인데요.여기서 틀린 정보가 있을지 혹시 알 수 있을까요... 그리고 UAbilitySystemComponent:GetGameplayAttributeValueChangeDelegate(FGameplayAttributeAttribute)이 델리게이트 같은 경우는 PostGameplayEffectExecute() 다음에 이벤트 발생 되는 건가요??
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
어빌리티 태스크에서 GetWorld() 얻어올 때 어빌리티에서 가져오는 것
바로 GetWorld() 하는 것과 Ability->GetWorld() 하는 것이 어떤 차이가 있나요?World라는 것이 자신이 생성되어 소속되어있는 레벨의 월드 데이터로만 알고있는데, 월드데이터가 오브젝트마다 다를 수가 있는 건가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
무기가 손에 장착이 안됩니다
상자에서 무기를 획득했을 때 무기가 hand_rSocket에 장착되는 것이 아닌 캐릭터의 아래에 고정됩니다.어디가 잘 못 된 건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
GAS 보조게임 모듈은 GameFeature로 만든건가요?
플러그인에 게임피처가 적용 안되어 있는 걸로 보면 직접 파트1에서 한 것처럼 수동으로 폴더와 파일을 만들어서 제작한 것 같은데요. GAS 빌드.cs 에 PrivateDependencyModuleNames에 "GameFeatures"는 왜 있는 건가요??
-
미해결[입문자를 위한 UE5] Part5. 언리얼 엔진 VR
왼손 Animation 넣을 떄
안녕하세요! 좋은 강의 보며 재밌게 공부중입니다. 다름이 아니라 왼손에도 애니메이션을 넣고 싶어서 혼자 ABP_Hand_Left도 만들어서 왼손에 연결해보려 했는데, BP_Hand의 HandMesh가 하나인 탓에 이미 강의대로 오른손 기준 애니메이션이 Mesh와 연결돼있어서 왼손 애니메이션을 mesh에 연결 못했습니다. 혹시 왼손도 애니메이션도 따로 제작해서 넣고 싶으면 BP_Hand에서 왼손, 오른손 mesh 따로 있도록 새로이 구조를 짜야 하는건가요? 그리고 궁금해서 Sample/Character/Mannequins_XR/Meshes/ 의 ABP_MannequinsXR 애니메이션의 AnimGraph도 봤는데 mirror 어쩌구저저구를 사용해서 오른손,왼손 다 사용가능하게끔 코드처리가 돼있던데 이것은 어떤 원리인지도 궁금합니다.
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
VS에서 저장 안한 코드가 에디터에서 컴파일 할 때마다 사라지는 문제
에디터를 켠 상태로 vs코드를 수정하다가 저장을 안하고 그대로 에디터에서 새 클래스를 생성한다던지 하는 방식으로 에디터에서 컴파일을 실행하면, 저장안한 코드는 전부 사라지는 것 때문에 강의를 여러번 되돌려보고 디버깅 따로 해보느라 여러번 낭패를 봤는데요. 이거는 그냥 코드 수정할 때마다 저장 제때하는 것밖에 방법이 없는 건가요???뭔가 방지하는 방법은 없나요