inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

블루프린트를 처음부터 만들고 싶은데 어떻게 만들어야 하나요?

미해결

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

안녕하세요. 이득우 교수님 교수님 사진에 있는 블루프린트가 없습니다. 제 입맛대로 다른걸 추가한 상태라 붙여넣기 방법이 힘들듯합니다. 붙여넣기 방법 말고는 없나요? 어떻게 만들어야하나요? Variables도 없어서 추가해서 만들고 SetScoreWidget을 했는데 교수님과 다르게 나오는데 이렇게 하는게 옳은건가요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
신동주 댓글 2 좋아요 0 조회수 636

Recv 처리 과정 질문

미해결

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

안녕하세요 루키스님. 지금까지 패킷 수신 송신 과정의 흐름을 코드상에서 어떻게 흘러가나 이해해보려고 정리를 해보았는데, 이해가 잘 안되는 부분이 있어서 질문드립니다. 일단 제가 이해한 Recv과정은 다음과 같이 이해했습니다. RecvThread에서 계속 일하면서 Packet받은거 큐에 넣는것도 알겠고 큐에 있는걸 처리하기 위해 Session이 Handler한테 요청하는 것도 이해했습니다. 이해가 안가는건. 그러면 Session의 HandleRecvPacket()을 호출하기 위해서는 GameInstance가 HandleRecvPacket()을 호출해줘야 하는데 그러면 GameInstance가 HandleRecvPacket()는 누가 언제 어디서 호출을 하는것인가요??? 제가 흐름을 잘못 이해하고 있는건가요 ㅠㅠ? 제가 이해한걸 그림으로 표현해보았습니다.

  • c++
  • unreal-engine
  • windows-server
Park SungEun 댓글 1 좋아요 0 조회수 419

5.3 버전에 PICO4 VR기기 적용하기

미해결

[입문자를 위한 UE5] Part5. 언리얼 엔진 VR

제목 그대로 입니다 플러그인 폴더에 5.3용 파일을 받아서 넣어주었구요... 그런데 Streaming Assistant 가 5.3 부터는 적용이 안되는거 같아서 PICO Connect 에서 하였는데 . Unreal 에서 VR Preview 가 활성화가 안되는데 이걸 어찌해야 할까요??? 빠른 답변 부탁드려요... 답변이 늦어지는것도 있고 아에 답변이 없는것도 있던데... 부탁드립니다

  • unreal-engine
  • ue-blueprint
  • VR/AR
미녀와곰탱 댓글 1 좋아요 0 조회수 442

proto 파일에 내용 추가시 인식 오류

미해결

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

안녕하세요 루키스님. 제공해주신 예제 서버 파일 그대로 빌드하고 따라하면서 문제없이 잘 진행되었는데, proto파일에 C_SPAWN과 같이 추가로 작업하면 인식을 못합니다. 내용을 살펴보니 Proto:: 에 C_SPAWN이 없다라고 나오는데 재빌드, 껏다 켜보기, 다시 예제서버 다운받아보기, 루키스님 최신 강의에서 무료 protobuf강의 따라해보기 다해보았지만 '추가'에 대한 인식을 못합니다. 기존에 있던거는 잘 되구요... 다음 사진과 같은 상황입니다. 추가 한 모습 에러 뜨는 부분.. 물론 이 밑으로부터 빨간줄 천지입니다. 원인을 좀 찾아보려고 출력, 입력 라이브러리 다 찾아보았지만 경로 설정은 잘 되어 있습니다. python코드에서 혹시 이것인가 싶은거는 PacketGenerator.py 파일에서 import jinja2를 인식을 못하고 있습니다. 혹시 이것때문일까요? 아니면 의심되는 부분이 또 있을까요? 아 좀 더 실행해보니 proto파일 인식을 못하는것 뿐만 아니라 Protocol.pb.h과 같은 파일을 지워도 재등록을 안해주는 문제가 발생했습니다. 어떤 부분을 추가로 살펴봐야 할까요? ㅠㅠ 이것때문에 진행을 못하고 있네요..

  • c++
  • unreal-engine
  • windows-server
Park SungEun 댓글 1 좋아요 0 조회수 438

ini 파일을 만들고 싶습니다.

미해결

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

안녕하세요. 이득우 교수님 ini 파일을 만들어 볼려는데 Copy Reference 를 해서 +NPCMeshes=/Game/ExternAssets/FemaleMilitaryOfficer/Characters/Meshes/SK _Tubaki.S K_Tubaki 수정을 해서 만들었습니다. 하지만 LoginId:3dc4af0c4070a86513781b8b1c7912c5 EpicAccountId:586b13a4063f42dc921a1047434c2edc Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:C:\Program Files\Epic Games\UE_5.3\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 771] Array index out of bounds: 0 from an array of size 0 오류라는 질문과 같은 크래쉬가 났습니다. 어떻게 해결해야 하나요? 파일명은 ltInfinieAbyss 로 했습니다.

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

처음에는 하나만 생기지만 2번째 맵부터 너무 많이 생깁니다.

미해결

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

처음에는 NPC가 한명만 생기지만 2번째 맵부터는 여러명의 NPC 생기는 버그가 있습니다 CloseAllGates() 함수에 for문 안에 찍었는데 여러번 찍히는 것을 확인했습니다. 이유가 뭔지 잘 모르겠습니다

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
신동주 댓글 1 좋아요 0 조회수 375

캐릭터 피격 버그 관련 질문

미해결

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

안녕하세요, 강사님. 금일 마지막 강의까지 무사히 완강하였는데요, 캐릭터 피격과 관련해서 버그가 있는 것 같아 여쭈어보고자 합니다. 버그 현상은 캐릭터가 사망 후에 부활했을 때, 부활한 캐릭터를 다시 공격하면 정상적으로 피격이 되지 않는 문제입니다. 드로우 디버깅을 보면 공격 자체가 정상적인 피격 판정이 이루어지지 않는 것 같습니다. 언제는 한 번 사망 후 부활했을 때부터 피격이 안되는 경우가 있고, 언제는 두 번째 사망 후 부활했을 때부터 피격이 안되는 경우가 발생합니다. 혹시나 제가 코드를 따라서 입력하는 과정에서 문제가 있나하여 올려주신 수업 자료 파일을 그대로 실행해서 확인해보았는데 여전히 같은 문제가 있었습니다. 어떠한 이유로 이러한 현상이 발생하는 것일까요?? 동영상 첨부가 어려워 제가 게임을 한 번 진행하는 동안 발생했던 모습을 사진과 과정으로 첨부하겠습니다. 1. 서버 플레이어가 클라이언트 플레이어 첫 번 째 킬 2. 이후 서버 플레이어가 부활한 클라이언트 플레이어 공격 시 피격 되지 않음 3. 2번 상황 이후 반대로 클라이언트 플레이어가 서버 플레이어 첫 번째 킬 4. 이후 부활한 서버 플레이어를 클라이언트 플레이어가 두 번째 킬 5. 이후 한 번 더 부활한 서버 플레이어를 클라이언트 플레이어가 공격 시 피격 되지 않음

  • unreal-engine
  • 네트워크
  • 언리얼-c++
영매님 댓글 2 좋아요 0 조회수 400

SweepSingleByChannel 채널 별칭 인식안됨

미해결

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

//#define CCHANEL_MHACTION ECC_GameTraceChannel1; 별칭 인식안됨 언리얼 5.3 ,라이더 GetWorld()->SweepSingleByChannel(OutHitResult, Start, End, FQuat::Identity,ECC_GameTraceChannel1, FCollisionShape::MakeSphere(AttackRadius), Params); 피격콜라이더 범위 구현중 함수가 예제처럼 동작이 안됩니다 예제는 체널값은 ABCollision.h에서 CCHANNEL_ABACTION 별칭을 만들어 사용하지만 제 프로젝트에서 위 함수에 인자값으로 별칭을 사용해서 빌드를 하면 ')' '}' 를 사용하라는 식의 잘못된 함수 사용법의 에러 메세지가 나옵니다 별칭을 사용하지않고 인자값에 채널데이터를 직접넣으면 문제는 해결되지만 저만 그런건지 궁금합니다

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
민Q 댓글 1 좋아요 0 조회수 298

2장 첫번째 강의 관련 질문

미해결

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

클래스 래퍼런스 복사중에 앞에 script코드를 지우는 것이 중요하다고 하셨는데 지우지 않고 동작을 해도 잘 동작이 되는데 지우는 이유가 궁금합니다. 또한 복사를한뒤에 nullptr인지 밑의 형식으로 코드를 작성하셨는데 Succeeded 함수를 사용하는것이 더 일반적인지 질문 드리고 싶습니다.

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

FPrimaryAssetId GetPrimaryAssetId() const override 함수

미해결

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

FPrimaryAssetId GetPrimaryAssetId() const override { return FPrimaryAssetId("CSItemData", GetFName()); } 이 함수는 앞에 virtual 붙이지 않는 이유가 뭔가요??

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

델타 타임 관련해서 질문드립니다.

미해결

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

AddMoveInput은 가려는 의지를 나타내는 것이고, 실제 이동은 CharacterMovement 내부에서 알아서 처리해주기 때문에 Delta를 곱해주지 않아도 되는 것 맞을까요? AddControllerYawInput은 Delta를 곱해서 값을 넣어줘야 하나요 아니면 그냥 예제 프로젝트 처럼 원하는 회전 방향만 넣어줘도 되는건가요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
물개친구수달 댓글 1 좋아요 0 조회수 220

const에 대한 질문

미해결

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

안녕하세요. Part1 8강을 듣다가 의문이 생겨서 질문드립니다! FORCEINLINE const FString& GetName() const { return Name; }; 강의에서 위의 경우 함수 뒤에 const를 사용시 return 되는 Name에 빨간 줄(오류)이 들어와 반환값에도 const를 붙여준 경우인데요. 이러한 이유는 반환 값에 const를 안 붙이게 되면 참조로 반환되기 때문에 값이 변경될 수 있고 이는 함수 뒤에 붙은 const의 의미가 없어지는 것이라고 하셨습니다. 이 부분까지는 이해가 잘되었습니다. FORCEINLINE class UCard* GetCard() const { return Card; } 그런데 위의 경우에도 포인터로 반환이 되기 때문에 마찬가지로 값이 변경되는 경우가 발생하지 않나요? 그런데 이 부분에서는 오류로 인식을 안 하는지 궁금합니다. const가 제대로 역할을 하고 있지 않다고 생각이 드는데 교수님의 의견을 여쭤보고 싶습니다. 감사합니다.

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

해당 예제의 Multicast RPC에 대한 질문

해결됨

이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해

안녕하세요, 강사님 이번 강좌의 Multicast RPC 코드 부분에서 이해되지 않는 것이 있어 여쭈어보고자 합니다. 설명해주신 대로 구현한 결과, 클라이언트 측 화면에서 클라이언트 플레이어가 공격 시 클라이언트 플레이어의 공격 모션이 수행되고, 동시에 서버 측 화면에서도 클라이언트 플레이어의 공격 모션이 수행되고 있습니다. 하지만 코드를 하나하나 따라가보았을 때, 이런 결과가 나오지 않아야 할텐데 라는 생각이 들었습니다. void AABCharacterPlayer::MulticastRPCAttack_Implementation() { AB_LOG(LogABNetwork, Log, TEXT("%s"), TEXT("Begin")); if (HasAuthority()) { bCanAttack = false; OnRep_CanAttack(); FTimerHandle Handle; GetWorld()->GetTimerManager().SetTimer(Handle, FTimerDelegate::CreateLambda([&] { bCanAttack = true; OnRep_CanAttack(); } ), AttackTime, false, -1.0f); } UAnimInstance* AnimInstance = GetMesh()->GetAnimInstance(); AnimInstance->Montage_Play(ComboActionMontage); } 이해되지 않는 부분은 MulticastRPCAttack_Implementation()의 애니메이션 몽타주를 재생하는 코드 부분입니다. Multicast RPC에 의해서 해당 함수는 서버와 클라이언트 모두에서 실행된다고 이해했습니다. 그렇다면 서버에서는 MulticastRPCAttack_Implementation() 함수의 if문과 애니메이션 몽타주를 재생하는 코드가 모두 실행되게 될텐데요, 그러면 서버쪽에서 호출된 MulticastRPCAttack_Implementation() 함수이므로 서버 측 화면에서는 서버 플레이어의 AnimInstance를 얻어 애니메이션 몽타주를 재생해야 하는 것 아닌가? 라고 생각했으나 실제로 실행 결과는 아시다시피 서버 측 화면의 클라이언트 플레이어의 애니메이션이 재생됩니다. 어째서 제가 생각한 대로 애니메이션이 수행되지 않는 것일까요?? 제가 이해되지 않는 이유는 어딘가 잘못 이해하고 있기 때문이라고 생각합니다. 어느 부분을 어떻게 잘못 이해하고 있는 것인지 알고 싶습니다..

  • unreal-engine
  • 네트워크
  • 언리얼-c++
영매님 댓글 2 좋아요 1 조회수 608

c++ 소켓에 장착한 무기 제거

미해결

언리얼 엔진4 입문 (C++ 기반)

안녕하세요 루키스님 루키스님 영상 보면서 열심히 배우고 있습니다. 다름이 아니고 루키스님 강의 중에서 소켓에 액터를 붙이는 과정은 있어도 캐릭터에게 붙은 별도의 무기액터를 제거하는 영상이 없어 이렇게 남깁니다. TArray<AActor*> AttachedActors; GetAttachedActors (AttachedActors); for ( auto * Attached : AttachedActors) { Attached-> Destroy (); } 일단 제가 서핑하면서 찾은 코드인데 두번째의 getattachedactors같은 함수가 오류가 나고 있습니다 혹시 이에 대한 방법 알고 있으실까요?

  • unreal-engine
  • ue-blueprint
zzodong0309 댓글 1 좋아요 0 조회수 302

타일맵, 마우스 이동 클릭

미해결

[입문자를 위한 UE5] Part2. 언리얼 엔진 2D 게임 개발 입문

타일맵은 내비 매시 바운드 볼룸이 적용이 안되는데 마우스 클릭 이동 어떻게 해요?

  • unreal-engine
  • ue-blueprint
파도 댓글 1 좋아요 0 조회수 314

함수 실행 순서 관련 질문입니다.

해결됨

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

위젯 컴포넌트의 초기화 과정이 BeginPlay() InitWidget() NativeConstruct() 순서로 진행된다고 했고 UABCharacterStatComponent의 OnHpChanged 델리게이트의 알람을 받는 함수는 NativeConstruct 과정에서 등록을 합니다. UABCharacterStatComponent에서 BeginPlay()를 통해 SetHp() 함수가 실행 될 때 여기서 OnHpChanged.Broadcast 가 실행이 되는데 BeginPlay가 실행되는 시점에서는 아직 NativeConstruct가 실행되지 않았을텐데 어떻게 아직 할당되지 않은 OnHpChanged 가 실행이 되는 건가요? 위 2,3번의 과정들은 Actor의 BeginPlay 후에 실행되고 컴포넌트들의 BeginPlay는 그 후에 실행이 되는걸까요?

  • unreal-engine
  • ue-blueprint
  • 언리얼-c++
김종현 댓글 2 좋아요 0 조회수 574

파트1 강의에 대한 내용을 전부 알려면 무엇이 필요한가요?

미해결

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

파트1 강의에 대한 내용을 전부 알려면 c++ 의 어떠한 기능을 숙지하고 있어야 하나요? c++ 을 전부 마스터 해야 하나요? 아니면 특정 파트만 배우면 이 내용이 이해가 되나요?

  • unreal-engine
  • 언리얼-c++
GoGgingE 댓글 1 좋아요 0 조회수 311

언리얼엔진 물리 매터리얼 리빌드 문제

미해결

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

언리얼 엔진 5.3.2 버전 프로젝트 빈 것으로 생성시 랜드스케이프 물리 매터리얼을 리빌드해야한다고 아래 이미지처럼 화면에 빨간 글씨로 적히는데, 아예 새 프로젝트에서 생기는 에러다보니 어떻게 해결해야할지 모르겠어서 글 남겨요 .. 아래 세가지 시도를 해보았는데 해결이 안되었어요 .. Build > Build Landscape Build > Physical material only Build > Build All Levels

  • unreal-engine
  • 언리얼-c++
서융 댓글 3 좋아요 0 조회수 2075

저장되는 파일이 UTF-16 LE로 인코딩됩니다

미해결

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

문제 및 조건 Name변수에는 "이득우"문자열을 저장했습니다 Json으로 저장된 파일을 열어보면 UTF-16 LE 로 인코딩돼있습니다. .txt로 파일을 저장하고 메모장으로 열어도 UTF-16 LE 로 인코딩 돼있습니다. .cpp파일들은 전부 UTF-8 로 확실하게 저장했습니다. 코드는 Json으로 읽고 쓰기 부분만 첨부드렸지만 바이너리로 저장한 파일도 불러오면 한글만 깨져있습니다. 운영체제는 윈도우11, 언리얼 에디터는 5.3.1버전입니다. LogTemp 첨부 LogTemp: 저장할 파일 폴더: ../../../../../../UE5_Inflearn/Part1/UnrealSerialization/Saved LogTemp: 저장할 파일전체 경로: ../../../../../../UE5_Inflearn/Part1/UnrealSerialization/Saved/RawData.bin LogTemp: 변경할 파일전체 경로: E:/UE5_Inflearn/Part1/UnrealSerialization/Saved/RawData.bin LogTemp: [RawData] 이름 이득우 순번 16 LogTemp: [ObjectData] 이름 ↓ンᄡ→モン↓レᄚ 순번 59 LogTemp: [JsonData] 이름 ↓ンᄡ→モン↓レᄚ 순번 59 작성한 코드의 Json 읽고 쓰기 부분은 이렇습니다. // Json으로 읽고 쓰기 { FString JsonDataFileName(TEXT("StudentJsonData.json")); FString JsonDataAbsolutePath = FPaths::Combine(*SavedDir, *JsonDataFileName); FPaths::MakeStandardFilename(JsonDataAbsolutePath); // "JsonObjectConverter.h" include 필요 //!중요 [프로젝트 명].build.cs파일에 Json관련 모듈 2개를 추가해줘야함 // 공유 레퍼런스 - Null이 아님을 보장함 TSharedRef<FJsonObject> JsonObjectSrc = MakeShared<FJsonObject>(); // 이렇게하면 StudentSrc 오브젝트의 값이 Json으로 변환이 됨 FJsonObjectConverter::UStructToJsonObject(StudentSrc->GetClass(), StudentSrc, JsonObjectSrc); // 파일로 디스크에 저장 FString JsonOutString; TSharedRef<TJsonWriter<TCHAR>> JsonWriterAr = TJsonWriterFactory<TCHAR>::Create(&JsonOutString); if (FJsonSerializer::Serialize(JsonObjectSrc, JsonWriterAr)) { FFileHelper::SaveStringToFile(JsonOutString, *JsonDataAbsolutePath); } FString JsonInString; FFileHelper::LoadFileToString(JsonInString, *JsonDataAbsolutePath); TSharedRef<TJsonReader<TCHAR>> JsonReaderAr = TJsonReaderFactory<TCHAR>::Create(JsonInString); // 파일에 문제가 있으면 Json이 안만들어질 수 있으므로 Null을 허용하는 TsharedPtr사용 TSharedPtr<FJsonObject> JsonObjectDest; if (FJsonSerializer::Deserialize(JsonReaderAr, JsonObjectDest)) { UStudent* JsonStudentDest = NewObject<UStudent>(); if (FJsonObjectConverter::JsonObjectToUStruct(JsonObjectDest.ToSharedRef(), JsonStudentDest->GetClass(), JsonStudentDest)) { PrintStudentInfo(JsonStudentDest, TEXT("JsonData")); } } } 이 문제가 언리얼 에디터 버전때문일까요? 아님 제가 코드를 잘못 작성한걸까요? 테스트를 좀 해보니 최종 파일의 인코딩은 상관 없었습니다. FFileHelper::SaveStringToFile(JsonOutString, *JsonDataAbsolutePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM); 이렇게 강제로 UTF8로 인코딩해도 똑같더라고요 그래서 Json을 Serialize할 때 파일 저장 직전 Serialize된 문자열 로그를 찍어봤습니다. TSharedRef<TJsonWriter<TCHAR>> JsonWriterAr = TJsonWriterFactory<TCHAR>::Create(&JsonOutString); if (FJsonSerializer::Serialize(JsonObjectSrc, JsonWriterAr)) { UE_LOG(LogTemp, Log, TEXT("JsonOut: %s"), *JsonOutString); // 이 부분 FFileHelper::SaveStringToFile(JsonOutString, *JsonDataAbsolutePath, FFileHelper::EEncodingOptions::ForceUTF8WithoutBOM); } 저기서부터 이미 한글Name이 깨져있네요 아래처럼 출력됐습니다. [2024.03.12-06.33.03:029][ 12]LogTemp: JsonOut: { "order": 59, "name": "↓ンᄡ→モン↓レᄚ" } 일단 더 찾아보겠습니다

  • unreal-engine
  • 언리얼-c++
Kyoung Eon Hwang 댓글 1 좋아요 0 조회수 774

인기 태그

인프런 TOP Writers

주간 인기글