묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
스프링암의 Use Pawn Control Rotation적용 질문이 있습니다.
Use Pawn Control Rotation을 켜면 컨트롤러 회전값을 해당 컴포넌트의 rotation에 적용한다고 이해했었는데요.이것만 켜면 마우스로 인한 컨트롤러 회전값 변화가 스프링암에 적용되어 스프링 암이 회전할 거라고 생각했는데스프링암에 있는 부모의 회전값을 상속받는 옵션을 켜야만 작동이 되는 것을 확인했습니다.어떤 이유로 스프링암의 부모컴포넌트의 회전값을 상속받아야지만 작동되는지 알수있을까요? 반대로 Use Pawn Control Rotation을 끄고 회전값 상속을 하니 무조건 캐릭터의 뒷면만 보게끔 되는것을 확인했습니다. 이러한 동작은 이해가 되었습니다.
 - 
      
        
    미해결언리얼 엔진4 입문 (C++ 기반)
현업에서 트레일같은 쉐이더질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.협업에서 트레일이나 파티클같은거도 c++로 하나요?포트폴리오만드는중에 트레일이나 파티클도c++로 만들어야하나 궁금해서 질문남겨봅니다
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
입력 모디파이어 질문있습니다.
질문이 많아 죄송합니다.매뉴얼을 봐도 모디파이어가 인풋의 출력 값을 변형시킨다는 어렴풋한 이해만 되고 정확히 무엇인지 잘 모르겠습니다... 스위즐과 Order에 대한 이해도 잘 안되지만 인풋 액션에만 모디파이어가 있는게 아니라 맵핑 컨텍스트의 키맵핑에도 모디 파이어가 있는데 어떤관계고 어떻게 동작하는건지 좀 어렵습니다...
 - 
      
        
    미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
애니메이션 몽타주 재생 후 마지막 프레임의 포즈로 고정하는 설정을 알고싶습니다.
Part2 6강 39분쯤 PlayDeadAnimation() 코드를 보면 모든 몽타주를 멈추고 DeadMontage를 재생하는 코드가 있는데, 제 프로젝트에서는 몽타주를 다 재생하고 나면 애니메이션 블루프린트로 지정된 IDLE상태로 돌아오는데, 수업 내용에서는 마지막 프레임의 모습으로 고정되어 있었습니다. 제가 놓친 부분을 찾아보았으나 차이를 찾지 못하여 이렇게 문의드립니다.
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Look() 함수 설명해주실때 컨트롤러의 의미
void AABCharacterPlayer::Look(const FInputActionValue& Value) { //마우스 입력 같음 FVector2D LookAxisVector = Value.Get<FVector2D>(); //컨트롤러의 회전을 설정함으로서 스프링암이 해당 컨트롤러를 바라보도록 한다...? AddControllerYawInput(LookAxisVector.X); AddControllerPitchInput(LookAxisVector.Y); }저는 컨트롤러를 그냥 마우스/키보드 입력을 처리하거나 입력값을 자신이 빙의한 폰에 넘겨주는 역할을 하는 무형의 클래스라고 생각하고 있었는데요. 컨트롤러의 회전을 설정함으로서 스프링암이 해당 컨트롤러를 바라보도록 한다. 라는 설명에서는 카메라를 제어하는 듯한 의미같은데설명의 의미와 컨트롤러와 카메라의 관계를 잘 모르겠습니다... 컨트롤러가 빙의 되면 폰이 가지고있는 카메라 컴포넌트를 자동으로 컨트롤러가 참조하게 되고, AddControllerYawInput() 같은 함수를 통해 컨트롤러에 회전값을 주면 카메라를 제어하는 그런 시스템일까요???또, 그 카메라가 스프링암이 있다면 스프링암 위치와 떨어진 거리 기준으로 공전하는 회전이 적용되는 그런 의미일까요??
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
SetupPlayerInputComponent 함수에 대한 전반적 이해 질문...
void AABCharacterPlayer::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) { Super::SetupPlayerInputComponent(PlayerInputComponent); // 반드시 UInputComponent를 가져올 수 있도록 CastChecked를 사용해서 없으면 에러 발생되게 함 UEnhancedInputComponent* EnhancedInputComponent = CastChecked<UEnhancedInputComponent>(PlayerInputComponent); ... }SetupPlayerInputComponent 라는 함수와 매개변수인 UInputCompononent가 무엇인지 전체적인 그림이 잘 그려지지 않습니다.... 지금은 향상된 입력을 수행하는 녀석이라고 이해하고 있는데 보니까 BeginPlay() 하기전에 실행되기도 하고..... UInputCompononent가 어디에서 온건지, 커스텀으로 에디터에서 만들고 등록할 수 있는건지. 전반적인 이해가 필요한데요. 이 함수와 매개변수에 대한 자세한 건 나중에 또 나오나요??
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
UPROPERTY()를 이용한 댕글리 포인터 문제 해결 질문
UObject 포인터 멤버 변수에 UPROPERTY()를 붙여야하는 이유를 제가 제대로 이해한 것인지 궁금합니다.동적 할당한 UObject는 가비지 컬렉터로 관리되며, 스윕으로 정리되는 조건은 참조 여부이다. (해당 UObject를 참조하고 있는 곳이 있다면 스윕 X) - 메모리 누수 문제 해결UPROPERTY()를 선언한 포인터 멤버 변수를 사용해야 가비지 컬렉터에서 참조 여부를 판단할 수 있다.즉, UPROPERTY()를 선언한 포인터 멤버 변수가 참조하는 UObject는 가비지 컬렉터가 지울수 없으니 댕글리 포인터가 될 수 없다. - 모든 UObject 포인터에 UPROPERTY()를 선언 해주는 것 만으로도 댕글리 문제 해결 만약 제가 제대로 이해한게 맞다면 두 가지 궁금한 점이 있습니다.어느 곳에도 참조되지 않는 Actor는 스윕으로 부터 어떻게 안전한가요?Actor를 참조하고 있는 A 객체가 있고 해당 Actor가 Destory 됐을 때(몬스터가 죽었을 때), A 객체에서 접근을 한다면 댕글리 포인터가 될 것 같은데, 이때는 어떤식으로 댕글리 포인터를 해결하나요?
 - 
      
        
    미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
클라이언트에서 RPC함수 실행 시점
안녕하세요 어떤 액터의 내부에 다음과 같은 선언이 있고UPROPERTY(ReplicatedUsing=OnRep_Val)float Val; void OnRep_Val(); Val의 값이 서버에서 변경이 되면 클라이언트에서 OnRep_Val()함수가 실행될텐데OnRep_Val함수가 클라이언트에서 실행되는 순서가 궁금합니다.예를 들면 클라이언트의 Tick함수가 다 실행이 된 후에 OnRep_Val함수가 실행되는 건지아니면 클라이언트의 Tick함수가 실행되는 동시에 별도의 쓰레드를 생성해서동시에 OnRep_Val함수가 실행되는 건지 궁금해요 마찬가지로 Server, Client, NetMulticast로 작성된 함수들의 실행방식도요
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
StaticClass 나 에셋 레퍼런스 경로로 클래스를 사용한다는 의미
이 예제처럼 클래스 정보를 얻어와 적용해 사용한다는 뜻은 엔진 내부적으로 받은 클래스 정보에 따라 인스턴스를 스스로 만들어 사용한다고 보면 되는 건가요?? AABPlayerController 클래스의 인스턴스를 직접 만들었다면 고칠꺼 고치고 GetClass()를 통해서 넣으면 되는 걸까요? 그리고 TSubclassOf의 효과를 알 수 있을 까요... 찾아보니 지정한 UClass 파생 클래스로만 할당 할 수 있어서 안전하다.. 이런 얘기가 있는데 잘 모르겠네요ㅜㅜ
 - 
      
        
    미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
콘텐츠 브라우저에 플러그인 폴더 생성이 안됩니다.
안녕하세요, 콘텐츠 브라우저에 플러그인 폴더 생성이 안되지만, Edit > Plugins > PROJECT > Other에는 GameUtility플러그인이 존재합니다. Plugins 폴더가 보이지 않아도 무방한가요?
 - 
      
        
    미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
1강 강의 대로 PlayerController를 변경한 후 캐릭터 조작이 안되고 있습니다.
1강 강의 대로 PlayerController를 변경한 후 캐릭터 조작이 안되는 문제를 겪고 있습니다.1강 언리얼 엔진 게임 제작 기초 강의 그대로 따라하고 있었는데요.23:21 부분 따라한 이후 부터는 캐릭터 뿐만 아니라 카메라도 이동이 되지 않고 있습니다. 재컴파일도 해보고 아예 새 프로젝트부터 다시 만들어보기도하였는데요. 동일한 현상 때문에 애를 먹고 있습니다. 어떻게 해결하면 좋을지 여쭤보고 싶습니다.아래는 조작이 안되는 상태 스크린샷입니다. (키보드나 마우스 움직여도 캐릭터가 움직이질 않음)
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
혹시 Basic으로 맵을 만들면 다시 월드 파티션 설정을 못하나요??
처음부터 오픈 월드 용 맵을 만들어야 월드 파티션 사용할 수 있는건가요??
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
plugin이나 thirdParty로 있는 모듈의 파일 접근
플러그인은 메인 게임 모듈.build.cs에 모듈 추가 안해도 되는 건가요??? 그리고 메인 모듈에있는 클래스에서 플러그인에 있는 헤더파일을 include 하려할 때, 인텔리전스 자동완성 추적이 안되는 것 같던데 원래 그런가요???
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
오브젝트를 NewObject로 생성할 때 클래스에 생성자 인수가 있다면
NewObject로 생성할 때, 패키지 관련 인자를 넣어서 만드는 것 같은데요. 만약 객체 정의에 매개변수가 있는 생성자 함수가 있고 이 생성자로 객체를 생성하고 싶다면 어떻게 해야 하나요?
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Shipping, Package Project
게임 실행 파일을 만드는 과정이 visual studio에서 Shipping 으로 빌드 한번 하고에디터에서 Package Project를 하는건가요???
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
아래 서브오브젝트 불러오기 질문보고 해봤는데요
LogTemp: [Package로 에셋 불러오기] 이름 이득우, 순번 36LogTemp: [에셋 서브 오브젝트] 이름 학생1, 순번 1LogTemp: [에셋 서브 오브젝트] 이름 학생10, 순번 10LogTemp: [에셋 서브 오브젝트] 이름 학생2, 순번 2LogTemp: [에셋 서브 오브젝트] 이름 학생3, 순번 3LogTemp: [에셋 서브 오브젝트] 이름 학생4, 순번 4LogTemp: [에셋 서브 오브젝트] 이름 학생5, 순번 5LogTemp: [에셋 서브 오브젝트] 이름 학생6, 순번 6LogTemp: [에셋 서브 오브젝트] 이름 학생7, 순번 7LogTemp: [에셋 서브 오브젝트] 이름 학생8, 순번 8LogTemp: [에셋 서브 오브젝트] 이름 학생9, 순번 9 생성한 순서대로 안 나오고 마지막 10번이 중간에 출력되는데순서는 원래 안 맞춰지는 건가요???
 - 
      
        
    미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
첫 번째 topStudent 에셋 만드는 예제가 잘 안되요..
성공했다는 로그까지 찍히는데 에디터 상으로 TopStudent에셋은 안보이고, 파일 탐색기에 Content폴더에는 Student.uasset이 있긴 해요. 그리고 로그에LogSavePackage: Moving output files for package: /Game/StudentLogSavePackage: Moving '../../../../Users/themo/Documents/Unreal Projects/UnrealSerialization/Saved/Student425875224600D84377F94498A09EBA32.tmp' to '../../../../Users/themo/Documents/Unreal Projects/UnrealSerialization/Content/Student.uasset'LogTemp: 패키지 저장 성공. 패키지 관련 로그도 찍히는데 뭐가 잘못된 건지 혹시 알 수 있을까요...
 - 
      
        
    해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
Json 예제에서 파일 접근 FFileHelper 사용 질문
Json 예제 에서는 파일 아카이브 안쓰시고FFileHelper를 사용하셨는데요. UObject나 Struct를 파일에 저장/불러오기 할 때도 FFileHelper로 파일 접근 못하나요??? LoadFileToArray 라는 함수도 있는 걸로 보아 테스트 해봤는데 잘 안되는 것 같긴 합니다....
 - 
      
        
    미해결[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문
[타일 좌표 구하기/19:30] 질문
로직은 Valid 체크 후 true일 때만 actor의 위치를 변경하도록 되어 있는데 왜 false인데 위치가 변경된 것일까요?설명도 "원래는 이동할 수 없지만 어찌됐건 이 그리드 단위를 기준으로 얘가 해당하는 그 월드 좌표를 구해 가지고 일단 이렇게 이동을 시켰다는 걸 알 수가 있는거죠" 라고 해주셨는데 어찌됐건, 일단이라는 부분이 잘 이해가 가지 않습니다.언리얼 엔진의 오류라고 봐야하는 부분인 지, GetTilePos를 순수 함수로 체크한 것이 영향이 있는 건지 궁금합니다 (이론적으로는 영향이 없겠지만 이게 오류의 원인인건지).
 - 
      
        
    해결됨Go Hard to Unreal Engine
프로퍼티 시스템 실습1 관련해서 질문이 있습니다
안녕하세요 강사님강의 수강 도중 질문이 있어 남기게 되었습니다 섹션 2 (Unreal Object)의Class Default Object, Property System 강의에서11분 28분의 프로퍼티 시스템 실습1 결과 관련 부분에 대한 질문입니다 강의에서 OutputLog 결과가 USGameInstance() 생성자가 3번 호출되었고강사님께서 객체를 하나 더 만들었기 때문에 생성자가 총 3번 생성된 것이라 설명하셨는데,어디서 객체를 하나 더 만들었는지 잘 모르겠어서 질문을 드립니다 제가 코드 따라쳐서 실습해보니첫번째로, 언리얼 로딩되면서 CDO 생성자가 호출되고두번째로, 게임이 실행되면서 찐생성자가 호출이 되면서총 USGameInstance() 생성자가 2번만 호출이 되어서 더 헷갈리네요ㅠㅠ