본문 바로가기

전체 글49

[콕콕] Unreal5 모션 워핑 언리얼의 모션 워핑(Motion Warping)은 캐릭터의 루트 모션이 타겟과 일치하도록 동적으로 정렬하는 기능이다. 다시 말하자면, 루트모션이 재생 중인 캐릭터를 특정 위치로 이동할 수 있다.이를테면 파쿠르 액션이나 암살 등 다양한 곳에 모션 워핑을 사용할 수 있다.  모션 워핑언리얼 엔진의 애니메이션 모션 워핑에 대해 자세히 알아봅니다.docs.unrealengine.com 언리얼 엔진에서 모션 워핑을 쓰기 위해선 모션 워핑 플러그인을 켜야 한다.아래 사진과 같이 모션 워핑은 아직 실험 단계의 기능인 것을 볼 수 있다. (5.1 기준) 모션 워핑 플러그인을 켰다면 빌드 파일에 모듈 추가 후 프로젝트를 재구축한다.using UnrealBuildTool;public class YourProjectName.. 2023. 5. 13.
[프로그래머스] 폰켓몬 문제링크 #include #include using namespace std; int solution(vector nums) { int answer = 0; set pSet = {}; for (int num : nums) { pSet.insert(num); } answer = min(pSet.size(), nums.size() / 2); return answer; } 2023. 5. 8.
Unreal GAS(GameplayAbilitySystem) Documentation 번역글 1부 해당 글은 언리얼 공식 문서가 아닌 개인이 작성해놓은 문서를 DeepL과 필자가 멋대로 번역, 의역한 글입니다. 따라서 잘못된 정보와 해석이 다분히 있을 수 있습니다. GitHub - tranek/GASDocumentation: My understanding of Unreal Engine 5's GameplayAbilitySystem plugin with a simple multiplayer sMy understanding of Unreal Engine 5's GameplayAbilitySystem plugin with a simple multiplayer sample project. - GitHub - tranek/GASDocumentation: My understanding of Unreal Engi.. 2023. 5. 5.
[프로그래머스] 프로세스 문제링크 #include #include #include using namespace std; int solution(vector priorities, int location) { int answer = 0; //max_element() 늘 기억하자 int max = *max_element(priorities.begin(), priorities.end()); while (true) { for (int i = 0; i < priorities.size(); ++i) { if (priorities[i] == max) { ++answer; if (i == location) { return answer; } priorities[i] = 0; max = *max_element(priorities.begin(), p.. 2023. 5. 4.
[프로그래머스] 연속 부분 수열 합의 개수 문제링크 #include #include #include using namespace std; int solution(vector elements) { set set = {}; size_t size = elements.size(); for (size_t i = 1; i 2023. 5. 2.
C/C++ 더블 포인터 사용 까닭 가끔 C/C++ 프로그래밍을 하다 보면 더블 포인터 인자를 가진 함수를 보곤 한다.굳이 더블 포인터를 사용하는 까닭이 뭘까?  #include void Swap(int* _A, int* _B){ int C = 0; //스왑 C = *_A; *_A = *_B; *_B = C;}int main(){ int* APtr = new int(3); int* BPtr = new int(5); std::cout  위 코드는 포인터 변수가 가진 값을 스왑해주는 코드이다. 포인터가 가진 변수의 값을 바꾸기 위한 목적이라면 위 코드로도 충분하지만만약 포인터 자체의 값, 즉 주소값을 바꾸고 싶다면 어떻게 해야 할까? #include void Swap(int** _A, int** _B){ int* C = nullptr; C =.. 2023. 5. 1.
Unreal MSB3073 에러 시도해볼 것들1. 언리얼 프로젝트 폴더 삭제하고 재생성.  2. 백그라운드에서 실행 중인 라이브 코딩 삭제라이브 코딩이 문제인 경우 출력창에 아래 에러가 뜬다.1>Unable to build while Live Coding is active. Exit the editor and game, or press Ctrl+Alt+F11 if iterating on code in the editor or game    3. .uproject 파일 내부 확인 2023. 4. 1.
깊이 버퍼(Depth Buffer) 깊이 버퍼(Depth Buffer) 깊이 버퍼는 이미지가 굳이 필요 없는 텍스쳐이다. 왜냐하면 각 픽셀의 깊이 정보만 담으면 되기 때문이다. 픽셀의 깊이는 0.0 ~ 1.0 사이의 값으로 지정되는데, 0.0은 관찰자(화면 앞의 유저)와 최대한 가까운 픽셀에 해당하고 1.0은 가장 먼 픽셀에 해당한다. 깊이 버퍼의 원소들과 후면 버퍼(Back Buffer)의 픽셀들은 일대일로 매핑된다. 즉, 후면 버퍼의 xy번째 픽셀은 깊이 버퍼의 xy번째 원소에 대응되는 것. 그러므로 후면 버퍼의 해상도와 깊이 버퍼의 해상도는 같아야 한다. 하나의 오브젝트 A를 다른 오브젝트 B가 가린다고 가정해보자. 그렇다면 B가 A보다 앞에 있는지 어떻게 판단해야 할까? DirectX에선 A의 픽셀들이 B의 픽셀보다 앞에 있는지를 .. 2023. 3. 31.
[코드업 3704] 계단 오르기2 문제링크 #include long long int res[1001]; long long int f(int n) { if (1 == n) return res[1] = 1; if (2 == n) return res[2] = 2; if (3 == n) return res[3] = 4; if (n > n; std::cout 2023. 3. 8.