Unreal - Layered Per Bone (상 하체 애니메이션 분리)
·
Unreal 프로젝트 다이어리/두번째 프로젝트
상체는 공격애니메이션이 가능한 블렌드스페이스 애니메이션하체는 모션매칭의 움직임을 따라가도록 상하체를 분리해보도록 하겠습니다 검을 들었을때 사용할 상체 블렌드스페이스를 만들어줍니다가로축값은 Direction 세로축값은 Speed를 축으로 제작했습니다 세로축값인 Speed는 캐릭터의 MaxWalkSpeed값을 가져왔고가로축값인 Direction은 캐릭터의 캐릭터가 바라보는 전방 대비 실제 이동 방향을 가져왔습니다 Direction변수값을 계산하는 함수void AMainCharacter::calculateDirection(){ FVector velocity = GetVelocity(); velocity.Z = 0.f; if (velocity.IsNearlyZero()) { d..
Unreal - Foot IK
·
Unreal 프로젝트 다이어리/두번째 프로젝트
언리얼에서 기본적으로 제공해주는 마네퀸을 임포트한다 없다면 콘텐츠 팩 추가하여 에셋을 추가한다 기본적인 마네킹의 Control Rig를 보면 ForceTrace와 여러 변수가 있는것을 확인할수있다 자신이 사용하고있는 스켈레탈메시를 우클릭한뒤 컨트롤릭을 생성해준다 마네킹에 있는 변수와 함수 ForceTrace를 내가 사용하고있는 컨트롤릭에 복사붙여넣기해준다 또한 마네킹의 ForwardSolve그래프에 있는 값들을 제일 앞의 두 노드를 제외하고 복사를 해준다 이렇게 복사 붙여넣기 해준다 시퀀스 노드의 핀을 추가하고 앞의 접지점과 연결을 해준다 ForwardSolve그래프에 존재하는 FootTrace노드를 더블클릭해준뒤 해당 안의 노드를 해당 사진과 같이 수정해줍ㄴ디ㅏ FootTrace함수에서 add 와..
Unreal - 모션매칭(Motion Matching) - 스키마 데이터 관리하기 (점프,달리기)
·
Unreal 프로젝트 다이어리/두번째 프로젝트
1편과 이어집니다2025.08.09 - [Unreal5 프로젝트 다이어리2] - Unreal - 모션매칭(Motion Matching) - 기본이동 구현하기 Unreal - 모션매칭(Motion Matching) - 기본이동 구현하기Motion Trajectory플러그인을 설치해줍니다 설치후 포즈 서치 스키마와 포즈 서치 데이터베이스를 만들어줍니다 사용할 리타게팅한 애니메이션을 프로퍼티매트릭스 선택 편집 클릭해줍니다 사용할lucodev.tistory.com 모션매칭의 포즈 서치 스키마를 데이터별로 원하는 조건에 원하는 스키마로 변경할수있습니다shitft를 눌렀을때 달리기 스페이스바를 누르면 점프 하는 스키마로변경되도록 해보겠습니다 캐릭터한테 trajectoryComponent를 달아주겠습니다build.c..
모션매칭 JumpEnum 함수
·
개인 코테 & 스타디 <비공개>/코드 개인보관함
보호되어 있는 글입니다.
Algorithm - Sorting
·
C++ 프로그래머스/Sort
정렬(Sorting)이란?데이터를 어떤 기준에 따라 순서대로 재배치하는 알고리즘을 뜻한다 정렬의 종류에는 버블 정렬(Bubble Sorting)선택 정렬(Selection Sorting)삽입 정렬(Insertion Sorting)퀵 정렬(Quick Sorting)병합 정렬(Merge Sorting)등이 있다 버블 정렬(Bubble Sorting) 개념 : 배열의 인접한 두개의 아이템을 선택하고 비교해서왼쪽의 아이템이 오른쪽 보다 클경우 즉 arr[0] > arr[1] 일경우배열의 들어있는 원소를 서로 Swap하여 바꾼다이걸 끝까지 반복하여 배열 전체가 정렬되는것이 버블 정렬 이다 시간복잡도 : O(N^2)N - 1번의 반복이 필요하기때문에 좋은 알고리즘은 아님 버블정렬의 예시#include #inclu..
프로그래머스(C++) - 더맵게
·
C++ 프로그래머스/Heap
●문제 ●입출력 문제풀이 : scoville지수가 K보다 낮으면 가장 낮은 경우 낮은음식은 가장낮은 음식 스코빌지수 + (두번째로 낮은 음식 스코빌지수 * 2) 해준값을 해준다모든 음식의 스코빌지수가 k 이상이 될떄까지 반복 하고 반복한 횟수 count 풀이 알고리즘 : heap / priority_queue 최소힙 푼방법 : 최소힙 트리를 만들고 힙의 루트노드 최소힙에서 .pop()을 두번해주고 answer++ 해주면 결과도출#include #include #include using namespace std;int solution(vector scoville, int K) { int answer = 0; //최소힙 priority_queue, greater> minPQ; for ..
Algorithm - Heap
·
C++ 프로그래머스/Heap
힙(Heap)이란?주어진 데이터들 중에서 특정 기준에 적합한 '최댓값' 혹은 '최솟값'을 빠르게 찾는완전이진트리 를 기반으로 한 자료구조이다이를 사용하여 우선순위큐(Priority Queue)를 구현가능하다 특징시간복잡도 : 최소 , 평균 , 최악 시간 복잡도 전부 0(N * LogN)이유 : 새로운 데이터의 삽입은 O(1)이 걸림 그다음 부모의 노드와 비교하여 새 데이터가 부모보다 크다면둘의자리를 바꿈, 이 과정을 자신보다 큰 부모를 만날떄까지 반복 힙은 데이터 N개의 비해 높이가 로그N인완전 이진트리를 유지 함, 그래서 최악의 경우인경우도 비교의 교환 과정은 트리의 높이만큼만 일어남간단하게 설명해서 힙의 높이가 로그N에 가까운 이유는 트리의 레벨이 하나 깊어질떄마다저장 가능한 노드의 수가 두배씩 늘어..
프로그래머스(C++) - 의상
·
C++ 프로그래머스/Hash
●문제 ●입출력 사용 알고리즘 : Hash / unoredered_map 문제해석 : 옷 종류와 옷 가짓수를 생각해서 푸는 문제옷 가짓수 + 1 의 경우를 다 곱해서 -1 을 해주면 답이나온다아무것도 안입는 선택지 -1 똑같은 그 옷 종류를 안입는 경우 + 1을 해준다 #include #include #include using namespace std;int solution(vector> clothes){ int answer = 1; //옷이름, 옷종류 //headgear -> yello_hat, green_turban //eyewear -> blue_sunglasses unordered_mapclothesMap; for (auto c : clothes) { string type_Clothes = ..
Unreal - 모션매칭(Motion Matching) - 기본이동 구현하기
·
Unreal 프로젝트 다이어리/두번째 프로젝트
Motion Trajectory플러그인을 설치해줍니다 설치후 포즈 서치 스키마와 포즈 서치 데이터베이스를 만들어줍니다 사용할 리타게팅한 애니메이션을 프로퍼티매트릭스 선택 편집 클릭해줍니다 사용할애니메이션의 루트모션 활성화를 해주고 루트를 잠궈줍니다(애니메이션은 반드시 RM 애니메이션 이어야만 작동합니다)애니메이션 블루프린트를 만들고 모션매칭 노드와 포즈 히스토리 노드를 연결후궤적생성에 체크를 해줍니다 해당 애님 인스턴스를 캐릭터에 적용해주면 모션매칭의 기본 세팅이 완료가 됩니다 언리얼 마켓플레이스 샘플 모션을 들고왔을경우 커스텀움직임을 썻을경우 확실히 에픽게임즈에서 제공해준 수백가지 애니메이션을 적용하니 부드럽긴 한거같습니다
프로그래머스(C++) - 전화번호 목록
·
C++ 프로그래머스/Hash
●문제 ●입출력 사용알고리즘 : Hash / unordered_map 푼방법 : unordered_map로 전화번호부를 emplace함수로 전부다 대입후접두사 후보를 substr로 길이만큼 잘라 만든뒤.find함수로 map에서 찾는다찾았으면 false 없으면 true 반환 #include #include #include using namespace std;bool solution(vector phone_book) { unordered_map myMap; //전화번호부 map에 다 넣기 for (int i = 0; i