inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

프로젝트 만들기 강의 중 Binaries를 삭제 후 다시 생성이 되지 않는 문제.

미해결

[입문자를 위한 UE5] Part4. 언리얼 엔진 C++

항상 강의 잘 보고있습니다. 감사합니다. 프로젝트 만들기 강의 영상 중 13:26초 부분에 문제가 있어 질문 남깁니다. 영상과 같이 저도 더블 클릭을 해서 The following modules are missing or built with a different engine version: R1 Would you like to rebuild them now? 해당 메시지를 yes를 눌렀지만 Binaries폴더가 생성되는 것이 아닌 아래와 같은 Error 메세지가 뜨면서 생성되지 않습니다. 해당 문제를 어떻게 해결하면 되는지 답변 주시면 감사하겠습니다. R1 could not be compiled. Try rebuilding from source manually.

  • unreal-engine
  • 언리얼-c++
박지훈 댓글 2 좋아요 0 조회수 784

캐릭터 클래스 관련 질문입니다

해결됨

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

part2에서 만든 모든 캐릭터들은 CharacterBase 클래스를 상속받아서 동작하고 있는데, 그럼 만약에 적 캐릭터들을 좀 더 플레이어와는 다르게, 적군 만의 어떤 공통적인 기능들이나 스탯 설정같은걸 추가하려면 플레이어용 PlayerCharacterBase와 EnemyCharacterBase 뭐 이런식으로 따로 베이스 클래스를 만들어서 작성하는게 나을까요, 아니면 그냥 기본 바탕은 CharacterBase로 통일시키되 override를 하거나 해서 만드는 것이 나을까요? 막상 베이스 클래스를 2개 만들어서 하려다보니 많이 비효율적인 방식인지 궁금해져서 질문드립니다

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

클라이언트 강제 종료 시 플레이어 삭제 기능

미해결

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동

안녕하세요 루키스님 part4 강의로 만들어진 서버와 part5에서 만들어진 클라이언트를 조금 수정해가며 추가 기능을 만들던 중 문제가 생겼는데 해결이 잘 안되어서 질문드립니다. 우선 추가하려는 기능은 강의에서 배운 Q를 눌러서 종료하는 기능 외에 플레이어(3명)들이 접속해있는 상태에서 언리얼 편집창을 닫아버렸을 때 3명 모두 접속이 끊어지며 플레이어들을 서버에서 제거해주는 기능을 추가하려고 합니다.. 이 때, 발생하는 문제는 player가 3명이고 objectId가 각각 1번부터 3번까지 있다고 했을 때, 어쩔 땐 player들 모두 제거되고, 어쩔 땐 player(2번), player(1번), player(1번)처럼 objectId가 1번인 플레이어를 제거하는 처리가 중복 호출되며 2번과 1번에 대한 삭제만 이루어지고, 3번에 대한 삭제가 이루어지지 않는 문제가 발생합니다. 아래는 작성한 코드입니다. 먼저 GameSession::OnDisconnected()의 맨 마지막 줄에 GRoom->DoAsync()로 Room::HandleLeavePlayer를 호출해주는 코드를 추가했고, 이 때 들어오는 player들의 objectId들을 확인해봤을 때 1, 2, 3 모두 중복 없이 들어오는 것을 확인했습니다. void GameSession::OnDisconnected() { if (player.load() == nullptr) { return; } cout << "objectId: " << player.load().get()->objectInfo->object_id() << endl; RoomRef room = player.load()->room.load().lock(); if (room == nullptr) { return; } GRoom->DoAsync(&Room::HandleLeavePlayer, player.load()); } 다음은 Room::LeaveRoom()에서 위에서 말한 상황일 때 파라미터로 들어오는 object가 중복으로 들어오는 걸 확인했습니다. if(!success) { return success; }는 이미 삭제된 object를 중복으로 RemoveObject(objectId)를 할 경우 false를 돌려주는데 밑에서 패킷 보내는 작업을 넘겨버리기 위해 추가했습니다. 그리고 코드 거의 마지막 부분에 GSessionManager.Remove(session)로 세션을 제거하는 코드를 추가했습니다. bool Room::LeaveRoom(ObjectRef object) { if (object == nullptr) { return false; } const uint64 objectId = object->objectInfo->object_id(); bool success = RemoveObject(objectId); if (!success) { return success; } // 퇴장할 플레이어에게 퇴장 패킷 전송 if (object->IsPlayer()) { PlayerRef player = static_pointer_cast<Player>(object); Protocol::S_LEAVE_GAME leavePkt; SendBufferRef sendBuffer = ClientPacketHandler::MakeSendBuffer(leavePkt); if (GameSessionRef session = player->session.lock()) { session->Send(sendBuffer); } } // 남아있는 플레이어들에게 퇴장 플레이어의 디스폰 패킷 전송 { Protocol::S_DESPAWN despawnPkt; despawnPkt.add_object_ids(objectId); SendBufferRef sendBuffer = ClientPacketHandler::MakeSendBuffer(despawnPkt); Broadcast(sendBuffer, objectId); // 퇴장 플레이어는 이미 room에서 빠져나간 상태라 Broadcast 불가 if (object->IsPlayer()) { PlayerRef player = static_pointer_cast<Player>(object); if (GameSessionRef session = player->session.lock()) { session->Send(sendBuffer); GSessionManager.Remove(session); } } } return success; } GameSession 소멸자 virtual ~GameSession() override { cout << "~GameSession" << endl; player.store(shared_ptr<Player>()); } Player 소멸자 Player::~Player() { cout << "~Player" << endl; session.reset(); } 다음은 첫번째 실행 화면입니다. (실행 화면에 출력되는 줄이 뒤죽박죽이라 서로 다른 색으로 구별 해봤습니다..ㅠ) 연두색으로 묶은 범위는 언리얼 에디터를 1번 실행했다가 닫았을 때의 단위로 묶었습니다. 빨간색으로 밑줄 그어진 objectId: 숫자로 출력되는 부분은 GameSession::OnDisconnected()에서 출력하고 있고, 노란색으로 밑줄 그어진 Remove Objedct숫자로 출력되는 부분은 Room::RemoveObject()에서 objectId를 출력하고 있습니다. 첫번째 실행 화면에서는 처음 실행하고 바로 해당 문제가 발생했습니다. objectId: 3, objectId: 2, objectId: 1 순으로 중복 없이 잘 들어왔는데 Remove Object3, Remove Object1, Remove Object1 처럼 출력되었고, 2번 플레이어에 대한 제거가 되지 않았습니다. 때문에 두번째, 세번째 실행에서는 접속한 3명의 플레이어가 모두 잘 제거됨에도 처음에 제거되지 않은 플레이어 하나가 남아서 언리얼 에디터 실행 화면에 보이는 플레이어가 총 4명이었습니다. 다음은 두번째 출력 화면입니다. 두번째 실행 화면에서는 5번째가 되어서야 해당 문제가 발생했습니다. 그 전까지는 문제 없이 3명의 플레이어 모두 잘 제거되었습니다. 마찬가지로 objectId: 13, objectId: 14, objectId: 15로 들어왔고 Remove Object13, Remove Object15, Remove Object15로 실행되면서 13, 15번의 플레이어만 제거되고 14번 플레이어는 제거되지 않았습니다. 실제로 문제가 발생할 경우의 호출 스택을 따라가 봤을 때 OnDisconnected()에서 GRoom->DoAsync(&Room::HandleLeavePlayer, player.load())로 삭제 작업 예약 거는 것 까지는 플레이어가 중복 없이 잘 들어가는데 예약했던 Room::HandleLeavePlayer()가 호출되고 파라미터로 들어오는 플레이어의 objectId를 확인해보면 이미 삭제된 플레이어가 한번 더 들어오는 경우가 생기네요. 혹시 어떤 부분 때문일까요??

  • c++
  • unreal-engine
  • windows-server
100end 댓글 1 좋아요 0 조회수 282

TObjectPtr과 강참조에 관한 질문입니다

해결됨

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

8강 아이템 시스템 마지막에 강참조된 아이템들을 약참조로 바꾸는 부분을 공부하다가 질문드립니다 인터넷에서 강참조와 약참조에 대해 좀 더 자세히 공부하다보니 강참조 = TStrongObjectPtr / 약참조 = TSoftObjectPtr 를 사용하며, TObjectPtr과 강참조가 관련된 정보는 없길래 TObjectPtr에 대해 궁금증이 생겼습니다 TObjectPtr에 대해 검색해본 바로는 TObjectPtr은 기존에 사용하던 원시 포인터를 대체하는 포인터를 이용한 단순한 참조에 불과하며, 그러므로 댕글링 포인터 문제 또한 발생할 수 있다. 보통 강참조라고 하는 것은, 객체의 소유권을 가지고 Ref Count를 올리는 역할을 수행해야 하는데, TObjectPtr은 단순히 객체를 참조하는 역할만 하므로 강참조라고 볼 수는 없다 라고 나와 있던데 강의에서 TObjectPtr이 강참조라고 하셨던 것은 어떤 의미인지 궁금합니다 그리고 만약에 TObjectPtr이 강참조가 아니라면, 이는 어떠한 정도의 참조인건지요...? 중참조? 이런 단어는 없는거같던데.. TObjectPtr은 TStrongObjectPtr(강참조) 와 TSoftObjectPtr(약참조) 사이의 어딘가에 있는 애매한 정도의 참조인것인지요?? 추가질문) 약참조를 공부하는데 약참조에도 또 TSoftObjectPtr과 TWeakObjectPtr의 2가지가 존재하더라구요... TSoftObjectPtr 리소스의 주소는 갖고 있되, 로딩은 시켜놓지 않는 경우에 사용 아직 현재 월드에 인스턴스화되지 않은 객체를 참조할 때 사용 TSoftObjectPtr은 FSoftObjectPath를 감싸는 TWeakObjectPtr이다 TWeakObjectPtr Ref Count를 증가시키지 않아야 하는 경우 / 소유권이 없지만 참조는 필요한 경우에 사용 참조하고 있는 오브젝트가 GC에 넘어간 경우, nullptr로 바뀌며 validation 체크를 가능하게 함 이렇게 알고있는데 제가 학습한 내용이 맞는건지요??

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

22:00 부분에서 위젯과 NativeConstruct 관련 질문이 있습니다

해결됨

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

먼저, 강의 흐름대로 위젯 블루프린트를 하나 만든 후 'PbHpBar' f라는 ProgressBar를 추가하였으며 그 블루프린트의 부모를 ABHpBarWidget으로 설정해 둔 상태입니다. 여기서 궁금한 점은 ABHpBarWidget은 부모클래스이며, 따라서 자식클래스에서 생성한 'PbHpBar' 라는 위젯의 존재를 알지 못할텐데, 어떻게 HpProgressBar 에 'PbHpBar' 라는 위젯의 존재를 찾아서 주소를 반환할 수 있는것인지 궁금합니다. (만약 부모자식 관계가 바뀌어있다면, 자식에서 부모의 PbHpBar 라는 녀석의 존재를 찾아 포인트를 반환하는게 논리적으로 뭔가 납득이 가는데, 강의의 내용은 마치 상속관계가 반대의 상황인데도 불구하고 가능한것 처럼 보여집니다.) NativeConstruct() 라는 생성자는 제가 모르는 뭔가 특별한 기능을 가진 생성자이며, 따라서 부모클래스임에도 불구하고 자식클래스인 블루프린트 클래스에 있는 위젯의 정보들까지 미리 전부 탐색할 수 있기 때문에 자식에 있는 PbHpBar까지도 찾아서 포인터를 반환할 수 있는 것인가요?

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

타겟을 찾고 Move to로 이동할 때 방향전환

미해결

[입문자를 위한 UE5] Part4. 언리얼 엔진 C++

player를 잘 쫓아 오긴하는데 방향이 뚝 뚝 뚝 끊기면서 전환되며 따라옵니다.. 제가 이해한 바로는 FindTargetService에서 Tick 마다 Target을 갱신해주어 매끄럽게 방향전환하며 따라와야 한다고 생각하는데 기본 제공해주는 태스크인 Move To의 문제일까요?? 강의 영상에서도 AI가 쫓아올 때 방향이 뚝 뚝 끊기는 것 같아서 저 만의 문제는 아닌듯 한데 개인적으로 궁금해서 여쭤봅니다! 태스크를 새로 만들어야하는지..아니면 다른 방법이 있는지 궁금합니다 !

  • unreal-engine
  • 언리얼-c++
박민수 댓글 2 좋아요 0 조회수 286

LoL 스킬 사용할 때 바닥에 공격범위가 나오는 기능을 추가로 구현하고 싶습니다.

미해결

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

5.1 버전의 강의를 다 듣고, 5.4 깃허브 업데이트 되어서 다시 복습하다가 제목과 같이 스킬 사용할 때 범위 시각화(배포용) 기능을 구현해보고 싶더라구요. 일단, 캐스캐이드가 Legacy 기능이다보니 나이아가라로 다른 스킬 구현은 완료했고, 스킬의 범위를 바닥에 표현하고 싶은데 GAS 프레임워크에서 스킬 범위를 표기할 때 좋은 class가 따로 구현되어 있을까요? 현재 나이아가라 데칼을 써서 해볼까 실험은 하고있는데, 정석적인 방법(?)이 있다면 먼저 그런 방법으로 해보고 싶어서 질문드려요.

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

4장 UABAT_JumpAndWaitForLanding* CreateTask 에 대한 질문

미해결

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

선생님 안녕하세요. C++ 코드로는 UABGA_Jump::ActivateAbility(); UABAT_JumpAndWaitForLanding::CreateTask(); JumpAndWaitForLanding->ReadyForActivation(); UABAT_JumpAndWaitForLanding::Activate(); 와 같은 일련의 코드 흐름이 이해가 가는데, UFUNCTION(BlueprintCallable, Category = "Ability|Tasks", meta = (DisplayName = "JumpAndWaitForLanding", HidePin = "OwningAbility", DefaultToSelf = "OwningAbility", BlueprintInternalUseOnly = "TRUE")) static UABAT_JumpAndWaitForLanding* CreateTask(UGameplayAbility* OwningAbility); UABAT_JumpAndWaitForLanding* CreateTask()를 Blueprintcallable로 변경하시면서 블루프린트에서 CreateTask가 호출되도록 변경하셨는데. JumpAndWaitForLanding->ReadyForActivation(); 함수를 주석 처리하셨는데도 불구하고, UABAT_JumpAndWaitForLanding::Activate() 함수가 호출되는 이유를 잘 모르겠습니다. void UGameplayAbility::ActivateAbility() { if (bHasBlueprintActivate) K2_ActivateAbility(); 개인적인 생각으로는 블루프린트 노드를 사용하게 되면 K2_ActivateAbility()가 호출되는걸로 봐서는 이 함수 내부에서 추가로 AbilityTask의 Activate함수를 호출해주는것 같은데, 함수 내부를 볼 수가 없습니다. 혹시 어떤 원리로 UABAT_JumpAndWaitForLanding::Activate()가 호출되는지 알수있을까요? 감사합니다.

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

FieldIterator 질문입니다

해결됨

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

CharacterStatWidget 클래스에서 TFieldIterator 사용에 관한 질문입니다 TFieldIterator 말고도 다른 Iterator가 존재하고, 여기에서는 이 상황에 맞는 Iterator를 사용해야 하기에 FieldIterator를 사용한 것인지 궁금해서 검색해봤더니, 언리얼 엔진에서의 반복자는 항상 ObjectIterator과 ActorIterator 이 2가지만 언급하더라구요. ObjectIterator는 UObject를 상속받은 클래스들에 대해 순회하는 반복자 ActorIterator는 Actor(레벨에 배치된 UObject)를 상속받은 클래스들에 대해 순회하는 반복자 검색 결과에서는 항상 이렇게 설명하던데 그럼 이와 마찬가지로 FieldIterator는 Ustruct에 등록된 프로퍼티/함수들에 대해 순회하는 반복자로 이해하면 되는 것일까요? 그리고 FieldIterator도 위의 오브젝터와 액터 반복자와 마찬가지로 FFieldIterator는 타입을 특정하지 않고 모든 구조체의 프로퍼티/함수들을 순회하는거고 TFieldIterator는 타입을 지정하여 구조체 내의 프로퍼티/함수들을 순회하는 거라고 보면 되는걸까요? 아니면 FieldIterator는 FFieldIterator는 없고 오직 TFieldIterator만 있는 건가요? 그리고 위 스크린샷에서 TFieldIterator<FNumericProperty> PropIt(FABCharacterStat::StaticStruct()) 이 부분을 TFieldIterator로 FNumericProperty타입을 지정하여, ABCharacterStat 구조체에서 FNumericProperty타입을 지정하여 순회한다로 이해하면 되나요? 그런데 ABCharacterStat 구조체에는 FNumericProperty 타입의 변수가 없는데 왜 타입을 FNumericProperty로 지정한 것인지요...? 그리고 FNumericProperty가 있으면 그럼 TNumericProperty라는 것도 있는건가요? 아니면 이건 반복자가 아니기 때문에 TNumericProperty라는건 존재하지 않는건가요? 복습하면 할수록 질문이 질문에 꼬리를 잇게되네요...

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

10강에서 reinterpret_cast 질문있습니다

해결됨

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

인터넷에서 찾아보니 casting 중에서도 가장 강한 cast이며, 주로 패킷 통신할 때 자료를 포인터로 받아오는 경우에 사용하며 그 외엔 잘 사용하지 않는 형변환이다. 포인터끼리, 그리고 포인터와 수치형 간의 변환 이라고 하는데 혹시 ABCharacterStat.h에서 operator+ 구현할 때, reinterpret_cast를 사용하는게 더 좋은 이유가 있을까요? 캐스팅 종류가 많아서 너무 헷갈리네요... 만약에 굳이 reinterpret_cast를 쓰지 않아도 된다면 일반 casting으로도 대체가 가능한지요? 아 그리고 추가로, part2를 다 들으면서 계속 궁금했었던건데 왠만한 모든 변수 선언 시에는 대부분 const를 붙여서 선언하시던데 const가 값을 바꾸지 않는 상수화이지 않나요?? 제가 유니티만 하다가 언리얼로 최근에 바꿨는데 그래서 그런가 제일 적응안되는부분이 모든 변수를 포인터로 쓰는 것과 항상 변수에 const를 붙이는 부분이더라구요. 변수를 포인터로 선언하는 이유는 인터넷 검색으로 이해가 되었는데, const를 거의 항상 사용하는 이유는 아직 잘 모르겠습니다... 변수를 상수화 시키는 것이 어떤 의미가 있는걸까요?? 변수의 값은 보통 게임이 진행되면서 계속 바뀌어야 하지 않나요??

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

FGCObject 대신에 스마트포인터가 사용이 가능할까요?

미해결

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

안녕하세요 교수님 질문이 있습니다. 일반 클래스에서 언리얼 오브젝트를 멤버 변수로 가지고 있을 경우 언리얼 오브젝트를 가비지 컬렉터가 관리할 수 있도록 하기 위해서 FGCObject를 상속받아 함수를 구현하는 것으로 알고 있습니다. 혹시, 언리얼에서 제공하는 스마트 포인터 TSharedPtr나TWeakObjectPtr을 사용하여 언리얼 오브젝트를 관리할 경우에는 FGCObject를 상속받지 않고도 문제가 없을까요?

  • unreal-engine
  • 언리얼-c++
최찬규 댓글 2 좋아요 0 조회수 212

lyra 프로젝트 빌드 후 실행시 문제발생

미해결

[Rookiss University] UE5 Lyra 클론 코딩 (Haker&Liu)

lyra 프로젝트를 다운 받고 빌드 후에 실행했는데, 아래와 같은 로그가 뜨면서 실행되지 않았습니다. 5.4.4가 깔려있는 상태에서 이전에 다른 프로젝트가 5.1이어서 이 문제일 수도 있겠다 싶어서 5.1을 지우고 다시 Generate Project를 했음에도 동일한 에러가 발생합니다. 실행환경은 12700h, 32gb Ram, 3050 laptop(4gb)입니다. 다른 실행환경에서 실행이 정상적으로 되면 이 글을 업데이트하겠습니다. [2024.09.15-05.56.30:429][ 0]LogShaderCompilers: Warning: 1 Shader compiler errors compiling global shaders for platform PCD3D_SM6: C:/Users/mrs04/Documents/UE_5.4/Engine/Shaders/Private/Lumen/Radiosity/LumenRadiosity.usf(): Shader FLumenRadiosityDistanceFieldTracingCS, Permutation 7, VF None: Internal Error! Global/FLumenRadiosityDistanceFieldTracingCS/7:/Engine/Private/Lumen/Radiosity/LumenRadiosity.usf|LumenRadiosityDistanceFieldTracingCS Type 'FLumenRadiosityDistanceFieldTracingCS' '/Engine/Private/Lumen/Radiosity/LumenRadiosity.usf' Entry 'LumenRadiosityDistanceFieldTracingCS' Permutation 7 [2024.09.15-05.56.30:551][ 0]LogShaders: Error: C:/Users/mrs04/Documents/UE_5.4/Engine/Shaders/Private/Lumen/Radiosity/LumenRadiosity.usf(): Shader FLumenRadiosityDistanceFieldTracingCS, Permutation 7, VF None: Internal Error! Global/FLumenRadiosityDistanceFieldTracingCS/7:/Engine/Private/Lumen/Radiosity/LumenRadiosity.usf|LumenRadiosityDistanceFieldTracingCS Type 'FLumenRadiosityDistanceFieldTracingCS' '/Engine/Private/Lumen/Radiosity/LumenRadiosity.usf' Entry 'LumenRadiosityDistanceFieldTracingCS' Permutation 7 Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\ShaderCompiler\ShaderCompiler.cpp] [Line: 10560] 플랫폼 PCD3D_SM6에 대한 글로벌 셰이더를 컴파일하는 동안 1개의 셰이더 컴파일러가 오류가 발생했습니다. Enable 'r.ShaderDevelopmentMode' in ConsoleVariables.ini for retries. A breakpoint instruction (__debugbreak() statement or a similar call) was executed in UnrealEditor.exe. A breakpoint instruction (__debugbreak() statement or a similar call) was executed in UnrealEditor.exe. [2024.09.15-05.56.40:549][ 0]LogWindows: Error: appError called: Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\ShaderCompiler\ShaderCompiler.cpp] [Line: 10560] 플랫폼 PCD3D_SM6에 대한 글로벌 셰이더를 컴파일하는 동안 1개의 셰이더 컴파일러가 오류가 발생했습니다. Enable 'r.ShaderDevelopmentMode' in ConsoleVariables.ini for retries. [2024.09.15-05.56.40:549][ 0]LogWindows: Windows GetLastError: 작업을 완료했습니다. (0) [2024.09.15-05.56.40:550][ 0]LogWindows: Error: === Critical error: === [2024.09.15-05.56.40:551][ 0]LogWindows: Error: [2024.09.15-05.56.40:551][ 0]LogWindows: Error: Fatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\ShaderCompiler\ShaderCompiler.cpp] [Line: 10560] [2024.09.15-05.56.40:551][ 0]LogWindows: Error: 플랫폼 PCD3D_SM6에 대한 글로벌 셰이더를 컴파일하는 동안 1개의 셰이더 컴파일러가 오류가 발생했습니다. Enable 'r.ShaderDevelopmentMode' in ConsoleVariables.ini for retries. [2024.09.15-05.56.40:552][ 0]LogWindows: Error: [2024.09.15-05.56.40:552][ 0]LogWindows: Error: [2024.09.15-05.56.40:552][ 0]LogWindows: Error:

  • c++
  • unreal-engine
Elyk 댓글 2 좋아요 0 조회수 523

엔진에서 클래스 추가할 때 자동으로 소스와 헤더파일을 utf-8로 생성해주는 옵션이 있을까요?

미해결

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

안녕하세요! 수업 잘 듣고 있습니다. 38분경에 CP949로 인코딩된 CPP파일을 UTF8로 인코딩을 바꾸는 방법을 알려주셨는데요. 이후에도 클래스 추가할 경우 CPP와 H파일마다 UTF8로 인코딩을 바꿔주어야 할까요? 엔진에서 자동으로 UTF8로 인코딩된 CPP / H 파일을 생성해주는 옵션은 없을까요?

  • unreal-engine
  • 언리얼-c++
김승욱 댓글 2 좋아요 0 조회수 243

[Part4] 6강 MaxHealth Category 오타여부 확인이 필요합니다.

해결됨

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

깃허브 브랜치 6의 ABCharacterAttributeSet.h의 MaxHealth부분 카테고리가 Attack으로 되어있습니다. 카테고리 Health가 맞나요?

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

완성파일 빌드 에러

해결됨

[Rookiss University] UE5 Lyra 클론 코딩 (Haker&Liu)

강의 소개 영상, OT에 산출물로 어떤어떤 시스템이 완성되는지 플레이 화면으로 볼 수 있으면 살까말까 고민이 좀 덜 되었을 듯 하네요. 아무튼 그래서 결제하고 강의 들어가기 전에 완성파일 받고 둘러보려고 했는데, BlueprintAssist 플러그인 없다고 빌드가 안 되는군요. 무시하고 강제로 빌드하기 했더니 소스에서 빌드하라고 하네요. 그리고 다시 소스에서 빌드했더니 1>Unable to find plugin 'BlueprintAssist' (referenced via HakGame.uproject). Install it and try again, or remove it from the required plugin list. 이러네요. 해결방법을 알려줄 수 있나요? BlueprintAssist을 사야 하나요? 노드 선 정리 깔끔하게 되는 거 같긴 한데...

  • unreal-engine
  • 에러
Solution C 댓글 3 좋아요 0 조회수 375

TaskGraph를 C++에서 사용하려고 하면?

미해결

[Rookiss University] Haker님의 UE5 소스코드 분석 시리즈 #1 (게임 프레임워크)

안녕하세요. TickFunction들 처럼 함수 포인터(std::function)들 간에 종속성을 지정할 수 있게 간단한 시뮬레이터를 C++로 만들어 보고 싶은데, boost나 표준 라이브러리를 사용해서 쉽게 만들 수 있는 방법이 있을까요?

  • unreal-engine
  • unreal-engine5
댓글 1 좋아요 0 조회수 415

애니메이션 문제

미해결

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

다른 애니메이션은 다 문제 없는데 WarriorRunFwd WarriorWalkFwd WarriorWalkInPlace 이 세가지만 이렇게 제자리에서 T포즈로 움직이지 않습니다. 선생님께서 제공하신 파일도 완성예제파일로도 대체해봤는데 전혀 달라진게 없는데 왜 이럴까요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
HB L 댓글 1 좋아요 0 조회수 296

GC와 UPROPERTY 에대한 질문입니다.

미해결

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

안녕하세요 교수님. 교수님의 12강 강의를 수강 중에 UE의 UObject 메모리 관리에 대해 궁금한 점이 있어 질문 드리게 됐습니다. "UPROPERY 지정을 통해 GC에 의해서 관리되는 UObject가 회수되지 않도록 한다." 라고 저는 이해했는데 맞게 이해한 것일까요? 만약 그렇다면 해당 메모리는 항상 Heap에 잔류한다고 봐도 될까요? 더 이상 필요 없어진 UObject라서 메모리에서 삭제하고 싶다면 어떻게 진행해야 하는 것인지 궁금합니다.

  • unreal-engine
  • 언리얼-c++
OliveGr 댓글 2 좋아요 0 조회수 386

UObject 타입과 가비지 콜렉션 질문

미해결

이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해

UObject 를 상속한 멤버이기 때문에 가비지 콜렉터로 관리가 되는 건지, 아니면 TObjectPtr<> 로 인해 가비지 콜렉터로 관리되는 건지 궁금합니다. 멤버가 TObjectPtr<UObject>이 아닌 UObject* 타입으로 되있을 때도 가비지 콜렉터가 작동되서 UPROPERTY() 를 붙이지 않는 한 자동으로 지워지는 건가요??

  • unreal-engine
  • 언리얼-c++
themoon007 댓글 2 좋아요 0 조회수 290

안녕하세요 리소스는 재공은 없을까요!?

미해결

[LV1] 왕초보 이펙트 (VFX) 기초부터 튼튼하게! (UE5, Blender)

안녕하세요 프로그래머들은 사실 포토샵이나 블랜드 쓸일이 드물어서 재공되는 리소스가 있으면 LV2까지 듣고싶은데 혹시 리소스 재공이 가능할까요?

  • unreal-engine
  • blender
  • vfx
  • niagara
송정우 댓글 1 좋아요 0 조회수 189

인기 태그

인프런 TOP Writers

주간 인기글