묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
[25분 20초] 형변환 관련 질문드립니다.
안녕하세요! 좋은 강의 감사합니다.수업을 듣다가 궁금한 점이,staff 클래스는 ILessonInterface를 상속받지 않기 때문에, staff 인스턴스를 ILessonInterface로 형변환 시 형변환이 실패하여 nullptr이 반환되는 것을 볼 수 있었습니다.그렇다면 자식 클래스(인스턴스)가 상속받지 않은 클래스로 형변환이 될 시 무조건적으로 형변환이 실패한다고 보면 될까요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
3파트 6강 분수대 로테이트에 문제가 생겼습니다.
안녕하세요 강사님! 항상 열심히 강의를 보며 공부하고 있습니다.6강 예제를 따라하던 도중 문제가 생겨 해결해보려했으나 도저히 방도가 안보여 질문드립니다. 비주얼 스튜디오에서 빌드로 실행하면 모두 정상적으로 작동이 되는 것 같습니다. 하지만 에디터에서 실행하거나, 배치파일로 실행하거나, 에픽 런쳐로 실행하거나, 프로젝트파일로 실행시킬 때 모두 분수대가 회전되지않습니다.(분수대뿐만이 아닌 모든 ab네트워크로그 매크로도 나오지 않습니다. 로테이트레이트값도 아예 보이지 않습니다.) 라이브 코딩 후에는 분수대도 잘 회전되고 매크로도 나오나, 클라이언트에서는 분수대가 여전히 회전하지않고, YAW값 매크로도 나오지 않습니다.
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
클라이언트의 오너십 설정에 대해서 궁금합니다.
클라이언트에서는 빙의를 하면서 오너쉽을 설정하는 것이 아니라 Owner값이 서버와 동기화 되는 것이라고 이해했습니다.그리고 서버에서 Owner값이 바뀌면 클라이언트의 OnRep_Owner가 실행되면서 클라이언트의 Owner값이 설정된다고 이해했습니다.그래서 Super의 OnRep_Owner가 실행되기전에도 로그를 찍어봤는데, 그때도 이미 오너가 설정된것으로 로그가 출력되었고, 코드를 확인해보니 Actor의 OnRep_Owner는 내용이 없더라구요..? 그러면 정확히는 OnRep_Owner에서 Owner값이 동기화 되는것은 아니라는 건가요? 그리고 아래 로그와 같이 PostNetInit가 실행되고 BeginPlay 까지 실행된 이후에 PostNetInit가 한번 더 호출되는 이유는 무엇인지 궁금합니다.LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner [ABCharacterPlayer_0 Begin] LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner [Owner: BP_ABPlayerController_C_0] LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner [Owner: BP_ABPlayerController_C_0] LogABNetwork: [CLIENT1] AABCharacterPlayer::OnRep_Owner [End] LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit [Begin] LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit [End] LogABNetwork: [CLIENT1] AABGameState::OnRep_ReplicatedHasBegunPlay [Begin] LogABNetwork: [CLIENT1] AABPlayerController::BeginPlay [Begin] LogABNetwork: [CLIENT1] AABPlayerController::BeginPlay [End] LogABNetwork: [CLIENT1] AABGameState::OnRep_ReplicatedHasBegunPlay [End] LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit [Begin] LogABNetwork: [CLIENT1] AABCharacterPlayer::PostNetInit [End]
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
프로퍼티 리플리케이트 동기화 보장 개념.
c++ 에서 replicated/replicatedUsing이나블루프린트에서 replicated/RepNotify설정하는것은 동기화를 반드시 보장해준다고 알고있는데요. 그래서 연결 이슈가 발생됐을 시, 보존했다가 정상 연결되면 그때 다시 데이터 보내준다고 이해했습니다. 그러면 리슨서버에 클라1이 접속되어 있고 이후 2번째 클라가 접속했을 때 이미 초기화가 끝나고 tick이 진행중이던 2개의 플레이어 캐릭터(서버,클라1)가 클라2 환경에서 simulated클라 역할로 생성되어 각각 beginplay가 진행될텐데요.이때 리플리케이트가 켜져있는 프로퍼티나 컴포넌트 상태 등등 변경된 사항들이 복제되어 적용된 상태로 생성되는 건가요?초기값과 다르기때문에 onRep_~~() 함수도 호출되면서?
-
해결됨이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
결국엔 액터 기본함수들은 어디든 똑같이 일단 실행되는건가요?
어떤 액터의 현재 로컬 역할이 authority이든, Simulated 클라이언트든, Autonomous 클라이언트든 똑같이 beginPlay()와 Tick() 같은 건 일단 실행이 되는 건가요?? simulated 클라 역할인 액터는 개념적으론 로직이 수행되선 안되는데그럼에도 beginplay(), Tick() 같은건 일단 실행이 되기때문에 if문으로 구분을 해야하는거죠?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
어빌리티의 쿨다운 GameEffect에 대하여
안녕하세요. 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가 되면서 개선된 부분일까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
언리얼 프로젝트 용량과 Git의 관하여
안녕하세요 강의 잘 듣고 있습니다.Unreal 프로젝트를 Git에 업로드하면서,Unreal Asset의 용량이 커서 무료 Git 용량을 초과하는 경험을 몇 번 했습니다.이런 문제의 해결법으로 gitignore에서 에셋 폴더를 제외해서 불필요한 에셋이 업로드되는 걸 막고,ArenaBattle 폴더에는 사용할 에셋 파일만 복사해놓고 git에 업로드하는 방식을 사용해도 좋을지 궁금합니다.그리고 실제 협업을 할 때 에셋을 git에 업로드할 때 용량관리를 어떻게 하는지 궁금합니다!
-
미해결[Rookiss University] Haker님의 UE5 소스코드 분석 시리즈 #1 (게임 프레임워크)
다음 엔진강의 계획된게 있을까요
혹시 다음 언리얼엔진 강의 계획되신게 있으실까요? ㅠ 너무 좋은 강의라 생각해 문의 드려요
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
C++ 클래스를 생성할 때, Class Type 지정에 대하여
강의 잘 보고 있습니다.C++ 클래스를 생성할 때 Class Type을 public이나 private를 눌러서 따로 지정하지 않는 이유가 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
bool
25:40초 쯤 HasNextComboCommand 변수를 bool로 선언하였는데요.헤더파일의 bool은 비트필드를 사용하는것 아니었나요? bool자료형을 사용하신 이유가 궁금합니다
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
CoreMinimal.h 가 찾아지지 않습니다.
15강 23분까지 따라했는데모듈 헤더에서 CoreMinimal.h가 찾아지지 않아cpp 파일에서도 오류가 발생합니다.build.cs 파일에 CommonUtility 를 넣어도 보고 빼고도 실행시켜 봤는데 모두 오류가 발생합니다.
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
블루프린트 클래스 없음
안녕하세요.10:33초 쯤에 BP_AB_CharacterPlayer 로 작업하시는데제 프로젝트에는 그런 클래스가 보이지 않네요 제가 뭘 놓치면서 진행하고있었나요?뿐만아니라 BP_ABGameMode, ABPlayer_Controller이런것들이 안보입니다.파일 탐색기에서 봤을땐 Controller, GameMode,Congratulation이런 파일들이 있는데 에디터에선 저렇게 3개 밖에 보이지않네요... 물론 BP_AB_CharacterPlayer는 파일에도 없습니ㅏㄷ.
-
해결됨[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
Interaction #2 에셋 가져오기 질문 입니다.
첨부된 예습자료는 실행이 되지 않아 Migrate을 진행할 수 없습니다.강의 초반에 Interact와 Interactables를 복사하기로 가져오면 메시는 가져오지 못하는 것 같습니다.강의와 같이 B_Chest_002를 레벨에 배치하면 메시가 없는 상태 입니다. 강의에서 MIgrate 할 때 보면 다른 여러 파일들도 필요해 보입니다. 그렇다고 모두 복사하면 실행이 안되는 문제가 있습니다.
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
3분 39초 경에 질문이 있습니다
서버와 클라이언트 두 곳 모두 액터가 존재하지 않을 경우라고 했는데, 이 경우는 단순히 액터가 스폰하지 않았기 때문에 None 이라는 건가요?
-
미해결[켠김에 출시까지] UE5 다크앤다커 스타일의 익스트랙션 RPG (D1)
빌드 오류
안녕하세요 막 강의를 시작해보려고하는데 첫 챕터 부터 막히네요 ㅜ 구글링도 해보고 안되서 문의 드립니다첫 빌드때 d1.uproject generate 후빌드를 해보면 이런 오류가 나는데 혹시 어떤 부분이 문제일까요,,?"D:\UE_5.4\Engine\Build\BatchFiles\Build.bat LyraEditor Win64 DebugGame -Project="D:\YJ\YJ\GP\D1\D1.uproject" -WaitMutex -FromMsBuild -architecture=x64" 명령이 종료되었습니다(코드: 6).
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
Actor::IsNetRelevantFor() 에 대해 질문이 있습니다
첫 조건문의 조건 중 하나가 ViewTarget == GetInstigator() 일 때 인데나에게 데미지를 가한 가해자의 정보를 넘겨줘야 한다. 라는 말이 조금 헷갈려서 질문 드립니다.ViewTarget 에게 데미지를 받은 액터가 연관성이 생기는 것이 맞나요?ViewTarget 에게 데미지를 가한 액터가 연관성이 생기는 것이 맞나요?해당 코드만 읽었을 땐 ViewTarget 이 가해자가 되어야 한다고 이해했는데 이해한게 맞는지 재차 확인을 하고싶어 질문 남깁니다
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
파트3- 3강, 햇갈리는 부분이 있습니다
재복습 중인데 이해가 안가는 부분이 있습니다.보통 모든게 마무리 되고서 최종적으로 호출되는 함수가 BeginPlay라고 생각했는데요.다음 사진에서 서버 PC 기준으로 클라 접속 시에는 BeginPlay가 먼저 호출되고서 PostLogin에서 빙의를 시작하는 흐름이 이해가 안갑니다. 제가 놓치거나 잘못 이해한 부분이 있을까요?
-
해결됨이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
GAS 구조로 멀티 플레이 게임을 제작할려고 하는데요
현재 파트1부터 4까지 강의를 다 마친 상태입니다.GAS 구조의 멀티 RPG게임을 제작할려는데파트3 네트워크 내용들 만으로도 GAS 멀티 게임 구현이 가능할까요?아니면 더 배워야 할 것들이 있을까요?
-
미해결이득우의 언리얼 프로그래밍 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; }그리고 갑자기 루트 노드에서 멈춥니다.. 하위 노드들을 실행을 해야 하는데 루트노드에만 노란색으로 고정되어있는데 뭐를 확인해야 하나요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
5.4버전 기준으로 Remove Gameplay Effect With Tags가 안 보입니다.
tag는 안되지만 GE를 중지시키는 건 옵션이 있네요Tag로 중지하는 건 5.4에는 없는걸까요?