묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
상자에 상호작용으로 아이템을 얻는 경우
안녕하세요. 지금은 상자가 오버랩 판정을 했을 때 들어온 액터가 캐릭터라면 자동으로 아이템을 습득하기 때문에, 아이템에서 인터페이스를 사용해 캐릭터에 접근하고 있는데요. 만약 F 키를 눌러 상호작용으로 상자를 열어 아이템을 습득한다고 가정했을 때는 캐릭터 IA_Interaction과 같은 인풋 액션을 추가해서 함수를 바인드하고, 그 함수에서 아이템으로 접근하면 될까요?
-
해결됨[나 혼자 레벨업] UE5 멀티플레이 게임 제작 Lv. 1 (Listen 서버 입문)
해킹 방어 강의 질문
안녕하세요. 루키스님 강의 잘 듣고 있습니다.해킹 방어 강의 관련하여 2가지 질문드립니다.State 데이터 Set을 클라 측에서 하고 있고 서버에서는 클라 측 데이터를 기반으로 체크를 하는 것으로 보입니다. 서버 측에서 State 데이터 Set을 해야 더 안전한 것이 아닌지 질문드립니다.노티파이 부분도 클라 측에서 확인을 하고 있는데 서버 측에서는 애니메이션 실행은 하지 않지만 실행 중인지 시간을 통해 체크 후 각 노티파이 등을 Multicast 하는 방식이 더 안전한 것이 아닌지 궁금합니다. 아니면 언리얼 프레임워크에서 해당 부분은 자동으로 해주는 부분일까요?항상 강의 잘 듣고 있습니다. 감사합니다.
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
돌 장애물과 코인 아이템 충돌 차이
안녕하세요. 8. Endless Runner - 죽음 및 부활 에서는 SM_Rock의 Auto Convex Collision을 켜줘야 충돌이 적용이 됐었는데 코인 아이템의 경우 그런 작업을 해주지 않아도 바로 충돌이 되는 이유가 무엇인가요?
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
[인티저 켜기] 항목을 찾을 수 없습니다.
[9강. 아이템 추가]의 6:56에서 "인티저 켜기" 항목이 없고 검색 시Utilities > Flow Control > Switch에Switch on ENiagara_IntegerConversionSwitch on EFieldIntegerType이렇게 2가지만 검색됩니다. 각각 추가 시 다음과 같이 되어 있는데 강의의 내용과 동일하게 인티저 켜기를 등록하려면 추가로 진행해야 하는 항목이 있을까요? 사용 중인 에디터는 5.5.4 (5.5.4-40574608+++UE5+Release-5.5) 입니다.
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
C#에서 생성자 관련 질문
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 유니티와 C#의 부족한 지식을 위해 강의를 듣고있는데 궁금한 점이 생겨 질문합니다.개인 프로젝트를 진행할 때 Init함수 등을 사용해서 오브젝트 풀링한 몬스터들을 Init함수로 전체 데이터를 초기화 해왔었는데, C#에서도 생성자를 사용해서 첫 생성된 오브젝트들의 변하지 않는 데이터(이름, 공격력, 방어력 등)를 생성자로 초기화를 하고, 다시 풀링되는 오브젝트들의 변하는 데이터 (HP, MP 등)은 Init함수를 통해 풀링하는 식으로 만드는것이 좋은 방법인가요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
HealHp 함수
기존에 만들어 놓으셨던 SetHp 함수에 Clamp랑 Broadcast 코드가 그대로 있어서 HealHp 함수가 SetHp 함수를 거쳐가면서 기능하게 만들었는데, 괜찮을까요? 같은 연유로 AddBaseStat 함수도 똑같이 적용했습니다!FORCEINLINE void AddBaseStat(const FABCharacterStat& InAddBaseStat) { SetBaseStat(BaseStat + InAddBaseStat); } FORCEINLINE void HealHp(float InHealAmount) { SetHp(GetCurrentHp() + InHealAmount); }
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
ConstructorHelpers::FObjectFinder로 에셋 찾기
ConstructorHelpers::FObjectFinder로 에셋을 찾게 되면 에셋 위치를 나중에 변경할 일이 있을때 Copy Reference 주소 코드를 다 바꿔야 할거 할텐데, 현업에서도 이렇게 쓰이나요? 아니면 따로 관리하는 방법은 없나요?
-
미해결이득우의 언리얼 프로그래밍 Part4 - 게임플레이 어빌리티 시스템
ASC 에서 AttributeSet 함수에 대한 mutable 반환 함수가 없는 이유
안녕하세요. UABGA_AttackHitCheck::OnTraceResultCallback 구현에서 질문 드릴 게 있습니다. UABCharacterAttributeSet* TargetAttribute = const_cast<UABCharacterAttributeSet*>(TargetASC->GetSet<UABCharacterAttributeSet>()); 게임 로직 만들면서 AttributeSet 의 값을 변경해야 할 경우가 많을 것 같은데요. ASC 에서 변경가능한 AttributeSet 의 참조나 mutable 포인터를 반환하는 함수를 구현하지 않은 이유가 있나요?const_cast 로 억지로 const 를 벗겨내는 게 자연스럽게 느껴지진 않아서요. 다른 곳에서 값을 변경하게 코드를 작성해야 하는 디자인 측면이 있는 건지, 경험적인 정책 측면이 있는 건지 궁금해서 질문 드렸습니다.
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
컨트롤릭관련질문
안녕하세요 강사님!강의에서 이해가 되지 않는 부분과 구현 관련해서 2개의 질문이 있습니다.강의에서 이해되지 않는 부분은 강의 14초경 특정 물체를 바라보는데 고개가 뒤집히는 현상이 있잖아요. 그냥 바로 해당 물체의 위치를 건네줬을 때는 고개가 뒤집히는 문제가 발생했고블루프린트 내에 구체를 만들어 해당 구체의 위치를 뽑아서 해당 위치를 바라보게 세팅해서 그 문제를 해결했는데이게 뭔 차이인지를 모르겠습니다. 컨트롤릭에 해당 위치 벡터를 전달할 때 둘 다 월드상에 있는 좌표로 변환되어 전달하므로 똑같은 거 아닌가요?-------------구현 관련 질문입니다. 구현하고자 한 기능은 캐릭터가 조준을 하고 있지 않을 때, 카메라가 바라보는 방향으로 바라보게 만들면서 특정 각도를 넘어간다면 그냥 정면을 바라보게끔 하는 것입니다. 여기서 캐릭터가 스폰된 직후의 정면 벡터에서 왼쪽으로 움직이고 그 방향을 바라본다음 마우스를 돌려 에임오프셋을 조절하는 경우는 정상적으로 잘 작동하는데나머지 다른 방향에서 바라보는 경우에는 얼굴이 뒤집혀서 작동을합니다1. 정상2. 비정상 컨트롤릭에 있는 스켈리톤와 실제 엑터가 바라보는 방향과 같다면 정상적으로 작동하는 것 같다고 추측하고 있습니다. 이런 상황에서 좀 골머리를 앓고 있는데 어떻게 해결해야하는걸까요? 시간을 너무 많이 쓰는것같아 질문드립니다. ㅠ-------구글드라이브 링크https://drive.google.com/file/d/1tZqaSfJt1aqpmpp4Yp2Vl6iMDFvqQ3zR/view?usp=sharing
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
특정 조건에서만 함수를 반환할 때
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 반환 값이 있는 함수를 작성할 때 특정 조건에서만 반환해도 컴파일 단계에서 문제 없이 컴파일 됩니다.빌드를 시켜 실행 시키면 1로 반환 되던데 1로 반환 되는 이유는 뭔가요??
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
쿼터뷰 캐릭터 회전, 솔더뷰 움직임 문제
쿼터뷰, 솔더뷰 간 전환은 잘되구요.쿼터뷰일 때는 움직이는건 잘되지만 캐릭터가 움직이는 방향으로 회전하지 않고솔더뷰일 때는 움직이지는 못하지만 카메라를 돌리는건 잘되는 상황입니다.올려주신 자료 다운로드 해서 실행을 해봤는데 올려주신 프로젝트는 잘 실행되더라구요.에러가 뜨는 것도 아니라 강의와 올려주신 프로젝트를 여러번 돌려보며 소스코드, 데이터 에셋, 캐릭터 블루프린트의 설정들, 인풋액션, 인풋매핑컨텍스트 모두 비교 확인해봤지만 달라지는 건 없었습니다.언리얼 캐시 제거 후 다시 실행도 해봤지만 그대로 인데 도대체 뭐가 문제일까요?
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
충돌체 관련질문
안녕하세요 강사님!충돌체관련 궁금한점이 있어서 질문합니다.캐릭터 클래스와 무기 클래스가 있고, 무기 클래스에 OnComponentBeginOverlap 옵션을 활성화 시켰습니다. 이런 상황에서 무기 클래스의 콜리전을 활성화 했을 때, 캐릭터 클래스와 겹치는 상황이 발생했습니다.이때 무기 클래스에 캐싱되어 있는 캐릭터 클래스가 있어서 그 캐릭터 클래스와 충돌한 캐릭터가 같은지를 판단하여 return 하는 식으로 처리 했는데 이게 좀 마음에 안들어요.애초에 특정 엑터를 충돌하지 못하게 지정해주고 싶은데 관련기능이 있을까요? 뭔가 있을꺼 같은데 찾기 힘드네요..
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
GameMode, PlayerController 부모 클래스 문제
안녕하세요.현재 버전은 5.2.1 버전으로 진행중이고샘플 프로젝트는 인프런에서 다운받아서 진행했습니다.3분 20초 쯤 내용처럼 새로 만든 프로젝트의 Content 폴더에 샘플프로젝트에 있는 ArenaBattle 폴더를 복사해서 붙여넣고 실행했는데 맵에 캐릭터와 조작은 잘되는데 UI가 안나와서 살펴보던중 BP_ABGameMode와 BP_ABPlayerController가 부모클래스가 없어서 문제가 발생한거 같더라구요.샘플 프로젝트에서는 각자 C++ 클래스를 부모클래스로 상속하고 있는 것 같던데 해당 C++클래스도 같이 옮겨 넣고 진행해야 되나요??
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
루트모션 질문
안녕하세요 강사님!루트 모션 관련해서 질문이 있습니다.루트 모션의 움직이는 정도를 런타임에 조절할 수 있는 방법이 있나요?차징 공격 중 차징된 정도에 따라서 더 많은 거리를 이동하게 만들어주고 싶은데, 이 공격할 때 애니메이션이 루프모션이라면 루프모션의 움직이는 정도를 건드려야 하더라구요..
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
복습중에 include 인텔리전스 질문드립니다.
포맷 후에 다시 복습중에 있습니다.강사님께서 include "Player/ABPlayerController.h" 저희가 선언한 c++과 include "Components/ProgressBar.h" 언리얼에서 제공해주는 헤더파일 같이 모든 폴더에 인텔리전스가 잘 작동하여 강의영상에서 include 추가 시에 용이해보입니다. 근데, 이번에 제가 다시 비쥬얼스튜디오2022 등 다 재설치 + 언리얼1강 설정 등 모든 방법을 해봐도 include 인텔리전스가 잘 작동하지않는데 제가 놓친 부분이 있을까요 ?
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 실전편
총관련 질문
안녕하세요 강사님, 총기 관련해서 구현 중에 궁금한 점이 생겨서 질문합니다.언리얼 팹 마켓을 보면 총과 탄창이 합쳐져있는 스켈레톤 메쉬로 되어 있는 에셋들이 많이 있더라고요. 근데 이걸 왜 합쳐놓은건지 이해가 잘 안됩니다. 분리가 되어 있으면 작업하기 더 좋을 것 같은데 말이죠.. 그래서 직접이 이 에셋을 탄창과 총 부분을 분리시켜 재작업해야하는건지, 혹은 스켈레톤 메쉬로 총과 탄창이 병합되어 있어도 그걸 이용해서 장전 모션같은걸 작업할 수 있는 방법이 있는지가 궁금합니다.
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
에임오프셋 질문
안녕하세요 강사님! 언리얼이 쉽지 않네요, 본론으로 질문하겠습니다.현재 상황 조준 상태일 때 상체에 에임오프셋을 적용시켰는데 비정상적으로 동작하는 현상1번 사진은 에임오프셋이고 Pitch만 받아서 사용함, 2번 사진은 인게임에서 해당 에임오프셋을 적용한 상태로 Pitch값은 0으로 둘다 동일함, 하지만 인게임에서는 손 위치가 밑에 떨어져 있음구현하고자 하는 기능 조준 상태일 때, basePose에서 상체에 에임오프셋을 적용하여 상하로 움직이는 상태로 만들어주고 싶음 코드 설명 및 구현한 방법 BasePose는 IdleWalkRun의 블랜드스페이스로 적용이 되어 있고, 착용가능한 무기에 따라서 각기 다른 IdleWalkRun을 구현할 수 있도록 만듬우클릭을 누르면 조준상태가 되며 관련 정보는 Cpp내부에서 처리MainState에서 스테이트 에얼리어스를 추가하여 조준 상태일 때, Aiming스테이트로 이동하게 만들고Aiming 상태에서 가지고 있는 장비타입에 따라 다른 에임오프셋들을 적용시켜주고, 해당 에임오프셋과 BasePose를 Layerd blend per bone으로 섞어 상체는 에임오프셋, 하체는 기존 BasePose를 사용하도록 애니메이션을 섞음 구글 드라이브 링크https://drive.google.com/file/d/1X1tpQo5A2J-XeGTXWUaEiWsjXJ1j4Th_/view?usp=sharingPS. 우클릭을 누르고 있으면 조준상태로 바뀌며, 콘솔창에 Handle Pistol, Fist, Rifle을 입력하면 현재 캐릭터가 착용하는 무기타입이 바뀌게 설정해놨습니다.
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
월드파티션 질문 - 미니맵
안녕하세요 강사님, 강의 잘 시청하고 있습니다.월드 파티션 쪽 공부하다가 GTA스타일로 미니맵을 구현해보고 싶어서 질문드립니다.현재는 단순하게 위에서 아래로 직교로 런타임 단위로 촬영하는 카메라를 도입하여 구현 한 상황입니다.하지만 GTA같은 거대한 오픈월드의 미니맵을 구현할 때, 모든 엑터를 동적으로 촬영하는 것은 비효율적이라 생각하기에 마음에 들지 않는 상황입니다.그래서 새롭게 구현하고자 하는 방식은 동적 엑터와 정적 엑터를 나눠서 구현하는 것입니다. 동적엑터는 런타임에 생성되거나 움직이는 엑터 ex) 플레이어나, 적, 미션위치, 기타 등등 2. 정적엑터 런타임에 수정되지 않고 고정되어 있는 엑터 ex) 도로나, 건물 기타 등등정적 엑터를 미리 Texture로 깔아 놓고 동적 엑터만 위에 깔아두는 식으로 설계하면 성능적으로 더 효율적일꺼라 생각했습니다.그래서 먼저 맵에 깔려있는 도로나 건물같은 정적 엑터들을 미리 Texture로 만들 수 있는 방법을 찾아보다가 베이킹이라는 용어도 알게되었고, World Partition Minimap 및 World Partition Minimap Volume이라는 걸 찾았습니다. 이걸 이용해서 현재 레벨의 맵을 베이킹할 수 있다고 하는데 그 방법을 당최 모르겠습니다.언리얼 5.4에서 도입되었다고 하는데, World Partition Minimap, World Partition Minimap Volume을 이용하면 현재 레벨의 맵을 베이킹할 수 있는지도 궁금하고, 만약 안된다고 하면현재 레벨의 맵을 어떻게 베이킹할 수 있는지 궁금합니다.
-
해결됨2025 언리얼 공인강사 – UE5 스파르타 클래스: 심화편
애니메이션 질문
안녕하세요 강사님 애니메이션 강의를 보며 프로젝트에 적용 중인 학생입니다.블루프린트에서 애니메이션을 구현하는 부분에서 궁금한점이 생겨 질문드립니다.착지 Additive를 구현 중이고, 떨어지는 상태에 맞는 애니메이션을 에셋을 드롭하여 Apply Addtive에 추가를 해주고 싶은데특정 상태에 맞는 애니메이션을 선택하는 방법을 찾지 못하고 있습니다. 참고 사진 : State:Land안에 있는 노드 정보어떻게 하면 M Fall State에 따라서 Controlled Fall과 Uncontrolled Fall에 맞는 애니메이션을 선택하여 Apply Addtive의 Additive에 넣어줄 수 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
BBAsset 과 UseBlackboard(BBAsset, BlackBoardPtr) 를 작성한 이유가 궁금합니다.
BBAsset 은 BTAsset 을 통해서 가져올 수 있는데, BBAsset 을 변수로 선언하신 이유가 궁금합니다. 또한 RunAI 함수에서 UseBlackboard 를 사용하셨는데, RunBehaviorTree 함수 내부에서 동일한 기능을 수행하고 있습니다. RunBehaviorTree 를 사용하기에 앞서 UseBlackboard 를 사용하신 이유가 궁금합니다.