묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
파트4는 언제 출시하는지 알 수 있을까요?
그리고 파트 4에 나오는 내용은 3~4월달에 진행하는 라이브 강의와 같은 목차인가요?
-
미해결언리얼 엔진 5 스파르타 클래스 - 심화편
애니메이션 리타겟 오류
인강에서 보여주신대로 해봤는데 손가락이 꼬이는 현상이 발견되었습니다. 이건 어떻게 해야 하나여
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
13강 void UABCharacterMovementComponent::ABTeleport() 구현에서 문제가 있습니다.
강의 코드와 같이 작성했으나 CharacterOwner에 멤버함수에 대해 접근이 안됩니다.//.h FIle class ARENABATTLE_API UABCharacterMovementComponent : public UCharacterMovementComponent 분명 UCharacterMovementComponent 클래스를 상속받았고 UCharacterMovementComponent 클래스안에 ACharater에대한 선언도 있는듯 한데CharacterOwner포인터가 incompleted class라고 하면서 클래스 내부에 대해 접근을 하지못하네요..ㅠㅠFVector TargetLocation = CharacterOwner->GetActorLocation() + CharacterOwner->GetActorForwardVector() * TeleportOffset;#include "GameFramework/Character.h"우선 해당 클래스를 cpp에 포함시켜서 해결은 했는데 저만발생하는거같아 이상하네요 더좋은 방법이 있을까요?? 아래는 에러코드들입니다.error C2027: use of undefined type 'ACharacter'error C2039: 'GetActorLocation': is not a member of 'TObjectPtr<ACharacter>error C2027: use of undefined type 'ACharacter'
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
46:35 friend 키워드
안녕하세요, 이해가 잘 안 가는 부분이 있습니다.46:35 쯤 friend 키워드를 사용해서 gettypehash 함수를 안쪽에 선언한다고 말씀 하셨습니다. 구조체는 기본적으로 전역이기 때문에friend를 선언하면 구조체의 멤버 함수였던 gettypehash 함수가 구조체 변수에 접근이 가능하면서 전역으로 사용이 가능한 전역 함수가 된다고 이해하면 되는지 궁금합니다.
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
언리얼 오브젝트 메모리 관리에 대해 질문 있습니다.
안녕하세요일반 클래스에서 언리얼 오브젝트를 관리 할때 FGCObject를 상속 받아서 관리 했는데 나중에 일반 클래스가 삭제되고 나서 언리얼 클래스는 언제 삭제 되나요?감사합니다
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
TSoftObjectPtr로 변경하여도 Weapon에셋이 로드가 됩니다.
8강 아이템 시스템 이해 39분 쯤 UPROPERTY(EditAnywhere, Category = "Weapon")TSoftObjectPtr<USkeletalMesh> WeaponMesh; 으로 코드를 변경한 후, 언리얼을 종료하고 VS에서 ctrl + F5로 다시 빌드해서 언리얼을 열고 게임을 실행 후 Obj List Class=SkeletalMesh를 쳐도 드래곤 소드 에셋이 계속해서 존재합니다. 제가 쓰고 있는 버전이 5.3이라 무언가의 차이점이 있는 것일까요..?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
13강 언리얼오브젝트를 직렬화할 때는 반드시 메모리 아카이브(FMemoryReader, FMemoryWriter)를 거쳐서 직렬화를 해야 하는 건가요?
if (TUniquePtr<FArchive> FileWriterAr = TUniquePtr<FArchive>(IFileManager::Get().CreateFileWriter(*ObjectDataAbsolutePath))) { StudentSrc->Serialize(*FileWriterAr); FileWriterAr->Close(); } UStudent* StudentDest = NewObject<UStudent>(); if (TUniquePtr<FArchive> FileReaderAr = TUniquePtr<FArchive>(IFileManager::Get().CreateFileReader(*ObjectDataAbsolutePath))) { StudentDest->Serialize(*FileReaderAr); FileReaderAr->Close(); }FileWriter, FileReader를 통해 직접 직렬화를 해보려고 코드를 수정해봤는데 안되네요...
-
미해결[입문자를 위한 UE5] Part3. 언리얼 엔진 3D 게임 개발 입문
리타게팅하고 애니메이션 익스포트했을 때 애니메이션따라서 이동합니다.
리타게팅을 하고 추출한 애니메이션을 실행시키면 영상에서는 제자리에서 애니메이션이 실행되는데 저는 앞으로 이동합니다. 찾아보니 루트 모션을 활성화해도 변화 없습니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
빌드 하면 MSB3073 -WaitMutex -FromMsBuild 에러가 발생합니다!
올려주신 코드를 빌드해보려 해도 MSB3073 -WaitMutex -FromMsBuild 에러가 발생합니다. 혹시 언리얼과 연동하기전에 기본적으로 해야할 설정이 있나요??비주얼스튜디오 인스톨에서 SDK와 언리얼 관련 내용은 다 다운로드 하였습니다. 언리얼 설정 시 기본 설정이 있다면 알려주시면 감사하겠습니다 ㅠㅠ
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
SetupGASInputComponent 호출 부분 질문입니다.
PossessedBy 함수가 서버에서만 호출되기 때문에 인풋에 관련된 함수를 다시 호출해 주는 것은 이해했는데요, SetupPlayerInputComponent 가 아닌 SetupGASInputComponent를 호출하는 이유가 뭔가요? GAS에 관련된 인풋 함수만 중복 호출 하는 이유가 궁금합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
[ 02.+Protobuf과+언리얼+연동 ] Protobuff빌드 에러가 납니다
>libprotobuf.lib(reflection_ops.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(text_format.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(dynamic_message.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(any.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(wire_format.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(descriptor.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(extension_set_heavy.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(map_field.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(arenastring.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(message_lite.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(generated_message_reflection.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>libprotobuf.lib(message.obj) : error LNK2001: 확인할 수 없는 외부 기호 __std_init_once_link_alternate_names_and_abort1>D:\UnRealProject\MMO\S1\Binaries\Win64\UnrealEditor-S1.dll : fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다. 소스 그대로 받아 빌드를 했는데 에러가 나네요
-
해결됨Go Hard to Unreal (feat. 취준 멘토링)
강의 언리얼 버전 질문
혹시 강의에 사용된 언리얼 버전이 몇인지 알 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
UPROPERTY(Transient) 속성 질문
항상 친절한 답변해주셔서 너무너무 감사합니다 ㅜㅜ FRepMovement구조체 안에 변수들은 대부분 Transient속성을 사용하는데 (강의 내용 5분 ~~)Transient속성은 어떨때 쓰이는 걸까요? 전 강의에서 짤막하게 설명한다음 넘어갔던거 같은데 기억이 잘안나서요.. 검색을 해보니 직렬화를 해제하고 게임이 시작될때 마다 초기화가 되는 휘발성 변수라는 정보를 알게 되었는데 이게 무슨 말인지 잘 와 닿지 않아서요.. Transient 속성을 사용하면 어떤 효과가 있는걸까요??게임이시작될때 초기화 되는 변수라면 거의 대부분의 변수가 Transient로 설정될거같은데...사용되는 예시도 같이 알려주시면 감사하겠습니다.. 네트워크에서 변수를 딱한번 쓰고 버리는 용도로 사용 되는것일까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
PlayerController의 존재 의미
지금까지 컨트롤에 관련된 강의를 들으면서 PlayerController는 무슨 역할을 하는지 궁금합니다. 제가 2~3강을 듣고 이해한 흐름은 다음과 같습니다. AABCharacterPlayer의 BeginPlay함수에서 맵핑 컨텍스트(IMC)를 설정하는데 PlayerController를 가져와 Subsystem을 선언하는데 쓰인다. (추후엔 SetCharacterControl로 바뀜)Subsystem은 IMC를 운영하는 클래스로 Subsystem에서 InputSystem을 가져와서 DefaultMappingContext을 맵핑 컨텍스트 에셋으로 추가한다. DefaultMappingContext는 AABCharacterPlayer의 CDO에서 주소값으로 가져온다. DefaultMappingContext는 IA_Jump, IA_Move, IA_Look가 등록된 IMC로 이걸 SubSystem에 등록시킨다. 이는 Move또는 Look함수에 있는 AddControllerYawInput 함수를 파보면 PlayerContoller에 Rotation값을 계속 갱신하는 것으로 움직인다는 것을 알 수 있다. 그렇다면 PlayerController는 그냥 GameMode에서 지정만 하고 실질적인 구현은 없는건가요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
저는 왜 비쥬얼스튜디오에서 ReplicatedMoveToServer가 검색이 안되나요?
cpp 검색이 안되네요 ㅜㅜ필요한 플러그인 설치과정 모두 진행했는데 안나오는데 혹시 방법을 아실까요??
-
해결됨Go Hard to Unreal (feat. 취준 멘토링)
강의 리메이크 관련 질문입니다.
강의가 리메이크 된다고 하는데 그러면 리메이크 되고나서 강의를 듣는게 좋을까요?아니면 기존 강의 계속 듣는게 좋을까요?그리고 기존 강의 교재 내용이 없어졌는데 리뉴얼 중인가요? 확인 한번 부탁 드릴게요.
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
Unreliable & Reliable 신뢰성 비신뢰성의 의미가
TCP와 UDP의 데이터 송수신에서의 신뢰성을 의미하는건가요 아니면 클라의 데이터를 신뢰할수 없다 라는 의미일까요?
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
안녕하세요. 질문드립니다
안녕하세요. 해당 강의와 관련이 없는 내용일 수 있지만 질문드립니다.로그인, 게임에 필요한 정보 등을 주고 받는 tcp나 http 통신을 하는 서버(이하 소켓 서버)와 소켓 통신을 하려고 한다면 (로그인으로 예를 들어보겠습니다) 로그인 레벨을 만들고 소켓 통신하는 부분을 로그인 레벨의 게임 모드에서 동작하게 하고 게임인스턴스에(클라이언트) 정보를 받고 다음 레벨로 넘어가면 될까요?그 후에 리슨서버나 데디케이트 서버를 사용해서 인게임 로직을 구현한다면 플레이어 정보(아이템, 레벨 등)는 클라이언트에서 서버로 입장 시에 앞단계를 통해 클라이언트에서 유저를 식별할 수 있는 최소한의 정보를 받아서(예를 들면 플레이어id) 소켓 서버로 요청 후에 클라이언트로 복제하면 될까요? 아니면 앞단계를 통해 클라이언트에 정보를 미리 받고 최소한의 검증만 하면 될까요?언리얼 서버에서 매치가 종료된 후 결과에 따른 보상이나 매치 중 소비하는 아이템(물약, 장비 내구도 등)같은 db 처리가 필요한 경우 언리얼 서버에서 처리하는지 별도의 서버에 요청하여 따로 처리하는지요?작성하고 보니 질문이 이해가 되지 않을 수도 있을 것 같은데요. 질문의 요지는 인게임 로직을 처리하는 언리얼 서버가 아닌 따로 구현한 소켓 서버와 언리얼 엔진을 연동하는 과정에 대한 질문을 드리고 싶습니다. 틀렸거나 더 효율적인 방법이 있으면 답변 부탁드리겠습니다. 감사합니다
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
Room에서 _objects 자료구조는 안전한가요?
bool Handle_C_LEAVE_GAME(PacketSessionRef& session, Protocol::C_LEAVE_GAME& pkt) { auto gameSession = static_pointer_cast<GameSession>(session); PlayerRef player = gameSession->player.load(); if (player == nullptr) return false; RoomRef room = player->room.load().lock(); if (room == nullptr) return false; room->HandleLeavePlayer(player); return true; } 잡큐에서 처리를 한다면 문제가 발생하지 않을거로 보이지만, 잡큐에서 실행하지 않고 room->HandleLeavePlayer 함수를 직접 호출하고 있습니다. _objects 자료구조에 접근하여 제거하는데요 Thread Safe 하지 않을거로 보여서요. 혹시 의도된건지 궁금합니다. 코드 흐름상 이정도는 알아서 수정하세요라는 느낌이 강하지만 혹시나해서 여쭤봅니다.
-
미해결이득우의 언리얼 프로그래밍 Part3 - 네트웍 멀티플레이 프레임웍의 이해
UPROPERTY(Replicated)로 선언한 속성값의 변화는 어떻게 감지하게 되나요?
Replicated로 지정한 속성값이 변화하면 콜백함수를 호출시키는데요, 그렇다면 어떻게 속성이 변화하는걸 감지하는건가요? 언리얼내부에서 Replicated로 지정한 속성이 변화되는지 계속 감시하고 있다가 변화되면 콜백함수를 시켜주는걸까요?? 디버깅하면서 호출스택따라가봐도 뭐가 보이질 않네요...ㅜ.ㅜ