4강 수업을 위해 Infinity Blade: Warriors를 다운받으려고 하는데 fab으로 바뀌어서 검색이 되지 않습니다. 자료다운을 통해 Github에서 언리얼에디터파일을 다운받았으나 에디터가 실행은 되나 Animation폴더 내 애셋 전체가 에러가 나면서 실행되지 않습니다. 또한 Animation폴더를 다른 언리얼에디터 프로젝트로 migration하거나 직접 content폴더내로 이동해도 계속 에러가 납니다. Infinity Blade: Warriors 파일을 다운 받도록 도와주세요~
안녕하세요? 6.1 Teleport 강의에서 50:22 부분에 궁금한게 있는데요. Asset Manager가 L_ShooterGym을 스캔할 수 있도록 경로를 설정하는 건데, "Is Editor Only" 이 부분은 왜 체크해야 하나요..? 이 부분이 어떤 기능을 하는 것인지 궁금합니다. 이걸 체크하지 않으니 DA_ShooterGame_ShooterGym의 MapID에 L_ShooterGym가 목록으로 표시되질 않네요. (설정 적용 후에 스캔을 위한 에디터 재실행은 했습니다. 엔진 버전은 5.4입니다.) FPrimaryAssetTypeInfo 구조체의 bIsEditorOnly 멤버 변수와, UAssetManager의 ScanPathsForPrimaryAssets() 멤버 함수가 이 기능과 관련있어 보이는데 코드를 봐도 잘 이해가 안되네요...
이렇게 알려 주신 거랑 조금 다르게 각 세팅값을 a,b get으로 넣고 해봤는데 b값은 +1이 되는데 a값이 +1이 안되더라고요 그래서 2*1=2 2*2=4 ~ 2*9=18 하고 끝나버려요 만약 b도 안 늘어나면 세팅값을 get으로 넣어버려서 안되는구나 하겠는데 아니 이게 왜 b값은 올라가고 a값은 안올라가죠?
안녕하세요 교수님. 좋은 퀄리티의 강의를 제공해주셔서 정말 감사드립니다. 저는 현재 언리얼 엔진 5.4.4, Visual Studio 2022 17.12.3 버전으로 강의를 수강하고 있습니다. 다름이 아니고 "6강 : 캐릭터 어트리뷰트 설정"의 35분 즈음에 Source와 Target의 AbilitySystemComponent를 가져오고, 해당 ASC에서 AttirbuteSet을 가져오는 부분을 구현하던 도중, 초록색 줄이 나오면서 C6011 Warning이 발생하였습니다. https://learn.microsoft.com/ko-kr/cpp/code-quality/c6011?view=msvc-170 이는 null포인터 역참조에 의한 경고임을 확인했습니다. 근데, SourceASC의 경우 checked 함수를 통해서 점검하고 가져오기 때문에 null포인터가 발생할 수 없지 않나요? 아니면 check함수가 unreal에서만 사용하는 함수이기 때문에 C++은 이를 인지하지 못하여 저렇게 디레퍼런싱 경고를 띄워주는 것일까요?
안녕하세요. 강의를 완강하고 다시금 따라하며 게임을 제작해보고 있는 한 학생입니다. 강의와 크게 상관은 없지만 질문해봅니다. Selector를 통해서 공격범위에 있다면 Attack을 아니라면(inverse) Move to하게 했습니다. 근데 제가 하고 싶은 건 공격범위 안에 들어가는 즉시 공격을 하고 싶은데(CheckAttackRange에서 공격사거리 측정) 지금은 무조건 Target의 위치까지 Move to 한 뒤에 Attack 을 하게 됩니다. Move to 위에있는 CheckAttakcRange(inverse)에 옵션으로 Observer Aborts을 self로 해봐도 결과는 동일합니다. 어떤 이유로 인해 발생하는지 계속 고민해봐도 모르겠어서 질문 드립니다.
안녕하세요. 혼자 배운 내용을 토대로 개발을 해보고 있는데 콤보 액션 몽타주가 끝나면 델리게이트를 설정을 하는데 이에 대해 궁금한 점이 있습니다. (1번 코드)AnimInstance->OnMontageEnded.AddDynamic(this, &ALuckyCharacterBase::ComboAttackEnd); 콤보 액션이 끝난 후 바인딩하는 코드를 1번 코드처럼 작성을 해도 상관이 없는 건가요? (2번 코드)FOnMontageEnded ComboEndDelegate; ComboEndDelegate.BindUObject(this, &ALuckyCharacterBase::ComboAttackEnd); AnimInstance->Montage_SetEndDelegate(ComboEndDelegate, ComboAttackMontage); 2번 코드처럼 작성하는 이유가 현재 콤보 액션과 다른 콤보 액션을 또 만들면 이 두 콤보 액션을 구분하여 함수를 호출하기 위해 작성을 하는 것인지 궁금합니다.
안녕하세요. 인터페이스 클래스를 사용하고자 할 때 강의 내용처럼 다중 상속으로 설계하는 것이 일반적인가요? 강의 내용 중 인터페이스를 사용해 가급적 축소된 다중상속의 형태라는 표현이 나오는데요, 이 말의 의미가 궁금합니다. 또한 UTeacher나 UStudent에서 Super키워드가 왜 UPerson만을 가리키는지 궁금합니다. 단지 Super에 대한 모호성이 있는 상태라고 생각하고 있었는데 오개념인가요?
4강 16:12 부분에서 uint8 bIsidle : 1; 로 선언하는 부분에서 궁금증이 생겼습니다. 전 강의 3강에서 ABCharacterControlData.h 작성하실때는 uint32 bUseControllerRotationYaw : 1; 이런식으로 uint32를 쓰셨었는데 왜 여기서는 uint8로 쓰셨는지 궁금합니다. 그리고 보통 언리얼에서 uint8 : 1, uint32 : 1 둘 중에 어떤 비트 플래그를 많이 쓰는지도 궁금해요.
안녕하세요! 15강 강의를 듣고 있는데 게임모드에서 작성한 변수들이 블루프린트에는 보이지가 않습니다. UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = Game) int32 ClearScore; UPROPERTY(VisibleInstanceOnly, BlueprintReadOnly, Category = Game) int32 CurrentScore; UPROPERTY(VisibleDefaultsOnly, BlueprintReadOnly, Category = Game) uint8 bIsCleared : 1; ABGameMode.h 에 위와 같이 코드를 작성했습니다. 근데 아래 사진과 같이 저는 VARIABLES 에 게임모드에서 작성한 변수들이 보이지 않습니다. 디테일 패널에 ClearScore를 검색하면 나오기는 하지만 강의 화면과는 다릅니다. 그리고 CurrentScore와 IsCleard 는 Instance로 되어 있어서 아예 검색조차 되지 않습니다.. EditAnywhere 로 변경을 하면 검색은 되지만 사진과 같이 변경은 되지 않습니다. 제가 추가로 확인을 해보니 애니메이션에 추가했던 변수들도 지금 보이지가 않습니다. 이건 에디터 문제인걸까요? 빌드도 다시 해보았는데 여전히 변수들이 안 뜹니다.
안녕하세요 선생님 질문사항이 있어 글 남깁니다! 3강 커넥션과 오너십 강의 영상 41:25 쯤 서버와 클라이언트의 오너값이 동기화가 된다고 하셨는데 그럼 클라이언트에 존재하는 Player와 서버에 존재하는 Player 둘 다 같은 PlayerController가 빙의된 상태라는 걸까요? 아니면 클라이언트가 접속 요청할 때 Login 과정에서 복제된 PlayerController를 빙의하는 걸까요?
언제나 양질의 강의를 제공해주셔서 감사드립니다. 이번 강의를 통해 Lyra를 언리얼 프로젝트에서 어떻게 사용하는지 알아보고 언리얼 엔진과 관련한 디테일한 부분을 배워볼 수 있어 참 기쁩니다. Item #12강의에서 제공해주시는 애셋 파일을 프로젝트에 사용하기 위해 이주하였으나 기존에 만들어둔 애니메이션 블루 프린트들과 연결되지 않는 문제가 발생하였습니다. 또 이주된 애셋 파일들의 부모 클래스가 None으로 설정되어 결국 이주하지 않고 파일 경로상에 직접 옮기는 방식으로 수정하였습니다. 애셋과 관련된 문제는 발생하지 않았지만, 설정하고 수행한 결과가 Rookiss님의 수행 결과와는 다르게 동작하는 문제가 발생하여 이렇게 글을 쓰게 되었습니다. 발생하고 있는 문제의 동영상 링크는 다음과 같습니다. https://www.youtube.com/watch?v=ev40iYAin2E 이전 Item #8에서의 애셋을 이주하면 문제가 발생해서 동일하게 파일 경로에 옮겨 작업을 수행했는데, 혹시 그 과정에서 문제가 발생해서 저런 문제가 발생하는 걸까요? 문제가 어디서 발생하는지 알려주시면 감사하겠습니다. 다시 한번 언제나 좋은 강의를 만들어주셔서 감사드립니다.
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part5: UE5 & IOCP 서버 연동
안녕하세요 루키스님. 지금은 C#서버로 칸 없이 3D 이동 동기화 토이프로젝트 여러모로 시도해보고 있습니다. 제 토이 프로젝트의 목적 은 추측항법을 사용해 칸 없이 3D 이동 동기화 로써 루키스님 강의들 Q&A 뒤적여서 이해한 추측 항법은 "목적지를 뿌려주고 거기로 어떻게 하던지간에 이동하게 해준다" 로 다음 아이디어를 적용해보게 되었습니다. 기본 아이디어는 플레이어 A가 [0,0,0]에 있다면, 바라보는 방향으로 벡터1 만큼을 더한 위치, 예를 들어 w를 누르면 [1,0,0]의 C_Move 요청 패킷을 날리고, 서버가 모든 유저들에게 브로드캐스팅 해주면, 각 클라이언트는 A의 위치를 [0,0,0] 에서 [1,0,0]으로 자연스러운 Transform 변경으로 '스르륵'을 구현했습니다. // 참고용 위치 동기화 핵심 코드 void Update() { // destinationPos : S_Move패킷을 통해 갱신된 목표 위치 float distance = Vector3.Distance(transform.position, destinationPos); // 목표지점에 거의 다왔으면 목표 위치로 순간이동 if(distance < 0.1f) { transform.position = destinationPos; } else { // 스르륵 이동 transform.position = Vector3.MoveTowards(transform.position, destinationPos, Speed * Time.deltaTime); } // TODO : 보정 등 } 현재 C++ 서버도 병행해서 공부하는 저의 시점에서, 몇가지가 궁금해서 질문 드리게 되었습니다. Q1. 지금 강의, IOCP와 UE5에서 소개해주신 이동 동기화를 추측항법은 아닌 것으로 이해됩니다(과거 위치를 브로드캐스팅 해주고 있으므로). 제가 이해한게 맞을까요? Q2. 제가 구현한 아이디어와 코드도 일종의 추측항법이라고 우겨도 될까요? 포트폴리오 키워드로 녹이고 싶은 욕심이 있습니다. Q3. 제가 채택한 이동 동기화의 방법의 피드백도 가능하다면 받고 싶습니다. 위 코드에 보정은 어느 정도 넣을 예정이지만, 기본 아이디어에 대해 시니어님의 의견도 여쭈고 싶습니다. 차기 강의 항상 기대하고 있습니다 ㅎㅎ 몸은 다 나으셨는지 모르겠네요. 답변 미리 감사합니다!
질문은 확인 즉시 답변드립니다! :) 메일이나 본 질문란을 이용하여 접수해주세요. 질문은 먼저 접수된 순으로 답변드립니다! 구체적인 기기(Meta Quest3, 3s 등)와 엔진 버전을 알려주시면 원활한 답변에 도움이 됩니다. 스크린샷이나 녹화영상 등을 통해 설명해주시면 더욱 감사합니다! 안녕하세요 모든 방법을 다 차근차근 따라 갔지만, 시뮬레이션 결과 공이 하늘로 날아가는 것을 확인했습니다.. 어떤걸 확인하면 될까요 ?
강좌를 따라하면서 동일하게 진행을 했는데 어째서인지 ABGA_AttackHitCheck::ActivateAbility Begin로그가 찍히지 않습니다. ABGA_AttackHitCheck의 생성자는 호출되는데 ActivateAbility가 호출되지 않는데요. 어느 부분을 체크해봐야 할까요?