묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
델리게이트 자료형 생성 매크로에 세미콜론 붙여야 하는건가요?
실행은 되는데 헤더의 몇몇 함수들이 링크가 안 맞는 뭔지 모를 오류 때문에 한참 찾았는데요..... 저도 모르게 세미콜론을 붙였다 안붙였다 해서 쓴 것 같은데안 붙여도 오류는 안 나는 이유가 뭘까요....
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
공격하면서 회전하는데요. MOVE_None은 이동만 막는건가요?
MovementMode의 MOVE_None는 이동만 막는거고 회전은 막지 않는 것인가요???
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
데코레이터의 abort 설정 범위가 정확히 어떻게 되나요??
Self는 자기 자신만,Both는 자신과 오른쪽 노드까지 중지 시킴으로 상위 노드로 돌아간다면이쪽으로 가는게 맞나요??? 아니면 Root 까지 가는건가요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
FSoftObjectPtr 와 FSoftObejctPath는 어떤점이 다른가요???
둘다 나중에 로드하는 식으로 사용하는건 똑같긴 하지만 Path는 자료형을 지정 안하던데 예상하기로는 Path는 말그대로 문자열 저장 같은거고로드하기위해서는 핸들 같은 다른 객체의 도움을 받는 듯한 느낌인데요. 이번 수업에서 보여주신 Path - FStreamableHandle 사용법은 정형화되어있나요? 아니면 다른식으로 path 사용하는 방법이 무궁무진하나요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
에셋 매니저에 버그인지 제 기존 weapon 데이터 에셋을 못찾습니다.
왼쪽에 Weapon1 이 예전부터 실습하던 데이터 에셋인데요.weapon 박스가 생성이 안되길래 디버그로 확인해보니 에셋 매니저가 이 weapon1를 못 찾아서 에셋 목록에 없었습니다. 리로드 다시 해도 안되는 것 같습니다. 그래서 새로운 data asset을 ABWeaponItemData기본으로 만들어서 같이 테스트 해보니, 오른쪽 새로 만든 건 또 에셋 매니저가 찾아서 목록 안에 있더라구요..... 이게 버그인지 아니면 제가 뭘 잘못한 건지 잘 모르겠는데 혹시 뭔지 알 수 있을까요....
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
FSoftObjectPtr 함수 질문
IsPending()은 객체정보는 있지만 로딩되지 않았을 때 True.IsValid()는 객체정보있고 로딩도 되있을 때 True 인가요?? 그렇다면,IsPending()은 nullptr 일 때 false.IsValid()는 객체정보는 있고 로딩 전 일때 false 인가요??
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
속성의 변화를 알려주는 OnConstruction
보통 Transfrom이 변하면 호출되어 사용하는 함수 같은데요. 제가 사용해봤던 다른 엔진에서는 객체의 멤버변수가 변화되면 변화된 프로퍼티의 ID값과 함께 호출되는 콜백 함수로 OnChangedProperty( 프로퍼티 ID) 라는게 있어서변화된 게 누구인지 보고 처리하는 것이 있었는데요. 언리얼에서는 이런 것이 있나요???
-
미해결[LV3 : 기술편] 게임스킬 만들기 - 기획, 아트 누구나 만드는 블루프린트
강의 자료 다운 문의
안녕하세요. 닻 데이터는 어디서 받을 수 있나요? 현재 버섯 데이터만 받을 수 있는 것 같습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
DataAsset에 궁금증이 있습니다
15분 쯤 이제 Potion Data Asset을 생성하는 장면이 있는데 저렇게 구분해서 Data Asset을 생성하는 것이 더 좋나요? 제가 생각했던것은 이러한 Data 내용들은 Excel 혹은 json 파일을 이용해서 데이터 레이블에 저장해놓고 사용했을것 같은데 혹시 Data Asset을 사용하는게 어떤 이점이 있을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
플레이어 캐릭터의 블루프린트에 위젯 컴포넌트 질문입니다.
플레이어의 체력바가 변화가 없길래 블루프린트를 봤더니HpBar 위젯 컴포넌트가 그냥 기본 UWidgetComponent로 되어있었습니다.자동으로 AABWidgetComponent로 바뀌여야 하지 않나요??혹시 수동으로 직접 바꿔야 되는 건가요??? 혹시 몰라서 HpBar를 직접 UABWidgetComponent로 바꿔봤는데 그렇게 하면 블루프린트에 디테일 패널이 안나와요....
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
UserWidget의 GetOwningPlayerPawn()은 컨트롤러가 붙어있는 폰만 유효한거죠?
GetOwningPlayerPawn() 함수가 UI와 관련된 플레이어 폰이라고 설명이 되있는데말그대로 플레이어컨트롤러가 붙어있는 Pawn인거죠??
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
몽타주에 델리게이트 set 하는거는 일회용인가요??
//몽타주 섹션 End 델리게이트 만들어서 콜백함수 연결하고 FOnMontageEnded EndDelegate; EndDelegate.BindUObject(this, &AABCharacterBase::ComboActionEnd); //델리게이트를 몽타주에 설정 AnimInstance->Montage_SetEndDelegate(EndDelegate, ComboActionMontage);수업 내용처럼 계속해서 지역변수로 선언한 델리게이트를 넣어줘야 하는 건가요??? 안에서 MontageInstance->OnMontageEnded 처럼 멤버변수에 따로 복사 되는 것 같은데도한번만 설정했을 시 잘 안되는 것 같아요. FAnimMontageInstance 라고 몽타주 실행 할 때마다 생성되서 내부에 관리하는데 델리게이트를 FAnimMontageInstance에다가 설정하는 것으로 보입니다.이 인스턴스가 어디서 계속 삭제되니까 설정도 계속 해줘야 하는 것으로 보입니다. 이곳은 복잡해서 흐름을 이해하기가 조금 힘든 것 같습니다.
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
Landing모션에서 곧바로 Loco모션의 달리기로 바로 바뀔 수 있는 이유
제가 점프 얼라이어스에 Landing도 체크 했기 때문에 landing 하자마자 점프를 하면 바로 점프 모션으로 바뀌게 되는 것은 이해가 되는데요. Landing모션이 시작되고 10퍼센트 이하 남은 시점에 Locomotion으로 바뀌게 설계를 했기 때문에, landing하자마자 이동하면 landing모션이 10%남은 시점 까진 Landing이 유지되다가 달리기 모션을 바뀔 줄 알았는데 Landing하자마자 이동을 하면 바로 Locomotion의 달리기 모션으로 전환 될 수 있는 이유를 알 수 있을까요..
-
해결됨이득우의 언리얼 프로그래밍 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가 어디에서 온건지, 커스텀으로 에디터에서 만들고 등록할 수 있는건지. 전반적인 이해가 필요한데요. 이 함수와 매개변수에 대한 자세한 건 나중에 또 나오나요??
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
StaticClass 나 에셋 레퍼런스 경로로 클래스를 사용한다는 의미
이 예제처럼 클래스 정보를 얻어와 적용해 사용한다는 뜻은 엔진 내부적으로 받은 클래스 정보에 따라 인스턴스를 스스로 만들어 사용한다고 보면 되는 건가요?? AABPlayerController 클래스의 인스턴스를 직접 만들었다면 고칠꺼 고치고 GetClass()를 통해서 넣으면 되는 걸까요? 그리고 TSubclassOf의 효과를 알 수 있을 까요... 찾아보니 지정한 UClass 파생 클래스로만 할당 할 수 있어서 안전하다.. 이런 얘기가 있는데 잘 모르겠네요ㅜㅜ