항상 친절한 답변 감사합니다. 왜 DataTable의 Value는 uint8*를 쓰게 됐을까가 궁금합니다. TArray<uint8*> ValueArray; DataTable->GetRowMap().GenerateValueArray(ValueArray); GenerateValueArray함수로 데이터 테이블의 모든 벨류를 복사 할때 uint8*형식으로 복사를 진행한후 다시 FABCharacterStat*으로 형변환 하는데요 템플릿으로 FABCharacterStat을 받으면 형변환하지 않고 편하게 사용할 수 있을거 같은데 말이죠.. GPT의 답변인데 이게 맞을까요? DataTable의 각 셀에 저장되는 값은 FString 이 아니라 uint8* (unsigned 8-bit integer pointer)로 저장될 때가 있습니다. 이는 다양한 데이터 형식을 다루기 위한 유연성을 제공합니다. uint8* 는 메모리의 원시 데이터를 가리키는 포인터로, 이를 사용하여 다양한 데이터 형식을 저장할 수 있습니다. 예를 들어, DataTable에서는 문자열, 숫자, 구조체 등 다양한 데이터를 저장할 수 있습니다. uint8* 는 이러한 데이터 형식을 표현하는 데 사용됩니다. 그리고 데이터를 사용할 때는 필요에 따라 해당 데이터 형식으로 변환하여 사용할 수 있습니다. 따라서 DataTable이 uint8* 를 사용하는 이유는 데이터의 다양성과 유연성을 제공하기 위함이며, 이를 통해 사용자가 필요에 따라 다양한 데이터 형식을 DataTable에 저장하고 활용할 수 있습니다.
1강 18분 경부터 동영상 따라 컴파일하는데 아래와 같은 오류가 나타나며 진행되지 않습니다.. h, cpp 파일 다 초기화하거나 심지어 삭제해도 똑같은 오류가 발생합니다. First Action json written to 'C:\Users\park\AppData\Local\Temp\UnrealBuildTool\319625c3\UnrealBuildTool\77818478.json' Second Action json written to 'C:\Users\park\AppData\Local\Temp\UnrealBuildTool\319625c3\UnrealBuildTool\1429F030.json' Total execution time: 7.67 seconds Action graph is invalid; unable to continue. See log for additional details.
언리얼 리플렉션 시스템에 의해 UEnum 포인터 값을 찾을 수 있기 때문에 UEnum값의 메타 데이터 정보를 가져오기 위해 강의 예제에서는 FindObject<UEnum>(nullptr, TEXT("/Script/프로젝트 이름.ECardType")); 이렇게 절대경로를 입력하여 Object를 찾는 것으로 이해했습니다. 하지만 저는 Card 클래스를 플러그인 모듈로 따로 빼서 한번 진행해봤는데 저 경로로는 UEnum값을 찾을 수가 없던데 이런 경우에는 어떻게 해야 하는지 궁금합니다.
안녕하세요 교수님 part 1, part 2를 모두 수강하고 너무 도움이 많이 되어 part 3까지 듣고 있는 클라이언트 지망생입니다~ 강의를 들으니, 처음 게임을 개발 할 때, 서버를 염두해 두지 않고 개발을 하면 이후에 코드를 수정하는데 많은 시간이 걸리는 것을 이해를 했습니다. 그렇다면 리슨서버로 개발을 진행하고, 이후에 데디케이트 서버로 변경을 하려고 하면 이 또한 많은 코드 수정이 필요한가요? 정확히 궁금한 것은, 언리얼에 리슨서버와 데디케이트 서버의 호환성이 높은지 아니면 완전히 다른 코드를 사용해서 구현해야 하는 것인지 입니다~~
안녕하세요. 좀 더 깊이 알아보다가 오랜만에 궁금하게 생겨서 질문을 올렸습니다. 애니메이션 관련해서 메뉴얼이랑 해외 영상들을 좀 자세히 보다보니 로코모션이이라고 해서 루트 모션/ 포즈 와핑/ 모션 와핑 같은 기술적인게 나오고 플러그인으로 로코모션 라이브러리랑 애니메이션 와핑을 추가해서 사용하는 걸 봤습니다... 언리얼 엔진의 로코모션 | 언리얼 엔진 5.3 문서 (unrealengine.com) 강의에서 나온 로코모션이 생각나서 다시 확인해보니 여기서는 대략 요약하면 State Machine중 하나를 로코모션이라고 하고 캐시에 저장하고 다른곳에서 사용한다 인것 같은데요. 캐시에 애니메이션을 저장해서 따로 사용하는 구현 방식도 로코모션이라고 하는 건가요??
안녕하세요 선생님, 애니메이션 블루프린트 수강 중에 있는데, 제가 무슨 설정을 잘못 건드린 건지 세팅을 안한 건지는 몰라도 처음에는 캐릭터가 방향키 대로 애니메이션 렌더링이 잘 되며 이동을 하는데, 계속해서 3~5초 정도 이동하면 갑자기 아래처럼 애니메이션이 고정된 상태로 이동만 합니다..ㅠㅠ 이동을 멈추고 다시 이동 하면 다시 또 렌더링 잘 되는 상태에서 이동을 하는데, 이 또한 3~5초 정도 이동하면 위와 똑같이 애니메이션이 멈춘 상태로 이동만 합니다.. 마우스 이동하는 방향대로 화면 전환이 되고, 그 방향대로 캐릭터가 바라보는 방향도 잘 이동하는데.. 왜 이동을 계속하면 애니메이션 렌더링이 멈춰버릴까요? ㅠㅠ 찾아보려고 해도 안나와서 문의 드립니당 (MoveStart 나 MoveStop 에 해당하는 애니메이션들이 잘 반영되는 것으로 보아 애니메이션블루프린트 설정은 잘 한 거 같기는 한데,, 뭐가 문제인지 모르겠네요.. )
// Fill out your copyright notice in the Description page of Project Settings. #include "Game/ABGameMode.h" #include "ABGameMode.h" //#include "Player/ABPlayerController.h" AABGameMode::AABGameMode() { UE_LOG(LogTemp, Warning, TEXT("inflearn1")); static ConstructorHelpers::FClassFinder<APawn> ThirdPersonClassRef(TEXT("/Game/ThirdPerson/Blueprints/BP_ThirdPersonCharacter.BP_ThirdPersonCharacter_C")); if (ThirdPersonClassRef.Class) { DefaultPawnClass = ThirdPersonClassRef.Class; } static ConstructorHelpers::FClassFinder<APlayerController> PlayerControllerClassRef(TEXT("/Script/ArenaBattle.ABPlayerController")); if (PlayerControllerClassRef.Class != nullptr) { UE_LOG(LogTemp, Warning, TEXT("PlayerControllerClassRef.Class found: %s"), *PlayerControllerClassRef.Class->GetName()); PlayerControllerClass = PlayerControllerClassRef.Class; } else { UE_LOG(LogTemp, Error, TEXT("PlayerControllerClassRef.Class not found.")); } //PlayerControllerClass = AABPlayerController::StaticClass(); } 위 코드를 입력했을 때 실행 결과는 아래와 같습니다. 제가 경로를 잘못 넣었다기에는 수업자료를 그대로 복붙도 해보았으며 /Script/CoreUObject.Class'/Script/ArenaBattle.ABPlayerController' 위 경로 또한 5초전에 레퍼런스를 복사해 온 경로입니다
복습하면서 궁금한 점이 있는데요 강의 예제에서는 Person을 GameUtility라는 플러그인 모듈에서 만들어서 주 게임 모듈인 UnrealBuildSystem에서 사용하기 위해 UnrealBuildSystem.Build .cs 파일에 GameUtility모듈을 추가하고 Student.h에서 Person을 상속 받아서 사용하던데 모듈에 있는 클래스를 사용하기 위해서는 꼭 저렇게 상속받아서만 사용할 수 있는건가요? 예를 들어 지난 강의와 응용해서 저는 GameInstance 클래스를 주 게임 모듈에 만들고 Student를 플러그인 모듈로 만들어서 사용하고 싶은데 이 경우 GameInstance 헤더 파일에 Student 헤더 파일을 추가하고 GameInstance 클래스에서 Student 클래스를 상속받아야만 하는건가요?
안녕하세요 강의 다시따라가며 공부하고있습니다. 에디터를끄고 강의자료를 다운받아 제 프로젝트 폴더에 복사붙여넣기 진행하였는데요... 스크린샷처럼 링크가 다끊어져있습니다... 마켓플레이스에서 받은 에셋들은 모두 정상인것을보니 복사붙여넣기할때 이렇게 끊어지는거 같은데요. 혹시 해결방법을 아실까요?? 잘 알려지지 않은 문제인지 구글에 쳐봐도 나오질 않네요 ㅠㅠ.. 이전강의까진 제가 Material만들고 진행했는데 더이상 진행이 불가해 이렇게 질문 남깁니다.. 수업 외에 확장해 게임을 만들생각이라 프로젝트 명을 다르게 했는데 문제가 될까요?
본 강의의 데이터 에셋에서도 그렇고 언리얼에서는 uint8, uint16, uint32b 로 boolean 의 성질을 갖는 멤버를 자주 선언하던데, 혹시 어떤 차이가 있어서 이렇게 사용하는 걸까요? https://forums.unrealengine.com/t/difference-between-bool-and-uint32-1/362306 이쪽 포럼도 참고해 봤는데 의견이 분분하길래 한번 여쭤봅니다!
안녕하세요~또 질문이 있습니다^^ 메타사운드 롤 제작된 예제중에 마지막 On Finish out 노드에 Warning이라는 경고가 떠 있는데 이거는 상관없는건가요? waveplayer애서 연결해주면 warning이 사라지긴하는데.. 복수의 Wave player를 믹서로 연결했을 경우는 Warning을 없애는 방법이 없는 건지? 아니면 걍 놔둬도 되는건지 궁금합니다~
질문이 있으신 학생은 fxsound119@gmail.com 으로 문의 주시면 답변 드리도록 하겠습니다. 추푸 오픈채팅방을 만들게 되면 채팅방 입장코드 공유해 드리도록 하겠습니다. 안녕하세요~ 어렵지만 열심히 수업을 따라가 보고 있습니다 바닥 재질별 발자국 소리 다르게 만들기->요 수업을 듣고 있는데 여기서는 MetaSound를 사용하지 않고 SoundCue를 사용하여 수업을 하셨는데.. 특별한 이유가 있는건가요?
안녕하세요 13:51 부분에서 예시는 Non-Dynamic 인데 말씀하시는건 Dynamic Delegate 라고 말씀하시네요. 그리고 직접 테스트 해보다가 Dynamic의 경우도 RetVal 매크로가 있길래 테스트 해보니 둘 다 정상적으로 동작하더군요 이 경우엔 내부적으로는 같게 해주는 로직이 있는건지 아니면 기능이 추가된걸까요 ?